




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、公司人事管理系统专业软件工程移动应用开发学生姓名郭迁迁班级学号指导教师完成日期2014/6/201、功能图1、创建系统2、显示所有员工信息3、添加员工信息4、删除员工信息5、查找员工信息6、修改员工信息7、对员工月薪进行排序8、数据存盘0、退出系统输入账号密码进入系统公司人事管理系统2、类图技术经理类业务经理类文秘类技术人员类财务人员类经理类Person类(基类) 3、界面不同用户进入的选择界面老板进入的界面员工进入的界面 4、数据存储结构写入文件退出系统进行相应的操作读取文件信息保存方式:采用二进制进行数据的保存结构:在每对员工的数据信息进行操作时,首先读取文件,然后进行下面增删查改等相应的
2、操作,在对相应操作后自动进行数据的存盘读取方式:读取链表,写入文件。5、 总结和体会 通过这一次C+课程设计,让我学到了很多,让我学到对一个大型系统的设计不止是对代码的实现,要有一个洞察全局的心,就是先想好,有一个大致的规划,然后再去用代码实现非常容易,如果不想好就会写代码,那么会遇到很多问题,有时会使所做的功夫白费,所以提前想好是非常重要的。 在写公司人事管理系统时我遇到了很多问题,例如对文件的添加,使自己没有一点办法,在老师的耐心讲解下,终于完成了文件的添加,使自己对于文件有了新的认识,老师为我们讲解了类的实现,使自己有了新的理解,还让我体会到了交流的重要性,我虽然是社团的人员,但是很少和
3、别人交流。我要学会去和别人交流想法。代码如下:#include <iostream>#include <fstream>using namespace std;void Link();class Personprotected:char name10;/姓名 char level20;/级别 int NO;/编号 int Flag;/标记public:Person *next;Person(char na10,char le20,int no,int F); Person() Person() virtual void Show() virtual double Wag
4、e() int Get_NO(); char *Get_Name(); char *Get_Level(); int Get_Flag(); int *Get_Flag1();Person:Person(char na10,char le20,int no,int F) strcpy(name,na); strcpy(level,le); NO=no; Flag=F; int Person:Get_NO()return NO;char *Person:Get_Name()return name;char *Person:Get_Level()return level;int Person:Ge
5、t_Flag()return Flag;int *Person:Get_Flag1()return &Flag;class Manager:public Person/经理manager.public:Manager(char na10,char le20,int no,int F):Person(na,le,no,F) Manager() double Wage(); void Show();double Manager:Wage() return 5000;void Manager:Show() cout << "编号:" << NO &
6、lt;< "t" << "级别:" << level << "t" << "名字:" << name << "t"<< "工资" << Wage()<< endl; class Technical:public Person/技术人员technicalprivate: double number;/代码量public: Technical(char na10,ch
7、ar le20,double dm,int no,int F); Technical() Technical() double Wage(); void Show();Technical:Technical(char na10,char le20,double dm,int no,int F):Person(na,le,no,F) number=dm; double Technical:Wage() return number*1000;void Technical:Show() cout << "编号:" << NO << "
8、t" << "级别:" << level << "t" << "名字:" << name << "t"<< "工资" << Wage()<< endl; class Business:public Person/业务人private: double sale,amount;/sale该业务人员当月销售额amount该业务员当月项目额public: Business(char na
9、10,char le20,double sa,double am,int no,int F); Business() Business() double Wage(); void Show();Business:Business(char na10,char le20,double sa,double am,int no,int F):Person(na,le,no,F) sale=sa; amount=am; double Business:Wage() return sale*1.5+amount*0.1;void Business:Show() cout << "编
10、号:" << NO << "t" << "级别:" << level << "t" << "名字:" << name << "t"<< "工资" << Wage()<< endl; class Business_Manager:public Manager/业务经理private: double MB_salay; double sal
11、e,amount;/sale业务经理总的月销售额 amount业务经理总的项目额public: Business_Manager(char na10,char le20,double sa,double am,int no,int F); Business_Manager() Business_Manager() double Wage(); void Show();Business_Manager:Business_Manager(char na10,char le20,double sa,double am,int no,int F):Manager(na,le,no,F) sale=sa
12、; amount=am;double Business_Manager:Wage() return sale*1.5+amount*0.1+2000;void Business_Manager:Show() cout << "编号:" << NO << "t" << "级别:" << level << "t" << "名字:" << name << "t"<<
13、; "工资" << Wage()<< endl; class Secretary:public Personpublic:Secretary(char na10,char le20,int no,int F);Secretary()double Wage();void Show();Secretary:Secretary(char na10,char le20,int no,int F):Person(na,le,no,F)double Secretary:Wage() return 1500;void Secretary:Show() cout &
14、lt;< "编号:" << NO << "t" << "级别:" << level << "t" << "名字:" << name << "t"<< "工资" << Wage()<< endl; class Boss/老板protected: Person *head;public: void creat(); void
15、 Add_Information();/增添员工信息 void Delete_Information();/删除员工信息 void Show();/显示员工信息 void Search_Information();/查找员工信息 void Modify_Information();/修改员工信息 void Sort();/对员工月薪进行排序 void Staff(); void menu();/菜单 void Write_File();/写入文件 void Read_File();/读文件;void Boss:menu()/菜单 cout <<"ttt="<
16、;< endl; cout <<"ttt|*公司人事管理系统*| "<< endl; cout <<"ttt|=|"<< endl; cout <<"ttt|1.创建系统,请输入员工信息 | "<< endl; cout <<"ttt|2.显示所有员工信息 | "<< endl; cout <<"ttt|3.添加员工信息 | "<< endl; cout <<
17、"ttt|4.删除员工信息 | "<< endl; cout <<"ttt|5.查找员工信息 | "<< endl; cout <<"ttt|6.修改员工信息 | "<< endl; cout <<"ttt|7.对员工月薪排序 | "<< endl; cout <<"ttt|0.安全退出系统 | "<< endl; cout <<"ttt="<<
18、 endl;void Boss:creat()/创建员工信息库 Person *p1,*p2; char na10; char le20; int no; double dm; double y,x;/当月销售额,承接项目额 int n; int F; head=new Person(na,le,no,F); p2=head; static int i=1; char ch; do cout << "*" << endl; cout << "|1-经理 |2-技术人员 |3-业务人员 |4-业务经理 |5-文秘 |"
19、<< endl; cout << "*" << endl; cout << "请输入该职工的级别(选择相应序号即可):" cin >> n ; no=i;/编号 if(n=1) strcpy(le,"经理"); cout << "请输入经理的名字:" ; cin >> na; F=1; p1=new Manager(na,le,no,F); else if(n=2) strcpy(le,"技术人员"); cout
20、 << "请输入技术人员的名字:" << endl; cin >> na; cout << "请输入代码量(/千行):" << endl; cin >> dm ; F=2; p1=new Technical (na,le,dm,no,F); else if(n=3) strcpy(le,"业务人员"); cout << "请输入业务人员的名字:" << endl; cin >> na; cout <&l
21、t; "请输入业务的当月销售额:" ; cin >> y; cout << "请输入项目额:" ; cin >> x; F=3; p1=new Business(na,le,y,x,no,F); else if(n=4) strcpy(le,"业务经理"); cout << "业务经理的名字:" ; cin >> na; cout << "请输入业务的当月销售额:" ; cin >> y; cout <&l
22、t; "请输入项目额:" ; cin >> x; F=4; p1=new Business_Manager(na,le,y,x,no,F); else if(n=5) strcpy(le,"文秘"); cout << "文秘的名字:" ; cin >> na; F=5; p1=new Secretary(na,le,no,F); p2->next=p1; p2=p1; i+; cout << "输入( y / Y)继续:" ; cin >> ch;
23、while(ch='y'|ch='Y'); p2->next=NULL;void Boss:Show()/显示本月员工的信息 Person *p=head->next; if(p=NULL) cout << "系统未存入任何人员信息,请存入信息后再进行操作!" <<endl; exit ( -1 ); while(p!=NULL) p->Show(); p=p->next; void Boss:Add_Information()/增添员工信息char na10;char le20;int dm;
24、double y;double x;int no;char ch;int F;do Person *p=head,*p1;while(p->next!=NULL)p=p->next;int n;cout << "*" << endl; cout << "|1-经理 |2-技术人员 |3-业务人员 |4-业务经理 |5-文秘 |" << endl; cout << "*" << endl; cout << "tt请输入该职工的级别(
25、选择相应序号即可):" cin >> n;switch(n)case 1:strcpy(le,"经理"); cout << "请输入经理的名字:" << endl; cin >> na; cout << "请输入编号:" cin >> no; F=1; p1=new Manager(na,le,no,F);break; case 2:strcpy(le,"技术人员"); cout << "请输入技术人员的名字:&
26、quot; << endl; cin >> na; cout << "请输入代码量(千行):" << endl; cin >> dm ; cout << "请输入编号:" cin >> no; F=2; p1=new Technical (na,le,dm,no,F);break; case 3:strcpy(le,"业务人员"); cout << "请输入业务人员的名字:" << endl; cin >
27、;> na; cout << "请输入业务的当月销售额:" ; cin >> y; cout << "请输入项目额:" ; cin >> x; cout << "请输入编号:" cin >> no; F=3; p1=new Business(na,le,y,x,no,F);break; case 4:strcpy(le,"业务经理"); cout << "业务经理的名字:" ; cin >> n
28、a; cout << "请输入业务经理的当月销售额:" ; cin >> y; cout << "请输入项目额:" ; cin >> x; cout << "请输入编号:" cin >> no; F=4; p1=new Business_Manager(na,le,y,x,no,F);break; case 5:strcpy(le,"文秘"); cout << "文秘的名字:" ; cin >> na
29、; cout << "请输入编号:" cin >> no; F=5; p1=new Secretary(na,le,no,F);break; default:cout << "你的输入有误,请选择(15)进行输入!" ;p->next=p1;p1->next=NULL;cout << "Continue ? (y/n):" ;cin >> ch ; while(ch='y'|ch='Y');void Boss:Delete_Info
30、rmation()/删除指定员工信息 Person *p1,*p2; int num; char na10; int n; char ch; do int flag=0; cout << "ttt=Tips=" << endl; cout << "ttt|*输入1按编号删除信息*|" << endl; cout << "ttt|*输入2按姓名删除信息*|" << endl; cout << "ttt=" << endl;
31、 cout << "ttt请输入删除的方式:" ; cin >> n; if(n=1) cout << "请你输入你要删除员工的编号:" cin >> num; p1=head; while(p1->next!=NULL) p2=p1; p1=p1->next; if(p1->Get_NO()=num) p2->next=p1->next; flag=1; p1 = NULL; delete p1; break; else if(n=2) cout << "
32、;请你输入你要删除员工的姓名:" cin >> na; p1=head; while(p1->next!=NULL) p2=p1; p1=p1->next; if(strcmp(p1->Get_Name(),na)=0) p2->next=p1->next; p1 = NULL; delete p1; flag=1; break; else cout << endl; cout << " 输入的操作选项错误,请选择正确的命令进行操作"<< endl; cout << endl
33、; if(flag=1) cout << endl; cout << " >>>>>删除成功<<<<<" << endl; cout << endl; else cout << endl; cout << " >>>>>删除失败,可能未存入此员工信息or指令错误,请你核实后继续!<<<<<"<< endl; cout << endl; cou
34、t << "Continue ?" << "(y/n):" ; cin >> ch ; while(ch='y'|ch='Y'); Boss:Show();/调用函数显示结果void Boss:Search_Information()/查找信息 char ch; do Person *p1=head->next; int S_num; cout << "请输入你要查寻员工的编号:" ; cin >> S_num; while(p1!=NU
35、LL) if(p1->Get_NO()=S_num) cout << "该员工信息为:"<< endl; p1->Show(); break; p1=p1->next; cout << "Continue?(Y/N):" ; cin >> ch; while(ch='Y'|ch='y');void Boss:Staff()/员工功能cout << "请登录:"<<endl;Person *p1=head->n
36、ext;if(p1=NULL)cout << "系统未导入信息!"<<endl;int S_num;char name10;cout << "帐号:" ;cin >> name;while(p1!=NULL)if(strcmp(p1->Get_Name(),name)=0)cout << "密码"cin >> S_num;if(p1->Get_NO()=S_num)cout << "你的信息为:"<< end
37、l;cout << endl;p1->Show();cout << "0.注销登录"<< endl;int n;cin >> n;if(n=0)exit ( -1 );elsecout << endl;cout << "帐号密码不正确,请核实后重试!" << endl;p1=p1->next;void Boss:Modify_Information()/修改指定员工的信息Person *p1=head->next,*p2=head,*p3=NULL;ch
38、ar na10;char le20;int dm;double y;double x;int no;int num;int F;cout << "请你输你要修改员工的编号:" ;cin >> num;int i=0;while(p1!=NULL) if(p1->Get_NO()=num) int n;cout << "该员工信息为:" << endl;p1->Show();cout << endl << endl;cout << " 请输入新的员工级
39、别:"<< endl;cout << endl;cout << "*" << endl; cout << "|1-经理 |2-技术人员 |3-业务人员 |4-业务经理 |5-文秘 |" << endl; cout << "*" << endl; cin >> n;switch(n)case 1:strcpy(le,"经理"); cout << "请输入经理的名字:"
40、; cin >> na; cout << "请输入编号:" cin >> no; F=1; p3=new Manager(na,le,no,F);break;case 2:strcpy(le,"技术人员"); cout << "请输入技术人员的名字:" ; cin >> na; cout << "请输入代码量(千行):" ; cin >> dm ; cout << "请输入编号:" cin >&
41、gt; no; F=2; p3=new Technical (na,le,dm,no,F);break;case 3:strcpy(le,"业务人员"); cout << "请输入业务人员的名字:" ; cin >> na; cout << "请输入业务的当月销售额:" ; cin >> y; cout << "请输入项目额:" ; cin >> x; cout << "请输入编号:" cin >>
42、no; F=3; p3=new Business(na,le,y,x,no,F);break;case 4:strcpy(le,"业务经理"); cout << "业务经理的名字:" ; cin >> na; cout << "请输入业务经理的当月销售额:" ; cin >> y; cout << "请输入项目额:" ; cin >> x; cout << "请输入编号:" cin >> no; F=
43、4; p3=new Business_Manager(na,le,y,x,no,F);break;case 5:strcpy(le,"文秘"); cout << "文秘的名字:" ; cin >> na; cout << "请输入编号:" cin >> no; F=5; p3=new Secretary(na,le,no,F);break; default:cout << "你的输入有误,请选择(15)进行输入!" p3->next=p1->n
44、ext; p2->next=p3; delete p1; i=1; p1=p1->next; p2=p2->next; if(i=0) cout << endl; cout << "&&&&&&&&无此员工信息,请你核实后重试&&&&&&&&&&" << endl; cout << endl; void Boss:Sort()/排序 Person *p,*q,*min
45、,*min1,*h,*newhead; newhead=new Person; h=newhead; while(head->next!=NULL) min1=p=head; min=q=head->next; while(q!=NULL) if(q->Wage() > min->Wage() min1=p; min=q; q=q->next; p=p->next; min1->next=min->next; min->next=NULL; h->next=min; h=min; head=newhead; cout <&
46、lt; "排序成功" << endl;void Boss:Write_File()Person *p=head->next;ofstream myfile("员工管理.txt");ofstream my("郭迁迁.txt");if(!my )cout<<"文件打开失败 !"<<endl;exit(-1);int n;do int size; n=p->Get_Flag(); switch(n) case 1:size=sizeof(Manager);break; ca
47、se 2:size=sizeof(Technical );break; case 3:size=sizeof(Business);break; case 4:size=sizeof(Business_Manager);break; case 5:size=sizeof(Secretary);break; my.write(char *)(p->Get_Flag1(),sizeof(int); my(char *)p,size); p=p->next; while(p!=NULL) ;my();my.close();void Boss:Read_File() Person *p1,*p2; char na10; char jb20; int dm; double y; double x; int no; int num; int F; ifstream infile("员工管理.txt"); ifstream in("郭迁迁.txt"); if(!in) cout << "tt系统为存入任何信息,请你创建系统后再进行相应操作!" << endl; ofstream myfile("员工管理.txt");ofstream my(&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 领会福禄贝尔的教育理论
- 2025年公司及项目部安全培训考试试题附参考答案【基础题】
- 2025日常安全培训考试试题及完整答案(考点梳理)
- 2024-2025新入职工安全培训考试试题(完整)
- 2024-2025全员安全培训考试试题附答案(考试直接用)
- 2025年厂里厂里安全培训考试试题往年题考
- 2025年员工安全培训考试试题答案审定版
- 2025年新入员工安全培训考试试题(a卷)
- 人教版五下语文第七单元课件
- 2024-2025工厂安全培训考试试题(可下载)
- 《单轴面筋脱水机设计报告(论文)》
- 内分泌系统 肾上腺 (人体解剖生理学课件)
- GPS静态数据观测记录表
- 山西省城镇教师支援农村教育工作登记表
- 软件项目周报模板
- 著名中医妇科 夏桂成教授补肾调周法
- VSM(价值流图中文)课件
- 考古发掘中文物的采集与保存课件
- 人工气道的护理刘亚课件
- 专业技术人员
- 拌和场安全检查表
评论
0/150
提交评论