鏈表操作——職工基本情況管理_第1頁(yè)
鏈表操作——職工基本情況管理_第2頁(yè)
鏈表操作——職工基本情況管理_第3頁(yè)
鏈表操作——職工基本情況管理_第4頁(yè)
鏈表操作——職工基本情況管理_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、XXXXXXXXXXXXXX綜合性設(shè)計(jì)性實(shí)驗(yàn)報(bào)告 班 級(jí):XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 學(xué) 號(hào):XXXXXXXXXXXXXX 姓 名 :XXXXX 實(shí)驗(yàn)項(xiàng)目名稱(chēng): 鏈 表 操 作 實(shí)驗(yàn)項(xiàng)目性質(zhì): 綜合性實(shí)驗(yàn) 實(shí)驗(yàn)所屬課程: 高級(jí)語(yǔ)言程序設(shè)計(jì) 實(shí)驗(yàn)室(中心): 軟件與信息技術(shù)實(shí)驗(yàn)中心 指 導(dǎo) 教 師 : XXXXXXXXXX 實(shí)驗(yàn)完成時(shí)間: 2013 年 3 月 10 日 綜合實(shí)驗(yàn)評(píng)分表序號(hào)項(xiàng)目標(biāo)準(zhǔn)評(píng)分1紀(jì)律遵守、群體協(xié)作等(30%)按規(guī)定時(shí)間到實(shí)驗(yàn)室完成實(shí)驗(yàn)及綜合實(shí)驗(yàn),每缺1次實(shí)驗(yàn)扣5分,缺4次及以上不得分2系統(tǒng)演示(功能)及問(wèn)答問(wèn)題(40%)按要求完成系

2、統(tǒng)功能且界面友好容錯(cuò)能力強(qiáng)(3640)按要求完成系統(tǒng)功能界面一般有較好的容錯(cuò)能力(32-35)基本完成系統(tǒng)功能有一定的容錯(cuò)能力(2831)基本完成系統(tǒng)功能(2427分)未完成系統(tǒng)功能或他人代做或抄襲(023)3課程設(shè)計(jì)說(shuō)明書(shū)(30%)綜合實(shí)驗(yàn)報(bào)告各項(xiàng)目認(rèn)真填寫(xiě),具有清晰的設(shè)計(jì)思路及軟件測(cè)試結(jié)果分析(2730)綜合實(shí)驗(yàn)報(bào)告各項(xiàng)目認(rèn)真填寫(xiě),具有較為清晰的設(shè)計(jì)思路并對(duì)軟件測(cè)試結(jié)果進(jìn)行了較為清晰的分析(2426)綜合實(shí)驗(yàn)報(bào)告各項(xiàng)目認(rèn)真填寫(xiě),設(shè)計(jì)思路正確(2123)綜合實(shí)驗(yàn)報(bào)告進(jìn)行為較為認(rèn)真的填寫(xiě)(1821)綜合實(shí)驗(yàn)報(bào)告有未完成項(xiàng)或各項(xiàng)填寫(xiě)不屬實(shí)或他人代做或抄襲(0-15)教師簽字總分一、實(shí)驗(yàn)?zāi)康呐囵B(yǎng)學(xué)

3、生在程序設(shè)計(jì)方面知識(shí)的綜合應(yīng)用能力及程序設(shè)計(jì)能力(包括編制能力及程序調(diào)試能力)二、實(shí)驗(yàn)內(nèi)容及要求編寫(xiě)處理職工簡(jiǎn)況程序,包括職工編號(hào)(整型)、姓名(字符串)、性別(字符串)、年齡(整型)、工資(雙精度型)。要求: 用鏈表處理實(shí)現(xiàn); 主函數(shù)顯示并選擇菜單; 程序的主要功能模塊均用函數(shù)實(shí)現(xiàn),包括:數(shù)據(jù)的輸入(插入節(jié)點(diǎn):按職工號(hào)升序排列),數(shù)據(jù)的刪除(刪除節(jié)點(diǎn))、數(shù)據(jù)的輸出(鏈表的遍歷)、統(tǒng)計(jì)平均工資等。三、實(shí)驗(yàn)設(shè)備及軟件計(jì)算機(jī)、Visual C+6.0四、設(shè)計(jì)方案 題目鏈表操作職工基本情況管理 設(shè)計(jì)的主要思路這個(gè)程序使用鏈表、指針和結(jié)構(gòu)體將每個(gè)工人編號(hào)、姓名、性別、部門(mén)、工資、補(bǔ)貼、獎(jiǎng)金、支出和實(shí)發(fā)

