C++程序设计学校教师管理系统.docx
《C++程序设计学校教师管理系统.docx》由会员分享,可在线阅读,更多相关《C++程序设计学校教师管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
![C++程序设计学校教师管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/31/d22c871c-0a92-4683-9e6e-d47538bd24a5/d22c871c-0a92-4683-9e6e-d47538bd24a51.gif)
C++程序设计学校教师管理系统
报告编号:
第5组
综合课程设计报告
学校教师管理系统
2013年12月24日
[摘要]通过主菜单main函数将增加教师信息,删除教师信息、显示教师信息、查找教师信息、统计教师人数、退出系统等函数结合在一起,在通过相关操作选择其中一个功能时,调用该功能函数,来完成所需的数据处理。
采用类,对象数组,等相关类的应用来完成设计。
在程序中主要定义了teacher类,使用了teacher1文件,等等,另外还有相关调用子函数。
关键词:
学校教师管理系统;类;文件;对象数组;
1、课程设计目的和要求
1.1设计目的
通过这次专题实习,巩固和加深对所学相关知识点的理解,进一步熟悉基本类的使用方法。
基本数据类型、对象数组、自定义类、函数的应用加强对模块化程序设计和面向对象程序设计的理解。
掌握C\C++语言程序设计的基本思想,了解简单的系统分析和设计方法。
1.2设计要求
实现简易的提示菜单界面,刚运行时应显示菜单信息。
用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。
要求把所有录入的数据以文件的形式,保存在硬盘上,系统包含以下基本功能:
开始、显示主菜单功能、增加教师信息,删除教师信息、显示教师信息、查找教师信息、统计教师人数、退出系统等。
1.3课程设计任务内容
1.3.1增加教师信息
用户输入要添加的教师信息。
教师信息包括编号、姓名、在校职位、年龄、出生日期、住址、电话号码、电子邮件地址等。
输入数据时,须验证数据的输入格式正确,保证教师编号的唯一性。
1.3.2删除教师信息
输入教师编号,查找到对应的教师信息并删除,若教师编号不存在,则输出“输入有误!
”。
1.3.2显示教师信息
显示文件中所有教师信息。
1.3.3查找教师信息
可分为按(1.教师编号;2.教师姓名)查找,选择1则需要输入教师编号,选择2则需要输入教师姓名。
1.3.4统计教师人数
可统计文件中保存的教师的总人数。
1.3.5退出
结束程序运行。
2、详细设计说明
2.1初始界面如下:
之后按界面提示操作按1,2,3,4,5,6可进入相应界面进行增加教师信息,删除教师信息、显示教师信息、查找教师信息、统计教师人数、退出系统等项目对教师信息进行一系列的操作,并借用一系列的文件的读写和程序语句构建出最后的大程序来实现对教师信息的管理。
3、程序设计流程图
4程序源代码
#include
#include
usingnamespacestd;
#include
classteacher
{public:
intnum;//编号
charname[20];//姓名
intage;//年龄
charbirthday[20];//出生日期
charaddr[20];//住址
intphone;//电话号码
chareaddr[20];//电子邮件地址
charcall[20];//在校职位
voidset();
voiddisplay();
voiddel();
voidzhao();
voidrenshu();
}tea[100];
intlength()
{
ifstreaminfile("teacher1.dat",ios:
:
binary);
if(!
infile)
{
cerr<<"openerror!
"<abort();
}
intlen;
infile.seekg(0,ios:
:
end);
len=infile.tellg()/sizeof(teacher);
returnlen;
}
voidteacher:
:
set()
{
intn,i,j;
intl=0;
ofstreamoutfile("teacher1.dat",ios:
:
app|ios:
:
binary);
if(!
outfile)
{
cerr<<"openerror!
"<abort();
}
l=length();cout<if(l>0)
{
ifstreaminfile("teacher1.dat",ios:
:
in|ios:
:
binary);
if(!
infile)
{
cerr<<"openerror!
"<abort();
}
for(i=0;iinfile.read((char*)&tea[i],sizeof(tea[i]));
}
n=0;
cout<<"请输入要录入的教师人数(<=100):
"<cin>>n;
cout<<"请输入1个教师的信息:
"<cout<for(i=l;i{
cout<<"输入教师编号:
";
cin>>tea[i].num;
if(i>0)
{inth=i;
for(j=0;j{
if(tea[h].num==tea[j].num)
{
cout<<"教师号重复,请重新输入!
"<}
else{j++;continue;}
cout<<"输入教师编号:
";
cin>>tea[h].num;
j=0;
}
}
cout<<"输入教师姓名:
";
cin>>tea[i].name;
cout<<"输入教师职位:
";
cin>>tea[i].call;
cout<<"输入教师年龄:
";
cin>>tea[i].age;
cout<<"输入教师出生日期:
";
cin>>tea[i].birthday;
cout<<"输入教师电话号码:
";
cin>>tea[i].phone;
cout<<"输入教师住址:
";
cin>>tea[i].addr;
cout<<"输入教师电子邮件地址:
";
cin>>tea[i].eaddr;
//cout<i++;
if(icout<<"请输入"<
"<}
for(j=l;joutfile.write((char*)&tea[j],sizeof(tea[j]));
outfile.close();
cout<<"数据已保存!
\n";
}
voidteacher:
:
display()
{
inti,l;
l=length();
cout<<"编号姓名职位年龄出生日期电话号码住址电子邮件地址"<ifstreaminfile("teacher1.dat",ios:
:
in|ios:
:
binary);
if(!
infile)
{
cerr<<"openerror!
"<abort();
}
for(i=0;i{
infile.read((char*)&tea[i],sizeof(tea[i]));
cout<<""<<<""<}
infile.close();
}
voidteacher:
:
del()
{
inti,a=0,j,l;
l=length();
ifstreaminfile("teacher1.dat",ios:
:
in|ios:
:
binary);
if(!
infile)
{
cerr<<"openerror!
"<abort();
}
for(i=0;i{
infile.read((char*)&tea[i],sizeof(tea[i]));
}
intnum;
cout<<"请输入要删除的编号:
";
cin>>num;
cout<for(i=0;i{
if(tea[i].num==num)
{
a=1;
for(j=i;jtea[j]=tea[j+1];
break;
}
}
if(a==0)
{
cout<<"输入有误!
"<cout<<"编号姓名职位年龄出生日期电话号码住址电子邮件地址"<for(i=0;i{
infile.read((char*)&tea[i],sizeof(tea[i]));
cout<<""<<<""<}
}
else
if(a==1)
{
cout<<"删除成功!
"<cout<<"编号姓名职位年龄出生日期电话号码住址电子邮件地址"<for(i=0;i{
infile.read((char*)&tea[i],sizeof(tea[i]));
cout<<""<<<""<}
ofstreamoutfile("teacher1.dat",ios:
:
out|ios:
:
binary);
if(!
outfile)
{
cerr<<"openerror!
"<abort();
}
for(j=0;joutfile.write((char*)&tea[j],sizeof(tea[j]));
outfile.close();
}
}voidteacher:
:
zhao()
{
inti,l,m=0;
intn;
l=length();cout<ifstreaminfile("teacher1.dat",ios:
:
in|ios:
:
binary);
if(!
infile)
{
cerr<<"openerror!
"<abort();
}
for(i=0;i{
infile.read((char*)&tea[i],sizeof(tea[i]));
}
cout<<"请选择按(1.教师编号;2.教师姓名)查找\n";
for(;;)
{
intx;
cin>>x;
if(x==1)
{
cout<<"请输入要查找的编号:
";
cin>>n;
cout<for(i=0;i{
if(n==tea[i].num)
{
cout<<"编号姓名职位年龄出生日期电话号码住址电子邮件地址"<cout<<""<<<""<m=1;
break;
}
}break;
if(m==0)
cout<<"未找到!
"<}
if(x==2)
{
cout<<"请输入要查找的姓名:
";
chary[10];
cin>>y;
cout<for(i=0;i{
if(strcmp(y,tea[i].name)==0)
{
cout<<"编号姓名职位年龄出生日期电话号码住址电子邮件地址"<cout<<""<<<""<m=1;
break;
}
}break;
if(m==0)
cout<<"未找到!
"<}
if(x!
=1||x!
=2)
{
cout<<"输入错误!
请重新输入!
\n";
continue;
}
}
}
voidteacher:
:
renshu()
{
intl=length();
cout<<"统计教师人数:
"<}
intmain()
{
teachera;
intselect=0;
while
(1)
{
cout<<"********************************************"<cout<<"*欢迎使用教师信息管理系统*"<cout<<"*1.增加教师信息*"<cout<<"*2.删除教师信息*"<cout<<"*3.显示教师信息*"<cout<<"*4.查找教师信息*"<cout<<"*5.统计教师人数*"<cout<<"*6.退出系统*"<cout<<"********************************************"<cout<<("请输入您的选择(1-6):
[]\b\b");
cin>>select;
switch(select)
{
case1:
a.set();
break;
case2:
a.del();
break;
case3:
a.display();
break;
case4:
a.zhao();
break;
case5:
a.renshu();
break;
case6:
exit(0);
break;
default:
cout<<"输入错误!
"<}
}
return0;
}
4.1测试数据
输入111zxzxcv2293.03.0615755356mnbvzxqwertyuio
输入222qwzxcv2392.03.1618356987mnvbzxcvbnmlkjh
输入333eezxcv2491.02.1415755284nmjkqwertyuiopa
输入444rrzxcv2590.06.1515755388bjhgasdfghjklmn
4.2各模块运行界面如下
1.增加功能的调试
2.删除功能的调试
3.显示功能的调试
4.查找功能的调试
4.1按教师编号查找
4.2按教师姓名查找
5.统计功能的调试
6.退出系统
5、课程设计中遇到的问题和体会
5.1课程设计中遇到的问题
课程设计中我遇到了很多的问题,刚刚开始的时候问题特别多。
对菜单函数了解的还是不够深入,看起来简单的句子往往也会出错,有时忘了定义变量或者少了花括号等,在进行文件读写时总会报错:
显示用得不对。
怎样来保存数据所用的函数不是了解的很清楚,设计程序有时问题简单清晰,但总在语句上出错,我只好对着书本一个一个检查我做的语句,了解它的用法,慢慢地各种语句的运用就不再出错了。
但是后来越来越复杂,再通过不断的修改实验,最终得到了正确的结果。
5.2课程设计中的体会
通过这次为期一周的课程设计,正确的写出了一个程序需要平时不断地努力,不断地实践,从实践中了解经常犯的错误。
我们不能只着手于书本上的理论知识,还应该不断试验,有些东西是书本上没有的,只能通过时间学习到,但同时我们也不能离开书本上的理论,理论可以使我们更加了解他的工作原理。
更加准确的把握各种算法和语言。
有了理论基础,我们在实践上也就更容易上收。
所以我们应该理论联系实践,学好C++语言,提高编程能力。
6、致谢
一星期前我的C++语言编程能力几乎一点也没有,但是经过一星期的学习,通过与我同组人员的合作,终于完成了课程设计的任务,首先要感谢的是我们的腾莉老师,是她让我们从一窍不通到有点了解,让我们掌握了在面对复杂程序时该怎样做,怎样解决复杂的编程问题,化繁为简,是我们的能力得到极大的提高,使得我们完成了这次为期一周的课程设计课,并圆满完成任务,我们也愉快的度过了这一周的课程设计课,她为我们以后的毕业设计积累了经验。
7、参考文献
[1]谭浩强.C++面向对象程序设计.北京:
清华大学出版社,2006.1
[2]许勇,李杰.C语言程序设计.重庆:
重庆大学出版社.2011.
安徽师范大学皖江学院
课程设计成绩评定单
题目:
学生姓名
学号
成绩
指导教师
腾莉
吴攀峰
1282087
许方园
1282093
杨保明
1282094
翟荟
1282117
章梦婷
1282109
指导教师评语:
指导教师评定
设计成绩等级
指导教师(签章):
201年月日