面向对象程序设计课程设计企业人事管理系统.doc

上传人:sccc 文档编号:4849998 上传时间:2023-05-19 格式:DOC 页数:31 大小:374.53KB
返回 下载 相关 举报
面向对象程序设计课程设计企业人事管理系统.doc_第1页
第1页 / 共31页
面向对象程序设计课程设计企业人事管理系统.doc_第2页
第2页 / 共31页
面向对象程序设计课程设计企业人事管理系统.doc_第3页
第3页 / 共31页
面向对象程序设计课程设计企业人事管理系统.doc_第4页
第4页 / 共31页
面向对象程序设计课程设计企业人事管理系统.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《面向对象程序设计课程设计企业人事管理系统.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计企业人事管理系统.doc(31页珍藏版)》请在三一办公上搜索。

1、河南城建学院面向对象程序设计课程设计设计说明书课程名称: 面向对象程序设计课程设计 设计题目: 企业人事管理系统 指导教师: 班 级: 学 号: 学生姓名: 同组人员: 计算机科学与工程系2011年6月23日 面向对象程序设计C+ 课程设计实验报告 - 30 -目 录第1章 选 题21.1 题目背景21.2系统实现的具体分工21.2.1 选题21.2.2团队分工21.3开发环境3第2章 设计内容32.1实现功能32.2 概要设计(涉及类的框图)42.3 界面设计4第3章 系统实现43.1 涉及知识点43.2 系统运行123.3 源程序清单(关键代码)15第4章 测试与实验结果29第5章 结束语

2、30参考文献30第1章 选 题1.1 题目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。目前,无论是机关、事业单位、还是企业单位,人事管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而人事管理水平的提升不仅需

3、要高素质的管理人员,而且也需要信息化工具进行辅助在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。1.2系统实现的具体分工1.2.1 选题此项目是为了适应现代化企业的发展潮流,从而实现用计算机进行企业人事管理,达到检索迅速、查找方便、可靠性高、存储量大、保密性好等功能。一下是项目的功能:1、添加功能:添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务。2、删除功能:能够对一个职员的信息进行删除按姓名进行删除。3、删除全部职

4、员信息:能够对于全部职员的信息进行删除!4、显示功能:显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日等。5、查找功能:根据你键入的职员姓名,显示其详细信息!6、修改功能:对职员的信息进行修改。7、保存信息对全部信息进行保存。8、退出程序 能够退出程序。1.2.2 团队分工表1.1 项目分工一览表角色姓名承担的具体任务组长于嘉构架整个程序的模块,负责部门类于全体职工类的构造。组员赵鑫磊已生成文件的方式保存录入的信息,组织交互界面,调试程序以及优化程序。组员千利稳编写增删改查的模块程序,构造base类。1.3开发环境编程工具:Visual C+ 6.0机型:方正电脑处理器名称:Inte

5、l(R)Core(TM)2 Duo CPU E7200 2.53GHz硬盘驱动器:WDC WD1600AAJS-22WAAO系统内存:金士顿内存2GB显示卡:NVIDIA GeFORCE 9400 GT显示器:方正科技FG981-W9操作系统:Microsoft Windows XP Professional第2章 设计内容2.1实现功能1、添加功能:添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务。2、删除功能:能够对一个职员的信息进行删除按姓名进行删除。3、删除全部职员信息:能够对于全部职员的信息进行删除!4、显示功能:显示所有职

6、员的主要信息包括姓名,身份证号码,工作证号,生日等。5、查找功能:根据你键入的职员姓名,显示其详细信息!6、修改功能:对职员的信息进行修改。7、保存信息对全部信息进行保存。8、退出程序 能够退出程序。2.2 概要设计(涉及类的框图)系统base类personnel类 maintain类员工工作号员工姓名员工身份证号员工性别员工生日员工家庭住址员工电话员工职务员工薪水员工职务员工薪水员工工作号员工姓名员工身份证号员工性别员工生日员工家庭住址员工电话2.3 界面设计界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。结构设计也称概念设计 (Conceptual Design),是界面设计