4、等信息進(jìn)行輸入、排序、保存并能使用菜單進(jìn)行查找,輸入、輸出、排序、查找等過(guò)程均使用單獨(dú)的函數(shù)來(lái)實(shí)現(xiàn)。 首先需建立鏈表,其中包括職工的姓名,性別,部門(mén),工資,補(bǔ)貼,獎(jiǎng)金,支出和實(shí)發(fā)等信息。 然后使用菜單的形式寫(xiě)出主函數(shù)。 然后寫(xiě)出輸入、輸出、排序、查找等函數(shù):在輸入時(shí)使用while循環(huán)對(duì)每個(gè)工人的信息進(jìn)行輸入;在輸出時(shí)使用if函數(shù)、while循環(huán)將信息輸出;在查詢(xún)時(shí)需使用if,else進(jìn)行循環(huán)和輸出,同時(shí)需使用指針。 主要功能使用鏈表、指針和結(jié)構(gòu)體將每個(gè)工人編號(hào)、姓名、性別、部門(mén)、工資、補(bǔ)貼、獎(jiǎng)金、支出和實(shí)發(fā)工資等信息進(jìn)行輸入、排序、保存并能使用菜單進(jìn)行查找,輸入、輸出、排序、查找等過(guò)程均使用單

5、獨(dú)的函數(shù)來(lái)實(shí)現(xiàn)。結(jié)構(gòu)體將每個(gè)工人的情況進(jìn)行處理,能將每個(gè)工人的情況進(jìn)行對(duì)應(yīng)的錄入,鏈表將每個(gè)工人進(jìn)行排列以及連續(xù)的輸入,函數(shù)將工資情況進(jìn)行輸入、輸出,并且能按部門(mén),職工號(hào),姓名進(jìn)行查詢(xún),同時(shí)也具有按部門(mén)排序和統(tǒng)計(jì)個(gè)部門(mén)工資的功能。五、主要代碼 結(jié)構(gòu)體: struct person char num20; /職工號(hào) char name20; /姓名 char sex20; /性別 char department10;/部門(mén) float salary; /工資 float subsidy; /補(bǔ)貼 float award; /獎(jiǎng)金 float pay; /支出 float money; /實(shí)發(fā)工資

6、 struct person *next;/指向下一個(gè) ; 各函數(shù)的申明和定義: person *creat(person*head); void print(person *head); person *sort(person *head); void numfind(person *head); void depfind(person *head); void depoutput(person*head,int k); void namefind(person *head); 主函數(shù): void main() /主函數(shù)(使用菜單) int c,k,i; cout<<"

7、請(qǐng)輸入部門(mén)數(shù):"cin>>k; for(i=0;i<k;i+) cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)部門(mén)的名稱(chēng):" cin>>depnamei; person *head=NULL,*sorthead=NULL; while(c!=0) cout<<"n 職工工資處理功能選擇" cout<<"n =" cout<<"n 1. 職工工資輸入 " cout<<"

8、n 2. 職工工資輸出 " cout<<"n 3. 按職工號(hào)查詢(xún) " cout<<"n 4. 按部門(mén)查詢(xún) " cout<<"n 5. 按姓名查詢(xún) " cout<<"n 6. 部門(mén)排序輸出 " cout<<"n 7. 部門(mén)工資查詢(xún) " cout<<"n 0. 退 出 系 統(tǒng) " cout<<"n =" cout<<"n 輸入你的選擇:"

