《面向对象程序设计》课程设计企业人事管理系统_第1页
《面向对象程序设计》课程设计企业人事管理系统_第2页
《面向对象程序设计》课程设计企业人事管理系统_第3页
《面向对象程序设计》课程设计企业人事管理系统_第4页
《面向对象程序设计》课程设计企业人事管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南城建学院 面向对象程序设计课程设计 设计说明书 课程名称: 面向对象程序设计课程设计 设计题目: 企业人事管理系统 指导教师: 班 级: 学 号: 学生姓名: 同组人员: 计算机科学与工程系 2011 年 6 月 23 日 目 录 第第 1 章章 选选 题题.2 1.1 题目背景.2 1.2 系统实现的具体分工.2 1.2.1 选题.2 1.2.2团队分工.2 1.3 开发环境.3 第第 2 章章 设计内容设计内容.3 2.1 实现功能.3 2.2 概要设计(涉及类的框图).4 2.3 界面设计.4 第第 3 章章 系统实现系统实现.4 3.1 涉及知识点.4 3.2 系统运行.12 3.

2、3 源程序清单(关键代码).15 第第 4 章章 测试与实验结果测试与实验结果.29 第第 5 章章 结束语结束语.30 参考文献参考文献.30 第 1 章 选 题 1.1 题目背景 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它 已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法 比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成 本低等。这些优点能够极大地提高人事理的效率,也是企业的科学化、正规化管理,与世 界接轨的重要条件。因此,开发这样一套管理软件成为很

3、有必要的事情。 目前,无论是机关、事业单位、还是企业单位,人事管理对于组织生存与长远发展 所具备的重要性都已经有了明确的认识,而人事管理水平的提升不仅需要高素质的管 理人员,而且也需要信息化工具进行辅助 在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系 统来于小型的企事业单位,不啻于“杀鸡用牛刀” ,因此小型的的软件对于这种单位自 然有十分重要作用。 1.2 系统实现的具体分工 1.2.1 选题 此项目是为了适应现代化企业的发展潮流,从而实现用计算机进行企业人事管理,达到检索迅 速、查找方便、可靠性高、存储量大、保密性好等功能。一下是项目的功能: 1、添加功能: 添加一

4、个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址, 家庭电话号码,部门,薪水,性别,职务。 2、删除功能: 能够对一个职员的信息进行删除按姓名进行删除。 3、删除全部职员信息: 能够对于全部职员的信息进行删除! 4、显示功能: 显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日等。 5、查找功能: 根据你键入的职员姓名,显示其详细信息! 6、修改功能: 对职员的信息进行修改。 7、保存信息 对全部信息进行保存。 8、退出程序 能够退出程序。 1.2.2团队分工 表 1.1 项目分工一览表 角色姓名承担的具体任务 组长于嘉构架整个程序的模块,负责部门类于全体 职工类的构造

