已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公司人事管理系统专业软件工程移动应用开发学生姓名郭迁迁班级学号指导教师完成日期2014/6/201、功能图1、创建系统2、显示所有员工信息3、添加员工信息4、删除员工信息5、查找员工信息6、修改员工信息7、对员工月薪进行排序8、数据存盘0、退出系统输入账号密码进入系统公司人事管理系统2、类图技术经理类业务经理类文秘类技术人员类财务人员类经理类Person类(基类) 3、界面不同用户进入的选择界面老板进入的界面员工进入的界面 4、数据存储结构写入文件退出系统进行相应的操作读取文件信息保存方式:采用二进制进行数据的保存结构:在每对员工的数据信息进行操作时,首先读取文件,然后进行下面增删查改等相应的操作,在对相应操作后自动进行数据的存盘读取方式:读取链表,写入文件。5、 总结和体会 通过这一次C+课程设计,让我学到了很多,让我学到对一个大型系统的设计不止是对代码的实现,要有一个洞察全局的心,就是先想好,有一个大致的规划,然后再去用代码实现非常容易,如果不想好就会写代码,那么会遇到很多问题,有时会使所做的功夫白费,所以提前想好是非常重要的。 在写公司人事管理系统时我遇到了很多问题,例如对文件的添加,使自己没有一点办法,在老师的耐心讲解下,终于完成了文件的添加,使自己对于文件有了新的认识,老师为我们讲解了类的实现,使自己有了新的理解,还让我体会到了交流的重要性,我虽然是社团的人员,但是很少和别人交流。我要学会去和别人交流想法。代码如下:#include #include 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 Wage() 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:Get_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 t 级别: level t 名字: name t 工资 Wage() endl; class Technical:public Person/技术人员technicalprivate: double number;/代码量public: Technical(char na10,char 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 t 级别: level t 名字: name t 工资 Wage() endl; class Business:public Person/业务人private: double sale,amount;/sale该业务人员当月销售额amount该业务员当月项目额public: Business(char na10,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 编号: NO t 级别: level t 名字: name t 工资 Wage() endl; class Business_Manager:public Manager/业务经理private: double MB_salay; double sale,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; 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 工资 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 编号: NO t 级别: level t 名字: name t 工资 Wage() endl; class Boss/老板protected: Person *head;public: void creat(); void 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= endl; cout ttt|*公司人事管理系统*| endl; cout ttt|=| endl; cout ttt|1.创建系统,请输入员工信息 | endl; cout ttt|2.显示所有员工信息 | endl; cout ttt|3.添加员工信息 | endl; cout ttt|4.删除员工信息 | endl; cout ttt|5.查找员工信息 | endl; cout ttt|6.修改员工信息 | endl; cout ttt|7.对员工月薪排序 | endl; cout ttt|0.安全退出系统 | endl; cout ttt= 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-文秘 | endl; cout * endl; cout n ; no=i;/编号 if(n=1) strcpy(le,经理); cout na; F=1; p1=new Manager(na,le,no,F); else if(n=2) strcpy(le,技术人员); cout 请输入技术人员的名字: na; cout 请输入代码量(/千行): dm ; F=2; p1=new Technical (na,le,dm,no,F); else if(n=3) strcpy(le,业务人员); cout 请输入业务人员的名字: na; cout y; cout x; F=3; p1=new Business(na,le,y,x,no,F); else if(n=4) strcpy(le,业务经理); cout na; cout y; cout x; F=4; p1=new Business_Manager(na,le,y,x,no,F); else if(n=5) strcpy(le,文秘); cout na; F=5; p1=new Secretary(na,le,no,F); p2-next=p1; p2=p1; i+; cout ch; while(ch=y|ch=Y); p2-next=NULL;void Boss:Show()/显示本月员工的信息 Person *p=head-next; if(p=NULL) cout 系统未存入任何人员信息,请存入信息后再进行操作! Show(); p=p-next; void Boss:Add_Information()/增添员工信息char na10;char le20;int dm;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 n;switch(n)case 1:strcpy(le,经理); cout 请输入经理的名字: na; cout no; F=1; p1=new Manager(na,le,no,F);break; case 2:strcpy(le,技术人员); cout 请输入技术人员的名字: na; cout 请输入代码量(千行): dm ; cout no; F=2; p1=new Technical (na,le,dm,no,F);break; case 3:strcpy(le,业务人员); cout 请输入业务人员的名字: na; cout y; cout x; cout no; F=3; p1=new Business(na,le,y,x,no,F);break; case 4:strcpy(le,业务经理); cout na; cout y; cout x; cout no; F=4; p1=new Business_Manager(na,le,y,x,no,F);break; case 5:strcpy(le,文秘); cout na; cout no; F=5; p1=new Secretary(na,le,no,F);break; default:cout next=p1;p1-next=NULL;cout ch ; while(ch=y|ch=Y);void Boss:Delete_Information()/删除指定员工信息 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; cout n; if(n=1) cout 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 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; if(flag=1) cout endl; cout 删除成功 endl; cout endl; else cout endl; cout 删除失败,可能未存入此员工信息or指令错误,请你核实后继续! endl; cout endl; cout Continue ? ch ; while(ch=y|ch=Y); Boss:Show();/调用函数显示结果void Boss:Search_Information()/查找信息 char ch; do Person *p1=head-next; int S_num; cout S_num; while(p1!=NULL) if(p1-Get_NO()=S_num) cout 该员工信息为:Show(); break; p1=p1-next; cout ch; while(ch=Y|ch=y);void Boss:Staff()/员工功能cout 请登录:next;if(p1=NULL)cout 系统未导入信息!endl;int S_num;char name10;cout name;while(p1!=NULL)if(strcmp(p1-Get_Name(),name)=0)cout S_num;if(p1-Get_NO()=S_num)cout 你的信息为: endl;cout Show();cout 0.注销登录 n;if(n=0)exit ( -1 );elsecout endl;cout 帐号密码不正确,请核实后重试! next;void Boss:Modify_Information()/修改指定员工的信息Person *p1=head-next,*p2=head,*p3=NULL;char na10;char le20;int dm;double y;double x;int no;int num;int F;cout num;int i=0;while(p1!=NULL) if(p1-Get_NO()=num) int n;cout 该员工信息为: Show();cout endl endl;cout 请输入新的员工级别: endl;cout endl;cout * endl; cout |1-经理 |2-技术人员 |3-业务人员 |4-业务经理 |5-文秘 | endl; cout * n;switch(n)case 1:strcpy(le,经理); cout na; cout no; F=1; p3=new Manager(na,le,no,F);break;case 2:strcpy(le,技术人员); cout na; cout dm ; cout no; F=2; p3=new Technical (na,le,dm,no,F);break;case 3:strcpy(le,业务人员); cout na; cout y; cout x; cout no; F=3; p3=new Business(na,le,y,x,no,F);break;case 4:strcpy(le,业务经理); cout na; cout y; cout x; cout no; F=4; p3=new Business_Manager(na,le,y,x,no,F);break;case 5:strcpy(le,文秘); cout na; cout no; F=5; p3=new Secretary(na,le,no,F);break; default:cout next=p1-next; p2-next=p3; delete p1; i=1; p1=p1-next; p2=p2-next; if(i=0) cout endl; cout &无此员工信息,请你核实后重试& endl; cout 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 排序成功 next;ofstream myfile(员工管理.txt);ofstream my(郭迁迁.txt);if(!myfile|!my )cout文件打开失败 !Get_Flag(); switch(n) case 1:size=sizeof(Manager);break; case 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); myfile.write(char *)p,size); p=p-next; while(p!=NULL) ;myfile.close();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(!infile|!in) cout tt系统为存入任何信息,请你创建系统后再进行相应操作! 0) p1-next=p2; p1=p2; int n; in.read(char *)(&n),sizeof(int); switch(n) case 1:size=sizeof(Manager(na,jb,no,F); p2=new Manager(na,jb,no,F);break; case 2:size=sizeof(Technical (na,jb,dm,no,F); p2=new Technical (na,jb,dm,no,F);break; case 3:size=sizeof(Busi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械店疫情防控操作流程
- 旅游季节:常见传染病自我鉴别
- 2023年12月吉林辽源市教育系统专业人才校园招聘50人笔试历年高频考点(难、易错点)附带答案详解
- 传染病分类知识:机场卫生检疫手册
- 老年性高血压:营养饮食建议
- 抗菌药物使用宣传教育管理规定
- 恙虫病(传染病):校园防控要点
- 仔猪成长宝典:传染病预防指南
- 园艺专家教你防治杏树病虫害
- 2024年04月广东广州医科大学附属第四医院护理人员编外招考聘用45人(一)笔试历年常考点试题后附答案详解
- 企业营运指标
- 药品微生物限度检验记录
- 综采液压支架大修工艺设计
- 防汛演练电视采访发言
- 两位数除以一位数说课稿
- 幼儿园主题墙教研活动研讨
- 2023年吉林省长春市九台区政府办公室招聘8人笔试参考题库(共500题)答案详解版
- 医院安全风险分级管控清单
- 时空知识图谱建模与应用
- 网店客服客户关系管理
- 全国中小学信息技术课程教学大赛获奖案例 机器人在线仿真平台-循迹踢球
评论
0/150
提交评论