C++完成簡略的職工信息治理體系。本站提示廣大學習愛好者:(C++完成簡略的職工信息治理體系)文章只能為提供參考,不一定能成為您想要的結果。以下是C++完成簡略的職工信息治理體系正文
功效主模塊描寫
模塊一:增長人員函數Add();增長職工根本信息。
模塊二:刪除人員函數Delete();刪除指定的職工的根本信息和薪酬。
模塊三:修正人員函數Modify();修正指定的職工根本信息。
模塊四:查詢職工信息函數Search();查詢指定的職工信息和薪酬。
模塊五:排序職工信息函數Sort();職工信息排序功效完成
模塊六:基本數據設置函數Set();設置五類職位的根本薪酬。
模塊七:數據存盤,載入函數Save()和Load();貯存職工根本信息,薪酬和五類職位的根本薪酬。
本體系采取了面向對象的法式設計辦法。一切的辦法均以類為基本。
代碼完成:
#include<iostream> #include"string" #include<fstream> #include <stdlib.h> #include <stdio.h> #define N 100 //N作為最年夜職工總數 int f=0; //f作為開關 using namespace std; string p; //p作為吸收菜單選項的字符串 void menu(); //顯示菜單 class worker { public: worker(){} void show(); //職工信息顯示 ~worker(){} friend class WorkerList; private: string num,name,sex,edu,address,tel; int age,salary; }; class WorkerList { private: worker w[N]; int NUM; //用來盤算職工數量 int count; //用來臨時記載以後操作第幾個職工 public: void add(); //職工信息錄入 void sort(); //職工信息排序 void search(); //職工信息查找 void dele(); //職工信息刪除 void modify(); //職工信息修正 void save(); //職工信息以文件情勢保留 void showworker();//顯示職工信息在屏幕上 WorkerList(){ NUM=0; count=0; } }; void menu() //顯示菜單 { cout<<endl; cout<<"***********************************************"<<endl; cout<<"** **"<<endl; cout<<"** 職工信息治理體系主菜單 **"<<endl; cout<<"** **"<<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; cout<<endl; } void domain() //主菜單函數完成 { WorkerList wl; while(1) { system("cls"); menu(); cout<<"請選擇數字編號0~7"<<endl; int i1; cin>>i1; while(!(i1>=0&&i1<=7)) { cout<<"輸出有誤,請從新輸出:"<<endl; cin>>i1; } switch(i1) { case 1:wl.add();break; case 2:wl.modify();break; case 3:wl.dele();break; case 4:wl.sort();break; case 5:wl.search();break; case 6:wl.showworker();break; case 7:wl.save();break; case 0:cout<<"體系加入!!"<<endl; exit(0); default: break; } cout<<"能否前往主菜單? Y/N"<<endl; cin>>p; if(p=="n"||p=="N") { cout<<"體系加入!!"<<endl; exit(0); } } } void WorkerList::add() //職工信息添加函數完成 { cout<<"請輸出職工信息:"<<endl; cout<<"工號:"; string num; cin>>num; for(int i=0;i<NUM;i++) while(num==w[i].num) { cout<<"此職工編號已存在,請從新輸出:"<<endl; cout<<"工號:"; cin>>num; } w[NUM].num=num; cout<<"姓名:";cin>>w[NUM].name; cout<<"性別:";cin>>w[NUM].sex; cout<<"學歷:";cin>>w[NUM].edu; cout<<"年紀:";cin>>w[NUM].age; cout<<"工資:";cin>>w[NUM].salary; cout<<"地址:";cin>>w[NUM].address; cout<<"德律風:";cin>>w[NUM].tel; ++NUM; count=NUM; } void worker::show() //職工信息顯示函數完成 { cout<<"工號:"<<num<<endl; cout<<"姓名:"<<name<<endl; cout<<"性別:"<<sex<<endl; cout<<"學歷:"<<edu<<endl; cout<<"年紀:"<<age<<endl; cout<<"工資:"<<salary<<endl; cout<<"地址:"<<address<<endl; cout<<"德律風:"<<tel<<endl; cout<<endl; } void WorkerList::modify() //職工信息修正函數完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } cout<<"請輸出須要修正信息職工的工號:"<<endl; string num1; cin>>num1; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num1==w[j].num) { flag=0; k=j; break; } } if(flag) { cout<<"不存在此員工,請從新輸出:"<<endl; j=0; cin>>num1; } } cout<<"你選擇的職工的信息為:"<<endl; cout<<" 工號:"<<w[k].num<<endl; cout<<" 姓名:"<<w[k].name<<endl; cout<<" 性別:"<<w[k].sex<<endl; cout<<" 學歷:"<<w[k].edu<<endl; cout<<" 年紀:"<<w[k].age<<endl; cout<<" 工資:"<<w[k].salary<<endl; cout<<" 地址:"<<w[k].address<<endl; cout<<" 德律風:"<<w[k].tel<<endl; cout<<endl; cout<<"***********************************************"<<endl; cout<<"** 1.修正工號 **"<<endl; cout<<"** 2.修正姓名 **"<<endl; cout<<"** 3.修正性別 **"<<endl; cout<<"** 4.修正學歷 **"<<endl; cout<<"** 5.修正年紀 **"<<endl; cout<<"** 6.修正工資 **"<<endl; cout<<"** 7.修正地址 **"<<endl; cout<<"** 8.修正德律風 **"<<endl; cout<<"** 0.前往主菜單 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl; cout<<"請選擇數字編號0~8"<<endl; int i3; cin>>i3; while(i3<0||i3>8) { cout<<"輸出有誤,請從新輸出:"<<endl; cin>>i3; } switch(i3) { case 1: cout<<"請輸出新的職工工號:"; cin>>w[k].num; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 2: cout<<"請輸出新的職工姓名:"; cin>>w[k].name; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 3: cout<<"請輸出新的職工性別:"; cin>>w[k].sex; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 4: cout<<"請輸出新的職工學歷:"; cin>>w[k].edu; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 5: cout<<"請輸出新的職工年紀:"; cin>>w[k].age; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 6: cout<<"請輸出新的職工工資:"; cin>>w[k].salary; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 7: cout<<"請輸出新的職工地址:"; cin>>w[k].address; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 8: cout<<"請輸出新的職工德律風:"; cin>>w[k].tel; cout<<"修正信息已保留,現前往主菜單:"<<endl; menu(); break; case 0: menu(); default: break; } } void WorkerList::showworker() //職工信息顯示函數完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } else cout<<"已保留的職工信息以下:"<<endl; for(int i=0;i<count;i++) { cout<<"***********************************************"<<endl; cout<<" 工號:"<<w[i].num<<endl; cout<<" 姓名:"<<w[i].name<<endl; cout<<" 性別:"<<w[i].sex<<endl; cout<<" 學歷:"<<w[i].edu<<endl; cout<<" 年紀:"<<w[i].age<<endl; cout<<" 工資:"<<w[i].salary<<endl; cout<<" 地址:"<<w[i].address<<endl; cout<<" 德律風:"<<w[i].tel<<endl; cout<<"***********************************************"<<endl; } } void WorkerList::search() //職工信息查詢函數完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } else cout<<"***********************************************"<<endl; cout<<"** 請選擇查找方法: **"<<endl; cout<<"** 1.按工號查找 **"<<endl; cout<<"** 2.按姓名查找 **"<<endl; cout<<"** 3.按學歷查找 **"<<endl; cout<<"** 0.前往主菜單 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl; cout<<"請選擇數字編號0~3"<<endl; int i4; cin>>i4; while(i4<0||i4>3) { cout<<"輸出有誤,請從新輸出:"<<endl; cin>>i4; } if(i4==1) { string num2; cout<<"請輸出要查詢的職工的工號:"<<endl; cin>>num2; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num2==w[j].num) { flag=0; k=j; cout<<"查詢的職工信息以下:"<<endl; cout<<" 工號:"<<w[k].num<<endl; cout<<" 姓名:"<<w[k].name<<endl; cout<<" 性別:"<<w[k].sex<<endl; cout<<" 學歷:"<<w[k].edu<<endl; cout<<" 年紀:"<<w[k].age<<endl; cout<<" 工資:"<<w[k].salary<<endl; cout<<" 地址:"<<w[k].address<<endl; cout<<" 德律風:"<<w[k].tel<<endl; break; } } if(flag) { flag=0; cout<<"不存在此職工!!\n前往主菜單"<<endl; break; } } } else if(i4==2) { string name2; cout<<"請輸出要查詢的職工的姓名:"<<endl; cin>>name2; int j2=0,k2; int flag2=1; while(flag2) { for(;j2<count;j2++) { if(name2==w[j2].name) { flag2=0; k2=j2; cout<<"查詢的職工信息以下:"<<endl; cout<<" 工號:"<<w[k2].num<<endl; cout<<" 姓名:"<<w[k2].name<<endl; cout<<" 性別:"<<w[k2].sex<<endl; cout<<" 學歷:"<<w[k2].edu<<endl; cout<<" 年紀:"<<w[k2].age<<endl; cout<<" 工資:"<<w[k2].salary<<endl; cout<<" 地址:"<<w[k2].address<<endl; cout<<" 德律風:"<<w[k2].tel<<endl; break; } } if(flag2) { flag2=0; cout<<"不存在此職工!!\n前往主菜單"<<endl; break; } } } else if(i4==3) { string edu2; cout<<"請輸出要查詢的職工的學歷:"<<endl; cin>>edu2; int j4=0,k4; int flag4=1; while(flag4) { for(;j4<count;j4++) { if(edu2==w[j4].edu) { flag4=0; k4=j4; cout<<"查詢的職工信息以下:"<<endl; cout<<" 工號:"<<w[k4].num<<endl; cout<<" 姓名:"<<w[k4].name<<endl; cout<<" 性別:"<<w[k4].sex<<endl; cout<<" 學歷:"<<w[k4].edu<<endl; cout<<" 年紀:"<<w[k4].age<<endl; cout<<" 工資:"<<w[k4].salary<<endl; cout<<" 地址:"<<w[k4].address<<endl; cout<<" 德律風:"<<w[k4].tel<<endl; break; } } if(flag4) { flag4=0; cout<<"不存在此職工!!\n前往主菜單"<<endl; break; } } } else if(i4==0) menu(); } void WorkerList::sort() //職工信息排序功效完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } else cout<<"***********************************************"<<endl; cout<<"** 請選擇排序方法: **"<<endl; cout<<"** 1.按工資排序(升序) **"<<endl; cout<<"** 2.按工資排序(降序) **"<<endl; cout<<"** 0.前往主菜單 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl; cout<<"請選擇數字編號0~2"<<endl; int i5; cin>>i5; while(i5<0||i5>2) { cout<<"輸出有誤,請從新輸出:"<<endl; cin>>i5; } if(i5==1) { for(int i=0;i<count-1;i++) for(int j=0;j<count-i-1;j++) if(w[j].salary>w[j+1].salary) { worker temp; temp=w[j]; w[j]=w[j+1]; w[j+1]=temp; } cout<<"按工資升序後的信息以下:"<<endl; for( i=0;i<count;i++) { cout<<"***********************************************"<<endl; cout<<" 工號:"<<w[i].num<<endl; cout<<" 姓名:"<<w[i].name<<endl; cout<<" 性別:"<<w[i].sex<<endl; cout<<" 學歷:"<<w[i].edu<<endl; cout<<" 年紀:"<<w[i].age<<endl; cout<<" 工資:"<<w[i].salary<<endl; cout<<" 地址:"<<w[i].address<<endl; cout<<" 德律風:"<<w[i].tel<<endl; cout<<"***********************************************"<<endl; } } else if(i5==2) { for(int i=0;i<count-1;i++) for(int j=0;j<count-i-1;j++) if(w[j].salary<w[j+1].salary) { worker temp; temp=w[j]; w[j]=w[j+1]; w[j+1]=temp; } cout<<"按工資降序後的信息以下:"<<endl; for( i=0;i<count;i++) { cout<<"***********************************************"<<endl; cout<<" 工號:"<<w[i].num<<endl; cout<<" 姓名:"<<w[i].name<<endl; cout<<" 性別:"<<w[i].sex<<endl; cout<<" 學歷:"<<w[i].edu<<endl; cout<<" 年紀:"<<w[i].age<<endl; cout<<" 工資:"<<w[i].salary<<endl; cout<<" 地址:"<<w[i].address<<endl; cout<<" 德律風:"<<w[i].tel<<endl; cout<<"***********************************************"<<endl; } } else if(i5==0) menu(); } void WorkerList::dele() //職工信息刪除函數完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } cout<<"請輸出須要刪除信息職工的工號:"<<endl; string num3; cin>>num3; int j=0,k; int flag=1; while(flag) { for(;j<count;j++) { if(num3==w[j].num) { flag=0; k=j; break; } } if(flag) { cout<<"不存在此員工,請從新輸出:"<<endl; j=0; cin>>num3; } } cout<<"你選擇的職工的信息為:"<<endl; cout<<" 工號:"<<w[k].num<<endl; cout<<" 姓名:"<<w[k].name<<endl; cout<<" 性別:"<<w[k].sex<<endl; cout<<" 學歷:"<<w[k].edu<<endl; cout<<" 年紀:"<<w[k].age<<endl; cout<<" 工資:"<<w[k].salary<<endl; cout<<" 地址:"<<w[k].address<<endl; cout<<" 德律風:"<<w[k].tel<<endl; cout<<endl; cout<<"確認刪除請輸出Y,前往主菜單請輸出N "<<endl; string p; cin>>p; while(1) { if(p=="y"||p=="Y") { cout<<"員工信息已刪除!"<<endl; for(int i=0;i<count;i++) if(w[i].num==num3) int j=i; for(;j<=count-1;j++) w[j]=w[j+1]; count--; break; } else if(p=="n"||p=="N") { menu(); } else { cout<<"輸出有誤,請從新輸出:"; cin>>p; } } } void WorkerList::save() //職工信息保留函數完成 { if(NUM<=0) { cout<<"沒有職工信息存入,體系將前往主菜單"<<endl; menu(); } else { ofstream fout; fout.open("D:\\worker.txt",ios::out); cout<<"文件正在保留......請稍候!!"<<endl; cout<<"數據保留勝利!!!"<<endl; fout<<"已保留員工信息以下:"<<endl; for(int i=0;i<count;i++) { fout<<"***********************************************"<<endl; fout<<" 工號:"<<w[i].num<<endl; fout<<" 姓名:"<<w[i].name<<endl; fout<<" 性別:"<<w[i].sex<<endl; fout<<" 學歷:"<<w[i].edu<<endl; fout<<" 年紀:"<<w[i].age<<endl; fout<<" 工資:"<<w[i].salary<<endl; fout<<" 地址:"<<w[i].address<<endl; fout<<" 德律風:"<<w[i].tel<<endl; fout<<"***********************************************"<<endl; } cout<<"體系前往主菜單:"<<endl; menu(); fout.close(); } } int main() { domain(); return 0; }
運轉後果:
法式運轉時,起首湧現主界面菜單,由用戶停止功效選擇,選擇分歧的數字,進入分歧的功效區。如圖1所示。
圖1 法式運轉主界面
選擇1,則顯示次級菜單,進入職工信息添加界面,如圖2所示。
圖2 職工信息添加界面
選擇Y,回到法式運轉主界面,持續選擇6,則顯示次級菜單,進入職工信息閱讀顯示界面如圖3所示。
圖3 職工信息顯示界面
對職工信息停止查找,選擇5,可以經由過程工號、姓名、學歷三個方法停止查找,選擇1肯定按工號停止查找,如圖4所示。
圖4 職工信息排序界面
選擇4,可以經由過程工資高下停止排序,選擇1肯定以升序停止排序,如圖5所示。
圖5 職工信息查找界面
回到法式運轉主界面,選擇2,對職工1信息停止修正,選擇次級菜單個中1~8的選項停止修正,如圖6。
圖6職工信息修正界面
選擇3,刪除職工信息,如圖7所示。
圖7職工信息刪除界面
回到法式運轉主界面,選擇7,對職工信息的操作停止保留,同時前往到體系主界面,如圖8。
圖8職工信息保留界面
以上就是本文的全體內容,願望對年夜家的進修有所贊助。