




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上课程设计报告(说明书) 课程: 面向对象语言与 C+程序设计题目: 大学师生管理系统 班 级: 学 号: 学生姓名: 日 期: 1课程设计目的与要求1.1目的(1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题.1.2 基本要求(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法; (4)在系统的设计中,要求运用面向对象的机制(
2、继承、派生及多态性)来实现系统功能. 1.3 创新要求在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等. 2 设计题目(问题)描述和要求2.1 问题描述 设计一个处理集合的类,用来处理整型数,要求具有如下功能.要求: 用c+设计一个大学教师和学生管理程序: A) 教师包括:编号(a),姓名(c),职称(d)和教研室数据(b); B) 大学生包括:编号(m),姓名(s),性别(t),班号(n),英语(e),高等数学(f)和数据结构(g); C) 研究生包括编号,姓名,性别,班号,指导教师和研究方法; D) 博士后既是教师也是研究生. 2.2完成功能 1) 教
3、师与学生、研究生、博士后的基本信息的输入输出功能.2) 教师与学生、研究生、博士后的信息删除、查询功能 3) 学生三门课程成绩输入输出和计算机平均分(ave)功能. 4) 学生三门课程成绩的单科排序与总分排名输出. 2.3设计说明用派生,继承的方法做.3问题的解决方案及设计思路根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应
4、用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书. 4 系统分析与设计4.1 系统功能模块大学师生管理程序成绩排序求平均分英 语高等数学数据结构总 分信息修改教 师研究生大学生博士后信息录入教 师研究生大学生博士后教师信息删除通过编 号研究生博士后大学生教师信息查询通过编 号研究生博士后大学生英 语高等数学数据结构图4-1 系统功能模块图1) 信息录入功能模块:信息录入模块是简单成绩管理系统首先要执行的一个基本模块.该模块的功能即教师、大学生、研究生、博士后的各项数据的输入,只有当数据存入才能进行其他的功能.教师包括:编号,姓名,职称和教研室数据,大学生包括:编号,姓名,性
5、别,班号,英语,高等数学和数据结构, 研究生包括:编号,姓名,性别,班号,指导教师和研究方法, 博士后包括:编号,姓名,性别,班号,指导教师,研究方法,职称和教研室数据.2) 信息修改功能模块:实现已录入信息的修改,用新输入的信息覆盖原来的信息.3) 信息删除功能模块:通过编号删除已录入的成员信息.4) 信息查询功能模块:通过编号查找已录入的成员信息.5) 求平均分功能模块:该功能求出大学生英语、高等数学、数据结构三门的平均分.6) 成绩排序功能模块:该功能实现大学生英语、高等数学、数据结构和总分的排序,此处用冒泡排序法实现.4.2 系统流程4.2.1 主函数流程图开始密码是否正确?输入密码出
6、现欢迎界面N NYY显示菜单用户输入根据输入执行相应的操作退出?结束画面结 束 图4-2 主函数流程图4.2.2 资料修改函数流程图开始主菜单修改菜单输入“3”输入选择51234教师大学生研究生输入编号选择要修改的项目输入修改内容是否继续修改YN博士后结 束图4-3 资料修改函数流程图4.3 类的层次teachera,c,d,b,input1(),input2(),output1(),output2(),change(),delete(),search();undergraduatem,s,t,n,e,f,g,z,input3(),input4(),output3(),output4(),ch
7、ange(),delete(),search(),getnum();postdoctoralgraduate_studentdirector,method,input5(),output5();图4-4 类的层次图其中:(1) teacher类的a-编号,c-姓名,d-职称,b-教研室数据,input1()为输入编号和姓名的成员函数,input2()为输入职称和教研室数据的成员函数,output1()为输出编号和姓名的成员函数,output2()为输出职称和教研室数据的成员函数,change()为修改教师资料数据的成员函数,delete()为删除教师资料数据的成员函数,search()为查找教
8、师资料数据的成员函数.(2) undergraduate类的m-编号,s-姓名,t-性别,n-班号,e-英语成绩,f-高等数学成绩,g-数据结构成绩,z-总分,input3()为输入编号、姓名性别和班号的成员函数,input4()为输入英语、高等数学和数据结构成绩的成员函数,output3()为输出编号、姓名性别和班号的成员函数,output4()为输出英语、高等数学和数据结构成绩的成员函数,change()为修改大学生资料数据的成员函数,delete()为删除大学生资料数据的成员函数,search()为查找大学生资料数据的成员函数,getnum()为求得录入大学生人数个数的成员函数.(3)
9、graduate_student类的director-指导教师,method-研究方法,input5()为输入指导教师和研究方法的成员函数,output5()为输出指导教师和研究方法的成员函数. graduate_student类是undergraduate类的继承,继承了其m-编号,s-姓名,t-性别,n-班号.(4) postdoctoral类继承了teacher类和graduate_student类.5 系统调试出现的问题5.1资料录入问题 问题:录入师生资料超过一次时,在主菜单中选择“5. 显示师生资料”后,显示资料中前一次的师生资料将被后一次的所覆盖,即不能执行资料增加功能.代码及修
10、改:void main(). int ch,a,i1,i2,i3,i4,j; / 改为:int ch,a,i1=0,i2=0,i3=0,i4=0,j; int *d1=&i1,*d2=&i2,*d3=&i3,*d4=&i4; char choice; do system(cls); menu1(); switch(ch) case 1: do system(cls); menu2(); if(a=1) i1=0; / 删除该语句; do i1+; while(choice=Y); if(a=2) i2=0; / 删除该语句; do i2+; while(choice=Y); if(a=3) i
11、3=0; / 删除该语句; do i3+; while(choice=Y); if(a=4) i4=0; / 删除该语句; do i4+; while(choice=Y); while(a!=5);break; while(ch!=8); 5.2资料删除问题 问题:删除某一人员资料时,在主菜单中选择“5. 显示师生资料”后,显示资料中该已被删除的人员资料仅仅是被同一类的下一个人员的资料所覆盖,即出现了两个相同的人员资料,总人员数目并未减少.代码及修改:void Delete(teacher t,int i1) / 改为:void Delete(teacher t,int *d1)system(
12、cls);teacher tt; / 增加:int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ii1;i+) / 改为:for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int j=i;ji1;j+) / 改为:for(int j=i;jr;j+)tt=tj; tj=tj+1; / 增加:(*d1) -; cout编号number的教师的资料已删除!endl; break;if(i=i1) / 改为:if(i=r)cout 无此教师的资料!endl;6 关键程序代码6.1资料修改函数代码(
13、教师)void Change(teacher t,int i1)system(cls);int choice;char number20,name20,duty20,date20,c;coutnumber;for(int i=0;ii1;i+)if(strcmp(ti.a,number)=0) cout 1. 编号 2. 姓名endl;cout 3. 职称 4. 教研室数据endl;docoutchoice; while(!(choice=1&choice=4) coutchoice; if(choice=1) coutnumber; strcpy(ti.a,number); if(choic
14、e=2) . if(choice=3) . if(choice=4) . coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i1)cout 无此教师的资料!endl;cout按任意键返回.; getch();6.2资料删除函数代码(教师)void Delete(teacher t,int *d1)system(cls);teacher tt;int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int
15、 j=i;jr;j+)tt=tj; tj=tj+1;(*d1)-; cout编号number的教师的资料已删除!endl; break;if(i=r)cout 无此教师的资料!endl;6.3 学生成绩排名函数代码void sort(undergraduate u,int *d2) int a; do system(cls); cout- 1. 英 语成绩排名 -endl; cout- 2. 高等数学成绩排名 -endl; cout- 3. 数据结构成绩排名 -endl; cout- 4. 总 分成绩排名 -endl; cout- 5. 返 回 主 菜 单 -endl; couta; if(a
16、5)cout输入错误,请重新输入!;if(a=1) undergraduate s; for(int i=0;i*d2;i+)for(int j=0;j*d2-i;j+) if(uj.euj+1.e)s=uj; uj=uj+1; uj+1=s;for(i=0;i*d2;i+)cout编号:setw(3)ui.m 姓名:setw(4)ui.s 班号:ui.nendl; coutendl;cout按任意键返回.; getch();if(a=2) . if(a=3) . if(a=4) . while(a!=5);7 总结和体会这次的课程设计,从最先的选题,到策划、分工、再到系统代码的合并、修改,最
17、后调试并一步步完善,看似简单的命题,但在编辑时稍有不慎就会错误、漏洞.通过这次锻炼,我了解了很多,学习了很多,也得到了很多.1、以彼之长,补己之短,在作业中学习并帮助伙伴,我深深体会到合作的重要性.2、程序越复杂,越容易出现错误,一处改动,相应的多处就得一并修改,因此编辑时须一直保持警惕,这次编程提高了我的耐性和谨慎性.3、程序调试成功后,还可使代码简化、美化界面或增加提示语句.在调试中我学会了一种精益求精的态度. 4、完成课程设计,我体会到了成功的喜悦.参考书目1 郑莉、董渊、张瑞丰编著.C+语言程序设计(第三版)M.清华大学出版社,2004.12 戴锋编著.Visual C+程序设计基础M
18、.清华大学出版社,2001.43 Stanley B.Lippman编著.C+ Primer中文版(第3版)M.中国电力出版社,1989年4 谭浩强编著.C程序设计(第三版)M.清华大学出版社,2005.7附录1:源程序清单#include #include #include #include using namespace std;class teacherpublic:char a20;char c20;char d20;char b20;public:void input1();void input2();void output1();void output2();friend void
19、 Change(teacher t,int i1);friend void Delete(teacher t,int *d1);friend void Search(teacher t,int i1);class undergraduate public:char m20;char s20; char t;char n20;float e,f,g,z;public:void input3();void input4();void output3();void output4(); friend void Change(undergraduate u,int i2);friend void De
20、lete(undergraduate u,int *d2);friend void Search(undergraduate u,int i2);class graduate_student:public undergraduatepublic:char director20;char method20;public:void input5();void output5();class postdoctoral:public teacher,public graduate_student;void teacher:input1()couta ; coutc ;void teacher:inpu
21、t2()coutd ;coutb ;void undergraduate:input3()coutm ;couts ;coutt;coutn ;void undergraduate:input4() coute ;coutf ; coutg ; z=e+f+g;coutendl;void graduate_student:input5() coutdirector; coutmethod; coutendl;void teacher:output1()cout 编号:aendl;cout 姓名:cendl;void teacher:output2()cout 职称:dendl;cout 教研室
22、数据:bendl;void undergraduate:output3()cout 编号:mendl;cout 姓名:sendl;cout 性别:tendl;cout 班号:nendl;void undergraduate:output4()cout 英语:eendl;cout 高等数学:fendl;cout 数据结构:gendl;void graduate_student:output5()cout 指导教师:directorendl;cout 教学方法:methodendl;void Change(teacher t,int i1)system(cls);int choice;char n
23、umber20,name20,duty20,date20,c;coutnumber;for(int i=0;ii1;i+)if(strcmp(ti.a,number)=0) cout 1. 编号 2. 姓名endl;cout 3. 职称 4. 教研室数据endl;docoutchoice; while(!(choice=1&choice=4) coutchoice; if(choice=1) coutnumber; strcpy(ti.a,number); if(choice=2)coutname; strcpy(ti.c,name); if(choice=3) coutduty; strcp
24、y(ti.d,duty); if(choice=4) coutdate; strcpy(ti.b,date); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i1)cout 无此教师的资料!endl;cout按任意键返回.; getch();void Change(undergraduate u,int i2)system(cls);int choice;char number20,name20,sex,clas20,c;float English,math,date;coutnumber;for(int i=0;ii2;
25、i+)if(strcmp(ui.m,number)=0) cout 1. 编号 2. 姓名endl;cout 3. 性别 4. 班号endl;cout 5. 英语成绩 6. 高等数学成绩endl; cout 7. 数据结构成绩endl;do coutchoice; while(!(choice=1&choice=7) coutchoice; if(choice=1) coutnumber; strcpy(ui.m,number); if(choice=2)coutname; strcpy(ui.s,name); if(choice=3) coutsex; ui.t=sex; if(choice
26、=4) coutclas; strcpy(ui.n,clas);if(choice=5) coutEnglish; ui.e=English;if(choice=6) coutmath; ui.f=math;if(choice=7) coutdate; ui.g=date; coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i2)cout 无此大学生的资料!endl;cout按任意键返回.; getch();void Change(graduate_student g,int i3)system(cls);int choice
27、;char number20,name20,sex,clas20,direct20,meth20,c;coutnumber;for(int i=0;ii3;i+)if(strcmp(gi.m,number)=0) cout 1. 编号 2. 姓名endl;cout 3. 性别 4. 班号endl;cout 5. 指导教师 6. 研究方法endl;do coutchoice; while(!(choice=1&choice=6) coutchoice; if(choice=1) coutnumber; strcpy(gi.m,number); if(choice=2) coutname; str
28、cpy(gi.s,name); if(choice=3) coutsex; gi.t=sex; if(choice=4) coutclas; strcpy(gi.n,clas);if(choice=5) coutdirect; strcpy(gi.director,direct);if(choice=6) coutmeth; strcpy(gi.method,meth); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i3)cout 无此研究生的资料!endl;cout按任意键返回.; getch();void Chang
29、e(postdoctoral p,int i4)system(cls);int choice;char number20,name20,sex,clas20,duty20,date20,direct20,meth20,c;coutnumber;for(int i=0;ii4;i+)if(strcmp(pi.m,number)=0) cout 1. 编号 2. 姓名endl;cout 3. 性别 4. 班号endl; cout 5. 职称 6. 教研室数据endl;cout 7. 指导教师 8. 研究方法endl;docoutendl;coutchoice; while(!(choice=1&c
30、hoice=8) coutchoice; if(choice=1) coutnumber; strcpy(pi.m,number); if(choice=2) coutname; strcpy(pi.s,name); if(choice=3) coutsex; pi.t=sex; if(choice=4) coutclas; strcpy(pi.n,clas); if(choice=5) coutduty; strcpy(pi.d,duty); if(choice=6) coutdate; strcpy(pi.b,date);if(choice=7) coutdirect; strcpy(pi
31、.director,direct);if(choice=8) coutmeth; strcpy(pi.method,meth); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i4)cout 无此博士后的资料!endl;cout按任意键返回.; getch();void Delete(teacher t,int *d1)system(cls);teacher tt;int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int j=i;jr;j+)tt=tj; tj=tj+1;(*d1)-; cout编号number的教师的资料已删除!endl; break;if(i=r)cout 无此教师的资料!endl;void Delete(undergraduate u,int *d2)system(cls);undergraduate uu;int r=*d2;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ui.m,number)=0)for(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热工检测技术题库(含答案)
- 人教版部编版小学语文一年级上册乌鸦喝水教学设计教案21
- 中医适宜技术模拟习题含答案
- 有答案人教部编版二年级语文上册第三单元知识必记
- 产品设计工程师年终总结
- 露台顶棚玻璃施工方案
- 人造草足球场施工方案
- 耐磨地面施工方案
- 荆门降水施工方案
- 脚手架及防护施工方案
- 2024全国各省高考诗歌鉴赏真题及解析
- 《临床科研思维》课件
- GA/T 761-2024停车库(场)安全管理系统技术要求
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 人教版小学数学四年级下册第一单元测试卷附答案(共9套)
- 财务经理的绩效考核办法
- 油田科研单位有效发挥技术专家作用初探
- 席位卡A4纸打印模板(共3页)
- 阳泉气象地质资料
- 家用和类似用途空调器安装规范
- 游船安全生产事故调查处理及责任追究制度
评论
0/150
提交评论