c++课设代码.docx
- 文档编号:5150891
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:48
- 大小:27.83KB
c++课设代码.docx
《c++课设代码.docx》由会员分享,可在线阅读,更多相关《c++课设代码.docx(48页珍藏版)》请在冰豆网上搜索。
c++课设代码
#include
#include
#include
#include
constintTMAX=50;
usingnamespacestd;
classPerson
{
protected:
intnum;
stringname;
charsex;
intage;
public:
Person(intn=0,stringnm="",chars='f',inta=0)
{
num=n;
name=nm;
sex=s;
age=a;
}
virtualvoidInput()
{
cout< "< cout< "; cin>>num; cout<<"姓名: "; cin>>name; cout<<"性别(男(m)女(f)): "; cin>>sex; while(sex! ='m'&&sex! ='f') { cout< 请重新输入! "< cin>>sex; } cout<<"年龄: "; cin>>age; } virtualvoidOutput() { cout< } voidSetname() { cin>>name; } }; classTea_Manage; classTeacher: virtualpublicPerson { protected: intdepart; stringspec; stringtitle1; public: Teacher(intn=0,stringnm="",chars='m',inta=0,intdep=0,stringsp="",stringt1=""): Person(n,nm,s,a) { depart=dep; spec=sp; title1=t1; } voidInput1() { Input(); cout<<"系别: (1.机械系2.电子系3.材料系4.建工系5.计算机系6.经管系7.财会系8.文法系9.外语系)"< cout<<"请选择系别: "; cin>>depart; cout<<"专业: "; cin>>spec; cout<<"职称: "; cin>>title1; } voidOutput1() { Output(); cout< switch(depart) { case1: cout<<"机械系";break; case2: cout<<"电子系";break; case3: cout<<"材料系";break; case4: cout<<"建工系";break; case5: cout<<"计算机系";break; case6: cout<<"经管系";break; case7: cout<<"财会系";break; case8: cout<<"文法系";break; case9: cout<<"外语系";break; } cout< } friendTea_Manage;//方便调用私有成员 }; classTea_Manage { TeacherTea[TMAX];//TMAX为常量,为数组中可存储的教师记录的最大数; inttop;//top表示当前系统中存储的记录个数; public: Tea_Manage(){top=0;}//初始时记录的个数为0,所以设置top=0; voidAdd();//实现该类记录的添加; voidDisplay();//实现该类记录的提示词输出; voidShow();//实现该类所有记录的显示; voidSearch();//实现该类记录的查询; voidEdit();//实现该类记录的修改; voidDelete();//实现该类记录的删除; voidTotal();//实现该类记录的统计; voidSave();//将该类记录保存到文件; voidRead();//可从文件中将记录读取到该类的数组中; voidNum_Search()//然后按照相应的查询方式,对Tea数组中的top条记录进行查询; { intn; inti; intflag=0; cout< "; cin>>n; for(i=0;i { if(n==Tea[i].num) { cout< "< //如果找到了相应的记录,则显示相应的记录的信息即可。 Display(); Tea[i].Output1(); flag=1; } } if(flag==0) cout< "< ” } voidName_Search() { intflag; Teachert; cout< "; cin>>t.name; flag=0; for(inti=0;i if(t.name==Tea[i].name) { cout< "< Display(); Tea[i].Output1(); flag=1; } if(flag==0) cout< "< } }; voidTea_Manage: : Add() { inti; intflag=0;//判断执行哪一个IF语句 Teachert; t.Input1(); for(i=0;i { if(t.num==Tea[i].num)//判断新添加的人员的编号在已有的记录中是否重复 { flag=1; cout< "< //如果该记录的编号已存在,提示用户该编号的人员已存在! t.Input1();//提示输入新添加的人员的信息 } } if(flag==0) { Tea[top]=t; top=top+1;//如果该记录的编号不存在,则将其信息存入数组中,并修改top的值; cout< "< ”; } if(top>=TMAX) { cout< "< }//如果当前数组的空间已满,提示用户不能再添加; } voidTea_Manage: : Display() { cout< cout< <<"年龄"< cout<<"-------------------------------------------------------------------------------"< } voidTea_Manage: : Show() { cout< "< //对输出进行提示,然后输出当前数组中已存储的记录的信息; if(top==0) cout< "< //如果当前系统中没有存储记录,则直接提示信息 else { Display(); for(inti=0;i Tea[i].Output1(); } } voidTea_Manage: : Total() { inttj; tj=top; cout< "< Show(); } voidTea_Manage: : Search() { intchoice; if(top==0) cout< "< //如果当前系统中没有存储记录,则直接提示信息 else { cout< cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"< cout<<"||||"< cout<<"||1=>编号查询2=>姓名查询0=>退出||"< cout<<"||||"< cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"< cout< "; cin>>choice;//选择查询方式,按编号或按姓名 switch(choice) { case1: Num_Search();break; case2: Name_Search();break; case0: cout<<"\n您已安全退出."< default: cout<<"\n没有此选项.请重选."< } } } voidTea_Manage: : Edit() { intflag=0; if(top==0) { cout< "< return;//如果当前系统中没有存储记录,则直接提示信息,并返回; } intchoice=1; inttemp=0; intnum1,num2,j; cout< "; cin>>num1; for(inti=0;i { if(num1==Tea[i].num) { while(choice) { j=i; cout< "; cin>>num2; temp=0; for(inti=0;i if(num2==Tea[i].num) { cout< 不能修改! "< choice=0; temp=1; } if(temp==0) { cout< "< Tea[j].Input1(); choice=0; cout< "< } } flag=1; } } if(flag==0) cout< "< //cout< "< //Tea[k].Input1(); //如果找到了要修改的记录,则提示进行修改,修改完成后提示“修改成功! ” } voidTea_Manage: : Delete() { chara; if(top==0) { cout< "< return;//如果当前系统中没有存储记录,则直接提示信息,并返回; } intn; cout< "; cin>>n; cout< cout<<"(是(Y或y)否(N或n)): "; cin>>a; if(a=='Y'||a=='y') { intflag=0; for(inti=0;i { if(n==Tea[i].num) { flag=1; Tea[i]=Tea[i+1]; top=top-1; //如果确认要删除该记录,则将该记录之后的记录依次向前移动,之后将top的值减一; for(intj=i;j { Tea[j]=Tea[j+1]; flag=1; } cout< "< } } if(flag==0) { cout< 不能删除! "< return; } } } voidTea_Manage: : Save() { ofstreamoutfile; outfile.open("Teacher.txt",ios: : out); if(! outfile) { cout< "< return; } for(inti=0;i { outfile< <<""< //保存的功能是将数组中前top条记录写入到文件中 } cout< "< outfile.close(); } voidTea_Manage: : Read() { inti=0; int&t=top; t=0; ifstreaminfile; infile.open("Teacher.txt",ios: : in); if(! infile) { cout< "< return; } while(infile>>Tea[i].num>>Tea[i].name>>Tea[i].sex>>Tea[i].age >>Tea[i].depart>>Tea[i].spec>>Tea[i].title1) //该函数将文件中的记录依次读入到当前的数组中 { i++; t++; } cout< "< infile.close(); } classSta_Manage; classStaff: virtualpublicPerson { protected: stringzhengzhi; stringtitle2; public: Staff(intn=0,stringnm="",chars='m',inta=0,stringzz="",stringt2=""): Person(n,nm,s,a) { zhengzhi=zz; title2=t2; } voidInput2() { Input(); cout<<"政治面貌: "; cin>>zhengzhi; cout<<"职称: "; cin>>title2; } voidOutput2() { Output(); cout< } friendSta_Manage; }; classSta_Manage { StaffSta[TMAX];//TMAX为常量,为数组中可存储的教师记录的最大数; inttop;//top表示当前系统中存储的记录个数; public: Sta_Manage(){top=0;}//初始时记录的个数为0,所以设置top=0; voidAdd();//实现该类记录的添加; voidDisplay();//实现该类记录的提示词输出; voidShow();//实现该类所有记录的显示; voidSearch();//实现该类记录的查询; voidEdit();//实现该类记录的修改; voidDelete();//实现该类记录的删除; voidTotal();//实现该类记录的统计; voidSave();//将该类记录保存到文件; voidRead();//可从文件中将记录读取到该类的数组中; voidNum_Search()//然后按照相应的查询方式,对Tea数组中的top条记录进行查询; { intn; inti; intflag=0; cout< "; cin>>n; for(i=0;i { if(n==Sta[i].num) { cout< "< //如果找到了相应的记录,则显示相应的记录的信息即可。 Display(); Sta[i].Output2(); flag=1; } } if(flag==0) cout< "< ” } voidName_Search() { intflag; Staffs; cout< "; cin>>s.name; flag=0; for(inti=0;i if(s.name==Sta[i].name) { cout< "< Display(); Sta[i].Output2(); flag=1; } if(flag==0) cout< "< } }; voidSta_Manage: : Add() { inti; intflag=0;//判断执行哪一个IF语句 Staffs; s.Input2(); for(i=0;i { if(s.num==Sta[i].num)//判断新添加的人员的编号在已有的记录中是否重复 { flag=1; cout< "< //如果该记录的编号已存在,提示用户该编号的人员已存在! s.Input2();//提示输入新添加的人员的信息 } } if(flag==0) { Sta[top]=s; top=top+1;//如果该记录的编号不存在,则将其信息存入数组中,并修改top的值; cout< "< ”; } if(top>=TMAX) { cout< "< }//如果当前数组的空间已满,提示用户不能再添加; } voidSta_Manage: : Display() { cout< <<"年龄"< cout<<"--------------------------------------------------------"< } voidSta_Manage: : Show() { cout< "< //对输出进行提示,然后输出当前数组中已存储的记录的信息; if(top==0) cout< "< //如果当前系统中没有存储记录,则直接提示信息 else { Display(); for(inti=0;i Sta[i].Output2(); } } voidSta_Manage: : Total() { inttj; tj=top; cout< "< Show(); } voidSta_Manage: : Search() { intchoice; if(top==0) cout< "< //如果当前系统中没有存储记录,则直接提示信息 else { cout< cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"< cout<<"||||"< cout<<"||1=>编号查询2=>姓名查询0=>退出||"< cout<<"||||"<