人员信息管理系统_第1页
人员信息管理系统_第2页
人员信息管理系统_第3页
人员信息管理系统_第4页
人员信息管理系统_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

1、C+课程设计题 目:人员信息管理系统学生姓名:学 号:专业班级:同组人员:指导老师:设计时间:指导老师意见评定成绩:签名:日期:C+课程设计实验报告人员信息管理系统一:系统要求分析1:功能需求(1)人员信息基本管理,包括人员信息的录入、修改和删除;(2)能够自动设置员工的编号,即每增加一位新员工,编号增一;(3)能够分别对不同级别的员工(如经理、技术人员、推销人员等)按照 不同的公式计算其工资收入;(4)能够将人员信息保存到磁盘上,以便程序下次运行时使用;(5)具有一定的排错功能,如当用户输入错误数据时提示用户;(6)能够实现一定程度的查询和统计功能。(7)其他你能想到并对系统有用的功能。在实

2、现程序功能的基础上,尽量运用所学知识,改进程序实现方法,提高程序的可读性、模块性、可扩展性、可重用性和健壮性。工资计算公式:经理 :固定为80001:设计思路使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。所以系统主要涉及两个大类:公司类 business人员类person系 统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显 示主菜单并根据用户选择调用公司类的相应方法 (成员函数)。(1)公司类business:考虑系统操作的人员信息的数量具有不确定性,所以考虑使用链表保存、处理人员信息。公司类包含:所有人员信息的一个不带头结点的链 表(作为

3、数据成员)及可以对人员信息进行增,删,改,查询经营信息,基础数 据设置,数据存盘,数据装入等操作的相关模块(write,build,search,repair,delete,list) 作为成员函数。人员类person:所有人员都具有的公共信息及操作可以使用人员类进行描述。 由于系统具有4类人员且4类人员数据,操作有所不同,如销售员包含销售额, 而兼职技术人员包含工作小时数且计算工资的方法不同,所以应当为4类人员创建相应的person类的派生类。为了使公司类可以方便处理人员信息,可以考虑将公司类确定为人员类的友 元类或者人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类

4、,可以将人员类的方法确定为虚函数。2:功能模块设计1) void write()新增将向要新增的人员通过文件指令ofstream myfile("f1.txt",ios 二 binary|ios 二 ate);myfile.write(char*)&p,sizeof p);myfile.close();将信息自动存入txt文档中。2) void search()查找通过读取源文件内容,再利用判断语句if(number=p.number)判断是否输入的序号与存档内容序号相同,相同则输出3) void delete()删除先查找出要删除的人员信息,再通过ofstream

5、 file2("f1.txt",ios二binary|ios二out);创建空白文件覆盖要删除的人 员信息。4) void show()显示用while判断语句打印出所有人员信息i- UVA员信息苣理®曲口曲ug、teftexE=*751£§35§MMMM-灵人1显7TS) 查找皑,usc-nbmfjsmbiJWT-?t-JntW*MMMM修改4去Mil除£53 退出GWHft-请旃入你要诜择的功弗UY= MB * = * *-9H4-MWMM-MM正兄理杏属 你全经受理 人经负9 9 3 :1:1置 i 干PJJ-白肖肖肖

6、 A上产上 i 5k5TZ14r ? *三0五六八ZN> ,i 二,一二.二/i . .一二 j 一 一 .二 姓姓姓姓姓姓姓续 2 3 4 5 6 7 BLy £ :i- li S «- £* 号号号J 号号号 杏gg=8W0 人员 £ = 10000鸥金粉:能售经理 29职段捕售经理 24职郴推串员 21职读熹某月就MS配 gg=*ee 心新:609E 三薪北8呢5) void repair()修改利用 ofstream h1("f2.txt",ios 二 binary|ios 二 out);覆盖要修改的人员信息pms 苕

7、no I'd = *密相悟误”,请重新输入:.ERROR*!展否性续显示dN>?储选择你要显示的职工类:RROR* *是否继续查找y,NWy 售选你的职称竞型; 量输入你要查找的编号:春无此人! ! ! ! 是否继续查找CY/N*.ERROR” 展型隹续修改小山? 请输入你要修改的职称类型F漕输入你要删除对象的类型2 5ERROR”是否继续删除Y/M"6)错误判断四:系统源代码#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdlib.h>

