公司管理系統(tǒng)C的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例_第1頁(yè)
公司管理系統(tǒng)C的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例_第2頁(yè)
公司管理系統(tǒng)C的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例_第3頁(yè)
公司管理系統(tǒng)C的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例_第4頁(yè)
公司管理系統(tǒng)C的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于C+的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例 公司人員信息管理系統(tǒng)1、問(wèn)題描述某公司需要存儲(chǔ)雇員的編號(hào)、姓名、性別、所在部門(mén),級(jí)別,并進(jìn)行工資的計(jì)算。其中,雇員分為經(jīng)理、技術(shù)人員、銷(xiāo)售人員和銷(xiāo)售經(jīng)理。四類(lèi)人員的月薪計(jì)算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時(shí)領(lǐng)取月薪;銷(xiāo)售人員按其當(dāng)月銷(xiāo)售額的提成領(lǐng)取工資;銷(xiāo)售經(jīng)理既拿固定月薪也領(lǐng)取銷(xiāo)售提成。設(shè)計(jì)一程序能夠?qū)救藛T進(jìn)行管理,應(yīng)用到繼承、抽象類(lèi)、虛函數(shù)、虛基類(lèi)、多態(tài)和文件的輸入/輸出等內(nèi)容。2、功能要求(1)基本功能1) 添加功能:程序能夠任意添加上述四類(lèi)人員的記錄,可提供選擇界面供用戶(hù)選擇所要添加的人員類(lèi)別,要求員工的編號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),

2、則提示數(shù)據(jù)添加重復(fù)并取消添加。2) 查詢(xún)功能:可根據(jù)編號(hào)、姓名等信息對(duì)已添加的記錄進(jìn)行查詢(xún),如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;3) 顯示功能:可顯示當(dāng)前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。4) 編輯功能:可根據(jù)查詢(xún)結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性。5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的人員記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要?jiǎng)h除的人員的編號(hào)或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒(méi)有找到該人員信息,則提示相應(yīng)的記錄不存。6) 統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)。例如,統(tǒng)計(jì)四類(lèi)人員數(shù)量以及總數(shù),

3、或者統(tǒng)計(jì)男、女員工的數(shù)量,或者統(tǒng)計(jì)平均工資、最高工資、最低工資等信息。7)保存功能:可將當(dāng)前系統(tǒng)中各類(lèi)人員記錄存入文件中,存入方式任意。8)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶(hù)進(jìn)行使用。(2)擴(kuò)展功能在完成以上基本功能的基礎(chǔ)上,可自行進(jìn)行擴(kuò)展或完善,例如: 1) 添加人員記錄時(shí),考慮各種數(shù)據(jù)的有效性。2)組合查詢(xún)功能的實(shí)現(xiàn)。3)可按人員的某些信息進(jìn)行排序,例如按工資進(jìn)行排序等。4)對(duì)文件的讀寫(xiě)使用二進(jìn)制信息。3、問(wèn)題的解決方案根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟: 1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間

4、的關(guān)系; 3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類(lèi)層次; 4)完成類(lèi)層次中各個(gè)類(lèi)的描述; 5)完成類(lèi)中各個(gè)成員函數(shù)的定義; 6)完成系統(tǒng)的應(yīng)用模塊; 7)功能調(diào)試; 8)完成系統(tǒng)總結(jié)報(bào)告。程序代碼:#include<iostream>#include<string>#include <fstream>#include <iomanip>const tmax=20;using namespace std;class Personprotected:int num;string name;string position;char sex;int level;p

5、ublic: Person(int n=0,string nam=" ",char s='f',string p=" ",int l=0) num=n;name=nam;sex=s;position=p;level=l;int getnum()return num;string getname()return name; virtual void input()cout<<"編號(hào)(int):"cin>>num;cout<<"姓名(string):" cin>

6、>name;cout<<"性別(m/男,f/女):" cin>>sex;cout<<"所在部門(mén)(string):" cin>>position;cout<<"級(jí)別(int):"cin>>level;virtual void output() cout<<"編號(hào):"<<setw(1)<<num;cout<<" 姓名: "<<setw(5)<<name

