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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(高校人事管理系统 C++文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高校人事管理系统 C++文档格式.docx

1、00 星期二 8: 星期四 8:第 19 周 星期一 8: 星期二 14:3018:30 星期三 8:三、参考书籍 1.C程序设计课程设计 刘振安编著 TP312C563 2.C+ Builder和Delphi课程设计与系统开发案例 伍俊良 清华大学出版社 7-302-06072-X 3.Visual C+课程设计案例精编 严华峰 中国水利水电出版社 7-5084-2007-1 2004 4.Visual C+课程设计与系统开发案例 伍俊良 清华大学出版社 7-302-05968-3 2002(编程平台不限,vc+, c+ Builder等等。)课题4:高校人事管理系统 (一)、课程设计题目:

2、高校人事管理系统(二)、目的与要求: 1、目的:(1)要求学生达到熟练掌握C+语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书 (三)、设计方法和基本原理:1、问题描述(功能要求

3、):某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求:(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。(6)人员编号在生成人员信息时同时生成,

4、每输入一个人员信息编号顺序加1。2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书。1.系统需求分析题目需求:系统设计目标:(1) 系统能根据用户输入菜单的选项进行执行 。(2) 能对基本错误进行判断,并要求用重新输入。(3) 能够把输入的数据保存到txt

5、文件中,下次能够使用。(4) 有较好的人性化,不至于用户不知道做什么。 系统实现功能: (1)删除功能:能根据用户输入姓名与编号进行删除。 (2)查询功能:能根据用户输入姓名、编号、职位、来校时间、离校时间。 (3)编辑功能:能根据查询的数据进行修改。 (4)统计功能:能根据多种参数进行人员统计。 (5)保持功能:能对输入的数据进行存储在文件中。 (6)识别错误功能:能对基本错误进行判断,并要求用户重新输入。 (7)人员编号在生成人员信息时自动生成。2.总体设计 系统功能模块划分3.详细设计 UML :4.系统调试 1. 问题1:VC+ 6.0 对友元函数支持不是很好,通过查资料得知解决方法。

6、 2. 问题2:逻辑错误,通过分析解决。 3. 问题3:txt文件读入到动态数组中去,会读错,读不出,多读入一个,通过询问 老师同学解决。 4. 问题4:vector容器中成员函数的使用,通过查书解决。5.结果分析 1. 输入信息 2.查询信息1:按姓名查询2: 按编号查询3:按来校时间查询4: 按离校时间查询5: 按职工职位查询3: 删除信息 1:按姓名删除 2: 按编号删除 4:编辑信息 3:增加职工 统计信息 6: 输出信息0: 退出系统 独到的设计:1.有基本的纠错功能,并能提示用户重新输入。2.除了按姓名、编号搜索还能按来小时间、离校时间、职位进行搜索。3.编辑功能能够分别对姓名、编

7、号、性别、修改。4.较好的使用继承、派生,符合基本思维。5.较好的使用类的组合。6.函数命名、类的命名、数据的命名能够见明思意,较好的符合命名规则。不足之处:1.源代码过多,仅仅使用了容器vector,没有使用STL迭代器、算法等。2.基类没有很好的抽象。3.主函数调用的函数没有封装在一个类中,仅仅包含在一个头文件中。4.文件的操作没有很好的掌握。5.数据输出,没有按格式对齐混乱。6.函数过长,函数做的事情不止一件。7.类中包含的成员过多。8.不够人性话,用户界面不够美观。9.对于一些错误不能有效的终止。(总结自己独到的设计特点和不足之处。6.总结通过一周的课程设计,我学到了很多东西,1 系统

8、分析,类层次之间的关系非常重要,只有架构好总体,才能设计出好的系统2 建立了一套完整的系统模型,先从整体入手,再细分。而不是一开始就着急编写,那样系统只会非常混乱。3. 函数、类的命名。基本上能够见名思意。4. .文件的操作本来是一片模糊,通过实践操作,已经理解对文件的操作,原来很简单。5. 通过与同学讨论,知道要擅长使用STL来解决实际问题,而不是自己去编写函数。懂得利用C+中定义的对象解决问题。对于面向对象设计又有了更深的理解。6. 类之间的设计中符合人的思维逻辑。7. 通过一些书籍,知道在设计中要遵守的规则,程序中统一的输出格式。8. 知道一些基本的优化规则,如 函数只能做一件事、越小越

9、好、基类要足够的抽象,最好使用组合而不是继承,减少依赖性等等。9. 在程序设计中要与别人合作,把自己的糟粕去掉,吸取别人程序中的精华,与其他同学讨论。10. 编写中要先写好一个功能后马上调试,及时发现问题,及时解决问题,而不是系统写完后再慢慢调试,那样问题会很多,调好这里后那里又出现问题,我们初学者还有很多细节不会注意,这种方法有助于我更快的编写出系统,减少编写时间,把更多的时间留下来完善程序。总之,通过这次的课程设计,让我真正了解到C语言中的类模块真正魅力和无穷的功能 ,感到STL的强大,希望尽快掌握STL的知识来解决实际问题。通过对文件的操作领略到编程的神奇,感到非常的方便。这个学期的对C

10、+的学习,仅仅是叩开了C+这扇大门,里面还有很多知识我所不知道的,而此次的课程设计更加激发了我对C语言学习的浓厚兴趣 。这个假期会进一步加强这个学期所学,也会进一步学习C+。计算机与通信学院课程设计评分表课程名称: 面向对象程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:附源代码:Time.h#ifndef TIME_H#define TIME_Hclass Timepublic: Time(int y=1900, int m=1, int d=1); virtual Time(); int ge

11、tYear() const; int getMonth() const; int getDay() const; void setYear(int y); void setMonth(int m); void setDay(int d); bool judgeLeapYear();protected: int year; int month; int day;#endifTime.cpp#includeusing namespace std;#includeTime.hTime:Time(int y, int m, int d):year(y),month(m),day(d)Time()int

12、 Time:getYear() const return year;getMonth() constreturn month;getDay() constreturn day;void Time:setYear(int y)year=y;setMonth(int m)month=m;setDay(int d)day=d;bool Time:judgeLeapYear() bool flag=true; flag=(year%4=0) & (year%100!=0) | (year%400=0); return flag;ToSchoolTime.h#ifndef TOSCHOOLTIME_H#

13、define TOSCHOOLTIME_Hclass ToSchoolTime:public Time ToSchoolTime(int y=1900, int m=1, int d=1); virtual ToSchoolTime(); bool judgeYear(); void inputYear(); bool judgeMonth(); void inputMonth(); int judgeMonthDay(); bool judgeDay(); void inputDay(); void inputToSchoolTime(); friend ostream & operator

14、 (ostream &out, const ToSchoolTime &t) out ;t.year-t.month(istream &input, ToSchoolTime & char c1,c2; inputt.yearc1t.monthc2 return input;private: int oneMonthDay;ToSchoolTime.cppToSchoolTime.hToSchoolTime:ToSchoolTime(int y, int m, int d):Time(y,m,d)oneMonthDay=30;ToSchoolTime()bool ToSchoolTime:ju

15、dgeYear() const int startYear=1990; if(year startYear) flag=false;coutt输入有误,起始年份大于来校年份:startYearyearendl;void ToSchoolTime:inputYear() bool flag=false; while( !flag ) coutyear; flag=judgeYear(); coutjudgeMonth() const int startMonth=1; const int endMonth=12; if(month 12)t输入有误,一年中没有monthmonth; flag=j

16、udgeMonth();int ToSchoolTime:judgeMonthDay() if(month=2) bool flagYear=false; flagYear=judgeLeapYear(); if(flagYear) oneMonthDay=29; else oneMonthDay=28; else if(month8) if(month%2=0) oneMonthDay=30;elseoneMonthDay=31; else oneMonthDay=31; return oneMonthDay;judgeDay() const int startDay=1; const in

17、t endDay=oneMonthDay; if(day oneMonthDay)t输入有误,月份没有day这一天inputDay() oneMonthDay=judgeMonthDay(); # 来校日 #(1 oneMonthDayday; flag=judgeDay();inputToSchoolTime()inputYear();inputMonth();inputDay();LeaveSchoolTime.h#ifndef LEAVESCHOOLTIME_H#define LEAVESCHOOLTIME_Hclass LeaveSchoolTime: LeaveSchoolTime(

18、int year=2010, int month=1, int day=1); virtual LeaveSchoolTime(); int getOneMonthDay() const; void inputYear(const int &toSchoolYear); int judgeLeaveSchoolYear(const int & /判断输入年份是否小于来校年份 int judgeLeaveSchoolMonth(const int &toSchoolMonth); /当来校年份与离校年份相等时,判断输入月份是否小于来校月 int judgeLeaveSchoolDay(const

19、 int &toSchoolDay); void inputMonth(const int &toSchoolYear, const int & intjudgeMonthDay(); /判断一个月有多少天. bool judgeDayOveroneMonthDay(); void inputDay(const int &toSchoolMonth, const int & void inputLeaveSchoolTime(const ToSchoolTime &toSchoolTime);out, const LeaveSchoolTime &l) /友元函数重载 用来输出 LeaveSc

20、hoolTime类l.yearl.month 用来输入 LeaveSchoolTime类l.yearl.monthLeaveSchool.cppLeaveSchoolTime.hLeaveSchoolTime:LeaveSchoolTime(int year, int month, int day):Time(year,month,day)oneMonthDay=judgeMonthDay(); /调用函数。LeaveSchoolTime()int LeaveSchoolTime:getOneMonthDay() constreturn oneMonthDay;judgeLeaveSchool

21、Year(const int &toSchoolYear)int flag=1;if(toSchoolYear = year) flag=0; if(toSchoolYear year) flag=-1;t输入有误,来校年份大于离校年份:toSchoolYearvoid LeaveSchoolTime:inputYear(const int & int flag=-1; while(flag = -1) # 该职工离校的年份 #( ? flag=judgeLeaveSchoolYear(toSchoolYear);judgeLeaveSchoolMonth(const int &toSchoolMonth) int flag=1; if(toSchoolMon

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1