教师工作量c课程设计.doc
《教师工作量c课程设计.doc》由会员分享,可在线阅读,更多相关《教师工作量c课程设计.doc(22页珍藏版)》请在冰点文库上搜索。
c++面向对象程序设计
目录
目录 2
教师工作量管理系统 2
需求分析 3
概要设计 3
详细设计 3
教师信息录入功能 4
教师输入信息界面如下 6
查找教师信息 8
查找修改并删除教师信息 9
输出所有教师信息 12
该设计所用的技术 13
课程设计总结 13
参考文献 13
全部代码 14
教师工作量管理系统
需求分析
学校的老师总工作量信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。
因此,不难想象,正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生成绩管理系统的任务就显得尤为重要。
软件开发的意图为便于学校的管理,方便查看有关学校及学生的情况。
如教务处对老师工作量绩的修改、删除、查找、添加等。
概要设计
(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2)插入(修改)教师授课教学信息:
(3)删除教师授课教学信息:
(4)浏览教师授课教学信息:
B、教师工作量数据处理:
(1)计算单个教学任务总课时。
计算原则如下表:
班级数目
单个教学任务总课时
2
1.5*(理论课时+实验课时)
3
2*(理论课时+实验课时)
>=4
2.5*(理论课时+实验课时)
(2)计算一个教师一个学期总的教学工作量。
总的教学工作量=所有单个教学任务总课时之和。
(3)教师数据查询:
提示:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出
提示:
输出教师信息到屏幕。
详细设计
(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2)插入(修改)教师授课教学信息:
(3)删除教师授课教学信息:
(4)浏览教师授课教学信息:
B、教师工作量数据处理:
(1)计算单个教学任务总课时。
计算原则如下表:
班级数目
单个教学任务总课时
2
1.5*(理论课时+实验课时)
3
2*(理论课时+实验课时)
>=4
2.5*(理论课时+实验课时)
(2)计算一个教师一个学期总的教学工作量。
总的教学工作量=所有单个教学任务总课时之和。
(3)教师数据查询:
提示:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出
提示:
输出教师信息到屏幕。
教师信息录入功能
界面如下:
代码如下
voidwork()//工作菜单
{
charch;
cout<<"请输入您需要的操作:
"<cout<<"A(输入教师信息),B(查找并输出教师信息),C(查找并修改教师信息),D(删除教师信息),E(输出所有教师信息)"<cin>>ch;//输入操作选项
switch(ch)
{
case'A':
Input();break;
case'B':
Find();break;
case'C':
Change();break;
case'D':
Delete();break;
case'E':
Output_all();break;
}
}
main()
{
inti;
boolcool=1;
for(i=0;i<=1999;i++){Teacher[i].ID="";Teacher[i].Name="";}//将教师存储数组置空,方便信息存储判断
while(cool)
{
work();
cout<<"继续操作请输入1,退出请输入0"< cin>>cool;
}
}
教师输入信息界面如下:
代码如下:
voidInput()//输入教师信息
{
inti,j,m,n,k;
doublemm;
k=0;
while(Teacher[k].ID!
="")k++;//在存储数组中找出一个空的存储空间来存储输入信息
cout<<"请输入教师ID:
";
cin>>Teacher[k].ID;//输入教师号
cout<";
cin>>Teacher[k].Name;//输入教师姓名
cout<";
cin>>Teacher[k].Sex;//输入教师性别
cout<";
cin>>Teacher[k].Position;//输入教师职称
cout<";
cin>>Teacher[k].Course_number;//输入教师任教课程数
Teacher[k].Summary=0;
for(i=1;i<=Teacher[k].Course_number;i++)//循环结构实现任教多门课程的信息录入
{
cout<";
cin>>Teacher[k].Course[i].Title;
cout<";
cin>>Teacher[k].Course[i].Class_number;
cout<";
for(j=1;j<=Teacher[k].Course[i].Class_number;j++)
cin>>Teacher[k].Course[i].Class[j];
cout<";
cin>>Teacher[k].Course[i].Theory;
cout<";
cin>>Teacher[k].Course[i].Experiment;
switch(Teacher[k].Course[i].Class_number)//----------------------------------------------------------------------------
{
case1:
mm=1*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);break;
case2:
mm=1.5*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);break;
case3:
mm=2*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);break;//计算该门课程的教学任务总课时
}
if(Teacher[k].Course[i].Class_number>3)
mm=2.5*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);
Teacher[k].Course[i].Single_summary=mm;//-----------------------------------------------------------------------------
Teacher[k].Summary+=Teacher[k].Course[i].Single_summary;//累计教师一学期总的教学工作量
}
}
查找教师信息
代码如下
voidOutput_all()
{
inti;
for(i=0;i<=1999;i++)//循环查找记录数组,找出非空区间输出教师信息
if(Teacher[i].ID!
=""){Output(i);cout<}
intFind()//查看教师信息!
!
!
{
inti,j,m,n,k;
stringst;
cout<<"请输入所要寻找的教师姓名(或ID):
";
cin>>st;
for(i=0;i<=1999;i++)//利用循环结构根据教师姓名(或者教师号)查找教师信息
{
if(st==Teacher[i].ID||st==Teacher[i].Name)
{
Output(i);
return0;
}
}
cout<"<}
查找修改并删除教师信息
代码如下
voidDelete()//删除教师信息!
{
inti;
stringst;
cout<<"请输入您要删除的教师姓名或教师号:
";
cin>>st;
for(i=0;i<=1999;i++)//利用循环结构根据教师姓名(或者教师号)查找教师信息
{
if(Teacher[i].Name==st||Teacher[i].ID==st)break;
}
if(Teacher[i].Name==st||Teacher[i].ID==st)//如果找到目标信息,执行删除命令
{Teacher[i].ID="";Teacher[i].Name="";}
elsecout<"<}
voidChange_name(intx)//更改教师姓名
{
stringst;
cout<<"请输入新姓名:
";
cin>>st;
Teacher[x].Name=st;
cout<!
!
"<}
voidChange_ID(intx)//更改教师号
{
stringst;
cout<<"请输入新教师号:
";
cin>>st;
Teacher[x].ID=st;
cout<!
!
"<}
voidChange_sex(intx)//更改教师性别
{
stringst;
cout<<"请输入教师性别:
";
cin>>st;
Teacher[x].Sex=st;
cout<!
!
"<}
voidChange_position(intx)//更改教师职称
{
stringst;
cout<<"请输入新职称:
";
cin>>st;
Teacher[x].Position=st;
cout<!
!
"<}
voidChange_course(intk)//更改教师授课信息大体过程与输入教师授课信息相似
{
inti,j;
stringst;
doublemm;
cout<";
cin>>Teacher[k].Course_number;
Teacher[k].Summary=0;
for(i=1;i<=Teacher[k].Course_number;i++)
{
cout<";
cin>>Teacher[k].Course[i].Title;
cout<";
cin>>Teacher[k].Course[i].Class_number;
cout<";
for(j=1;j<=Teacher[k].Course[i].Class_number;j++)
cin>>Teacher[k].Course[i].Class[j];
cout<";
cin>>Teacher[k].Course[i].Theory;
cout<";
cin>>Teacher[k].Course[i].Experiment;
switch(Teacher[k].Course[i].Class_number)
{
case1:
mm=Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment;
case2:
mm=1.5*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);
case3:
mm=2*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);
}
if(Teacher[k].Course[i].Class_number>3)
mm=2.5*(Teacher[k].Course[i].Theory+Teacher[k].Course[i].Experiment);
Teacher[k].Course[i].Single_summary=mm;
Teacher[k].Summary+=Teacher[k].Course[i].Single_summary;
}
cout<!
!
"<}
输出所有教师信息
代码如下
voidOutput(intx)//输出教师信息
{
inti,j;
cout<<"教师号:
"<cout<<"教师姓名:
"<cout<<"教师性别:
"<cout<<"教师职称:
"<for(i=1;i<=Teacher[x].Course_number;i++)
{
cout<(2);
cout<<"所教的第"<
"<cout<<"共有理论课时为"<cout<<"分别给以下班级上课:
";
for(j=1;j<=Teacher[x].Course[i].Class_number;j++)cout<cout<"<cout<}
cout<<"一学期总的教学工作量为:
"<}
该设计所用的技术
使用c++面向对象语言开发,代码中使用了while,if,switch等循环判断语句,主函数依次调用外围函数,各个函数之间使用数组首地址传递,各个模块之间坚持高内聚低耦合的原则,最大程度上改善本软件的健壮性和可修改性
课程设计总结
通过此次课程设计,使我更加扎实的掌握了有关c++方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后和同学的讨论下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
参考文献
1.《C++面向对象程序设计》谭浩强编著
全部代码
#include
#include
#include
#include
usingnamespacestd;
structnode//定义课程情况的存储结构
{
stringTitle;//课程名称(字符串型)
intClass_number,Class[40];//班级数目以及班级(整型)
doubleTheory,Experiment,Single_summary;//理论课时实验课时以及该门课的教学任务总课时(浮点型)
};
structdata//定义教师信息存储结构
{
stringID,Name,Sex,Position;//教师号教师名称性别职称(字符串型)
nodeCourse[10];//教师所教课程具体信息(可以是多门课程)
intCourse_number;//教师所教课程数目(整型)
doubleSummary;//教师一个学期总的教学工作量(浮点型)
}Teacher[2000];//用数组存储教师信息
voidInput()//输入教师信息
{
inti,j,m,n,k;
doublemm;
k=0;
while(Teacher[