9、;cin>>c; switch(c) case 1:head=creat(head);break; case 2:print(head);break; case 3:numfind(head);break; case 4:depfind(head);break; case 5:namefind(head);break; case 6:sorthead=sort(head);print(sorthead);break; case 7:depoutput(head,k);break; case 0:break; default:cout<<"選擇錯(cuò)誤,重新選擇n&

10、quot; 建立鏈表: person *creat(person *head) /輸入職工信息 char ch20="0",num20; person *p1,*p2; head=new person;/動(dòng)態(tài)數(shù)組 head->next=NULL; p1=head;p2=head; cout<<"請(qǐng)輸入職工號(hào)(輸0退出):" cin>>num; while(strcmp(num,ch)!=0) char man10="男",woman10="女" p1=new person; if(p1

11、=NULL) cout<<"錯(cuò)誤!"<<endl; strcpy(p1->num,num); cout<<"請(qǐng)輸入此職工姓名 :"cin>>p1->name; cout<<"請(qǐng)輸入性別(男&&女) :"cin>>p1->sex; cout<<"請(qǐng)輸入職工所屬部門(mén) :"cin>>p1->department; cout<<"請(qǐng)輸入職工工資(>=0):&qu

12、ot;cin>>p1->salary;cout<<"請(qǐng)輸入職工補(bǔ)貼(>=0):"cin>>p1->subsidy; cout<<"請(qǐng)輸入職工獎(jiǎng)金(>=0):"cin>>p1->award; cout<<"請(qǐng)輸入職工支出(>=0):"cin>>p1->pay;p1->money=p1->salary+p1->subsidy+p1->award-p1->pay; p2->next

13、=p1;p2=p1; p2->next=NULL;cout<<"請(qǐng)輸入職工號(hào)(輸0退出):"cin>>num; return head;輸出函數(shù):void print(person *head) person *p1;p1=head;if(head=NULL)cout<<"未建立!"<<endl;return;p1=p1->next;cout<<setw(10)<<"職工號(hào)"<<setw(10)<<"姓名"&

14、lt;<setw(10)<<"性別"<<setw(10)<<"部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金"<<setw(10)<<"支出"<<setw(10)<<"實(shí)發(fā)工資"<<endl;while(p1!=NULL)cout&

15、lt;<setw(10)<<p1->num<<setw(10)<<p1->name<<setw(10)<<p1->sex<<setw(10)<<p1->department<<setw(10)<<p1->salary<<setw(10)<<p1->subsidy<<setw(10)<<p1->award<<setw(10)<<p1->pay<<setw

16、(10)<<p1->money<<endl;p1=p1->next;按職工號(hào)查找函數(shù):void numfind(person *head) char num20;cout<<"請(qǐng)輸入職工號(hào):"cin>>num;person*p0;p0=head;if(head=NULL)cout<<"未建立!"<<endl;elsep0=p0->next; if(strcmp(p0->num,num)=0) cout<<setw(10)<<"

17、職工號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"性別"<<setw(10) <<"部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金" <<setw(10)<<"支出"<<setw(10)<<

18、;"實(shí)發(fā)工資"<<endl; cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department <<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award <<

19、setw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elsewhile(p0->next!=NULL&&strcmp(p0->num,num)!=0)p0=p0->next; if(strcmp(p0->num,num)=0) cout<<setw(10)<<"職工號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"性別&qu

