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;iif(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;iTea[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;iif(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;iif(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;iSta[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<<"||||"<cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<