5、。 组员赵鑫磊已生成文件的方式保存录入的信息,组织 交互界面,调试程序以及优化程序。 组员千利稳编写增删改查的模块程序,构造 base 类。 1.3 开发环境 编程工具:visual c+ 6.0 机型:方正电脑 处理器名称:intel(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 实现功

6、能 1、添加功能: 添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址, 家庭电话号码,部门,薪水,性别,职务。 2、删除功能: 能够对一个职员的信息进行删除按姓名进行删除。 3、删除全部职员信息: 能够对于全部职员的信息进行删除! 4、显示功能: 显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日等。 5、查找功能: 根据你键入的职员姓名,显示其详细信息! 6、修改功能: 对职员的信息进行修改。 7、保存信息 对全部信息进行保存。 8、退出程序 能够退出程序。 2.2 概要设计(涉及类的框图) 系统 base 类 personnel 类 maintain 类 员

7、工 工 作 号 员 工 姓 名 员 工 身 份 证 号 员 工 性 别 员 工 生 日 员 工 家 庭 住 址 员 工 电 话 员 工 职 务 员 工 薪 水 员 工 职 务 员 工 薪 水 员 工 工 作 号 员 工 姓 名 员 工 身 份 证 号 员 工 性 别 员 工 生 日 员 工 家 庭 住 址 员 工 电 话 2.3 界面设计 界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。 结构设计也称概念设计 (conceptual design) ,是界面设计的骨架。该企业人事 管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目 录体系包括 1 录入员工

8、信息、2 显示员工信息、3、查找员工信息 4、删除员工信息、5 、修改员工信息、6、清空员工信息、7、保存员工信息、8、退出。其中录入信息会出 现 1、人事部、2、维修部、3、销售部。 第 3 章 系统实现 3.1 涉及知识点 类的设计与分析 为了界面简洁些,用了几个类。一个类包含员工的基本信息,一个类包含部门的信 息,一个类继承了基本信息和部门信息。 1base 类 class base public: int no; int id; string name; string sex; int birthday; string address; int phone; void input()

9、cout输入员工的工作号:no; cout输入员工的姓名:name; cout输入员工的性别:sex; cout输入员工的身分证:id; cout输入员工的生日:birthday; cout输入员工的家庭住址:address; cout输入员工的家庭电话号码:phone; void output() coutsetiosflags(ios:left)setw(8)no setw(8)namesetw(6)sexsetw(8)idsetw(10)birthday setw(8)addresssetw(10)phone; ; base 类说明表 名称属性说明 no数据成员记录员工对象的工作号 na

10、me数据成员记录员工对象的姓名 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; c

11、out请输入该员工的薪水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 voi

12、d show() cout维修部endl; ; maintain 类说明表 名称属性说明 job 数据成员记录员工对象的职务 pay 数据成员记录员工对象的薪水 virtual void show() 成员方法虚函数,显示所在的部门 void input() 成员方法成员函数,输入数据 void output() 成员方法成员函数,输出数据 class staff : public base, public branch ; staff 类说明表 名称属性说明 no数据成员记录员工对象的工作号 name数据成员记录员工对象的姓名 id 数据成员记录员工对象的身分证 sex 数据成员记录员工对象

13、的性别 birthday 数据成员记录员工对象的生日 address 数据成员记录员工对象的家庭住址 phone 数据成员记录员工对象的电话 void input()成员方法成员函数,输入数据 void output()成员方法成员函数,输出数据 job 数据成员记录员工对象的职务 pay 数据成员记录员工对象的薪水 virtual void show() 成员方法虚函数,显示所在的部门 void input() 成员方法成员函数,输入数据 void output() 成员方法成员函数,输出数据 模块设计与分析 1录入员工信息录入员工信息 void insert()/录入数据 int n; w

14、hile(1) cout请输入部门的代码: 1-人事部 2-维修部 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; w

15、hile(n=1); p 申请新的 staff空间,输入数据,检查所输入的信息是否已经存在, 存在显示数据已经存在,重新输入新的数据,再检查,直到输入没有错误。进入保 存该正确的数据,空间要有足够的空间才能保存数据,不足就保存失败。 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;j

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

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

18、utput();pj-bumen.output(); pj-input();pj-bumen.input(); cout该员工修改成功!; break; 输入要查找的名字,循环空间,空间不为空,而且空间里的名字与输入的名 字对比,符合就重新输入数据,不符合下一条数据,直到符合为止。如果全部空 间扫描完都没有找到该信息,就没有信息输出。 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所有员工的资料已被

19、删除!endl;break; else cout输入密码失败!endl; while(n!=0); 首先清空全部员工数据是要慎重考虑的,所以要设置密码,且密码定义为 1,没有密 码不能清空全部员工。密码正确,然后把所有的空间都赋为空值。 7保存员工信息保存员工信息 void save()/保存数据 ofstream output_file; ofstream output_file1; ofstream output_file2; ofstream output_file3; cout正在保存中.endl; output_file.open(personnel.txt); if(!output

20、_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); if(!output_file2) cout保存 maintain 文件失败!endl; for( i=0;in;i+) if(mi!=null) output_file2no sex name id birthday address pho

21、ne 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 bumen.job bumen.payendl; b3+; 因为我用了 3 个数组来保存 3 个不同的部门信息,所以就用了 3 个不同的文件 来保存。然后再用一个文件来保存各个部门的数据的条数,这样是用来控制读出 文件的条数,防止读出错

22、误的信息。 8退出程序退出程序 3.2 系统运行 图 3.1 系统主界面 3.3 源程序清单(关键代码) /basic.h #includestring #includeiostream #include iomanip using namespace std; class base public: int no; int id; string name; string sex; int birthday; string address; int phone; void input() cout输入员工的工作号:no; cout输入员工的姓名:name; cout输入员工的性别:sex; co

23、ut输入员工的身分证:id; cout输入员工的生日:birthday; cout输入员工的家庭住址:address; cout输入员工的家庭电话号码:phone; void output() coutsetiosflags(ios:left)setw(8)no setw(8)namesetw(6)sexsetw(8)idsetw(10)birthday setw(8)addresssetw(10)phone; ; /branch.h #includeiostream #includestring #include iomanip using namespace std; class pers

24、onnel /人事部 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: virtual void show() cout维修部endl; ; class sell:public person

25、nel /销售部 public: virtual void show() cout销售部endl; ; template class branch public: type bumen; ; /staff.h #includebasic.h #includebranch.h #includeiostream using namespace std; template class staff : public base, public branch ; /头文件 #includestring #include #includestaff.h #includecstdio #includeconi

26、o.h #includefstream #includeiostream #includestdlib.h #define n 100 using 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 + 1 = 0; for (int i =

27、 0; i size_char; +i) int x = rand() % (sizeof(cch) - 1); chi = cchx; return ch; ostream void insert()/录入数据 int n; while(1) cout请输入部门的代码: 1-人事部 2-维修部 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此工作号已存在!请修改!in