7、;cout<<" 性別: "<<setw(1)<<sex; cout<<" 所在部門(mén):"<<setw(4)<<position; cout<<" 級(jí)別: "<<setw(2)<<level<<"級(jí)"class Technologist:virtual public Personprotected: int hour;public:Technologist(int n=0,string nam=&q

8、uot; ",char s='f',string p=" ",int l=0,int h=0):Person(n,nam,s,p,l)hour=h;void input()cout<<"請(qǐng)輸入技術(shù)人員的信息:"<<endl;Person:input();cout<<"工作時(shí)間(int):"cin>>hour;void output()Person:output();cout<<" 工資: "<<setw(4)<&

9、lt;hour*200<<endl;class Technologist_manaTechnologist ttmax; int top; public:Technologist_mana()top=0; void add();void show();void search();void search_num();void search_name();void edit();void edit_num();void edit_name();void Delete();void Delete_num();void Delete_name();void total();void sav

10、e();void read();void Technologist_mana:add()if(top>=tmax) cout<<"空間已滿(mǎn),不能添加!"<<endl;return;Technologist te;cout<<"請(qǐng)輸入添加人員信息:"<<endl;te.input();ttop=te;for(int i=0;i<top;i+)if(te.getnum()=ti.getnum()cout<<"該編號(hào)已存在,添加失敗!"<<endl;retu

11、rn ;cout<<"添加成功!"<<endl;cout<<endl;top+;void Technologist_mana:show()if(top=0)cout<<"沒(méi)有信息!"<<endl;return;for(int i=0;i<top;i+)ti.output();cout<<endl;void Technologist_mana:search_num() int y1; cout<<"請(qǐng)輸入要查詢(xún)技術(shù)人員的編號(hào):" cin>&g

12、t;y1; for(int i=0;i<top;i+) if(ti.getnum()=y1)cout<<"oooooooooooo找到這個(gè)技術(shù)人員了,其信息為:oooooo"<<endl; ti.output(); return; cout<<"該技術(shù)人員不存在!"<<endl;void Technologist_mana:search_name()string s1;cout<<"請(qǐng)輸入要查詢(xún)的技術(shù)人員姓名:"cin>>s1; for(int i=0;i&

13、lt;top;i+) if(ti.getname()=s1) cout<<"oooooooooooo找到這個(gè)技術(shù)人員了,其信息為:oooooo"<<endl; ti.output(); return; cout<<"該技術(shù)人員不存在!"<<endl;void Technologist_mana:search()if(top=0)cout<<"沒(méi)有技術(shù)人員信息!"<<endl;return ;int choice;docout<<" ooooo

14、查找ooooo"<<endl;cout<<"| |"<<endl;cout<<"| 1 : 按編號(hào) 2 :按姓名 0 :退出 |"<<endl;cout<<"| |"<<endl;cout<<"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"<<endl;cout<<"請(qǐng)輸入您的選擇:"cin&

15、gt;>choice;switch(choice) case 1:search_num();break;case 2:search_name();break;case 0:cout<<"您已安全退出."<<endl;break;default:cout<<"沒(méi)有此選項(xiàng),請(qǐng)重選."<<endl;break;while(choice!=0);void Technologist_mana:edit_num() int x1; cout<<"請(qǐng)輸入要編輯的技術(shù)人員的編號(hào):" c

16、in>>x1; for(int i=0;i<top;i+) if(ti.getnum()=x1) ti.output();cout<<endl;cout<<"請(qǐng)重新輸入技術(shù)人員信息:"ti.input();cout<<"修改成功!"<<endl;ti.output(); return; cout<<"該技術(shù)人員不存在!"<<endl;void Technologist_mana:edit_name()string h1;cout<<&

17、quot;請(qǐng)輸入要編輯的技術(shù)人員的姓名:"cin>>h1; for(int i=0;i<top;i+) if(ti.getname()=h1)ti.output();cout<<endl;cout<<"請(qǐng)重新輸入技術(shù)人員信息:"ti.input();cout<<"修改成功!"<<endl;ti.output(); return ; cout<<"該經(jīng)理不存在!"<<endl;void Technologist_mana:edit()if

18、 (top=0) cout<<"沒(méi)有技術(shù)人員信息!"<<endl;return;int choice;docout<<" ooooo編輯ooooo"<<endl;cout<<"| |"<<endl;cout<<"| 1 : 按編號(hào) 2 : 按姓名 0 :退出 |"<<endl;cout<<"| |"<<endl;cout<<"ooooooooooooooo

19、ooooooooooooooooooooooooooooooooooooooooooooo"<<endl;cout<<"請(qǐng)輸入您的選擇:"cin>>choice;switch(choice)case 1:edit_num();break;case 2:edit_name();break;case 0:cout<<"您已安全退出."<<endl;break;default:cout<<"沒(méi)有此選項(xiàng),請(qǐng)重選."<<endl;break;while

20、(choice!=0);void Technologist_mana: Delete_num() char c1;int f1;cout<<"請(qǐng)輸入要?jiǎng)h除的技術(shù)人員編號(hào):"cin>>f1;for(int i=0;i<top;i+)if(ti.getnum()=f1)ti.output();break; if(i>=top) cout<<"無(wú)此技術(shù)人員!" return ; cout<<"是否刪除此項(xiàng)(是:y/Y,否:n/N):"cin>>c1;if(c1='

21、;y'|c1='Y')for(int k=i;k<top-1;k+)tk=tk+1;cout<<"刪除成功!"<<endl;top-;return ;elsecout<<"沒(méi)有刪除該技術(shù)人員!"<<endl;void Technologist_mana: Delete_name() char c3;string r;cout<<"請(qǐng)輸入要?jiǎng)h除的技術(shù)人員姓名:"cin>>r;for(int i=0;i<top;i+)if(ti.g

22、etname()=r)ti.output();break; if(i>=top) cout<<"無(wú)此技術(shù)人員!" return ; cout<<"是否刪除此項(xiàng)(是:y/Y,否:n/N):"cin>>c3;if(c3='y'|c3='Y')for(int k=i;k<top-1;k+)tk=tk+1;cout<<"刪除成功!"<<endl;top-;return ;elsecout<<"沒(méi)有刪除該技術(shù)人員!&qu

23、ot;<<endl;void Technologist_mana: Delete()if (top=0) cout<<"沒(méi)有技術(shù)人員信息!"<<endl;return;int choice;docout<<" ooooo刪除ooooo"<<endl;cout<<"| |"<<endl;cout<<"| 1 : 按編號(hào) 2 : 按姓名 0 :退出 |"<<endl;cout<<"| |&q

24、uot;<<endl;cout<<"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"<<endl;cout<<"請(qǐng)輸入您的選擇:"cin>>choice;switch(choice)case 1:Delete_num();break;case 2:Delete_name();break;case 0:cout<<"您已安全退出."<<endl;break;default:cout

25、<<"沒(méi)有此選項(xiàng),請(qǐng)重選."<<endl;break;while(choice!=0);void Technologist_mana:total()cout<<"技術(shù)人員總?cè)藬?shù)為:"<<top<<" 人"<<endl;void Technologist_mana:save()ofstream out("h:技術(shù)人員管理.txt",ios:out|ios:binary);if (!out)cerr<<" 打開(kāi)失敗!"

26、;<<endl;return;for (int i=0;i<top;i+)out.write(char*)&ti,sizeof(ti);cout<<"保存成功!"<<endl;cout<<endl;out.close();void Technologist_mana:read()ifstream in("h:技術(shù)人員管理.txt",ios:in|ios:binary);if (!in)cerr<<"打開(kāi)失敗!"<<endl;return ;int i

27、=0; while(in.read(char*)&ti,sizeof(ti)i+;cout<<"讀取成功!"<<endl;in.close();void TechnologistMenu()Technologist_mana tee;int choice;while(choice!=0)cout<< " ooooo技術(shù)人員ooooo "<<endl;cout<<"oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

28、ooooooooooooooooo"<<endl;cout<<"| |"<<endl;cout<<"| 1.添加 2.查找 3.修改 4.統(tǒng)計(jì) 5.刪除 6.顯示 7.保存 8.讀取 0.返回 |"<<endl;cout<<"| |"<<endl;cout<<"ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"

29、<<endl;cout<<"輸入您操作的選項(xiàng):"cin>>choice; switch(choice)case 1:tee.add();break;case 2:tee.search();break;case 3:tee.edit();break;case 4:tee.total();break;case 5:tee.Delete();break;case 6:tee.show();break;case 7:tee.save();break; case 8:tee.read();break;case 0:cout<<"退出

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論