




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、includeiomanipincludeiostreaminclude#includevstring。husingnamespacestd;defineNULL0defineLENsizeof(structstudent)intconstN=20;voidMenu();voidPass();intn=0;/定義一個全局變量統計職工人數/-定義一個職工信息的結構體-職工類-職工類charsexN;longid;floatpaid3;inttotal;/用來存放性別/用來存放編號/用來存放工資/用來存放總工資charnameN;/用來存放姓名structstudent*next;/-classI
2、nformationpublic:Information();/構造函數.Information();析構函數.studentcreat();/建立鏈表voidoutput(student*head);intcount(student*head);/顯示職工信息定義函數count()統計職工總數voidaverage(student*head);/定義職工工資平均值的函數private:studentp1,p2,p3,*head,st;/-建立鏈表信息studentInformation:creat(void)定義一個指向structstudent的結構體指針函數大creat()用來錄入職工信
3、息。charchN;n=0;/用來存放職工姓名pl=p2=(student*)malloc(LEN);調用malloc()函數用來開辟一個新的存儲單元cout”-請建立員工信息表,在姓名處鍵以結束輸入!-endl;cout”姓名:;cinch;head=NULL;/給指針head賦初值while(strcmp(ch,”)!=0)調用字符比較函數strcmp()用來判斷是否繼續輸入pl=(student卡)malloc(LEN);調用malloc()函數用來開辟一個新的存儲單元strcpy(p1name,ch);將循環結構前面輸入的姓名復制到結構體名為pl的數組name中coutplid;whi
4、le(plid)vOII(plid)100000)判斷輸入的編號是否有效(100000個)coutv對不起您的輸入錯誤!請重新輸入(0pl-id;coutp1paid0;while(p1paid0)0|I(p1-paid0)100000)判斷輸入的分數是否有效(=0=100000)cout”對不起您的輸入錯誤!請重新輸入(0p1paid0;coutpaid1;while(p1-paid1)0|I(p1-paid1)100000)判斷輸入的分數是否有效(=0=100000)cout”對不起您的輸入錯誤!請重新輸入(0p1paid1;cout”其他獎金:”;cinp1-paid2;while(p1
5、paid2)0|(p1paid2)100000)/判斷輸入的分數是否有效(=0=100000)cout0100000):”;cinp1-paid2;p1total=p1paid0+p1paid1+p1paid2;/計算總額if(n=0)head=p1;如果是輸入第一組職工信息就將指針p1賦給指針headelsep2next=p1;否則將p1賦給p2所指結構體的next指針p2=p1;將指針p1賦給指針p2將職工人數n的值加將職工人數n的值加1coutn姓名:”cinch;將輸入的姓名存放到字符數組ch中p2next=NULL;將p2所指結構體的next指針重新賦空值return(head);/
6、將輸入的第一組職工信息返回/-定義output()函數將職工的信息從頭指針所指內容開始輸出voidInformation::output(student大head)system(cls);if(head=NULL)cout”這是一個空表,請先輸入員工信息!n”;elsecoutcout”大職工工資信息表大n”;coutcout”大職工工資信息表大n”;coutcout丨編號II姓名I丨性別II基本工資II加班工資丨丨其他獎金丨I總額ln”;cout”-n;p1=head;/將頭指針賦給pdocoutsetw(6)p1-idsetw(10)p1-namesetw(10)p1sexsetw(10)
7、p1paid0setw(10)p1-paid1setw(12)p1paid2setw(12)p1-totalendl;couttotal=plpaid0+pl-paid1+pl-paid2;計算總分p2=head;/將頭指針賦給p2if(head=NULL)若沒調用次函數以前的頭指針head為空head=pl;plnext=NULL;則將pl賦給頭指針head并將pl所指結構體成員指針next賦空值elsewhile(plidp2-id)&(p2-next!=NULL)p3=p2;p3指向原p2指向的結點p2=p2next;/p2后移一個結點if(plidnext=p2;插入到p3所指結點之后
8、elsep2-next=pl;pl-next=NULL;插入到尾結點之后n+;/將職工人數加lcout”t-”id&p1-next!=NULL)/尋找要刪除的結點當p1所指的職工編號不是輸入的職工編號并且pl所指的next指針不為空p2=pl;pl=plnext;if(id=p1id)如果輸入的職工編號是pl所指的職工編號結點找到后刪除if(p1=head)head=p1next;/如果head指針和p1指針相等則將下一個結點賦給指針headelsep2next=p1-next;否則將pl所指結點賦給p2所指結點將要刪除的職工信息跳過去cout”刪除編號為”idvv”的職工n”;n;/將職工人
9、數減1return(head);/將頭指針返回/*修改職工數據*/student*Information::modify(studenthead,longid)system(”cls);coutt請輸入須修改的員工工資信息-n”endl;p1=(student)malloc(LEN);/使p1指向輸入的結點p1=head;否則將頭指針賦給plwhile(id!=p1-idp1next!=NULL)尋找結點當pl所指的職工編號不是輸入的職工編號并且pl所指的next指針不為空pl=plnext;/p2指向原pl指向的結點pl后移一個結點if(id=plid)如果要查找的職工編號是pl所指的職工編
10、號cout”你需要修改的員工信息如下:n”;coutn”其他獎cout丨編號丨丨姓名丨丨性別I丨基本工資丨丨加班工資丨其他獎金丨丨總額丨n;cout-n”coutsetw(6)p1-idsetw(10)namesetw(10)p1sexsetw(10)paid0setw(10)p1-paid1setw(12)paid2setw(12)p1-totalendl;cout”-n”;coutid)01I(plid)100000)cout0100000):”;cinpl-id;/將輸入的編號存放到pl所指結構體的數組id中coutp1name;將輸入的姓名存放到結構體名為pl的數組name中cout性
11、別:”;cinpl-sex;coutplpaid0;while(plpaid0)paid0)l00000)cout對不起您的輸入錯誤!請重新輸入(0l00000):”;coutplpaidl;while(plpaidl)paidl)l00000)cout”對不起您的輸入錯誤!請重新輸入(0l00000):;cinp1paid1;將輸入的加班工資存放到pl所指結構體的數組paid中coutpaid2;while(plpaid2)0II(plpaid2)l00000)cout0100000):;cinp1-paid2;/將輸入的其他獎金存放到p1所指結構體的數組paid中p1-total=p1pa
12、id0+p1paid1+p1-paid2;/計算總分else信息getchar();return(head);/-查找職工信息studentInformation::find(student*head,longid)定義一個指向structstudent的結構體指針函數*find()用來查找職工信息。system(cls”)if(head=NULL)若調用次函數以前的頭指針head為空cout”這是一個空表,請先輸入員工信息!n”;return(head);elsep1=head;/否則將頭指針賦給p1while(id!=p1idp1next!=NULL)尋找結點當pl所指的職工編號不是輸入的
13、職工編號并且pl所指的next指針不為空p1=p1next;p2指向原p1指向的結點p1后移一個結點if(id=p1id)如果要查找的職工編號是p1所指的職工編號cout-n”;cout”丨編號I丨姓名I丨性別丨丨基本工資丨丨加班工資丨丨其他獎金I丨總額丨n”;coutcoutsetw(6)p1idnamesetw(10)p1sexsetw(10)p1-paid0setw(10)p1paid1setw(12)p1paid2setw(12)p1totalendl;cout-n”;elsecout”信息中沒有編號為vid”的員工。n;結點沒找到return(head);/-定義paixu()函數將
14、職工的工資總額從大到小排列并輸出system(”cls”);inti,k,m=0,j;student*pN;/定義一個指向structstudent的結構體指針數組pif(head!=NULL)如果頭指針是空則繼續m=count(head);cout”-n”;cout”大員工工資統計表*n”;coutv-n;coutv”丨編號丨丨姓名丨丨性別丨丨基本工資II加班工資丨丨其他獎金II總額丨丨名次丨n”;couttotalvpj-total)p2=pk;pk=pj;pj=p2;/從大到小排列的指針for(i=0;im;i+)/-求各工資的平均值的函數voidInformation:average(
15、student*head)intk,m;floatarg1=0,arg2=0,arg3=0;if(head=NULL)如果頭指針是空則繼續cout”這是一個空表,請先輸入員工信息!n”;elsem=count(head);p1=head;for(k=0;kpaid2;p1=p1next;arg1/=m;arg2/=m;arg3/=m;coutV大各項工資的平均值*n”;cout”-n;coutV”tt基本工資的平均值:Vsetw(4)Varg1”n”tt加班工資的平均值:setwarg2”n”tt獎金的平均值:”setw(4)arg3n;cout”-n”/-菜單voidMenu()Inform
16、ationperson;studenthead=NULL;intchoice;longi;head=person。Read();docoutvt探”endl;coutv址”endl;coutv址歡迎進入員工信息統計管理”endl;coutvt探vvendl;coutt探”endl;cout”tvendl;coutt相關操作選項vendl;cout”t”endl;coutt探vendl;coutt探vendl;coutt探endl;coutt探1。員工數據輸入endl;coutvt探vendl;coutv址2.顯示員工工資endl;coutt探vendl;coutt探3.排序統計工資endl;c
17、outt探vendl;coutt探4.查找員工工資vvendl;coutv址endl;coutt探5。增加員工工資vendl;coutvt探vvendl;coutt探6.刪除員工工資endl;coutt探vvendl;coutvv乜7。修改員工信息vendlcoutt探vendl;coutt探8。成功保存信息vendl;coutt探vendl;coutt探9.安全退出系統vendl;coutt探endl;coutvt探nendl;cout請輸入您的選擇(0-9):”;cinchoice;while(choicevOIIchoice9)coutv對不起您的輸入錯誤!請輸入您的選擇(0-9):;c
18、inchoice;head=person。Read();switch(choice)case1:head=person。creat();break;case2:/head=person。Read();person。output(head);break;case3:head=person。Read();person.paixu(head);person.average(head);coutv”參加工作的員工人數為:”person。count(head)人nn”;break;case4:/head=person.Read();couti;while(i01Ii100000)cout”對不起您的輸入錯誤!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030國內老年養生保健品行業市場發展前景及競爭策略與投資風險報告
- 2025至2030中國濃縮玻璃清潔劑行業產業運行態勢及投資規劃深度研究報告
- 2025至2030中國水性滅火系統行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國水下摩托艇行業市場現狀分析及競爭格局與投資發展報告
- 2025至2030中國氨力農行業市場現狀分析及競爭格局與投資發展報告
- 造船廠廢品管理制度及流程
- GB/T 45613-2025皮革物理和機械試驗吸濕性的測定
- 2025-2030中國超短波電臺行業運營狀況與未來前景預測析報告
- GB/T 21963-2025農業機械維修術語
- 2025年汽車零部件再制造產業綠色制造技術與工藝研究報告001
- 2023-2024學年四川省廣安市高二下學期期末教學質量檢測數學試題 (解析版)
- 西部科學城重慶高新區引進急需緊缺人才38人模擬檢測試卷【共1000題含答案解析】
- 新護士五年規范化培訓手冊
- 醫學免疫學和病原生物學理論知識考核試題及答案
- 勝保養操作手冊江鈴馭
- 疫苗及其制備技術課件
- 阿里巴巴公司價值觀實施細則
- 安全防范系統設計方案
- 《人衛版第九版內科學心力衰竭》課件PPT
- 中國監察制度史
- 竣工驗收證書(模板)
評論
0/150
提交評論