28、put(); 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 staff; a-bumen.show(); a-input(); a-bumen.input(); int q; do for(int i=0;ino=a-no) cout此工作号已存在!请修改!input(); a-bumen.input(); q+; break; while(

29、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 q; do for(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=

30、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;joutput(); p-bumen.output(); break; else if(n=2) staff *a; coutoutendl; for(int i=0;ioutput(); a-bumen.output(); break; els

31、e 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;

32、 for(j=0;jname)=n) sj-bumen.show(); coutoutoutput();sj-bumen.output(); break; 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; if(m=2) for(int j=0;jname)=n) cou

33、toutoutput();mj-bumen.output(); mj=null; cout该员工已被删除!endl; break; if(m=3) for(int j=0;jname)=n) coutoutoutput();sj-bumen.output(); sj=null; cout该员工已被删除!endl; break; void revise()/修改数据 string n;int m; cout输入你要查找姓名n; cout请输入该员工所在的部门的代码: 1-人事部 2-维修部 3销售部 m; if(m=1) for(int j=0;jname)=n) coutoutoutput()

34、;pj-bumen.output(); pj-input();pj-bumen.input(); cout该员工修改成功!; break; if(m=2) for(int j=0;jname)=n) coutoutoutput();mj-bumen.output(); mj-input();mj-bumen.input(); cout该员工修改成功!; break; if(m=3) for(int j=0;jname)=n) coutoutoutput();sj-bumen.output(); sj-input();sj-bumen.input(); cout该员工修改成功!; break;

35、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); void save()/保存数据 ofstream output_file; ofstream output_file1; ofstream output_file2; ofstream output_file3; cout正在保存中.endl; output_fi

36、le.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); if(!output_file2) cout保存 maintain 文件失败!endl; for( i=0;in;i+) if(mi!=null) output_file2n

37、o 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 bumen.job bumen.payendl; b3+; output_file1.open(kongzhi.txt); output_file1b1 b2 b3en

38、dl;/保存数据条数 output_file1.close(); output_file.close(); output_file2.close(); output_file3.close(); cout保存完毕!b1b2b3; input_file.open(personnel.txt); input_file2.open(maintain.txt); input_file3.open(sell.txt); if(!input_file|!input_file2|!input_file3) cout打开文件失败!endl; cout建立新的数据!endl; for(int i=0;in;i+

39、) pi=null; mi=null; si=null; for(i=0;i32;i+) /随机生成数据 pi=new staff; pi-no=100+i;pi-sex=m;pi-name=m();pi-id=1000+rand()%100; pi-birthday=1988000+rand()%100;pi-address=m();pi- phone=13567+rand()%100; pi-bumen.job=m();pi-bumen.pay=2000+rand()%101; mi=new staff; mi-no=100+i;mi-sex=m;mi-name=m();mi-id=100

40、0+rand()%100; mi-birthday=1988000+rand()%100;mi-address=m();mi- phone=13567+rand()%100; mi-bumen.job=m();mi-bumen.pay=2000+rand()%101; si=new staff; si-no=100+i;si-sex=m;si-name=m();si-id=1000+rand()%100; si-birthday=1988000+rand()%100;si-address=m();si- phone=13567+rand()%100; si-bumen.job=m();si-b

41、umen.pay=2000+rand()%101; else for(int i=0;ib1;i+) pi=new staff; input_filepi-nopi-sexpi-namepi-idpi- birthdaypi-addresspi-phonepi-bumen.jobpi-bumen.pay; for(i=0;ib2;i+) mi=new staff; input_file2mi-nomi-sexmi-namemi-idmi- birthdaymi-addressmi-phonemi-bumen.jobmi-bumen.pay; for(i=0;ib3;i+) si=new sta

42、ff; input_file3si-nosi-sexsi-namesi-idsi- birthdaysi-addresssi-phonesi-bumen.jobsi-bumen.pay; cout录入成功!endl; input_file.close(); input_file1.close(); input_file2.close(); input_file3.close(); char n; while(1) while(1) system(color 006); b1=0,b2=0,b3=0;/清空原先的数据条数 cout 人事管理管理系统 endl; cout* * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论