C++之职工管理系统设计
程序员文章站
2022-06-17 19:11:16
c++之 职工管理
介绍: 此设计只涉及了部分c++知识,大多是面向过程的c语言知识。
可以说是用c语言的思想编写的。
心得: 既然已经花费时间在这件事情上,就应该把这件事情做到最好!!!省去返工的...
c++之 职工管理
介绍: 此设计只涉及了部分c++知识,大多是面向过程的c语言知识。
可以说是用c语言的思想编写的。
心得: 既然已经花费时间在这件事情上,就应该把这件事情做到最好!!!省去返工的时间。
只是想做个纪念。。。
代码:
#include<conio.h> #include<cstdio> #include<string> #include<cstdlib> #include<cstring> #include<fstream> #include<iostream> #include<algorithm> using namespace std; #define maxn 10010 int xz; //选择; string sf; //是否; class start //界面管理 { public: void interface(); void waiting(); void printf(); void printf_re(); void menu(); }; class worker:public start //职工 { private: string wid; //职工号 string name; //姓名 string sex; //性别 string birthday; //出生年月 string education; //学历 string duty; //职务 int wage; //工资 string add; //住址 string phone; //电话 public: worker() { } ~worker() { } void show(); //显示职工信息 friend class boss; }; class boss:public start //老板 { private: worker w[maxn]; static int num; //职工数目; public: boss(); void append(); //输入 void display(); //显示 void search(); //查询 void modify(); //修改 void delete(); //删除 void save(); //保存 void allclear(); //全清 }; int boss::num=0; boss::boss() { ifstream file("inform.txt",ios::in); string q_id,q_name,q_sex,q_birthday,q_education,q_duty,q_add,q_phone; int q_wage; int total=0; if(!file) { cout<<"\t\t没有信息存入!!!"<<endl; getch(); exit(0); } while(!file.eof())//将所输入的数据作为整体一次性读出来 { q_id=""; file>>q_id>>q_name>>q_sex>>q_birthday>>q_education>>q_duty>>q_wage>>q_add>>q_phone; if(q_id.length()==0) break; w[total].wid=q_id; w[total].name=q_name; w[total].sex=q_sex; w[total].birthday=q_birthday; w[total].education=q_education; w[total].duty=q_duty; w[total].wage=q_wage; w[total].add=q_add; w[total].phone=q_phone; total++; //记录有多少组数据 } file.close(); num=total; } void start::printf() { cout<<"\t职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\t"<<endl; } void start::printf_re() { cout<<"\t没有职工信息存入"<<endl; } void start::waiting() { int i; cout<<"\n\t 请稍侯........... \t"; for(i=0; i<79900; i+=6) { switch(i%4) { case 1: cout<<"\b\\"; break; case 2: cout<<"\b-"; break; case 3: cout<<"\b/"; break; case 0: cout<<"\b|"; break; } } cout<<endl; } void start::menu() //菜单 { cout<<endl; cout<<" ********************* menu ******************** "<<endl; cout<<" 1. 信息输入 "<<endl; cout<<" 2. 全部信息显示 "<<endl; cout<<" 3. 信息查询 "<<endl; cout<<" 4. 信息修改 "<<endl; cout<<" 5. 信息删除 "<<endl; cout<<" 6. 信息保存 "<<endl; cout<<" 7. 信息全清 "<<endl; cout<<" 0. 退出系统 "<<endl; cout<<" ********************************************* "<<endl; cout<<endl; } void start::interface() //主界面 { boss wl; system("cls"); menu(); while(1) { cout<<"\t请选择你要实现的功能(0-6)"; cin>>xz; cout<<endl; while(xz<0||xz>7) { cout<<"\t输入有误,请重新输入:"; cin>>xz; cout<<endl; } switch(xz) { case 1: wl.append(); break; case 2: wl.display(); break; case 3: wl.search(); break; case 4: wl.modify(); break; case 5: wl.delete(); break; case 6: wl.save(); break; case 7: wl.allclear(); break; case 0: cout<<"\t系统退出!!!"<<endl; exit(0); break; default: break; } cout<<"\t是否返回主菜单?y/n (n直接退出系统)"; cin>>sf; cout<<endl; if(sf=="n"||sf=="n") { waiting(); cout<<endl; cout<<"\t是否已保存文件???"<<endl; cout<<endl; cout<<"\t若已保存,请按--1 (系统将不再保存文件)"<<endl; cout<<"\t若未保存并想要保存,请按--2"<<endl; cin>>xz; while(xz<1||xz>2) { cout<<"\t输入有误,请重新输入"; cin>>xz; cout<<endl; } if(xz==2) wl.save(); cout<<"\t系统退出!!"<<endl; exit(0); } else { system("cls"); menu(); } } } void boss::append() //信息输入 { cout<<"\t请不要输入已存在的职工号,以下是已存在的职工号:"<<endl; for(int i=0; i<num; i++) cout<<w[i].wid<<'\t'; cout<<endl; cout<<"\t请输入职工信息:"<<endl; do { cout<<"\t职工号:"; string num; cin>>num; while(1) { int flag=1; for(int i=0; i<num; i++) { if(num==w[i].wid) { cout<<"\t此职工号已存在,请重新输入:"; cin>>num; flag=0; cout<<endl; } } if(flag) break; } w[num].wid=num; cout<<"\t姓名:"; cin>>w[num].name; cout<<"\t性别(male/female):"; cin>>w[num].sex; cout<<"\t出生年月(yyyy/mm):"; cin>>w[num].birthday; cout<<"\t学历(junior/college/master/other):"; cin>>w[num].education; cout<<"\t职务:"; cin>>w[num].duty; cout<<"\t工资:"; cin>>w[num].wage; cout<<"\t地址:"; cin>>w[num].add; cout<<"\t电话:"; cin>>w[num].phone; num++; num=num; cout<<"\t是否要继续输入 y?(按任意键退出)"; cin>>sf; cout<<endl; } while(sf=="y"||sf=="y"); } void boss::display() //信息展示 { if(num<=0) { printf_re(); } else { int total=0; cout<<endl; cout<<"\t已保存的职工信息如下:"<<endl; printf(); for(int i=0; i<num; i++) { total++; cout<<"\t"<<w[i].wid<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].birthday; cout<<"\t\t"<<w[i].education<<'\t'<<w[i].duty<<'\t'<<w[i].wage<<'\t'<<w[i].add<<'\t'<<w[i].phone<<endl; } cout<<"\t\t这里共有"<<total<<"条数据"<<endl; } } void boss::search() //查询 { if(num<=0) { printf_re(); } else { do { cout<<"\t请选择查询方式"<<endl; cout<<"\t**************************"<<endl; cout<<"\t** **"<<endl; cout<<"\t** 1.按职工号查找 **"<<endl; cout<<"\t** 2.按姓名查找 **"<<endl; cout<<"\t** 3.按工资查找 **"<<endl; cout<<"\t** 4.按学历查找 **"<<endl; cout<<"\t** 0.返回主菜单 **"<<endl; cout<<"\t** **"<<endl; cout<<"\t**************************"<<endl; cout<<endl; cout<<"\t请选择要实现的功能【0-4】:"; cin>>xz; while(xz<0||xz>4) { cout<<endl; cout<<"\t输入有误,请重新输入:"; cin>>xz; } int fl,total=0; if(xz==1) { cout<<endl; string id; cout<<"\t请输入要查询的职工号:"; cin>>id; cout<<endl; fl=0; cout<<endl; cout<<"\t查询职工的信息如下:"<<endl; for(int j=0; j<num; j++) { if(id==w[j].wid) { total++; fl=1; if(j==0) printf(); cout<<"\t"<<w[j].wid<<'\t'<<w[j].name<<'\t'<<w[j].sex<<'\t'<<w[j].birthday<<"\t\t"<<w[j].education<<'\t'<<w[j].duty<<'\t'<<w[j].wage<<'\t'<<w[j].add<<'\t'<<w[j].phone<<endl; } } if(!fl) cout<<"\t不存在此职工!"<<endl; else cout<<"\t\t这里共有"<<total<<"条数据"<<endl; } else if(xz==2) { string nam; cout<<"\t请输入要查询的姓名:"; cin>>nam; fl=0; cout<<endl; cout<<"\t查询职工的信息如下:"<<endl; for(int j=0; j<num; j++) { if(nam==w[j].name) { total++; fl=1; if(j==0) printf(); cout<<"\t"<<w[j].wid<<'\t'<<w[j].name<<'\t'<<w[j].sex<<'\t'<<w[j].birthday; cout<<"\t\t"<<w[j].education<<'\t'<<w[j].duty<<'\t'<<w[j].wage<<'\t'<<w[j].add<<'\t'<<w[j].phone<<endl; } } if(!fl) cout<<"\t不存在此职工!"<<endl; else cout<<"\t\t这里共有"<<total<<"条数据"<<endl; } else if(xz==3) { int wag; cout<<"\t请输入要查询的工资:"; cin>>wag; fl=0; cout<<endl; cout<<"\t查询职工的信息如下:"<<endl; for(int j=0; j<num; j++) { if(wag==w[j].wage) { total++; fl=1; if(j==0) printf(); cout<<"\t"<<w[j].wid<<'\t'<<w[j].name<<'\t'<<w[j].sex<<'\t'<<w[j].birthday; cout<<"\t\t"<<w[j].education<<'\t'<<w[j].duty<<'\t'<<w[j].wage<<'\t'<<w[j].add<<'\t'<<w[j].phone<<endl; } } if(!fl) cout<<"\t不存在此职工!"<<endl; else cout<<"\t\t这里共有"<<total<<"条数据"<<endl; } else if(xz==4) { string edu; cout<<"\t请输入要查询的学历:"; cin>>edu; fl=0; cout<<endl; cout<<"\t查询职工的信息如下:"<<endl; for(int j=0; j<num; j++) { if(edu==w[j].education) { total++; fl=1; if(j==0) printf(); cout<<"\t"<<w[j].wid<<'\t'<<w[j].name<<'\t'<<w[j].sex<<'\t'<<w[j].birthday; cout<<"\t\t"<<w[j].education<<'\t'<<w[j].duty<<'\t'<<w[j].wage<<'\t'<<w[j].add<<'\t'<<w[j].phone<<endl; } } if(!fl) cout<<"\t不存在此职工!"<<endl; else cout<<"\t\t这里共有"<<total<<"条数据"<<endl; } else if(xz==0) { sf="n"; } if(xz!=0) { cout<<endl; cout<<"\t是否还要继续查询 y?(按任意键退出) "<<endl; cin>>sf; } } while(xz!=0&&(sf=="y"||sf=="y")); } } void boss::modify() //修改 { string n; if(num<=0) { printf_re(); } else { cout<<"\t全部职工信息如下:"<<endl; printf(); for(int ii=0; ii<num; ii++) { cout<<"\t"<<w[ii].wid<<'\t'<<w[ii].name<<'\t'<<w[ii].sex<<'\t'<<w[ii].birthday; cout<<"\t\t"<<w[ii].education<<'\t'<<w[ii].duty<<'\t'<<w[ii].wage<<'\t'<<w[ii].add<<'\t'<<w[ii].phone<<endl; } do { cout<<"\t请输入需要修改信息职工的职工号:"; string id2; cin>>id2; cout<<endl; int flag=1,k=0; while(flag) { for(int j=0; j<num; j++) { if(id2==w[j].wid) { k=j; flag=0; break; } } if(flag) { cout<<"\t不存在该职工,请重新输入:"; cin>>id2; cout<<endl; } } cout<<endl; cout<<"\t你要修改的职工信息如下:"<<endl; printf(); cout<<"\t"<<w[k].wid<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].birthday; cout<<"\t\t"<<w[k].education<<'\t'<<w[k].duty<<'\t'<<w[k].wage<<'\t'<<w[k].add<<'\t'<<w[k].phone<<endl; cout<<"\t请选择修改方式:"<<endl; cout<<"\t**************************"<<endl; cout<<"\t** **"<<endl; cout<<"\t** 1.修改职工号 **"<<endl; cout<<"\t** 2.修改姓名 **"<<endl; cout<<"\t** 3.修改性别 **"<<endl; cout<<"\t** 4.修改出生年月 **"<<endl; cout<<"\t** 5.修改学历 **"<<endl; cout<<"\t** 6.修改职务 **"<<endl; cout<<"\t** 7.修改工资 **"<<endl; cout<<"\t** 8.修改地址 **"<<endl; cout<<"\t** 9.修改电话 **"<<endl; cout<<"\t** 10.修改多个成员 **"<<endl; cout<<"\t** 0.返回主菜单 **"<<endl; cout<<"\t** **"<<endl; cout<<"\t**************************"<<endl; cout<<endl; cout<<"\t请选择要实现的功能【0-10】:"; cin>>xz; while(xz<0||xz>10) { cout<<endl; cout<<"\t输入有误,请重新输入:"; cin>>xz; } switch(xz) { case 1: cout<<"\t新的职工号:"; cin>>n; while(1) { int flag=1; for(int i=0; i<num; i++) { if(n==w[i].wid) { cout<<"\t此职工号已存在,请重新输入:"; cin>>n; flag=0; cout<<endl; } } if(flag) break; } w[k].wid=n; cout<<"\t修改成功"; break; case 2: cout<<"\t请输入新的姓名:"; cin>>w[k].name; cout<<"\t修改成功"; break; case 3: cout<<"\t请输入新的性别:"; cin>>w[k].sex; cout<<"\t修改成功"; break; case 4: cout<<"\t请输入新的出生年月:"; cin>>w[k].birthday; cout<<"\t修改成功"; break; case 5: cout<<"\t请输入新的学历:"; cin>>w[k].education; cout<<"\t修改成功"; break; case 6: cout<<"\t请输入新的职务 :"; cin>>w[k].duty; cout<<"\t修改成功"; break; case 7: cout<<"\t请输入新的工资:"; cin>>w[k].wage; cout<<"\t修改成功"; break; case 8: cout<<"\t请输入新的地址:"; cin>>w[k].add; cout<<"\t修改成功"; break; case 9: cout<<"\t请输入新的电话:"; cin>>w[k].phone; cout<<"\t修改成功"; break; case 10: cout<<"\t新的职工号:"; cin>>n; while(1) { int flag=1; for(int i=0; i<num; i++) { if(n==w[i].wid) { cout<<"\t此职工号已存在,请重新输入:"; cin>>n; flag=0; cout<<endl; } } if(flag) break; } w[k].wid=n; cout<<"\t新的姓名:"; cin>>w[k].name; cout<<"\t新的性别:(male/female)"; cin>>w[k].sex; cout<<"\t新的出生年月(yyyy/mm):"; cin>> w[k].birthday; cout<<"\t新的学历(junior/college/master/other):"; cin>>w[k].education; cout<<"\t新的职务:"; cin>>w[k].duty; cout<<"\t新的工资:"; cin>>w[k].wage; cout<<"\t新的地址:"; cin>>w[k].add; cout<<"\t新的电话:"; cin>>w[k].phone; break; case 0: sf="n"; break; } if(xz!=0) { cout<<"\t修改后的职工信息如下:"<<endl; printf(); cout<<"\t"<<w[k].wid<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].birthday; cout<<"\t\t"<<w[k].education<<'\t'<<w[k].duty<<'\t'<<w[k].wage<<'\t'<<w[k].add<<'\t'<<w[k].phone<<endl; cout<<"\t是否要修改其它人 y?(按任意键退出)"; cin>>sf; } } while(xz!=0&&(sf=="y"||sf=="y")); } } void boss::delete() //删除 { if(num<=0) { printf_re(); } else { cout<<endl; cout<<"\t全部职工信息如下:"<<endl; printf(); for(int ii=0; ii<num; ii++) { cout<<"\t"<<w[ii].wid<<'\t'<<w[ii].name<<'\t'<<w[ii].sex<<'\t'<<w[ii].birthday; cout<<"\t\t"<<w[ii].education<<'\t'<<w[ii].duty<<'\t'<<w[ii].wage<<'\t'<<w[ii].add<<'\t'<<w[ii].phone<<endl; } do { cout<<endl; cout<<"\t请输入需要删除信息职工的职工号:"; string id4; cin>>id4; cout<<endl; int flag=1,k=0; while(flag) { for(int j=0; j<num; j++) { if(id4==w[j].wid) { k=j; flag=0; break; } } if(flag) { cout<<"\t不存在该职工,请重新输入:"; cin>>id4; cout<<endl; } } cout<<endl; cout<<"\t你要删除的职工信息如下:"<<endl; printf(); cout<<"\t"<<w[k].wid<<'\t'<<w[k].name<<'\t'<<w[k].sex<<'\t'<<w[k].birthday; cout<<"\t\t"<<w[k].education<<'\t'<<w[k].duty<<'\t'<<w[k].wage<<'\t'<<w[k].add<<'\t'<<w[k].phone<<endl; cout<<"\t是否确认删除y/n: "; cin>>sf; if(sf=="y"||sf=="y") { for(int j=k; j<num-1; j++) w[j]=w[j+1]; num--; cout<<"\t删除成功"<<endl; } cout<<"是否继续删除职工信息 y?(按任意键退出)"; cin>>sf; } while(sf=="y"||sf=="y"); } } void boss::save() //保存 { if(num<=0) { printf_re(); } else { ofstream oflie,ofshow; oflie.open("inform.txt",ios::out); //信息处理文件 ofshow.open("show.txt",ios::out); //展示文件 cout<<"\t文件正在保存"<<endl; ofshow<<"已保存员工信息如下:"<<endl; ofshow<<"职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话"<<endl; for(int i=0; i<num; i++) { oflie<<w[i].wid<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].birthday; oflie<<'\t'<<w[i].education<<'\t'<<w[i].duty<<'\t'<<w[i].wage<<'\t'<<w[i].add<<'\t'<<w[i].phone<<endl; ofshow<<w[i].wid<<'\t'<<w[i].name<<'\t'<<w[i].sex<<'\t'<<w[i].birthday; ofshow<<'\t'<<w[i].education<<'\t'<<w[i].duty<<'\t'<<w[i].wage<<'\t'<<w[i].add<<'\t'<<w[i].phone<<endl; } oflie.close(); ofshow.close(); } } void boss::allclear() { ifstream ifile("inform.txt",ios::in); ofstream ofile("temp.txt",ios::in|ios::trunc); if(!ifile) cout<<"\t\t\t\t\tcan not open the inform file!"<<endl; if(!ofile) cout<<"\t\t\t\t\tcan not creat the temp file!"<<endl; ifile.close(); ofile.close(); system("del inform.txt"); system("rename temp.txt,inform.txt"); waiting(); cout<<"信息已全部清除"<<endl; } void worker::show() //职工展示 { cout<<endl; ifstream ifile("inform.txt",ios::in); string q_id,q_name,q_sex,q_birthday,q_education,q_duty,q_wage,q_add,q_phone; int flag=0; if(!ifile) { cout<<"\t\tcan not open the inform file!"<<endl; exit(0); getch(); } cout<<"\t你仅有查看自己信息的权限!!!"<<endl; cout<<endl; ifile.seekg(0,ios::beg); //将文件指针指向文件开头 cout<<"\t请输入你的职工号:"; cin>>wid; while(!ifile.eof()) { q_id=""; ifile>>q_id>>q_name>>q_sex>>q_birthday>>q_education>>q_duty>>q_wage>>q_add>>q_phone; if(q_id.length()==0) break; if(wid==q_id) { flag=1; printf(); cout<<"\t"<<q_id<<"\t"<<q_name<<"\t"<<q_sex<<"\t"<<q_birthday<<"\t\t"<<q_education<<"\t"<<q_duty<<"\t"<<q_wage<<"\t"<<q_add<<"\t"<<q_phone<<endl; } } ifile.close(); if(!flag) cout<<"\t您好,不存在你的信息!"<<endl; cout<<endl; cout<<"\t系统退出!"<<endl; exit(0); } int main() { start st; cout<<" 欢 迎 来 到 职 工 管 理 系 统 "<<endl; cout<<endl; cout<<'\t'<<"请输入你的身份:"<<endl; cout<<'\t'<<"老板---请输 1"<<endl; cout<<'\t'<<"职工---请输 2"<<endl; int shu; cin>>shu; while(1) { if(shu==1||shu==2) break; else { cout<<"\t输入错误!请重新输入 1 / 2"<<endl; cin>>shu; } } if(shu==1) { st.interface(); } if(shu==2) { worker e; e.show(); } return 0; }
下一篇: 数据结构:树、二叉树
推荐阅读
-
.NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程
-
.NET Core实战项目之CMS 第十章 设计篇-系统开发框架设计
-
Django之图书管理系统
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理三 (二十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之五(三十一)
-
江湖微装修O2O系统功能介绍之项目管理系统
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理八(二十六)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理六(二十四)