7、的骨架。该企业人事管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1 录入员工信息、2显示员工信息、3、查找员工信息4、删除员工信息、5 、修改员工信息、6、清空员工信息、7、保存员工信息、8、退出。其中录入信息会出现1、人事部、2、维修部、3、销售部。第3章 系统实现3.1 涉及知识点类的设计与分析为了界面简洁些,用了几个类。一个类包含员工的基本信息,一个类包含部门的信息,一个类继承了基本信息和部门信息。1Base类class Basepublic:int No;int ID;string Name;string Sex;int Birthday;stri

8、ng Address;int Phone;void input()cout输入员工的工作号:No;cout输入员工的姓名:Name;cout输入员工的性别:Sex;cout输入员工的身分证:ID;cout输入员工的生日:Birthday;cout输入员工的家庭住址:Address;cout输入员工的家庭电话号码:Phone;void output()coutsetiosflags(ios:left)setw(8)Nosetw(8)Namesetw(6)Sexsetw(8)IDsetw(10)Birthday setw(8)Addresssetw(10)Phone;Base类说明表名称属性说明N

9、O数据成员记录员工对象的工作号Name数据成员记录员工对象的姓名ID数据成员记录员工对象的身分证Sex数据成员记录员工对象的性别Birthday数据成员记录员工对象的生日Address数据成员记录员工对象的家庭住址Phone数据成员记录员工对象的电话void input()成员方法成员函数,输入数据void output()成员方法成员函数,输出数据2Personnel类class Personnel /人事部public:virtual void show()cout人事部endl;string Job;int Pay;void input() cout请输入该员工的职务Job; cout请

10、输入该员工的薪水Pay; void output() coutsetiosflags(ios:left)职务:setw(6)Job 薪水:setw(6)Payendl;Personnel类说明表名称属性说明Job数据成员记录员工对象的职务Pay数据成员记录员工对象的薪水virtual void show()成员方法虚函数,显示所在的部门void input()成员方法成员函数,输入数据void output()成员方法成员函数,输出数据3继承类class Maintain:public Personnel /维修部public:virtual void show()cout维修部endl;Ma

11、intain类说明表名称属性说明Job数据成员记录员工对象的职务Pay数据成员记录员工对象的薪水virtual void show()成员方法虚函数,显示所在的部门void input()成员方法成员函数,输入数据void output()成员方法成员函数,输出数据class Staff : public Base, public Branch ;Staff类说明表名称属性说明NO数据成员记录员工对象的工作号Name数据成员记录员工对象的姓名ID数据成员记录员工对象的身分证Sex数据成员记录员工对象的性别Birthday数据成员记录员工对象的生日Address数据成员记录员工对象的家庭住址Ph

12、one数据成员记录员工对象的电话void input()成员方法成员函数,输入数据void output()成员方法成员函数,输出数据Job数据成员记录员工对象的职务Pay数据成员记录员工对象的薪水virtual void show()成员方法虚函数,显示所在的部门void input()成员方法成员函数,输入数据void output()成员方法成员函数,输出数据模块设计与分析1录入员工信息void insert()/录入数据int n; while(1) cout请输入部门的代码: 1-人事部 2-维修部 3销售部n;if(n=1|n=2|n=3) if(n=1) do Staff *p;

13、p=new Staff;p-bumen.show();p-input();p-bumen.input();int q;dofor(int i=0;iNo=p-No)cout此工作号已存在!请修改!input();p-bumen.input();q+;break;while(q!=0);for(int j=0;jN;j+) if(Pj=NULL) Pj=p;cout输入成功!endl;break; coutn;while(n=1);P申请新的Staff空间,输入数据,检查所输入的信息是否已经存在,存在显示数据已经存在,重新输入新的数据,再检查,直到输入没有错误。进入保存该正确的数据,空间要有足够

