1、职工信息管理系统外加课程设计报告/*职工信息管理系统建立一个职工信息管理系统,对于普通员工只能查询和修改自己的详细信息和查询其他员工的简单信息,对于人事部门人员可以查询、修改、增加所有职工的详细信息(但不包含修改工资),对于财务部门人员可以查询所有职工的详细信息,和修改职工的工资。(1) 进入系统需要密码验证(2) 具有简单的菜单功能。(不同类型的员工的菜单形式不同)(3)能够按要求完成职工信息的增加,删除,查询和更新相关信息(4)对程序源代码要给出各部分的详细注释。(5)雇员信息以文件的形式存储。(6)自己根据能力及需要添加相应功能模块,增强模拟系统功能。*/#include#include
2、/因为要用到控制符,所以添加其定义#include/输入输出文件流类#include#define SIZE 100using namespace std; class infomation/定义包含需要处理信息的类 public: char name10;/姓名 char num10;/工号 char sex3;/性别 int age;/年龄 int department ;/部门 1普通职工 2人事部门人员 3财务部门人员 char address10;/地址 float salary;/工资 char date12;/出生日期 char pswd10;/密码 ;infomation st
3、uSIZE;/每个元素对应一条信息int len;/总数int ID;/登录者的索引class person/定义普通职工类public: person(); person(); void load();/读取信息 void save();/保存信息 int menu();/菜单 void modify();/修改信息 void search(); / 信息查询 int check(char s,int i);/检查是否有信息重复;class renshi : public person/定义人事部门类public: void input();/录入信息 void del();/删除信息;cl
4、ass caiwu : public person/定义财务部门类public: void modify_salary();/修改工资 ;char filename=person.txt;person:person()person:person() void caiwu:modify_salary() char s20; system(cls);/清屏 couts; for(int i=0;ilen;i+)/查找所有信息,查询是否存在输入的信息 if(strcmp(stui.num,s)=0) break;/存在 if(i=len)/相等,说明输入信息不存在 cout对不起!没有你输入工号的相
5、关信息。endl; system(pause);/任意键继续 return; coutstui.salary; save();/保存 cout工资修改成功!stui.name stui.num stui.sex stui.age stui.department stui.address stui.salary stui.date stui.pswd ;/读取文件 if(!file.eof() i+; file.close();/关闭文件 else strcpy(stu0.name,管理员); strcpy(stu0.num,0);/初始登录工号 strcpy(stu0.pswd,0);/初始登
6、录密码 stu0.department=2;/为人事部门人员 strcpy(stu0.sex,男); strcpy(stu0.address,北京); strcpy(stu0.date,2010-10-01); stu0.age=22; stu0.salary=2000; i=1; len=i;void person:save()/保存录入职工信息 fstream file(filename,ios:out | ios:trunc); if(file.is_open() for(int i=0;ilen;i+) file stui.namet stui.numt stui.sext stui.
7、aget stui.departmentt stui.addresst stui.salaryt stui.datet stui.pswdt endl;/写入文件 file.close();/关闭文件 int person:check(char s,int i)/检查是否重复 int g=0; for(;glen;g+) if(strcmp(stug.num,s)=0 & i!=g)/比较是不是一样 , 一样就说明重复了 return 1;/表示重复了 return 0;/查找了整个数组都没发现重复的 表示没有重复void renshi:input()/录入信息 char ch; system
8、(cls);/清屏 for(int i=len;iSIZE;i+) coutstui.name; coutstui.num; while(check(stui.num,i)=1) coutstui.num; coutch; if(ch=1 | ch=2) break; else cout输入错误请重新输入:; if(ch=1 ) strcpy(stui.sex,男); else strcpy(stui.sex,女); coutstui.age; coutstui.department; if(stui.department=1 | stui.department=2 | stui.depart
9、ment=3) break; else cout输入错误请重新输入:; coutstui.address; coutstui.salary; coutstui.date; coutstui.pswd; len+;/个数加1 coutch; if(ch=y | ch=Y | ch=n | ch=N) break; else cout输入错误请重新输入:; if(ch=n | ch=N) break; save();/保存 void renshi:del()/删除信息 char s20; system(cls);/清屏 couts; for(int i=0;ilen;i+)/遍历所有信息,查询是否
10、存在输入的信息 if(strcmp(stui.num,s)=0) break;/存在 结束循环 if(i=len)/这二者相等说明查找完所有信息也没找到输入信息,说明输入信息不存在 cout对不起!没有你输入工号的相关信息。n; system(pause);/任意键继续 return; stui=stulen-1;/用最后一条信息覆盖要删除的信息 len-;/信息条数减一 save();/保存 cout删除成功!endl; system(pause);/任意键继续void person:modify()/修改信息 int i; char s20,ch; system(cls);/清屏 if(s
11、tuID.department=1)/是普通职工 i=ID; else couts; for(i=0;ilen;i+)/查找了所有信息,查询是否存在输入的信息 if(strcmp(stui.num,s)=0) break;/存在 结束循环 if(i=len)/相等,说明输入信息不存在 cout对不起!没有你输入工号的相关信息。n; system(pause);/任意键继续 return; coutstui.name; coutstui.num; while(check(stui.num,i)=1) coutstui.num; coutch; if(ch=1 | ch=2) break; els
12、e cout输入错误请重新输入:; if(ch=1 ) strcpy(stui.sex,男); else strcpy(stui.sex,女); coutstui.age; coutstui.department; if(stui.department=1 | stui.department=2 | stui.department=3) break; else cout输入错误请重新输入:; coutstui.address; coutstui.date; coutstui.pswd; save();/保存 cout修改成功!endl; system(pause);/任意键继续 void pe
13、rson:search() /职工信息查询 char s20; system(cls);/清屏 couts; for(int i=0;ilen;i+)/查找了所有信息,查询是否存在输入的信息 if(strcmp(stui.num,s)=0) break;/存在 if(i=len)/相等,说明输入信息不存在 cout对不起!没有你输入工号的相关信息。n; system(pause);/任意键继续 return; cout 查询结果如下:endl; cout*1)/是自己 或不是普通职工 cout姓名 工号 性别 年龄 部门 地址 工资 出生日期 endlendl; cout.setf(ios:l
14、eft);/设置左对齐 coutsetiosflags(ios:fixed)setprecision(2)/设置保留小数,其用法见书上228页的格式输出 setw(10)stui.name setw(10)stui.num setw(6)stui.sex setw(6)stui.age setw(6)stui.department setw(10)stui.address setw(10)stui.salary setw(12)stui.date endl; else cout姓名: 工号: 性别: 年龄: 部门: 出生日期: endlendl; cout.setf(ios:left);/设置
15、左对齐 coutsetiosflags(ios:fixed)setprecision(2)/设置保留小数,其用法见书上228页的格式输出 setw(10)stui.name setw(10)stui.num setw(6)stui.sex setw(6)stui.age setw(6)stui.department setw(12)stui.date endl ; cout*endl; cout备注:1、普通职工 2、人事部门人员 3、财务部门人员endl; system(pause);/任意键继续void login()/实现职工登录 char num10,pswd10; system(cl
16、s);/清屏 cout*endl; cout 人事部门初始工号:0 密码:0 endl; cout*endl; coutnum; for(int i=0;ilen;i+)/查找所有信息,看是否存在输入的信息 if(strcmp(stui.num,num)=0) break;/存在 if(i=len)/相等,说明输入信息不存在 cout 对不起!没有你输入工号的相关信息。; system(pause);/任意键继续 exit(0); coutpswd; if(strcmp(pswd,stui.pswd)!=0)/匹配密码 cout 对不起!密码错误,登录失败。; system(pause);/任
17、意键继续 return; else ID=i;/登录者索引 cout 登录成功。; system(pause);/任意键继续 int person:menu()/总的功能菜单 int c; system(cls);/清屏 if(stuID.department=1) cout *endl; cout 1、修改职工信息 endl; cout *endl; cout 2、查询职工信息 endl; cout *endl; cout 3、返回登录 endl; cout *endl; else if(stuID.department=2) cout *endl; cout 1、增加职工信息 endl;
18、cout *endl; cout 2、修改职工信息 endl; cout *endl; cout 3、查询职工信息 endl; cout *endl; cout 4、删除职工信息 endl; cout *endl; cout 5、返回登录 endl; cout *endl; else if(stuID.department=3) cout *endl; cout 1、修改职工工资 endl; cout *endl; cout 2、查询职工信息 endl; cout *endl; cout 3、返回登录 endl; cout *endl; coutc; return c; /以下是对普通员工、人
19、事部门、财务部门权限的分类 int person1()/普通员工所具有的权限设置 person stud; stud.load();/读取文件信息 while(1) int sel=stud.menu();/获取选择 switch(sel) case 1: stud.modify(); break;/ 修改 case 2: stud.search(); break;/ 查询 case 3: return 0;/返回登录 return 0;int renshi1()/人事部门的功能 renshi stud; stud.load();/读取文件信息 while(1) int sel=stud.menu();/获取选择 switch(sel)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1