亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? managestudent.cpp

?? 一個學生管理系統
?? CPP
字號:
//題目:設計一個學生管理系統,所有信息必須進行完整性校驗,然后編寫主函數進行測試
#include<iostream>
#include<cstring>
using namespace std;

class Date;
class Student;
istream &operator>>(istream &in,Date &x);
ostream &operator<<(ostream &out,const Date &x);
ostream &operator<<(ostream &out,const Student &m);


/***************************定義日期類,存放學生出生日期**************************************************************/
class Date
{
private:
	int Year;int Month;int Day;
public:
	Date( ){Year=1;Month=1;Day=1;}//構造函數
    void SetDate(int year,int month,int day);//修改、輸入日期
	inline bool IsLeapYear(int year);//判指定年份是否為閏年
    int GetDaynumOfMonth(int year,int month);//返回指定年、月對應的天數 
    bool IsValidDate();//判斷日期是否合法
	int GetYear(){return Year;}
	int GetMonth(){return Month;}
	int GetDay(){return Day;}
	friend istream &operator>>(istream &in,Date &x);//重載輸入
    friend ostream &operator<<(ostream &out,const Date &x);//重載輸出
	
};



//修改、輸入日期
void Date::SetDate(int year,int month,int day)
{
    Year=year;Month=month;Day=day;
}

//判指定年份是否為閏年
inline bool Date::IsLeapYear(int year)
{
    if(year%4==0&&year%100!=0||year%400==0)
		return true;
	else return false;
}

//返回指定年、月對應的天數 
int Date::GetDaynumOfMonth(int year,int month)
{
	int daynum[]={0,31,0,31,30,31,30,31,31,30,31,30,31};
	if(month==2)
	{
		if (IsLeapYear(year)) return 29;
		else return 28;
	}
	else return daynum[month];
}

//判斷日期是否合法
bool Date::IsValidDate()
{
    if(Year<=0) throw Year;
	if(Month<=0||Month>12) throw Month;
	if(Day<1||Day>GetDaynumOfMonth(Year,Month)) throw Day;
	return true;
}

//用友元函數重載輸入
istream &operator>>(istream &in,Date &x)
{
	in>>x.Year>>x.Month>>x.Day;
	return in;
}

//用友元函數重載輸出
ostream &operator<<(ostream &out,const Date &x)
{
    out<<x.Year<<x.Month<<x.Day;
    return out;
}
/*****************************************************************************************************************/


/**************************************學生類**********************************************************************/
class Student
{
private:
	char Name[9];//定義學生姓名
	char Sex[3];//定義學生性別
	char BornPlace[100];//定義學生的出生地
	Date BornDate;//定義學生的出生日期
	char Race[9];//定義學生所屬的民族
	char ID[20];//定義學生身份證號碼
	int StuNum[10];//定義學生學號
	char FatherName[9];//定義學生的父姓名
	char MatherName[9];//定義學生的母姓名
	char BloodType[3];//定義學生的血型
	int Mark;//定義學生考試成績
	static int count;//count用來存放總共輸入的學生人數
public:
	Student();//構造函數
	~Student(){count--;}//拷貝構造函數
	void SetName();//輸入姓名
	char GetName(){return Name;}
	void SetSex();//輸入性別
	void SetBornPlace();//輸入出生地
	void SetBornDate();//輸入出生日期
    void SetRace();//輸入民族屬性
	void SetID();//輸入身份證號碼
    void SetStuNum();//輸入學號
	void SetFatherName();//輸入父姓名
	void SetMatherName();//輸入母姓名
	void SetBloodType();//輸入血型
	void SetMark();//輸入成績
	friend ostream &operator<<(ostream &out,const Student &m);
	void JudgeFirstName();//判別學生姓氏是否與父母姓氏相同
	
};

//構造函數
Student::Student()
{
	strcpy(Name,"無");
    strcpy(Sex,"無");
	strcpy(BornPlace,"無");
	(*this).BornDate.SetDate(1,1,1);
	strcpy(Race,"無");
	strcpy(ID,"0");
	strcpy(StuNum,"0");
	strcpy(FatherName,"無");
	strcpy(MatherName,"無");
    strcpy(BloodType,"O");
    Mark=0;
	count++;
}