14、的空间才能保存数据,不足就保存失败。2显示员工信息void show()/显示数据Staff *p;coutoutendl;for(int j=0;joutput();p-bumen.output();只要P的空间内不为空就输出数据。3查找员工信息 void find()/查找数据 string n; cout输入你要查找姓名n; for(int j=0;jName)=n) Pj-bumen.show(); coutoutoutput();Pj-bumen.output(); break; 输入要查找的名字,循环空间,空间不为空,而且空间里的名字与输入的名字对比,符合就输出该数据,不符合下一条

15、数据,直到符合为止。如果全部空间扫描完都没有找到该信息,就输出不存在该信息。4删除员工信息 void Delete()/删除数据string n;int m; cout输入你要查找姓名n; cout请输入该员工所在的部门的代码: 1-人事部 2-维修部 3销售部m;if(m=1) for(int j=0;jName)=n)coutoutoutput();Pj-bumen.output(); Pj=NULL;cout该员工已被删除!endl;break; 输入要查找的名字,循环空间,空间不为空,而且空间里的名字与输入的名字对比,符合就把该项的数据赋为空值,不符合下一条数据,直到符合为止。如果全部

16、空间扫描完都没有找到该信息,没有信息输出。5修改员工信息 void revise()/修改数据string n;int m; cout输入你要查找姓名n; cout请输入该员工所在的部门的代码: 1-人事部 2-维修部 3销售部m; if(m=1) for(int j=0;jName)=n)coutoutoutput();Pj-bumen.output();Pj-input();Pj-bumen.input();cout该员工修改成功!;break; 输入要查找的名字,循环空间,空间不为空,而且空间里的名字与输入的名字对比,符合就重新输入数据,不符合下一条数据,直到符合为止。如果全部空间扫描完

17、都没有找到该信息,就没有信息输出。6清空员工信息void clear()/清空数据 int n,a=1; do cout请输入密码 0返回界面n; if(n=a) for(int i=0;iN;i+) Pi=NULL; Mi=NULL; Si=NULL; cout所有员工的资料已被删除!endl;break; else cout输入密码失败!endl; while(n!=0);首先清空全部员工数据是要慎重考虑的,所以要设置密码,且密码定义为1,没有密码不能清空全部员工。密码正确,然后把所有的空间都赋为空值。7保存员工信息void save()/保存数据ofstream output_file;

18、ofstream output_file1;ofstream output_file2;ofstream output_file3;cout正在保存中.endl;output_file.open(Personnel.txt); if(!output_file) cout保存Personnel文件失败!endl; for(int i=0;iN;i+) if(Pi!=NULL) output_fileNo Sex Name ID Birthday Address Phone bumen.Job bumen.Payendl; b1+; output_file2.open(Maintain.txt);

19、if(!output_file2) cout保存Maintain文件失败!endl; for( i=0;iN;i+) if(Mi!=NULL) output_file2No Sex Name ID Birthday Address Phone bumen.Job bumen.Payendl; b2+; output_file3.open(Sell.txt);if(!output_file3) cout保存Sell文件失败!endl; for( i=0;iN;i+) if(Si!=NULL) output_file3No Sex Name ID Birthday Address Phone bu

20、men.Job bumen.Payendl; b3+; 因为我用了3个数组来保存3个不同的部门信息,所以就用了3个不同的文件来保存。然后再用一个文件来保存各个部门的数据的条数,这样是用来控制读出文件的条数,防止读出错误的信息。8退出程序3.2 系统运行图3.1 系统主界面3.3 源程序清单(关键代码)/basic.h#includestring#includeiostream#include iomanipusing namespace std;class Basepublic:int No;int ID;string Name;string Sex;int Birthday;string A

