还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1.学校人员信息管理系统#includeiostream#includestring#includefstream#includestdlib.h#inlcudewindows.hUsingnamespacestd;Intmain;StaticintT=0;//用于标记老师类对象的个数StaticintS=0;//用于标记学生类对象的个数Classpeople{//people基类Public:Intnum;Charname
[30];Charsex
[15];Charmajor_or_department
[50];Chardate
[30];Intage;Peopleintncharnam
[30]chars
[15]charo
[50]chard
[30]inta{Num=n;Strcpynamenam;Strcpysexs;Strcpymajor_or_departmento;Strcpydated;Age=a;}};Classteacher:virtualpublicpeoplePublic:Teacherintn=0charnam
[30]=””chars
[15]=””charo
[50]=””chard
[30]=””inta=0charj
[50]=””doublesa=0:peoplennamsodasalarysa{strcpyjobj;}Charjob
[50];Doublesalary;Friendistreamoperatoristreamisteachertea//重载运算符函数声明{Isteanum;Is.getlinetea.name30’\n’;//使其能够读入字符串中的空格Istea.sex;Istea.major_or_department;Istea.date;Istea.age;Istea.job;Istea.salary;Returnis;//退出函数}friendostreamoperatorostreamosteachertea//重载运算符函数声明{ostea.num\n;ostea.name\n;ostea.sex\n;ostea.major_or_department\n;ostea.date\n;ostea.age\n;ostea.job\n;ostea.salary\n;returnos;//退出函数}VoidAddDate{system“cls”;Cout”请输入教工号”;Cinnum;Forintk=1;k11;k++Ifnum==kK=11;Ifk==11{Cout”请输入10以内的教工号”endl;AddDate;//添加函数;}Cout”请输入教师姓名”;Cinname;Cout”请输入教师性别”;Cinsex;Cout”请输入教师出生时间”;Cindate;Cout”请输入教师工作系别部门”;Cinmajor_or_department;cout请输入教师年龄:;cinage;cout请输入教师职称(如教授/副教授/讲师):;cinjob;cout请输入教师工资:;cinsalary;try//处理教师工资合法性{ifsalary0{throwsalary;}}catchdouble{Cout”输入有误,请重新输入”endl;Main;}}voidDisplayData//如何实现{cout教工号姓名性别工作部门出生时间年龄职称工资endl;coutnum\tname\tsex\tmajor_or_department\tdate\tage\tjob\tsalaryendl;}voidsaveofstreamoutf//samequestion{outf教工号姓名性别工作部门出生时间年龄职称工资endl;outfnum\tname\tsex\tmajor_or_department\tdate\tage\tjob\tsalaryendl;}Voidloadifstreaminf{Intnumnamesexmajor_or_departmentdateagejobsalary;}}tea
[10];TemplatetypenameQQMaxQ*xintlen{Qmax=x
[0];Forinti=1;Ilen;i++Max=maxx[i]max:x[i];Returni;}voidTAddData//对教师类对象的添加功能函数{tea[T].AddData;forinti=0;i10;i++{Ifi!=Ttea[T].num==tea[i].num{Cout”输入教工号重复,请重复输入!”endl;Main;}}Cout”添加记录成功!”endl;Tea[T].DisplayData;T++;}VoidTDeleteData//对教师类对象的删除功能函数{Intn;IfT==0Cout”没有可以删除的记录!”endl;Else{Cout”请输入10以内的教工号”;cinn;forinti=0;iT;i++iftea[i].num==n{For;iT;i++tea[i]=tea[i+1];T--;cout成功删除记录!endl;}}VoidTUpdateData//对教师类对象的修改功能函数{Intn;IfT==0Cout”没有可以删除的记录!”endl;Else{Cout”请输入10以内的教工号”;Cinn;Forinti=0;iTi++Iftea[i].num==n{Cout”原有的记录”endl;Tea[i].DisplayData;Cout”请输入新的记录”endl;cout请输入教师职称(如教授/副教授/讲师):;cintea[i].job;cout请输入教师工资:;cintea[i].salary;cout新的记录:endl;tea[i].DisplayData;}}}voidTSearchData_num//按教工号查询教师类对象{intn;cout请输入10以内的教工号:;cinn;forinti=0;iT;i++iftea[i].num==n{tea[i].DisplayData;i=T;}ifi==T{cout查询的记录不存在,请重新输入!endl;TSearchData_num;}}voidTSearchData_nam//按姓名查询教师类对象{charnam_s
[30];cout请输入教师名字:endl;cinnam_s;forintj=0;jT;j++ifstrcmptea[j].namenam_s==0{tea[j].DisplayData;j=T;}ifj==T{cout查询的记录不存在,请重新输入!endl;TSearchData_nam;}}voidTSearchData_sex//按性别查询教师类对象{charsex_s
[15];cout请输入教师性别:endl;cinsex_s;forintp=0;pT;p++ifstrcmptea[p].sexsex_s==0{tea[p].DisplayData;p=T;}ifp==T{cout查询的记录不存在,请重新输入!endl;TSearchData_sex;}}voidTFindMaxData//对教师类对象的最高工资查询功能函数{intnu;doublet
[10];forinta=0;aT;a++t[a]=tea[a].salary;nu=MaxtT;tea[nu-1].DisplayData;}VoidTDisplayData//对教师类对象按教工号升序排列打印功能函数{Forinti=1;i11;i++{forintc=0;cT;c++{iftea[c].num==i{tea[c].DisplayData;}}}}VoidTsave//对教师类对象的保存功能函数{Ofstreamoutf“c:\\teacher.datios::out;forinti=0;iT;i++tea[i].saveoutf;outf.close;cout成功保存记录!endl;}voidTload//对教师类对象的读取功能函数{ifstreaminfc:\\teacher_ext.datios::out;forinti=0;iT;i++tea[i].loadinf;inf.close;cout成功读取记录!endl;cout所有教师记录:endl;fori=0;iT;i++tea[i].DisplayData;}Classstudent:virtualpublicpeople{Public:Studentintn=0charnam
[30]=””chars
[15]=charo
[50]=chard
[15]=inta=0intc=0inte=0intm=0:peoplennamsodascore_chinesecscore_englishescore_mathematicesm{}Intscore_chinese;intscore_english;intscore_mathematices;friendistreamoperatoristreamisstudentstu//重载运算符函数声明{Isstu.num;Is.getlinestu.name30\n;//使其能够读入字符串中的空格isstu.sex;isstu.major_or_department;isstu.date;isstu.age;isstu.score_chinese;isstu.score_english;isstu.score_mathematices;returnis;//退出函数}Friendostreamoperatorostreamos.studentstu//重载””运算符函数声明{osstu.num\n;osstu.name\n;osstu.sex\n;osstu.major_or_department\n;osstu.date\n;osstu.age\n;osstu.score_chinese\n;osstu.score_english\n;osstu.score_mathematices\n;returnos;//退出函数}voidAddData{systemcls;cout请输入学号:;cinnum;forintk=1;k11;k++ifnum==kk=11;ifk==11{cout请输入10以内的学号endl;AddData;}cout请输入学生姓名:;cinname;cout请输入学生性别:;cinsex;cout请输入学生专业:;cinmajor_or_department;cout请输入学生出生时间:;cindate;cout请输入学生年龄:;cinage;cout请输入学生语英数三科成绩:;cinscore_chinese;cinscore_english;cinscore_mathematices;}VoidDisplayData{Cout学号姓名性别专业出生时间年龄语文成绩英语成绩数学成绩endl;coutnum\tname\tsex\tmajor_or_department\tdate\tage\tscore_chinese\tscore_english\tscore_mathematicesendl;}Voidsaveofstreamoutf{outf”学号””“”姓名”性别专业出生时间年龄语文成绩英语成绩数学成绩endl;outfnum\tname\tsex\tmajor_or_department\tdate\tage\tscore_chinese\tscore_english\tscore_mathematicesendl;}voidloadifstreaminf{Infnumnamesexmajor_or_departmentdateagescore_chinesescore_englishscore_mathematices;}}stu
[10];voidSAddData//对学生类对象的添加功能函数{{stu[S].AddData;forinti=0;i10;i++{ifi!=Sstu[S].num==stu[i].num{cout输入学号重复,请重新输入!endl;main;}}cout添加记录成功!endl;stu[S].DisplayData;S++;}}voidSDeleteData//对学生类对象的删除功能函数{intn;ifS==0cout没有可删除的记录!endl;else{cout请输入10以内的学号:;cinn;forinti=0;iS;i++ifstu[i].num==nfor;iS;i++stu[i]=stu[i+1];S--;cout成功删除记录!endl;}}voidSUpdateData//对学生类对象的修改功能函数{intn;ifS==0cout没有可删除的记录!endl;else{cout请输入10以内的学号:;cinn;forinti=0;iS;i++ifstu[i].num==n{cout原有的记录:endl;stu[i].DisplayData;cout请输入新的记录:endl;cout请输入语英数成绩:;cinstu[i].score_chinese;cinstu[i].score_english;cinstu[i].score_mathematices;cout新的记录:endl;stu[i].DisplayData;}}}voidSSearchData_num//按学号查询学生类对象{intn;cout请输入10以内的学号:;cinn;forinti=0;iS;i++ifstu[i].num==n{stu[i].DisplayData;i=S;}ifi==S{cout查询的记录不存在,请重新输入!endl;SSearchData_num;}}voidSSearchData_nam//按姓名查询学生类对象{charnam_s
[15];cout请输入学生名字:endl;cinnam_s;forintj=0;jS;j++ifstu[j].name==nam_s{stu[j].DisplayData;j=S;}ifj==S{cout查询的记录不存在,请重新输入!endl;SSearchData_nam;}}voidSSearchData_sex//按性别查询学生类对象{charsex_s
[15];cout请输入学生性别:endl;cinsex_s;forintp=0;pS;p++ifstu[p].sex==sex_s{stu[p].DisplayData;p=S;}ifp==S{cout查询的记录不存在,请重新输入!endl;SSearchData_sex;}}voidSFindMaxData//对学生类对象的最高英语成绩查询功能函数{intnu;doublet
[10];forinta=0;aS;a++t[a]=stu[a].score_english;nu=MaxtS;stu[nu-1].DisplayData;}voidSDisplayData//对学生类对象按学号升序排序打印功能函数{forinti=1;i11;i++{forintc=0;cS;c++{ifstu[c].num==i{stu[c].DisplayData;}}}}voidSsave//对学生类对象的保存功能函数{ofstreamoutfc:\\student.datios::out;forinti=0;iS;i++stu[i].saveoutf;outf.close;cout成功保存记录!endl;}voidSload//对学生类对象的读取功能函数{ifstreaminfc:\\student_ext.datios::out;forinti=0;iS;i++stu[i].loadinf;inf.close;cout成功读取记录!endl;cout所有学生记录:endl;fori=0;iS;i++stu[i].DisplayData;}voidShowmenu{cout************欢迎进入人员信息管理系统************endl;cout**
1.添加数据**endl;cout**
2.删除数据**endl;cout**
3.修改数据**endl;cout**
4.查询记录**endl;cout**
5.英语成绩最高学生查询**endl;cout**
6.工资最高教师查询**endl;cout**
7.显示全部人员记录**endl;cout**
8.保存数据**endl;cout**
9.读取数据**endl;cout**
10.退出系统**endl;cout************************************endl;}voidMenu{cout**********请输入操作对象***************endl;cout**
1.教师**endl;cout**
2.学生**endl;cout**
3.退出**endl;cout********************************endl;}voidMenu1{systemcls;cout***********请输入操作对象***************endl;cout**
1.按教工号/学号查询**endl;cout**
2.按姓名查询**endl;cout**
3.按性别查询**endl;cout**
4.退出**endl;cout*********************************endl;}VoidAddData//添加功能函数{system“cls”;Inti=1;Whilei{Intchoice;Menu;Cinchoice;Switchchoice{Case1:TAddData;Break;Case2:SAddData;Break;Case3:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}}voidDeleteData//删除功能函数{systemcls;inti=1;whilei{intchoice;Menu;cinchoice;switchchoice{case1:TDeleteData;break;case2:SDeleteData;break;case3:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}}VoidUpdateData//修改功能函数{system“cls”;inti=1;whilei{intchoice;Menu;cinchoice;switchchoice{case1:TUpdateData;break;case2:SUpdateData;break;case3:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}}voidSearchData//查询功能函数{systemcls;inti=1;whilei{intchoice;Menu;cinchoice;switchchoice{case1:{intchoice1;Menu1;cinchoice1;switchchoice1{case1:TSearchData_num;break;case2:TSearchData_nam;break;case3:TSearchData_sex;break;case4:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}break;case2:{intchoice1;Menu1;cinchoice1;switchchoice1{case1:SSearchData_num;break;case2:SSearchData_nam;break;case3:SSearchData_sex;break;case4:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}break;case3:i=0;systemcls;break;default:cout输入有误,请重新输入!endl;}}}voidFindMaxDataS//英语成绩最高学生查询函数{systemcls;SFindMaxData;}voidFindMaxDataT//工资最高教师查询函数{systemcls;TFindMaxData;}voidDisplayData//显示全部人员记录函数{systemcls;SDisplayData;TDisplayData;}voidsave//保存功能函数{systemcls;inti=1;whilei{intchoice;Menu;cinchoice;switchchoice{case1:Tsave;break;case2:Ssave;break;case3:i=0;break;default:cout输入有误,请重新输入!endl;}}}voidload//读取功能函数{systemcls;inti=1;whilei{intchoice;Menu;cinchoice;switchchoice{case1:Tload;break;case2:Sload;break;case3:i=0;break;default:cout输入有误,请重新输入!endl;}}}intmain{intchoice;while1{Showmenu;cinchoice;switchchoice{case1://添加AddData;break;case2://删除DeleteData;break;case3://修改UpdateData;break;case4://查询SearchData;break;case5://英语成绩最高学生查询FindMaxDataS;break;case6://工资最高教师查询FindMaxDataT;break;case7://显示全部人员记录DisplayData;break;case8://保存数据save;break;case9://读取数据load;break;case10:exit1;default:cout输入有误,请重新输入!endl;}}return0;}
2.进行集合的并、差和交运算#includeiostreamusingnamespacestd;constintMAX=100;classset{public:set;voidinputintd;intlength;intgetdinti;voiddisp;setoperator+sets1;setoperator-sets1;setoperator*sets1;setoperator=sets1;protected:intlen;ints[MAX];};set::set{len=0;}voidset::inputintd{len=d;cout输入集合元素d个:;forinti=0;id;i++cins[i];}intset::length{intn=0;whiles[n]!=\0{n++;}returnn;}intset::getdinti{return0;}voidset::disp{forinti=0;ilen;i++couts[i];}setset::operator+sets1//并运算{forinti=0;ilen;i++{forintj=0;js
1.len;j++//在s
1.s[]中选出不相同的{ifs[i]==s
1.s[j]//选出相同的元素删掉得到s
1.s与s不同的元素{for;js
1.len;j++s
1.s[j]=s
1.s[j+1];--s
1.len;}}}forintj=0;js
1.len;j++//将s
1.s[]中不相同的加在s[]后面{s[len]=s
1.s[j];len++;}s[len+s
1.len]=\0;return*this;}setset::operator-sets1//差运算{intt;forinti=0;is
1.len;i++{forintj=0;jlen;j++{ifs
1.s[i]==s[j]//选出s与s
1.s中相同的元素并且删除掉{t=j;for;tlen;t++s[t]=s[t+1];--len;}}}return*this;}setset::operator*sets1//交运算{intm[MAX];intl=0;forinti=0;is
1.len;i++{forintj=0;jlen;j++//选出相同的元素{ifs
1.s[i]==s[j]{m[l]=s[j];l++;}}}fori=0;il;i++s[i]=m[i];s[l]=\0;len=l;return*this;}setset::operator=sets1{forinti=0;is
1.length;i++s[i]=s
1.s[i];len=s
1.len;return*this;}intmain{intn;setC;setA;cout建立含有几个元素的集合:;cinn;A.inputn;setD=A;setB;cout建立含有几个元素的集合:;cinn;B.inputn;coutendl;cout两集合的并集A+B为:;C=A+B;C.disp;coutendl;A=D;cout两集合的差集A-B为:;C=A-B;C.disp;coutendl;A=D;cout两集合的交集A*B为:;C=A*B;C.disp;coutendl;return0;}
3.九九乘法表#includeiostream//修改后#includeiomanipusingnamespacestd;intmain{intij;cout*;fori=1;i=9;i++couti;coutendl;fori=1;i=9;i++{couti;forj=1;j=i;j++{couti*j;}coutendl;}return0;}。