Student::count=0;
//輸入姓名
void Student::SetName()
{
	gets(Name);
	Name[8]='\0';
	cout<<endl;
	char temp[3];
	for(int i=0;Name[i]!='\0';i+=2)
	{
		temp[0]=Name[i];
		temp[1]=Name[i+1];
		temp[2]='\0';
		if (strcmp(temp,"啊")<0)
			throw 'a';		
	}
}

//輸入性別
void Student::SetSex()
{
    gets(Sex);
	Sex[2]='\0';
	cout<<endl;
	if(strcmp(Sex,"男")!=0&&strcmp(Sex,"女")!=0)throw 'a';
}

//輸入出生地
void Student::SetBornPlace()
{
	gets(BornPlace);
	BornPlace[99]='\0';
	cout<<endl;
}

//輸入出生日期
void Student::SetBornDate()
{
	cin>>BornDate;
	cout<<endl;
    BornDate.IsValidDate();	
}

//輸入民族屬性
void Student::SetRace()
{
	cin>>Race;//為什么用gets(Race)就不行呢?
	Race[8]='\0';
	cout<<endl;
	int x=0;//定義中間變量處理民族名異同情況
	if(strcmp(Race,"漢")==0){x=1;}
	if(strcmp(Race,"回")==0){x=1;}
	if(strcmp(Race,"藏")==0){x=1;}
	if(strcmp(Race,"苗")==0){x=1;}
	if(strcmp(Race,"彝")==0){x=1;}
	if(strcmp(Race,"壯")==0){x=1;}
	if(strcmp(Race,"滿")==0){x=1;}
	if(strcmp(Race,"侗")==0){x=1;}
	if(strcmp(Race,"瑤")==0){x=1;}
	if(strcmp(Race,"白")==0){x=1;}
	if(strcmp(Race,"傣")==0){x=1;}
	if(strcmp(Race,"黎")==0){x=1;}
	if(strcmp(Race,"佤")==0){x=1;}
	if(strcmp(Race,"畬")==0){x=1;}
	if(strcmp(Race,"水")==0){x=1;}
	if(strcmp(Race,"土")==0){x=1;}
	if(strcmp(Race,"羌")==0){x=1;}
	if(strcmp(Race,"怒")==0){x=1;}
	if(strcmp(Race,"京")==0){x=1;}
	if(strcmp(Race,"蒙古")==0){x=1;}
	if(strcmp(Race,"布衣")==0){x=1;}
	if(strcmp(Race,"朝鮮")==0){x=1;}
	if(strcmp(Race,"土家")==0){x=1;}
	if(strcmp(Race,"哈尼")==0){x=1;}
	if(strcmp(Race,"僳僳")==0){x=1;}
	if(strcmp(Race,"高山")==0){x=1;}
	if(strcmp(Race,"拉祜")==0){x=1;}
	if(strcmp(Race,"東鄉")==0){x=1;}
	if(strcmp(Race,"納西")==0){x=1;}
	if(strcmp(Race,"景頗")==0){x=1;}
	if(strcmp(Race,"仫佬")==0){x=1;}
	if(strcmp(Race,"布朗")==0){x=1;}
	if(strcmp(Race,"撒拉")==0){x=1;}
	if(strcmp(Race,"毛南")==0){x=1;}
	if(strcmp(Race,"仡佬")==0){x=1;}
	if(strcmp(Race,"錫伯")==0){x=1;}
	if(strcmp(Race,"阿昌")==0){x=1;}
	if(strcmp(Race,"普米")==0){x=1;}
	if(strcmp(Race,"德昂")==0){x=1;}
	if(strcmp(Race,"保安")==0){x=1;}
	if(strcmp(Race,"裕固")==0){x=1;}
	if(strcmp(Race,"獨龍")==0){x=1;}
	if(strcmp(Race,"赫哲")==0){x=1;}
	if(strcmp(Race,"門巴")==0){x=1;}
	if(strcmp(Race,"珞巴")==0){x=1;}
	if(strcmp(Race,"基諾")==0){x=1;}
	if(strcmp(Race,"維吾爾")==0){x=1;}
	if(strcmp(Race,"哈薩克")==0){x=1;}
    if(strcmp(Race,"達斡爾")==0){x=1;}
	if(strcmp(Race,"塔吉克")==0){x=1;}
	if(strcmp(Race,"塔塔爾")==0){x=1;}
	if(strcmp(Race,"鄂倫春")==0){x=1;}
	if(strcmp(Race,"俄羅斯")==0){x=1;}
	if(strcmp(Race,"鄂溫克")==0){x=1;}
	if(strcmp(Race,"烏孜別克")==0){x=1;}
	if(strcmp(Race,"柯爾克孜")==0){x=1;}
	if(x==0)throw x;	
}

