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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

高校人事管理系统 C++.docx

1、高校人事管理系统 C+一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7) 图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3设计要求: 设计课题题目:每位同学根

2、据自己学号除以9所得的余数加一选择相应题号的课题。换题者不记成绩。(课题10只做为参考课题) 根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。完成系统详细设计:包括数据库需求分析;数据库概念结构设计(ER图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。关键源程序(带注释) 按规定

3、格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。 不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第 18 周 星期一 8:0012:00 星期二 8:0012:00 星期四 8:0012:00第 19 周 星期一 8:0012:00 星期二 14:3018:30 星期三 8:0012:00三、参考书籍 1.C程序设计课程设计 刘振安编著 TP312C563 2.C+ Builder和Delphi课程设计与系统开发案例 伍俊良 清华大学出版社 7-302-06072-X 3.Visual C+课程设计案例精编 严华峰 中国水利水电出版社 7-5084-2007

4、-1 2004 4.Visual C+课程设计与系统开发案例 伍俊良 清华大学出版社 7-302-05968-3 2002(编程平台不限,vc+, c+ Builder等等。)课题4:高校人事管理系统 (一)、课程设计题目:高校人事管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义

5、四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 4、写出设计说明书 (三)、设计方法和基本原理: 1、问题描述(功能要求): 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求: (1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相

6、应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的

7、定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书。1.系统需求分析题目需求:(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。系统设计目标:(1) 系统能根据用户输入菜单的选项进行执

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

9、 4.系统调试 1. 问题1:VC+ 6.0 对友元函数支持不是很好,通过查资料得知解决方法。 2. 问题2:逻辑错误,通过分析解决。 3. 问题3:txt文件读入到动态数组中去,会读错,读不出,多读入一个,通过询问 老师同学解决。 4. 问题4:vector容器中成员函数的使用,通过查书解决。5.结果分析 1. 输入信息 2.查询信息1:按姓名查询2: 按编号查询3:按来校时间查询4: 按离校时间查询5: 按职工职位查询3: 删除信息 1:按姓名删除 2: 按编号删除 4:编辑信息 3:增加职工5: 统计信息 6: 输出信息0: 退出系统 独到的设计:1.有基本的纠错功能,并能提示用户重新输

10、入。2.除了按姓名、编号搜索还能按来小时间、离校时间、职位进行搜索。3.编辑功能能够分别对姓名、编号、性别、修改。4.较好的使用继承、派生,符合基本思维。5.较好的使用类的组合。6.函数命名、类的命名、数据的命名能够见明思意,较好的符合命名规则。不足之处:1.源代码过多,仅仅使用了容器vector,没有使用STL迭代器、算法等。2.基类没有很好的抽象。3.主函数调用的函数没有封装在一个类中,仅仅包含在一个头文件中。4.文件的操作没有很好的掌握。5.数据输出,没有按格式对齐混乱。6.函数过长,函数做的事情不止一件。7.类中包含的成员过多。8.不够人性话,用户界面不够美观。9.对于一些错误不能有效

11、的终止。(总结自己独到的设计特点和不足之处。)6.总结通过一周的课程设计,我学到了很多东西,1 系统分析,类层次之间的关系非常重要,只有架构好总体,才能设计出好的系统2 建立了一套完整的系统模型,先从整体入手,再细分。而不是一开始就着急编写,那样系统只会非常混乱。3. 函数、类的命名。基本上能够见名思意。4. .文件的操作本来是一片模糊,通过实践操作,已经理解对文件的操作,原来很简单。 5. 通过与同学讨论,知道要擅长使用STL来解决实际问题,而不是自己去编写函数。懂得利用C+中定义的对象解决问题。对于面向对象设计又有了更深的理解。6. 类之间的设计中符合人的思维逻辑。7. 通过一些书籍,知道

12、在设计中要遵守的规则,程序中统一的输出格式。8. 知道一些基本的优化规则,如 函数只能做一件事、越小越好、基类要足够的抽象,最好使用组合而不是继承,减少依赖性等等。9. 在程序设计中要与别人合作,把自己的糟粕去掉,吸取别人程序中的精华,与其他同学讨论。10. 编写中要先写好一个功能后马上调试,及时发现问题,及时解决问题,而不是系统写完后再慢慢调试,那样问题会很多,调好这里后那里又出现问题,我们初学者还有很多细节不会注意,这种方法有助于我更快的编写出系统,减少编写时间,把更多的时间留下来完善程序。总之,通过这次的课程设计,让我真正了解到C语言中的类模块真正魅力和无穷的功能 ,感到STL的强大,希

13、望尽快掌握STL的知识来解决实际问题。通过对文件的操作领略到编程的神奇,感到非常的方便。这个学期的对C+的学习,仅仅是叩开了C+这扇大门,里面还有很多知识我所不知道的,而此次的课程设计更加激发了我对C语言学习的浓厚兴趣 。这个假期会进一步加强这个学期所学,也会进一步学习C+。计算机与通信学院课程设计评分表课程名称: 面向对象程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: 附源代码:Time.h#ifndef TIME_H#define TIME_Hclass Timepublic: Time(i

14、nt y=1900, int m=1, int d=1); virtual Time(); int getYear() 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(i

15、nt y, int m, int d):year(y),month(m),day(d)Time:Time()int Time:getYear() const return year;int Time:getMonth() constreturn month;int Time:getDay() constreturn day;void Time:setYear(int y)year=y;void Time:setMonth(int m)month=m;void Time:setDay(int d)day=d;bool Time:judgeLeapYear() bool flag=true; fl

16、ag=(year%4=0) & (year%100!=0) | (year%400=0); return flag;ToSchoolTime.h#ifndef TOSCHOOLTIME_H#define TOSCHOOLTIME_H#includeTime.hclass ToSchoolTime:public Timepublic: ToSchoolTime(int y=1900, int m=1, int d=1); virtual ToSchoolTime(); bool judgeYear(); void inputYear(); bool judgeMonth(); void inpu

17、tMonth(); int judgeMonthDay(); bool judgeDay(); void inputDay(); void inputToSchoolTime(); friend ostream & operator (ostream &out, const ToSchoolTime &t) out ; outt.year-t.month-(istream &input, ToSchoolTime &t) char c1,c2; inputt.yearc1t.monthc2t.day; return input; private: int oneMonthDay;#endifT

18、oSchoolTime.cpp#includeusing namespace std;#includeToSchoolTime.h#includeTime.hToSchoolTime:ToSchoolTime(int y, int m, int d):Time(y,m,d)oneMonthDay=30;ToSchoolTime:ToSchoolTime()bool ToSchoolTime:judgeYear() const int startYear=1990; bool flag=true; if(year startYear) flag=false;coutt输入有误,起始年份大于来校年

19、份:startYear yearendl; return flag;void ToSchoolTime:inputYear() bool flag=false; while( !flag ) coutyear; flag=judgeYear(); coutendl;bool ToSchoolTime:judgeMonth() bool flag=true; const int startMonth=1; const int endMonth=12; if(month 12) flag=false; coutt输入有误,一年中没有month月份endl; return flag; void To

20、SchoolTime:inputMonth() bool flag=false; while( !flag ) coutmonth; flag=judgeMonth(); coutendl;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

21、; else if(month%2=0) oneMonthDay=31; else oneMonthDay=30; return oneMonthDay;bool ToSchoolTime:judgeDay() bool flag=true; const int startDay=1; const int endDay=oneMonthDay; if(day oneMonthDay) flag=false; coutt输入有误,month月份没有day这一天endl; return flag;void ToSchoolTime:inputDay() oneMonthDay=judgeMonth

22、Day(); bool flag=false; while( !flag ) cout # 来校日 #(1 oneMonthDayday; flag=judgeDay(); coutendl;void ToSchoolTime:inputToSchoolTime()inputYear();inputMonth();inputDay();LeaveSchoolTime.h#ifndef LEAVESCHOOLTIME_H#define LEAVESCHOOLTIME_H#includeTime.h#includeToSchoolTime.hclass LeaveSchoolTime:public

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

24、判断输入月份是否小于来校月 int judgeLeaveSchoolDay(const int &toSchoolDay); void inputMonth(const int &toSchoolYear, const int &toSchoolMonth); intjudgeMonthDay(); /判断一个月有多少天. bool judgeDayOveroneMonthDay(); void inputDay(const int &toSchoolYear, const int &toSchoolMonth, const int &toSchoolDay); void inputLeave

25、SchoolTime(const ToSchoolTime &toSchoolTime); friend ostream & operator (ostream &out, const LeaveSchoolTime &l) /友元函数重载 用来输出 LeaveSchoolTime类 outl.year-l.month-(istream &input,LeaveSchoolTime &l) /友元函数重载 用来输入 LeaveSchoolTime类 char c1,c2; inputl.yearc1l.monthc2l.day; return input; private: int oneMo

26、nthDay;#endifLeaveSchool.cpp#includeusing namespace std;#includeLeaveSchoolTime.h#includeToSchoolTime.h#includeTime.hLeaveSchoolTime:LeaveSchoolTime(int year, int month, int day):Time(year,month,day)oneMonthDay=judgeMonthDay(); /调用函数。LeaveSchoolTime:LeaveSchoolTime()int LeaveSchoolTime:getOneMonthDa

27、y() constreturn oneMonthDay; int LeaveSchoolTime:judgeLeaveSchoolYear(const int &toSchoolYear)int flag=1;if(toSchoolYear = year) flag=0; if(toSchoolYear year) flag=-1; coutt输入有误,来校年份大于离校年份: toSchoolYear yearendl; return flag;void LeaveSchoolTime:inputYear(const int &toSchoolYear) int flag=-1; while(flag = -1) cout # 该职工离校的年份 #(toSchoolYearyear; flag=judgeLeaveSchoolYear(toSchoolYear); coutendl;int LeaveSchoolTime:judgeLeaveSchoolMonth(const int &toSchoolMonth) int flag=1; if(toSchoolMon

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

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