21、ddress;int Phone;void input()cout输入员工的工作号:No;cout输入员工的姓名:Name;cout输入员工的性别:Sex;cout输入员工的身分证:ID;cout输入员工的生日:Birthday;cout输入员工的家庭住址:Address;cout输入员工的家庭电话号码:Phone;void output()coutsetiosflags(ios:left)setw(8)Nosetw(8)Namesetw(6)Sexsetw(8)IDsetw(10)Birthday setw(8)Addresssetw(10)Phone;/branch.h#includeio

22、stream#includestring#include iomanipusing namespace std; class Personnel /人事部public:virtual void show()cout人事部endl;string Job;int Pay;void input() cout请输入该员工的职务Job; cout请输入该员工的薪水Pay; void output() coutsetiosflags(ios:left)职务:setw(6)Job 薪水:setw(6)Payendl;class Maintain:public Personnel /维修部public:vir

23、tual void show()cout维修部endl;class Sell:public Personnel /销售部public:virtual void show()cout销售部endl;template class Branch public:Type bumen;/staff.h#includebasic.h#includebranch.h#includeiostreamusing namespace std;template class Staff : public Base, public Branch ;/头文件#includestring#include#includest

24、aff.h#includecstdio#includeconio.h#includefstream#includeiostream#includestdlib.h#define N 100using namespace std;Staff *PN; Staff *MN;Staff *SN;const int SIZE_CHAR = 5; const char CCH = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;int b1=0,b2=0,b3=0;/导入数据条数string m()/随机生字母 char chSIZE_CHAR

25、+ 1 = 0; for (int i = 0; i SIZE_CHAR; +i) int x = rand() % (sizeof(CCH) - 1); chi = CCHx; return ch;ostream& out(ostream& stream)/操纵符return stream setiosflags(ios:left)setw(8)工作号setw(8)姓名setw(6)性别setw(8)身分证setw(12)生日setw(8)地址 setw(10)电话 部门 ;void insert()/录入数据int n; while(1) cout请输入部门的代码: 1-人事部 2-维修部

26、 3销售部n;if(n=1|n=2|n=3) if(n=1) do Staff *p;p=new Staff;p-bumen.show();p-input();p-bumen.input();int q;do for(int i=0;iNo=p-No)cout此工作号已存在!请修改!input(); p-bumen.input(); q+; break; while(q!=0);for(int j=0;jN;j+) if(Pj=NULL) Pj=p;cout输入成功!endl; break; coutn; while(n=1);else if(n=2) do Staff *a;a=new St

27、aff;a-bumen.show(); a-input();a-bumen.input();int q;dofor(int i=0;iNo=a-No)cout此工作号已存在!请修改!input(); a-bumen.input(); q+; break; while(q!=0);for(int j=0;jN;j+) if(Mj=NULL) Mj=a; cout输入成功!endl; break; coutn; while(n=2);else if(n=3) do Staff *s;s=new Staff;s-bumen.show(); s-input();s-bumen.input();int

28、q;dofor(int i=0;iNo=s-No)cout此工作号已存在!请修改!input(); s-bumen.input(); q+; break; while(q!=0);for(int j=0;jN;j+) if(Sj=NULL) Sj=s; cout输入成功!endl; break; coutn; while(n=3);break;void show()/显示数据 int n; while(1) cout请输入部门的代码: 1-人事部 2-维修部 3销售部 n; if(n=1|n=2|n=3) if(n=1) Staff *p;coutoutendl;for(int j=0;jou

29、tput();p-bumen.output();break;else if(n=2)Staff *a;coutoutendl;for(int i=0;ioutput();a-bumen.output(); break;else if(n=3)Staff *s;coutoutendl;for(int i=0;ioutput();s-bumen.output(); break; else if(n=0) break; void find()/查找数据 string n; cout输入你要查找姓名n; for(int j=0;jName)=n) Pj-bumen.show(); coutoutoutput();Pj-bumen.output();break; for(j=0;jName)=n) Mj-bumen.show(); coutoutoutput();Mj-bumen.output(); break; for(j=0;jName)=n) Sj-bumen.show();coutoutoutput();Sj-bumen.output(); break; void Delete()/删除数据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号