ImageVerifierCode 换一换
格式:DOC , 页数:37 ,大小:376KB ,
资源ID:978944      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-978944.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(厦门理工学院--课程设计(学校人员信息管理系统).doc)为本站会员(风****)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

厦门理工学院--课程设计(学校人员信息管理系统).doc

1、C+面向对象程序设计课程设计报告(2012 2013学年 第 3学期)题 目: 学校人员信息管理系统 专 业: 班 级: 姓名学号: 指导教师: 成 绩: word文档 可自由复制编辑word文档 可自由复制编辑一、 设计目的课程设计是学习C+程序设计的一个重要环节。通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。学生在熟练运用Visual C+ 6.0以后,通过使用Visual C+ 6.0的训练,扩展程序设计的知识面,提高综合应用C+知识能力的要求。二、设计内容

2、设计一个学校人员信息管理系统,可以实现对学校人事的信息管理。基本功能要求如下: (1)建立人员信息数据。包括学号(教工号)、姓名、性别、专业(工作系别部门)、出生时间、年龄。其中,1)对学生,还包括3门课的成绩(Chinese, English, Mathematics)。三门课的成绩为int型数据。2)对教师,还包括职称(如教授/副教授/讲师),工资(如1432.50)。工资为double型数据。(2)使用继承的方法构造3个类,对相应的对象放置10个学生(教师)信息。 People类虚基类 Student类派生类 Teacher类派生类(3)数据基本功能: 增加数据:AddData()函数。

3、 删除数据:DeleteData()函数。根据学号(教工号),删除该人员的记录。 修改数据: UpdateData()函数。对学生,根据学号,能够修改3门课的成绩;对教师,根据教工号,能够修改“职称”和“工资”。 查找功能:1)SearchData()函数。要求能够根据“学号(教工号)”、“姓名”、“性别”三项实现查询,并能在屏幕上显示满足条件的数据记录。2)FindMaxData()函数。对学生,查找“English”课程成绩最高的学生记录并打印;对教师,查找“工资”最高的教师记录并打印。要求:采用函数模板实现。 显示功能:DisplayData()函数。在屏幕上打印所有的数据记录;打印时,

4、先打印学生的记录,后打印教师的记录。并且按学生(教工号)升序打印。(4)重载功能: 要求对“”和“”运算符进行重载。考虑到输人学生(教工)姓名时,名字中可能引入空格,所以重载“”运算符时,需要满足这个要求。(5)异常处理功能: 设置异常处理,对教师工资为负数的情况给出提示。(6)文件的输入输出功能: 能够从文件中读入数据。外部文件为Student_ext.dat, Teacher_ext.dat。 能够将数据保存到相应目录的文件中。保存数据时,分两个文件分别保存Student.dat, Teacher.dat。(7)参考系统界面如示: 1-增加一位人员(教师、学生)记录 2-删除一个人员记录

5、3-修改一个人员记录 4-根据“学号(教工号)”、“姓名”、“性别”查找记录 5-根据人员类别(学生、教师)查找“English”课程成绩最高的学生,或最高工资的教师 6-显示全部人员记录 7-从外部文件追加数据 8-将所有数据保存到磁盘文件 9-退出系统。三、总体设计1、系统类的层次关系 people类基类 包含的数据成员:学号(教工号)、姓名、性别、出生时间、年龄。student类派生类扩充的数据成员:Chinese, English, Mathematics三门成绩,选修课成绩,选修课名称,专业。 teacher类派生类扩充的数据成员:还包括职称(如教授/副教授/讲师),工资,所教课程,

6、所属部门。2、类的主要框架描述1、基类:class peoplepublic:int num;string name;string sex;string birthday;int age;people(int num1,string name1,string sex1,string birthday1,int age1)num=num1;name=name1;sex=sex1;birthday=birthday1;age=age1;2、学生类:class student:virtual public peoplepublic:string major;string lesson;int sco

7、re;int Chinese;int English;int Mathematics;student(int num1=0,string name1=,string sex1=,string birthday1=,int age1=0,string major1=,string lesson1=,int score1=0,int Chinese1=0,int English1=0,int Mathematics1=0):people(num1,name1,sex1,birthday1,age1)major=major1;lesson=lesson1;score=score1;Chinese=C

8、hinese1;English=English1;Mathematics=Mathematics1;void AddData()system(cls);coutnum;for(int k=1;k11;k+)if(num=k)k=11;if(k=11)cout请输入10以内的学号:endl;AddData();coutname;coutsex;coutmajor;coutbirthday;coutage;coutChinese;cinEnglish;cinMathematics;coutlesson;coutscore;void DisplayData()cout* * * * * * * *

9、* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;cout*学号 姓名 性别 专业 出生时间 年龄 语文 英语 数学 选修课名 选修课*endl;cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;coutnum nametsex major tbirthday age ChinesetEnglishtMathematicstlessontscoretendl;cout* * * * * * * * *