20、ot;<<setw(10) <<"部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金" <<setw(10)<<"支出"<<setw(10)<<"實(shí)發(fā)工資"<<endl; cout<<setw(10)<<p0->num<<setw(

21、10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl;elsecout&

22、lt;<"無(wú)此職工號(hào)信息!"<<endl;按職工姓名查找函數(shù):void namefind(person *head) /按職工姓名查找函數(shù)char name20;cout<<"請(qǐng)輸入姓名:"cin>>name;person*p0;p0=head;if(head=NULL)cout<<"未建立"<<endl;elsep0=p0->next;if(strcmp(p0->name,name)=0) cout<<setw(10)<<"

23、;職工號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"性別"<<setw(10) <<"部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金" <<setw(10)<<"支出"<<setw(10)<&l

24、t;"實(shí)發(fā)工資"<<endl; cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<s

25、etw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elsewhile(p0->next!=NULL&&strcmp(p0->name,name)!=0)p0=p0->next;if(strcmp(p0->name,name)=0) cout<<setw(10)<<"職工號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"性別&

26、quot;<<setw(10) <<"部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金" <<setw(10)<<"支出"<<setw(10)<<"實(shí)發(fā)工資"<<endl; cout<<setw(10)<<p0->num<<set

27、w(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department<<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award<<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl; elseco

28、ut<<"未找到此職工信息!"<<endl;按部門(mén)查找函數(shù)void depfind(person *head) /char num20;cout<<"請(qǐng)輸入部門(mén):"cin>>num;person*p0;p0=head;cout<<setw(10)<<"職工號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"性別"<<setw(10)<<&quo

29、t;部門(mén)"<<setw(10)<<"工資"<<setw(10)<<"補(bǔ)貼"<<setw(10)<<"獎(jiǎng)金"<<setw(10)<<"支出"<<setw(10)<<"實(shí)發(fā)工資"<<endl;if(head=NULL)cout<<"未建立"<<endl;elsep0=p0->next;while(p0!=NUL

30、L)if(strcmp(p0->department,num)=0) cout<<setw(10)<<p0->num<<setw(10)<<p0->name<<setw(10)<<p0->sex<<setw(10)<<p0->department <<setw(10)<<p0->salary<<setw(10)<<p0->subsidy<<setw(10)<<p0->award &

31、lt;<setw(10)<<p0->pay<<setw(10)<<p0->money<<endl;p0=p0->next;按部門(mén)排序的函數(shù):person *sort(person *head) char depname10;cout<<"按哪個(gè)部門(mén)排序?"cin>>depname;person*p0,*p1,*p2,*p3,*sorthead,*sorthead0;p0=head->next;sorthead0=new person;/動(dòng)態(tài)數(shù)組p2=new person;p

32、1=sorthead0; while(p0!=NULL)if(strcmp(p0->department,depname)=0) strcpy(p2->name,p0->name);/復(fù)制 strcpy(p2->num,p0->num);strcpy(p2->sex,p0->sex); strcpy(p2->department,p0->department); p2->salary=p0->salary; p2->pay=p0->pay; p2->subsidy=p0->subsidy; p2->

33、money=p0->money; p2->award=p0->award;p1->next=p2;p2->next=NULL;p1=p2;p2=new person; p0=p0->next;p2->next=NULL;p0=NULL;p1=NULL;p2=NULL;p3=NULL; sorthead=new person;if(sorthead=NULL) cout<<"錯(cuò)誤!"<<endl; sorthead->next=NULL;p2=sorthead;p3=sorthead;p1=sorthea

34、d0->next;while(p1!=NULL)p2=new person;if(p2=NULL) cout<<"錯(cuò)誤!"<<endl; strcpy(p2->name,p1->name);strcpy(p2->num,p1->num);strcpy(p2->sex,p1->sex);strcpy(p2->department,p1->department);p2->salary=p1->salary;p2->pay=p1->pay;p2->subsidy=p1->subsidy;p2->money=p1->money;p2->award=p1->award;p3->next=p2;p3=p3->next;p2->next=NULL;p1=p1->next; p2=sorthead->next;p3=sorthead->next;while(p2->next!=NULL)while(p3->next!=NULL)p3=p3->next; if(p3->salary>p2-&g

溫馨提示

  • 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)論