1、 c+面向对象程序设计 目录目录2教师工作量管理系统2需求分析3概要设计3详细设计3教师信息录入功能4教师输入信息界面如下6查找教师信息8查找修改并删除教师信息9输出所有教师信息12该设计所用的技术13课程设计总结13参考文献13全部代码14 教师工作量管理系统需求分析学校的老师总工作量信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。因此,不难想象,正是咨询业的迅速发展使得人们从过去的手
2、工劳动中得以解脱.同时,编写一套完善的学生成绩管理系统的任务就显得尤为重要。软件开发的意图为便于学校的管理,方便查看有关学校及学生的情况。如教务处对老师工作量绩的修改、删除、查找、添加等。概要设计(1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。(2) 插入(修改)教师授课教学信息:(3) 删除教师授课教学信息:(4) 浏览教师授课教学信息:B、教师工作量数据处理:(1) 计算单个教学任务总课时。计算原则如下表:班级数目单个教学任务总课时21.5*(理论课时+实验课时)32*(理论课时+实验课时)=42.5*(理论课时+实验课时)(2)
3、计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。(3)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。C、教师综合信息输出提示:输出教师信息到屏幕。详细设计(1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。(2) 插入(修改)教师授课教学信息:(3) 删除教师授课教学信息:(4) 浏览教师授课教学信息:B、教师工作量数据处理:(1) 计算单个教学任务总课时。计算原则如下表:班级数目单个教学任务总课时21.5*(理论课时+实验课时)32*(理论课时+实验课时)=42.5*(理论课时+
4、实验课时)(2) 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。(3)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。C、教师综合信息输出提示:输出教师信息到屏幕。教师信息录入功能界面如下:代码如下void work() /工作菜单 char ch; cout 请输入您需要的操作:endl; cout A(输入教师信息),B(查找并输出教师信息),C(查找并修改教师信息),D(删除教师信息),E(输出所有教师信息)ch; /输入操作选项 switch (ch) case A:Input();break; case B:Find();b
5、reak; case C:Change();break; case D:Delete();break; case E:Output_all();break; main () int i; bool cool=1; for (i=0;i=1999;i+) Teacheri.ID = ; Teacheri.Name = ; /将教师存储数组置空,方便信息存储判断 while (cool) work(); cout 继续操作请输入 1 ,退出请输入 0 cool; 教师输入信息界面如下:代码如下:void Input() /输入教师信息 int i,j,m,n,k; double mm; k=0;
6、while (Teacherk.ID != ) k+; / 在存储数组中找出一个空的存储空间来存储输入信息 cout Teacherk.ID; / 输入教师号 cout endlTeacherk.Name; / 输入教师姓名 cout endlTeacherk.Sex; / 输入教师性别 cout endlTeacherk.Position; / 输入教师职称 cout endlTeacherk.Course_number; / 输入教师任教课程数 Teacherk.Summary=0; for (i=1;i=Teacherk.Course_number;i+) / 循环结构实现任教多门课程的
7、信息录入 cout endl请输入第 iTeacherk.Coursei.Title; cout endlTeacherk.Coursei.Class_number; cout endl请输入该门课程所教班级:; for (j=1;jTeacherk.Coursei.Classj; cout endlTeacherk.Coursei.Theory; cout endlTeacherk.Coursei.Experiment; switch (Teacherk.Coursei.Class_number) /- case 1:mm=1*(Teacherk.Coursei.Theory+Teacher
8、k.Coursei.Experiment);break; case 2:mm=1.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment);break; case 3:mm=2*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment);break; / 计算该门课程的教学任务总课时 if (Teacherk.Coursei.Class_number 3) mm=2.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); Teacher
9、k.Coursei.Single_summary=mm; /- Teacherk.Summary += Teacherk.Coursei.Single_summary; / 累计教师一学期总的教学工作量 查找教师信息代码如下void Output_all() int i; for (i=0;i=1999;i+) / 循环查找记录数组,找出非空区间输出教师信息 if (Teacheri.ID != ) Output(i);cout endl;int Find () /查看教师信息! int i,j,m,n,k; string st; cout st; for (i=0;i=1999;i+) /
10、利用循环结构根据教师姓名(或者教师号)查找教师信息 if (st = Teacheri.ID | st = Teacheri.Name) Output(i); return 0; cout endl对不起,没有您要查找的教师或者您的输入信息有误,请核对您的输入!endl; 查找修改并删除教师信息代码如下void Delete() /删除教师信息! int i; string st; cout st; for (i=0;i=1999;i+) / 利用循环结构根据教师姓名(或者教师号)查找教师信息 if (Teacheri.Name = st | Teacheri.ID = st) break;
11、if (Teacheri.Name = st | Teacheri.ID = st) / 如果找到目标信息,执行删除命令 Teacheri.ID=; Teacheri.Name=; else cout endl对不起,未找到您要删除的教师信息,请核对您的输入!endl;void Change_name(int x) /更改教师姓名 string st; cout st; Teacherx.Name=st; cout endl修改成功!endl; void Change_ID(int x) /更改教师号 string st; cout st; Teacherx.ID=st; cout endl修
12、改成功!endl; void Change_sex(int x) /更改教师性别 string st; cout st; Teacherx.Sex=st; cout endl修改成功!endl; void Change_position(int x) /更改教师职称 string st; cout st; Teacherx.Position=st; cout endl修改成功!endl; void Change_course(int k) /更改教师授课信息 大体过程与输入教师授课信息相似 int i,j; string st; double mm; cout endlTeacherk.Cou
13、rse_number; Teacherk.Summary=0; for (i=1;i=Teacherk.Course_number;i+) cout endl请输入第 iTeacherk.Coursei.Title; cout endlTeacherk.Coursei.Class_number; cout endl请输入该门课程所教班级:; for (j=1;jTeacherk.Coursei.Classj; cout endlTeacherk.Coursei.Theory; cout endlTeacherk.Coursei.Experiment; switch (Teacherk.Cour
14、sei.Class_number) case 1:mm=Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment; case 2:mm=1.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); case 3:mm=2*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); if (Teacherk.Coursei.Class_number 3) mm=2.5*(Teacherk.Coursei.Theory+Teacherk.Cours
15、ei.Experiment); Teacherk.Coursei.Single_summary=mm; Teacherk.Summary += Teacherk.Coursei.Single_summary; cout endl修改成功! endl; 输出所有教师信息代码如下void Output(int x) / 输出教师信息 int i,j; cout 教师号:Teacherx.IDendl; cout 教师姓名:Teacherx.Nameendl; cout 教师性别:Teacherx.Sexendl; cout 教师职称:Teacherx.Positionendl; for (i=1;
16、i = Teacherx.Course_number;i+) cout setprecision(2); cout 所教的第 i 门课程为:Teacherx.Coursei.Titleendl; cout 共有理论课时为 Teacherx.Coursei.Theory小时endl共有实验课时为 Teacherx.Coursei.Experiment小时endl; cout 分别给以下班级上课:; for (j=1;j=Teacherx.Coursei.Class_number;j+) cout Teacherx.Coursei.Classj ; cout endl该门课教学任务总课时为:Tea
17、cherx.Coursei.Single_summary小时; cout endl; cout 一学期总的教学工作量为:Teacherx.Summary小时endl;该设计所用的技术使用c+面向对象语言开发,代码中使用了while,if,switch等循环判断语句,主函数依次调用外围函数,各个函数之间使用数组首地址传递,各个模块之间坚持高内聚低耦合的原则,最大程度上改善本软件的健壮性和可修改性课程设计总结通过此次课程设计,使我更加扎实的掌握了有关c+方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不
18、足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后和同学的讨论下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!参考文献1.C面向对象程
19、序设计 谭浩强编著 全部代码#include #include #include #include using namespace std;struct node / 定义课程情况的存储结构 string Title; / 课程名称 (字符串型) int Class_number,Class40; / 班级数目 以及 班级(整型) double Theory,Experiment,Single_summary; / 理论课时 实验课时 以及该门课的教学任务总课时 (浮点型);struct data / 定义教师信息存储结构 string ID,Name,Sex,Position; / 教师号 教师名称 性别 职称 (字符串型) node Course10; / 教师所教课程具体信息 (可以是多门课程) int Course_number; / 教师所教课程数目 (整型) double Summary; / 教师一个学期总的教学工作量 (浮点型)Teacher2000; / 用数组存储教师信息void Input() /输入教师信息 int i,j,m,n,k; double mm; k=0; while (Teacher
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2