




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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() virtu
4、al 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;
5、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 << "編號:"
6、<< NO << "t" << "級別:" << level << "t" << "名字:" << name << "t"<< "工資" << Wage()<< endl; class Technical:public Person/技術人員technicalprivate: double number;/代碼量public: Technical
7、(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 &l
8、t;< "t" << "級別:" << level << "t" << "名字:" << name << "t"<< "工資" << Wage()<< endl; class Business:public Person/業務人private: double sale,amount;/sale該業務人員當月銷售額amount該業務員當月項目額public: Bus
9、iness(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 <
10、;< "編號:" << NO << "t" << "級別:" << level << "t" << "名字:" << name << "t"<< "工資" << Wage()<< endl; class Business_Manager:public Manager/業務經理private: double MB_sala
11、y; 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,
12、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
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:
14、Show() cout << "編號:" << NO << "t" << "級別:" << level << "t" << "名字:" << name << "t"<< "工資" << Wage()<< endl; class Boss/老板protected: Person *head;public: void
15、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 <<"
16、ttt="<< endl; cout <<"ttt|*公司人事管理系統*| "<< endl; cout <<"ttt|=|"<< endl; cout <<"ttt|1.創建系統,請輸入員工信息 | "<< endl; cout <<"ttt|2.顯示所有員工信息 | "<< endl; cout <<"ttt|3.添加員工信息 | "<< endl;
17、cout <<"ttt|4.刪除員工信息 | "<< endl; cout <<"ttt|5.查找員工信息 | "<< endl; cout <<"ttt|6.修改員工信息 | "<< endl; cout <<"ttt|7.對員工月薪排序 | "<< endl; cout <<"ttt|0.安全退出系統 | "<< endl; cout <<"ttt=&
18、quot;<< 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-業務經理 |
19、5-文秘 |" << 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,"技術人員
20、"); cout << "請輸入技術人員的名字:" << 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
21、; cout << "請輸入業務的當月銷售額:" ; 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
22、; cout << "請輸入項目額:" ; 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
23、>> ch; 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
24、 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 << "
25、;tt請輸入該職工的級別(選擇相應序號即可):" 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、;請輸入技術人員的名字:" << 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 << "請輸入業務人員的名字:" <<
27、endl; cin >> 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 << "業務經理的名字:" ; c
28、in >> na; 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 << "文秘的名字:" ; ci
29、n >> na; 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 Bos
30、s: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=" &
31、lt;< endl; 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、lt;< "請你輸入你要刪除員工的姓名:" 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
33、<< endl; if(flag=1) cout << endl; cout << " >>>>>刪除成功<<<<<" << endl; cout << endl; else cout << endl; cout << " >>>>>刪除失敗,可能未存入此員工信息or指令錯誤,請你核實后繼續!<<<<<"<< endl; cout <&
34、lt; endl; cout << "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;
35、 while(p1!=NULL) 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 *
36、p1=head->next;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 << "你的信息為:"
37、;<< endl;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=hea
38、d,*p3=NULL;char 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 << &q
39、uot; 請輸入新的員工級別:"<< 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 << "請輸入編號:&qu
41、ot; cin >> 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 << "請輸入編號:"
42、cin >> 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 &g
43、t;> no; F=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->
44、next=p1->next; 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()/排序 Pers
45、on *p,*q,*min,*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=newhea
46、d; cout << "排序成功" << endl;void Boss:Write_File()Person *p=head->next;ofstream myfile("員工管理.txt");ofstream my("郭遷遷.txt");if(!myfile|!my )cout<<"文件打開失敗 !"<<endl;exit(-1);int n;do int size; n=p->Get_Flag(); switch(n) case 1:size=size
47、of(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系統為存入任何信息,請你創建系統后再進行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軌道交通線網云平臺系統用戶需求書-中心部分網絡安全專用技術要求
- 體驗2024年體育經紀人試題
- 體育經紀人資格考試中的團隊合作精神 試題及答案
- 《艾索美拉唑》課件
- 高效學習籃球裁判員考試要點試題及答案
- 《企業信息戰略》課件
- 定期評估效果2024年體育經紀人資格試題及答案
- 提升應試能力的無人機駕駛員執照考試試題及答案
- 2024年籃球裁判員考試高清視頻解讀與試題及答案
- 備考2024年裁判員的試題與答案
- “皖南八?!?024-2025學年高一第二學期期中考試-生物(乙)及答案
- 血站安全與衛生培訓課件
- 人教版四年級數學下冊期中期中測試卷(提優卷)(含答案)
- 巖土真實考試題及答案
- 高考前的“加速度”高三下學期期中家長會
- 畢業設計(論文)-板材碼垛機器人機械結構設計
- 銷售人員合同范文
- 網絡安全教育主題班會
- 品牌管理塑造、傳播與維護案例教學課件 品牌定位:元氣森林
- 福建省泉州市2023年第29屆WMO競賽六年級數學下學期競賽試卷
- 各國貨幣知識
評論
0/150
提交評論