8、;class personpublic :char name20,post20,hour20;int age,number ;;class business :public personpublic :int time ;;/经理(一次派生类)class mgr : public personpublic:int monthpay;mgr 二 mgr()monthpay=8000 ;(cout<<”请输入职工的编号:”;cin>>number ;cout<<"请输入职工的姓名:”;cin>>name ;cout<<"

9、;请输入职工的年龄:"cin>>age ;cout<<"该职工的月薪为:"<<monthpay<<endl;)void in()(cout<<" 编号:"<<number<<' '<<"姓名:"<<name<<''<<"年龄:"<<age<<''<<" 职称:"<&l

10、t;"经理 "<<''<<" 月薪:"<<monthpay<<endl;);/技术人员class technician :public person(public:int hourlyRate ;/每小时酬金int workHours ;/当月工作时数int pay;technician : technician()(hourlyRate=100 ;);virtual void in()(cout<<" 编号:"<<number<<&#

11、39;'<<"姓名:"<<name<<' '<<"年龄:"<<age<<''<<" 职称:"<<"技术人员"<<''<<"月薪:"<<pay<<endl ;)void out()(cout<<"请输入职工的编号:”;cin>>number ;cout<<

12、"请输入职工的名字:”;cin>>name ;cout<<"请输入工作的小时:"cin>>workHours ;cout<<"请输入职工的年龄:"cin>>age ;pay=hourlyRate*workHours ;cout<<"该职工的月薪为:"<<pay<<endl ;);/销售经理 class sell :public business(public :int phpay,monthpay ;sell : sell()(p

13、hpay=1,monthpay=5000 ;void in()cout<<"编号:"<<number<<" "<<"姓名:"<<name<<" "<<"销售额:"<<time<<" "<<"年龄:"<<age<<" "<<"职称:"<<"销

14、售经理"<<" "<<"月薪:"<<pay()<<endl ;int pay()return(phpay*time+monthpay);void out()cout<<"请输入职工的编号:”;cin>>number ;cout<<"请输入职工的名字:”;cin>>name ;cout<<"请输入销售额:"cin>>time ;cout<<"请输入职工的年龄:”;ci

15、n>>age ;cout<<"职工的月薪为:"<<pay()<<endl ;);/推销员 class bagman :public businesspublic :int phpay ;bagman : bagman() (phpay=4 ;)void in()(cout<<" 编号:"<<number<<" "<<"姓名:"<<name<<" "<<"销

16、售 额:"<<time<<" "<<" 年龄:"<<age<<" "<<" 职称:"<<"推销员 "<<""<<" 年 薪:"<<pay()<<endl ;)int pay()(return(phpay*time);)void out()(cout<<" 请输入职工的编号:”;cin>&g

17、t;number ;cout<<" 请输入职工的名字:”;cin>>name ;cout<<" 请输入销售额 :"cin>>time ;cout<<"请输入职工的年龄:cin>>age ;cout<<"该职工的月薪为:"<<pay()<<endl ;);/*输入函数void write1()mgr p ; p.out(); ofstream myfile("f1.txt",ios 二 binary|ios 二

18、 ate);/ 与 ios:app|ios:out) 均可 myfile.write(char*)&p,sizeof p); myfile.close();void write2()technician p ;p.out();ofstream myfile("f2.txt",ios 二 binary|ios 二 ate); / 与 ios:app|ios:out) 均可 myfile.write(char*)&p,sizeof p);myfile.close();void write3()sell p ;p.out();ofstream myfile(&qu

19、ot;f6.txt",ios 二 binary|ios 二 ate); / 与 ios:app|ios:out) 均可 myfile.write(char*)&p,sizeof p);myfile.close();void write4()bagman p ;ofstream myfile("f7.txt",ios 二 binary|ios 二 ate);/ 与 ios:app|ios:out) 均可 p.out();myfile.write(char*)&p,sizeof p);myfile.close();void build()cout<

20、;<endl ;cout<<"*请选择职二的信息*"<<endl ;cout<<" *1.经理*"vvendl ;coutvv" *2.技术人员*"vvendl ;coutvv" *3.销售经理*"vvendl ;coutvv" *4.推销员*"vvendl ;coutvv"*<<endl ;char ch ;cin>>ch ;while(ch!='N'&&ch!='n')

21、switch(ch)case '1': write1();break ;case '2':write2();break ;case '3':write3();break ;case '4':write4();break ;default :cout<<"ERROR!"<<endl ;break ;cout<<"是否继续输入:(Y/N)?"cin>>ch ;if(ch='Y'|ch='y')cout<<

22、” 请输入 14:"<<endl ;cin>>ch ;显示函数*void show1()ifstream myfile("f1.txt",ios 二 binary|ios 二 out|ios 二 in);mgr p ;myfile.read(char*)&p,sizeof p);while(!my巾le.eof()P.in();myfile.read(char*)&p,sizeof p);myfile.close();void show2()ifstream myfile("f2.txt",ios : b

23、inary|ios : out|ios : in);technician p;myfile.read(char*)&p,sizeof p);while(!myfile.eof()p.in();myfile.read(char*)&p,sizeof p);myfile.close();void show3()ifstream myfile("f6.txt",ios : binary|ios : out|ios : in);sell p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()P.in();m

24、yfile.read(char*)&p,sizeof p);myfile.close();void show4()ifstream myfile("f7.txt",ios : binary|ios : out|ios : in);bagman p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()p.in();myfile.read(char*)&p,sizeof p);myfile.close();void show0()show1();show2();show3();show4();void s

25、how()*”<<endl ;cout<<" *"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*0.全显1.经理2 .技术人员3 .销售经理4 .推销员<<endl ;*”char c ;cin>>c

26、 ;while(c!='N'&&c!='n')switch(c)case '1':show1();break ;case '2':show2();break ;case '3':show3();break ;case '4':show4();break ;case '0':show0();break ;default :cout<<"ERROR!"<<endl ;break ;cout<<"cin>

27、;>c ;if(c='Y'|c='y')cout<<"cin>>c ;*是否继续显示(Y/N)?"<<endl ;请选择你要显示的职工类:"<<endl ;查找函数void search1()int m=1;cout<<"请输入你要查找的编号:"<<endl ;int number ;cin>>number ;ifstreammyfile("f1.txt",iosbinary|ios 二 out|ios

28、二 in);mgr p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()if(number=p.number)p.in(); myfile.close();m=0;myfile.read(char*)&p,sizeof p);if(m) cout<<"查无此人! ! ! ! "<<endl ;void search2()int m=1;cout<<"请输入你要查找的编号:"<<endl ;int number ;cin>>nu

29、mber ;ifstreammyfile("f2.txt",ios 二 binary|ios 二 out|ios 二 in);technician p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()if(number=p.number)P.in();myfile.close();m=0;myfile.read(char*)&p,sizeof p);if(m)cout<<"查无此人! ! ! ! "<<endl ;void search3()int m=1;co

30、ut<<"请输入你要查找的编号:"<<endl ;int number ;cin>>number ;ifstreammyfile("f6.txt",ios 二 binary|ios 二 out|ios 二 in);sell p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()if(number=p.number)p.in();myfile.close();m=0;myfile.read(char*)&p,sizeof p);if(m) cout<

31、;<"查无此人! ! ! ! "<<endl ;void search4()int m=1;cout<<"请输入你要查找的编号:"<<endl ;int number ;cin>>number ;ifstreammyfile("f7.txt",ios 二 binary|ios 二 out|ios 二 in);bagman p ;myfile.read(char*)&p,sizeof p);while(!myfile.eof()if(number=p.number)p.in(

32、);myfile.close();m=0;myfile.read(char*)&p,sizeof p);if(m)cout<<"查无此人! ! ! ! "<<endl ;void search()cout<<"*你 正 在 查 找*”<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<&qu

33、ot;*"<<endl ;cout<<"*1.经理2 .技术人员3 .销售经理4.推销员<<endl ;*”char c ;cin>>c ;while(c!='N'&&c!='n')switch(c)case '1':search1();break ;case '2':search2();break ;case '3':search3();break ;case '4':search4();break ;defaul

34、t :cout<<"ERROR!"<<endl ;break ;cout<<”是否继续查找(Y/N)?"cin>>c ;if(c='Y'|c='y')cout<<"请选你的职称类型:"<<endl ;cin>>c ;/*修改函数void repair1(void)int num,i=0,k=0 ;mgr*p1=new mgr50;cout<<"请输入你要修改的编号:"cin>>num ;

35、ifstream h1("f1.txt",ios : binary|ios 二 in);h1.read(char*)&p1i,sizeof p1i);while(!h1.eof()i+;h1.read(char*)&p1i,sizeof p1i);h1.close();k=i ;for(i=0;i<k;i+)if(num=p1i.number)Pli.out();cout<<"修改完毕!"<<endl ;ofstream h2("f1.txt",ios 二 binary|ios 二 out

36、);for(i=0;i<k;i+)h2.write(char*)&p1i,sizeof p1i);h2.close();deletep1 ;void repair2(void)int num,i=0,k=0 ;technician*p2=new technician50;cout<<"请输入你要修改的编号:cin>>num ;ifstream h2("f2.txt",ios : binary|ios 二 in);h2.read(char*)&p2i,sizeof p2i);while(!h2.eof()i+;h2.re

37、ad(char*)&p2i,sizeof p2i);h2.close();k=i ;for(i=0;i<k;i+)if(num=p2i.number)p2i.out();cout<<"修改完毕!"<<endl ;ofstream h1("f2.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)h1.write(char*)&p2i,sizeof p2i);h1.close();deletep2 ;void repair3(void)int num,i=0,k=0 ;

38、sell*p6=new sell50;cout<<" 请输入你要修改的编号:"cin>>num ;fstream h6("f6.txt",ios 二 binary|ios 二 out|ios : in);h6.read(char*)&p6i,sizeof p6i);while(!h6.eof()i+;h6.read(char*)&p6i,sizeof p6i);k=i ;h6.close();for(i=0;i<k;i+)if(num=p6i.number)p6i.in();cout<<"

39、;修改完毕!"<<endl ;ofstream h1("f6.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)h1.write(char*)&p6i,sizeof p6i);h1.close();deletep6 ;void repair4(void)int num,i=0,k=0 ;bagman*p7=new bagman50;cout<<"请输入你要修改的编号:cin>>num ;fstream h7("f7.txt",ios 二 binar

40、y|ios 二 out|ios 二 in);h7.read(char*)&p7i,sizeof p7i);while(!h7.eof()i+;h7.read(char*)&p7i,sizeof p7i);k=i ;h7.close();for(i=0;i<k;i+)if(num=p7i.number)p7i.out();cout<<"修改完毕!"<<endl ;ofstream h1("f7.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)h1.write(cha

41、r*)&p7i,sizeof p7i);h1.close();deletep7 ;void repair()cout<<"*你 正 在 修 改*”<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*1.经理2 .技术人员3 .销售经理4.推销员

42、<<endl ;*”char c ;cin>>c ;while(c!='N'&&c!='n')switch(c)case '1':repair1();break ;case '2':repair2();break ;case '3':repair3();break ;case '4':repair4();break ;default :cout<<"ERROR!"<<endl ;break ;cout<<

43、”是否继续修改(Y/N)?"<<endl ;cin>>c ;if(c='Y'|c='y')cout<<"请输入你要修改的职称类型:"<<endl ;cin>>c ;void delete1()int i=0,number ;ifstream myfile("f1.txt",ios 二 binary|ios : in);mgr p30;myfile.read(char*)(p+i),sizeof*p);cout<<"请输入你要删除的对

44、象的编号:"<<endl ;cin>>number ;while(!myfile.eof()if(number=pi.number)i-;i+;myfile.read(char*)(p+i),sizeof*p);int k=i ;myfile.close();ofstream file2("f1.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)file2.write(char*)(p+i),sizeof*p);void delete2()int i=0,number ;ifstream myfi

45、le("f2.txt",ios 二 binary|ios 二 in);technician p30;:"<<endl ;myfile.read(char*)(p+i),sizeof*p);cout<<"请输入你要删除的对象的编号cin>>number ;while(!myfile.eof()if(number=pi.number)i-;i+;myfile.read(char*)(p+i),sizeof*p);int k=i ;myfile.close();ofstream file2("f2.txt"

46、;,ios 二 binary|ios 二 out);for(i=0;i<k;i+)file2.write(char*)(p+i),sizeof*p);void delete3()int i=0,number ;ifstream myfile("f6.txt",ios 二 binary|ios : in);sell p30;myfile.read(char*)(p+i),sizeof*p);cout<<"请输入你要删除的对象的编号:"<<endl ;cin>>number ;while(!myfile.eof()i

47、f(number=pi.number)i-;i+;myfile.read(char*)(p+i),sizeof*p);int k=i ;myfile.close();ofstream file2("f6.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)file2.write(char*)(p+i),sizeof*p);void delete4()int i=0,number ;ifstream myfile("f7.txt",ios 二 binary|ios 二 in);bagman p30;:"&

48、lt;<endl ;myfile.read(char*)(p+i),sizeof*p);cout<<"请输入你要删除的对象的编号cin>>number ;while(!myfile.eof()if(number=pi.number)i-;i+;myfile.read(char*)(p+i),sizeof*p);int k=i ;myfile.close();ofstream file2("f7.txt",ios 二 binary|ios 二 out);for(i=0;i<k;i+)file2.write(char*)(p+i),sizeof*p);void delet()cout<<"*"<<endi ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*"<<endl ;cout<<"*你 正 在删 除1.经理2 .技术人员3 .销售经理4 .推销

温馨提示

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

评论

0/150

提交评论