//輸入身份證號碼
void Student::SetID()
{
	
	cin>>ID;
	ID[18]='\0';
	cout<<endl;
	if((ID[6]-48)*1000+(ID[7]-48)*100+(ID[8]-48)*10+(ID[9]-48)!=BornDate.GetYear()) throw 0;
    if((ID[10]-48)*10+(ID[11]-48)!=BornDate.GetMonth()) throw 0;
	if((ID[12]-48)*10+(ID[13]-48)!=BornDate.GetDay()) throw 0;
	if(strcmp(Sex,"男")==0&&(ID[16]-48)%2==0) throw 'a';
    if(strcmp(Sex,"女")==0&&(ID[16]-48)%2!=0) throw 'a';
}

//輸入學號
void Student::SetStuNum()
{
	cin>>StuNum;
	a[9]='\0';
	cout<<endl;
}
//輸入父姓名
void Student::SetFatherName()
{
	cin>>FatherName;
	FatherName[8]='\0';
	cout<<endl;
	char temp[2];
	for(int i=0;FatherName[i]!='\0';i+=2)
	{
		temp[0]=FatherName[i];
		temp[1]=FatherName[i+1];
		if (strcmp(temp,"啊")<0)
			throw 'a';		
	}
}

//輸入母姓名
void Student::SetMatherName()
{
	cin>>MatherName;
	MatherName[8]='\0';
	cout<<endl;
	char temp[2];
	for(int i=0;MatherName[i]!='\0';i+=2)
	{
		temp[0]=MatherName[i];
		temp[1]=MatherName[i+1];
		if (strcmp(temp,"啊")<0)
			throw 'a';		
	}
	
}

void Student::SetMark();//輸入成績
{
	int m;
	cin>>m;
    Mark=m;
}

//輸入血型
void Student::SetBloodType()
{
	cin>>BloodType;
	BloodType[2]='\0';
	cout<<endl;
	if(strcmp(BloodType,"A")!=0&&strcmp(BloodType,"B")!=0&&strcmp(BloodType,"AB")!=0&&strcmp(BloodType,"O")!=0)
		throw 'a';
}

//友元重載學生類輸出
ostream &operator<<(ostream &out,const Student &m)
{
    cout<<"姓名:"<<m.Name<<endl;
	cout<<"性別:"<<m.Sex<<endl;
	cout<<"出生地:"<<m.BornPlace<<endl;
	cout<<"出生日期:"<<m.BornDate<<endl;
	cout<<"民族:"<<m.Race<<endl;
	cout<<"身份證號碼:"<<m.ID<<endl;
    cout<<"學號:"<<m.StuNum<<endl;
    cout<<"成績:"<<m.Mark<<endl;
	cout<<"父姓名:"<<m.FatherName<<endl;
	cout<<"母姓名:"<<m.MatherName<<endl;
	cout<<"血型:"<<m.BloodType<<endl;
	return out;
	
}