10、 * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;void save(ofstream &outf)outf学号 姓名 性别 专业 出生时间 年龄 语文 英语 数学 选修课名 选修课endl;outfnum nametsex major tbirthday age ChinesetEnglishtMathematicstlessontscoretnumnamesexmajorbirthdayageChineseEnglishMathematicslessonscore;stu10;3、教师类:class teacher

11、:virtual public peoplepublic:string department;string lesson;string job;double salary;teacher(int num1=0,string name1=,string sex1=,string birthday1=,int age1=0,string department1=,string lesson1=,double salary1=0,string job1=): people(num1,name1,sex1,birthday1,age1) department=department1; lesson=l

12、esson1; salary=salary1; job=job1; void AddData()system(cls);coutnum;for(int k=1;k11;k+)if(num=k)k=11;if(k=11)cout请输入10以内的教工号endl;AddData();coutname;coutsex;coutdepartment;coutlesson;coutbirthday;coutage;coutjob;coutsalary;coutlesson;try /处理教师工资合法性if (salary0)throw salary; /抛出异常catch(double ) /捕获异常,异

13、常类型是double型cout输入有误,请重新输入endl; /进行异常处理main();void DisplayData()cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * endl;cout*教工号 姓名 性别 工作部门 出生时间 年龄 职称 工资课程 *endl;cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * endl;cout*numtnametsextdepartmenttbirt

14、hdaytagetjobtsalarytlesson *endl;cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * endl;void save(ofstream &outf)outf教工号 姓名 性别 工作部门 出生时间 年龄 职称 工资课程endl;outfnumtnametsextdepartmenttbirthdaytagetjobtsalarytlessonnumnamesexdepartmentbirthdayagejobsalarylesson;tea10;4、教师类功能函数:t

15、emplate Q Max(Q * x,int len) /求最大值模版void TAddData() /对教师类对象的添加功能函数void TDeleteData() /对教师类对象的删除功能函数void TUpdateData() /对教师类对象的修改功能函数void TSearchData_num() /按教工号查询教师类对象void TSearchData_nam() /按姓名查询教师类对象void TSearchData_sex() /按性别查询教师类对象void TSearchData_lesson() /按课程查询教师类对象void TFindMaxData() /对教师类对象的

16、最高工资查询功能函数void TDisplayData() /对教师类对象按教工号升序排序打印功能函数void Tsave() /对教师类对象的保存功能函数void Tload() /对教师类对象的读取功能函数5、学生类功能函数:template /求最大值模版Q Max(Q * x,int len) void SAddData() /对学生类对象的添加功能函数void SDeleteData() /对学生类对象的删除功能函数void SUpdateData() /对学生类对象的修改功能函数void SSelectLesson() /学生进行选课void SSearchData_num() /

17、按学号查询学生类对象void SSearchData_nam() /按姓名查询学生类对象void SSearchData_sex() /按性别查询学生类对象void SFindMaxData() /对学生类对象的最高英语成绩查询功能函数void SDisplayData() /对学生类对象按学号升序排序打印功能函数void Ssave() /对学生类对象的保存功能函数void Sload() /对学生类对象的读取功能函数6、功能函数:void Showmenu() /主界面void Menu() /增加函数二级界面void Menu1() /查询函数二级界面void Menu2() /选课函数

18、二级界面void Menu3() /查找工资最高和成绩最高二级界面void Menu4() /其他功能界面void SelectLesson() /选课功能函数void AddData() /添加功能函数void DeleteData() /删除功能函数void UpdateData() /修改功能函数void SearchData() /查询功能函数void FindMaxDataS() /英语成绩最高学生查询函数void FindMaxDataT() /工资最高教师查询函数void DisplayData() /显示全部人员记录函数void Elsefunction() /其他功能函数vo

19、id Password() /密码功能函数void evaluate() /教师评分函数void Tutoring() /辅导预约函数void Failsearch() /挂科查询功能函数void save() /保存功能函数void load() /读取功能函数int main() /switch主体函数四、系统测试用例1、主界面显示2、记录教师数据3、教师工资数据异常处理4、保存文件记录文件保存在c:根目录下后缀为dat可用记事本打开5、选修课功能演示6、显示所有人员记录7、求教师工资最高或学生english最高8、删除需要输入密码功能演示9、其他功能演示10、挂科查询11、辅导预约功能1

20、2、教师评分五、错误记录及原因分析六、源程序见附件c+课程设计.cpp#include#include#include#include#include#include#includeusing namespace std;int main();void Showmenu();static int T=0; /用于标记老师类对象的个数static int S=0; /用于标记学生类对象的个数class peoplepublic:int num;string name;string sex;string birthday;int age;people(int num1,string name1,s

21、tring sex1,string birthday1,int age1)num=num1;name=name1;sex=sex1;birthday=birthday1;age=age1;class student:virtual public peoplepublic:string major;string lesson;int score;int Chinese;int English;int Mathematics;student(int num1=0,string name1=,string sex1=,string birthday1=,int age1=0,string major

22、1=,string lesson1=,int score1=0,int Chinese1=0,int English1=0,int Mathematics1=0):people(num1,name1,sex1,birthday1,age1)major=major1;lesson=lesson1;score=score1;Chinese=Chinese1;English=English1;Mathematics=Mathematics1;friend istream &operator( istream &is,student &stu) /重载运算符函数声明isstu.num;isstu.se

23、x;isstu.major;isstu.birthday;isstu.age;isstu.lesson;isstu.score;isstu.Chinese;isstu.English;isstu.Mathematics;return is; /退出函数friend ostream &operator(ostream &os,student &stu) /重载运算符函数声明osstu.numn;osstu.namen;osstu.sexn;osstu.majorn;osstu.birthdayn;osstu.agen;osstu.lessonn;osstu.scoren;osstu.Chines

24、en;osstu.Englishn;osstu.Mathematicsn;return os; /退出函数void AddData()char name120;system(cls);coutnum;for(int k=1;k11;k+)if(num=k)k=11;if(k=11)cout请输入10以内的学号:endl;cout按任意键继续endl;getche();AddData();cout请输入学生姓名:;getchar();cin.getline(name1,20,n);name=name1;coutsex;coutmajor;coutbirthday;coutage;coutChin

25、ese;cinEnglish;cinMathematics;coutlesson;coutscore;void DisplayData()cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;cout*学号 姓名 性别 专业 出生时间 年龄 语文 英语 数学 选修课名 选修课 *endl;cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;coutnum na

26、metsex major tbirthday age ChinesetEnglishtMathematicstlessontscoretendl;cout* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;cout按任意键继续endl;getche();stu10;template /求最大值模版Q Max(Q * x,int len) Q max=x0; for(int i=1;ixi? max:xi; return max; void Ssave()ofstream out(C:

27、Student_ext.dat,ios:out);outsetw(3)Numsetw(5)Namesetw(4)Sexsetw(6)Majorsetw(9)Birthdaysetw(4)Agesetw(8)Chinesesetw(8)Englishsetw(12)Mathematicsendl;for(int i=0;iS;i+)outsetw(3)stui.numsetw(5)stui.namesetw(4)stui.sexsetw(6)stui.majorsetw(9)stui.birthdaysetw(4)stui.agesetw(8)stui.Chinesesetw(8)stui.En

28、glishsetw(12)stui.Mathematicsendl;out0;out.close();cout学生数据保存成功endl;cout-endl;cout按任意键继续endl;cout-endl;getche();void Sload()char temp100;coutHere is your information:endl;ifstream in(C:Student_ext.dat,ios:binary);if(!in)coutCannot open input fileendl;exit(1);in.read(char *)temp,sizeof(temp);couttemp

29、;cout-endl;cout按任意键继续endl;cout-endl;getche();void SSelectLesson() /学生进行选课int i;couti;coutstui.lesson;cout恭喜你成功进行选课!endl;cout按任意键继续;getche();void SAddData() /对学生类对象的增加功能函数stuS.AddData();for(int i=0;i10;i+)if(i!=S&stuS.num=stui.num)cout输入学号重复,请重新输入!endl;main();cout增加记录成功!endl;stuS.DisplayData();S+;voi

30、d SDeleteData()/对学生类对象的删除功能函数int n;if(S=0)cout没有可删除的记录!endl;elsecoutn;for(int i=0;iS;i+)if(stui.num=n) for(;iS;i+)stui=stui+1;S-;cout成功删除记录!endl;void SUpdateData()/对学生类对象的修改功能函数int n;if(S=0)cout没有可删除的记录!endl;elsecoutn;for(int i=0;iS;i+)if(stui.num=n)cout原有的记录:endl;stui.DisplayData();cout请输入新的记录:endl

31、;coutstui.Chinese;cinstui.English;cinstui.Mathematics;coutstui.lesson;coutstui.score;cout新的记录:endl;stui.DisplayData();void SSearchData_num()/按学号查询学生类对象int n;coutn;for(int i=0;iS;i+)if(stui.num=n)stui.DisplayData();i=S;if(i=S)cout查询的记录不存在,请重新输入!endl;SSearchData_num();void SSearchData_nam()/按姓名查询学生类对象string nam_s;cout请输入学生名字:nam_s;for(int j=0;jS;j+)if(stuj.name=nam_s)stuj.DisplayData();j=S;if(j=S)cout查询的记录不存在,请重新输入!endl;SSearchData_nam();void SSearchData_sex()/按性别查询学生类对象string sex_s;cout请输入学生性别:sex

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922