//判別學生姓氏是否與父母姓氏相同
void Student::JudgeFirstName()
{
	char firstname1[3];//存放學生姓氏
    char firstname2[3];//存放學生的父親姓氏
	char firstname3[3];//存放學生的母親姓氏
	
	firstname1[0]=Name[0];
	firstname1[1]=Name[1];
    firstname1[2]='\0';
    firstname2[0]=FatherName[0];
	firstname2[1]=FatherName[1];
    firstname2[2]='\0';
    firstname3[0]=MatherName[0];
	firstname3[1]=MatherName[1];
    firstname3[2]='\0';
	if(strcmp(firstname1,firstname2)!=0&&strcmp(firstname1,firstname3)!=0)
	{
		
		
		cout<<"系統發現您輸入的學生姓氏與其父母姓氏均不相同,請問是否重新輸入學生或其父母姓名?"<<endl;
		cout<<"是,請選擇1再按回車;否,請選擇2再按回車:"<<endl;
		int a;
		cin>>a;
		if(a==1)
		{
			for(int c=0;c<3;c++)
			{
				cout<<"請再次檢查學生的姓名、父母姓名是否有誤,確證無誤后:"<<endl;
				cout<<"重新輸入學生姓名,請選擇1再按回車,"<<endl;
				cout<<"重新輸入學生父姓名,請選擇2再按回車,"<<endl;
				cout<<"重新輸入學生母姓名,請選擇3再按回車:"<<endl;
				int b;
				cin>>b;
				try
				{
					if(b==1){cout<<"學生姓名:";SetName();}
					if(b==2){cout<<"學生父姓名:";SetFatherName();}
					if(b==3){cout<<"學生母姓名:";SetMatherName();}
				}
				catch(...)
				{
					continue;
				}
				break;
			}
		} 
	}
}

void input(Student &m)
{
	cout<<"請您輸入學生的如下信息:姓名、性別、出生地點、出生年月、民族、身份證號碼、學號、成績、父母姓名、血型"<<endl;
	/*****************************************************************************************************************/
    
	cout<<"姓名:";
	try
	{
		m[i].SetName();
	}
	catch(char)
	{
        cout<<"抱歉,您輸入的姓名不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入姓名:";m[i].SetName();
		
	}
    /*****************************************************************************************************************/
    cout<<"性別:";
	try
	{
        m[i].SetSex();
	}
	catch(char)
	{
        cout<<"抱歉,您輸入的性別不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入性別:";m[i].SetSex();
	}
	/*****************************************************************************************************************/
    cout<<"出生地:";
	
	m[i].SetBornPlace();
	
	/*****************************************************************************************************************/
    cout<<"出生日期:";
	try
	{
        m[i].SetBornDate();
		
	}
	catch(int)
	{
        cout<<"抱歉,您輸入的日期不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入日期:";m[i].SetBornDate();
	}
	/*****************************************************************************************************************/
	cout<<"民族:";
	try
	{
        m[i].SetRace();
	}
	catch(int)
	{
        cout<<"抱歉,您輸入的民族不是中華民族成員,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入民族:";m[i].SetRace();
	}
	/*****************************************************************************************************************/
	cout<<"身份證號碼:";
	try
	{
        m[i].SetID();
	}
	catch(...)
	{
        cout<<"抱歉,您輸入的身份證號碼中的出生日期、或性別位數字和您剛輸入的出生日期、或性別不一致,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入身份證號碼:";m[i].SetID();
	}
	
	/*****************************************************************************************************************/
	cout<<"學號:";
	m[i].SetSduNum();
    cout<<"成績:";
	m[i].SetMark();
    /*****************************************************************************************************************/
	cout<<"父姓名:";
	try
	{
        m[i].SetFatherName();
	}
	catch(char)
	{
        cout<<"抱歉,您輸入的父姓名不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入父姓名:";m[i].SetFatherName();
	}
	/*****************************************************************************************************************/
	cout<<"母姓名:";
	try
	{
        m[i].SetMatherName();
	}
	catch(char)
	{
        cout<<"抱歉,您輸入的母姓名不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入母姓名:";
		m[i].SetMatherName();
	}
	//******************************************************************************************************************
	m[i].JudgeFirstName();
	
	/*****************************************************************************************************************/
	cout<<"血型:";
	try
	{
        m[i].SetBloodType();
	}
	catch(char)
	{
        cout<<"抱歉,您輸入的血型不合常規,請查證后再輸一次。"<<endl;
		cout<<"請重新輸入血型:";m[i].SetBloodType();
	}
    /*****************************************************************************************************************/
}
/**************************************主函數*************************************************************************/
void main()
{
	Student m[40];
    input(m[0])
		cout<<"要繼續輸入學生信息請輸入1,不再繼續請輸入2:"<<endl;
	int a;
	cin>>a;
	int i=1;
	for (;i<40;i++)
	{
		if(a==1)
			input(m[i]);
		else break;
	}
    for (int j=0;j<=i;j++)
	{
		cout<<m[j];
	}
	cout<<"請輸入您要查找的學生名字:"<<endl;
    char s[10];
	cin>>s;
	int x=0;
	for(int k=0;k<=i;k++)
	{
		if(strcmp(m[k].GetName,s)==0)
		{
			cout<<m[k];
			x=1;
			break;
		}
	}
    if(x==0)
		cout<<"對不起,您所要找的學生信息在數據庫中沒有收錄。"<<endl;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大片一区二区三区| 婷婷开心激情综合| 中文字幕一区不卡| 亚洲午夜电影在线| 日韩电影网1区2区| 国产精品99精品久久免费| www.66久久| 欧美肥妇free| 国产精品国产自产拍在线| 亚洲欧美一区二区视频| 亚洲大片免费看| 国产美女精品在线| 在线视频中文字幕一区二区| 538在线一区二区精品国产| 国产日韩视频一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 午夜视频在线观看一区二区三区| 久久9热精品视频| 色噜噜夜夜夜综合网| 日韩亚洲国产中文字幕欧美| 亚洲欧洲av在线| 蓝色福利精品导航| 精品视频全国免费看| 国产日韩精品一区二区三区在线| 亚洲超丰满肉感bbw| 不卡欧美aaaaa| 国产三级一区二区三区| 欧美aaaaa成人免费观看视频| 欧美唯美清纯偷拍| 亚洲国产岛国毛片在线| 国产麻豆成人精品| 久久久久国产精品麻豆ai换脸 | 99精品久久免费看蜜臀剧情介绍| 91精品国产综合久久精品图片 | 日韩一区二区三区三四区视频在线观看 | 欧美日韩性生活| 亚洲高清中文字幕| 欧美日韩一本到| 午夜天堂影视香蕉久久| 欧美色窝79yyyycom| 亚洲观看高清完整版在线观看 | 亚洲国产日韩综合久久精品| 91色在线porny| 亚洲狠狠爱一区二区三区| 欧美色老头old∨ideo| 亚洲成av人片一区二区| 日韩一区二区精品| 极品尤物av久久免费看| 国产调教视频一区| 91在线国产福利| 日韩黄色免费网站| 日本一区二区综合亚洲| 在线精品亚洲一区二区不卡| 精品无人区卡一卡二卡三乱码免费卡 | 中文字幕欧美日本乱码一线二线| 高清av一区二区| 蜜桃av一区二区三区电影| 国产精品午夜免费| 91精品国产入口在线| 成人一区二区三区视频| 亚洲一区欧美一区| 久久综合99re88久久爱| 91极品视觉盛宴| 精品一区二区在线免费观看| 国产精品日产欧美久久久久| 欧美日韩一区中文字幕| 不卡影院免费观看| 国产在线不卡一卡二卡三卡四卡| 国产精品免费av| 精品国产一区二区三区忘忧草| 色又黄又爽网站www久久| 久久9热精品视频| 日本中文字幕一区二区有限公司| 国产精品电影一区二区| 国产亚洲短视频| 精品国产乱码久久久久久影片| 欧美三级电影在线观看| 91在线视频网址| 色综合久久综合网97色综合| 色婷婷一区二区| 国产精品一区二区黑丝| 国产精品一区二区x88av| 精品一区二区在线播放| 国产精品综合一区二区三区| 青青国产91久久久久久| 另类专区欧美蜜桃臀第一页| 奇米在线7777在线精品| 国内不卡的二区三区中文字幕 | 精品电影一区二区三区 | 国产精品一色哟哟哟| 国产a视频精品免费观看| 99久久99久久精品免费看蜜桃| 99久久精品免费看国产| 欧美亚洲图片小说| 精品福利av导航| 国产精品久久久久久亚洲毛片| 国产综合久久久久久久久久久久| 日本久久精品电影| 国产a级毛片一区| 色哟哟国产精品| 亚洲一区在线电影| 久久午夜羞羞影院免费观看| 日韩免费观看高清完整版在线观看| 26uuu亚洲综合色欧美| 一区二区三区免费看视频| 蜜桃精品视频在线| 欧美性生活大片视频| 国产精品剧情在线亚洲| 日韩精品亚洲专区| 日本电影欧美片| 中文字幕欧美国产| 韩国女主播一区| 91精品国产丝袜白色高跟鞋| 久久精品亚洲一区二区三区浴池| 亚洲最新视频在线观看| 国产盗摄女厕一区二区三区| 欧美一区国产二区| 日韩精品国产欧美| 中文字幕在线免费不卡| 蜜臀久久99精品久久久久宅男 | 国产精品二三区| 国产成a人亚洲| 日韩一区二区麻豆国产| 偷窥国产亚洲免费视频| 在线观看亚洲精品视频| 亚洲免费色视频| 欧美性生交片4| 亚洲一区二区黄色| 欧美日韩你懂的| 亚洲高清免费视频| 欧美在线视频你懂得| 亚洲丝袜精品丝袜在线| 粉嫩绯色av一区二区在线观看 | 免费成人在线视频观看| 欧美成人性福生活免费看| 国产91精品免费| 樱花影视一区二区| 日韩欧美区一区二| 成人永久免费视频| 亚洲成人动漫在线观看| 欧美一区二区播放| 99久久精品国产精品久久| 亚洲成在线观看| 国产欧美日韩另类一区| 欧美日韩一区二区电影| 国产盗摄一区二区| 午夜久久电影网| 中文字幕一区二区5566日韩| 5858s免费视频成人| 色婷婷综合激情| 粉嫩蜜臀av国产精品网站| 亚洲r级在线视频| 亚洲视频一区二区免费在线观看| 91精品黄色片免费大全| 在线欧美日韩精品| 岛国一区二区三区| 国产真实乱对白精彩久久| 亚洲国产精品久久一线不卡| 国产精品国产三级国产aⅴ原创| 日韩一级二级三级精品视频| 99re成人精品视频| 国产成人在线免费观看| 精品一区二区三区久久| 日本亚洲一区二区| 首页综合国产亚洲丝袜| 亚洲第一搞黄网站| 亚洲精品久久久蜜桃| 樱桃视频在线观看一区| 一区二区成人在线| 一区二区三区欧美日韩| 樱花草国产18久久久久| 亚洲欧美色一区| 亚洲国产欧美在线| 午夜影院在线观看欧美| 首页国产丝袜综合| 日本成人中文字幕| 国产一区二区不卡| 成人免费av在线| 色婷婷av一区二区三区软件 | 亚洲欧美日韩国产综合| 亚洲成人动漫精品| 久久国产尿小便嘘嘘尿| 国产aⅴ精品一区二区三区色成熟| 国产成人福利片| 欧美午夜一区二区| 欧美大片日本大片免费观看| 中文av字幕一区| 亚洲自拍偷拍九九九| 久久se精品一区精品二区| 国产成人在线网站| 欧美人狂配大交3d怪物一区| 日韩一区二区三区电影在线观看| 国产欧美精品一区| 亚洲电影一级片| 北岛玲一区二区三区四区| 69堂国产成人免费视频| 中文字幕一区av| 国产综合久久久久影院| 91国偷自产一区二区开放时间 | 国产综合色精品一区二区三区|