中南大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)-職工工資管理系統(tǒng)(附詳細(xì)操作說明及注釋)_第1頁
中南大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)-職工工資管理系統(tǒng)(附詳細(xì)操作說明及注釋)_第2頁
中南大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)-職工工資管理系統(tǒng)(附詳細(xì)操作說明及注釋)_第3頁
中南大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)-職工工資管理系統(tǒng)(附詳細(xì)操作說明及注釋)_第4頁
中南大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)-職工工資管理系統(tǒng)(附詳細(xì)操作說明及注釋)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、/*Note:YourchoiceisCIDE*/#includestdio.h#includestring.h#includeconio.h#includestdlib.hstructMessage/*此構(gòu)造體用于寄存員工信息以及創(chuàng)立鏈表*/charname30;intID;intJBGZ;intZWGZ;intJT;intYLBX;intGJJ;longintTotal;floatSum_3;structMessage*nextPrt;static*head,*Rec_1=NULL,*Rec_2=NULL,*Rec_3=NULL;/*此處創(chuàng)立一個(gè)表頭,以及三個(gè)用于恢復(fù)函數(shù)的靜態(tài)變量*/st

2、aticfloatSum_JBGZ=0,Sum_ZWGZ=0,Sum_JT=0,Sum_YLBX=0,Sum_GJJ=0;staticfloatAverage_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Average_GJJ;voidInput();/*此處申明各一級(jí)函數(shù)*/voidOutput();voidDelete();voidAdd();voidRecover();voidModify();voidSearch();voidStatistic();structMessage*creat(structMessage*h);/*此處申明各二級(jí)函數(shù)*

3、/voidprint_Message(structMessage*h);structMessage*del_Message(structMessage*h,char*str);structMessage*add_Message(structMessage*h,structMessage*a,char*strafter);structMessage*Recover_Message(structMessage*h);structMessage*Modify_Message(structMessage*h,char*str);voidSearch_Message(structMessage*h);v

4、oidStatistic_Message(structMessage*h);main()/*主函數(shù)為菜單頁*/chari;/*功能:調(diào)用各一級(jí)函數(shù)一級(jí)退出程序*/word資料clrscr();gotoxy(27,9);printf(16中南大學(xué));gotoxy(27,11);printf(16員工薪資管理系統(tǒng));gotoxy(27,13);printf(16設(shè)計(jì)者:劉路);gotoxy(27,15);printf(16輸入隨意鍵持續(xù)n);getch();for(;)clrscr();gotoxy(25,9);printf(*菜單*);gotoxy(25,10);printf(*a.輸入記錄*)

5、;gotoxy(25,11);printf(*b.顯示記錄*);gotoxy(25,12);printf(*c.改正記錄*);gotoxy(25,13);printf(*d.查找記錄*);gotoxy(25,14);printf(*e.增添記錄*);gotoxy(25,15);printf(*f.刪除記錄*);gotoxy(25,16);printf(*g.恢復(fù)記錄*);gotoxy(25,17);printf(*h.統(tǒng)計(jì)數(shù)據(jù)*);gotoxy(25,18);printf(*i.退出程序*);gotoxy(25,19);printf(*請(qǐng)選擇ai*);gotoxy(25,20);printf(

6、*);i=getch();if(i=i)break;elseswitch(i)casea:Input();break;/*調(diào)用記錄輸入函數(shù)*/caseb:Output();break;/*調(diào)用記錄顯示函數(shù)*/casec:Modify();break;/*調(diào)用記錄改正函數(shù)*/word資料cased:Search();break;/*調(diào)用記錄查找函數(shù)*/casee:Add();break;/*調(diào)用記錄增添函數(shù)*/casef:Delete();break;/*調(diào)用記錄刪除函數(shù)*/caseg:Recover();break;/*調(diào)用記錄恢復(fù)函數(shù)*/caseh:Statistic();break;/*調(diào)

7、用記錄統(tǒng)計(jì)函數(shù)*/voidInput()/*定義輸入函數(shù)(一級(jí))*/*主要功能:調(diào)用二級(jí)子函數(shù)創(chuàng)立鏈表*/head=NULL;head=creat(head);voidOutput()/*定義顯示函數(shù)(一級(jí))*/*主要功能:調(diào)用二級(jí)子函數(shù)實(shí)現(xiàn)按必定格式輸出全部員工薪資信息*/clrscr();print_Message(head);voidDelete()/*定義刪除函數(shù)(一級(jí))*/*主要功能:調(diào)用二級(jí)子函數(shù)實(shí)現(xiàn)刪除隨意員工薪資信息并輸出刪除后的薪資信息*/charname50,*del_Mes=name;clrscr();gotoxy(1,1);printf(請(qǐng)輸入姓名:n);scanf(%

8、s,name);head=del_Message(head,del_Mes);clrscr();printf(刪除數(shù)據(jù)后:n);printf(-n);print_Message(head);voidAdd()/*定義增添函數(shù)(一級(jí))*/*主要功能:調(diào)用二級(jí)函數(shù)以實(shí)此刻隨意地點(diǎn)增添一條或多條員工薪資信息*/charafter_name30,i;structMessage*p;clrscr();gotoxy(1,1);printf(n請(qǐng)輸入需要增添的信息n);printf(-n);p=(structMessage*)malloc(sizeof(structMessage);if(p!=NULL)w

9、ord資料printf(請(qǐng)輸入姓名:n);scanf(%s,&p-name);printf(請(qǐng)輸入ID:n);scanf(%d,&p-ID);printf(請(qǐng)輸入基本薪資:n);scanf(%d,&p-JBGZ);printf(請(qǐng)輸入職位薪資:n);scanf(%d,&p-ZWGZ);printf(請(qǐng)輸入津貼:n);scanf(%d,&p-JT);printf(請(qǐng)輸入醫(yī)療保險(xiǎn):n);scanf(%d,&p-YLBX);printf(請(qǐng)輸入公積金:n);scanf(%d,&p-GJJ);p-Total=p-JBGZ+p-ZWGZ+p-JT-p-YLBX-p-GJJ;printf(總薪資為:%dn

10、,p-Total);printf(n輸入在哪個(gè)員工信息下方增添新信息:n);scanf(%s,after_name);head=add_Message(head,p,after_name);printf(n能否持續(xù)增添?Y/N);i=getch();while(i!=N)printf(n請(qǐng)輸入你想要增添的信息n);printf(-n);p=(structMessage*)malloc(sizeof(structMessage);if(p!=NULL)printf(請(qǐng)輸入姓名:n);scanf(%s,&p-name);printf(請(qǐng)輸入ID:n);scanf(%d,&p-ID);printf(

11、請(qǐng)輸入基本薪資:n);scanf(%d,&p-JBGZ);printf(請(qǐng)輸入職位薪資:n);scanf(%d,&p-ZWGZ);printf(請(qǐng)輸入津貼:n);scanf(%d,&p-JT);printf(請(qǐng)輸入醫(yī)療保險(xiǎn):n);scanf(%d,&p-YLBX);printf(請(qǐng)輸入公積金:n);word資料scanf(%d,&p-GJJ);p-Total=p-JBGZ+p-ZWGZ+p-JT-p-YLBX-p-GJJ;printf(總薪資為:%ldn,p-Total);printf(n輸入在哪個(gè)員工信息下方增添新信息:n);scanf(%s,after_name);head=add_Mes

12、sage(head,p,after_name);printf(n能否持續(xù)增添?Y/N);i=getch();clrscr();gotoxy(1,1);printf(n增添后的信息為:n);printf(-n);print_Message(head);voidRecover()/*定義記錄恢復(fù)函數(shù)(一級(jí))*/*主要功能:調(diào)用二級(jí)函數(shù)以實(shí)現(xiàn)恢復(fù)已刪除的信息*/clrscr();head=Recover_Message(head);gotoxy(1,4);printf(恢復(fù)成功!_n);printf(n輸入隨意鍵退出.);getch();voidModify()/*定義記錄改正函數(shù)(一級(jí))*/*主要

13、功能:調(diào)用二級(jí)函數(shù)以實(shí)現(xiàn)改正隨意員工的隨意信息*/charname50,*Mod_Message=name;clrscr();printf(請(qǐng)輸入需要改正信息的員工:n);scanf(%s,name);head=Modify_Message(head,Mod_Message);clrscr();printf(改正后的信息為:n);printf(-n);print_Message(head);voidSearch()/*定義記錄查找函數(shù)(一級(jí))*/word資料/*主要功能:調(diào)用二級(jí)函數(shù)實(shí)現(xiàn)依照姓名或ID經(jīng)過重點(diǎn)字查找或精準(zhǔn)查找的方式搜尋員工信息*/clrscr();Search_Message(

14、head);voidStatistic()/*定義記錄統(tǒng)計(jì)函數(shù)(一級(jí))*/*調(diào)用二級(jí)函數(shù)以實(shí)現(xiàn)以表格的形式輸出員工薪資信息并統(tǒng)計(jì)前三項(xiàng)薪資總數(shù)在必定范圍內(nèi)的人數(shù)及比率*/clrscr();Statistic_Message(head);printf(n輸入隨意鍵退出.);getch();structMessage*creat(structMessage*h)/*定義創(chuàng)立鏈表函數(shù)(二級(jí))*/chari;structMessage*p1,*p2;clrscr();p1=p2=(structMessage*)malloc(sizeof(structMessage);if(p2!=NULL)gotox

15、y(1,1);printf(請(qǐng)輸入姓名:n);scanf(%s,&p2-name);printf(請(qǐng)輸入ID:n);scanf(%d,&p2-ID);printf(請(qǐng)輸入基本薪資:n);scanf(%d,&p2-JBGZ);printf(請(qǐng)輸入職位薪資:n);scanf(%d,&p2-ZWGZ);printf(請(qǐng)輸入津貼:n);scanf(%d,&p2-JT);printf(請(qǐng)輸入醫(yī)療保險(xiǎn):n);scanf(%d,&p2-YLBX);printf(請(qǐng)輸入公積金:n);scanf(%d,&p2-GJJ);p2-Total=p2-JBGZ+p2-ZWGZ+p2-JT-p2-YLBX-p2-GJJ;

16、printf(總薪資為:%ldn,p2-Total);h=p2;p2-nextPrt=NULL;printf(輸入s退出,輸入其余鍵持續(xù).n);word資料i=getch();while(i!=s)p2=(structMessage*)malloc(sizeof(structMessage);if(p2!=NULL)printf(請(qǐng)輸入姓名:n);scanf(%s,&p2-name);printf(請(qǐng)輸入ID:n);scanf(%d,&p2-ID);printf(請(qǐng)輸入基本薪資:n);scanf(%d,&p2-JBGZ);printf(請(qǐng)輸入職位薪資:n);scanf(%d,&p2-ZWGZ)

17、;printf(請(qǐng)輸入津貼:n);scanf(%d,&p2-JT);printf(請(qǐng)輸入醫(yī)療保險(xiǎn):n);scanf(%d,&p2-YLBX);printf(請(qǐng)輸入公積金:n);scanf(%d,&p2-GJJ);p2-Total=p2-JBGZ+p2-ZWGZ+p2-JT-p2-YLBX-p2-GJJ;printf(總薪資為:%ldn,p2-Total);p2-nextPrt=NULL;p1-nextPrt=p2;p1=p2;printf(輸入s退出,輸入其余鍵持續(xù).n);i=getch();returnh;voidprint_Message(structMessage*h)/*定義記錄輸出函

18、數(shù)(二級(jí))*/structMessage*temp;inti=0;temp=h;gotoxy(1,4);printf(IDtbb姓名tbb基本薪資t職位薪資tbbbbbb津貼tb醫(yī)療保險(xiǎn)t公積金tb總薪資n);if(temp=NULL)printf(沒有找到信息!n);while(temp!=NULL)word資料i+;printf(%dtbb%stbb%dt%dt%dt%dt%dt%dn,temp-ID,temp-name,temp-JBGZ,temp-ZWGZ,temp-JT,temp-YLBX,temp-GJJ,temp-Total);(Sum_JBGZ+=temp-JBGZ,Sum_Z

19、WGZ+=temp-ZWGZ,Sum_JT+=temp-JT,Sum_YLBX+=temp-YLBX,Sum_GJJ+=temp-GJJ);temp=temp-nextPrt;(Average_JBGZ=Sum_JBGZ/i,Average_ZWGZ=Sum_ZWGZ/i,Average_JT=Sum_JT/i,Average_YLBX=Sum_YLBX/i,Average_GJJ=Sum_GJJ/i);printf(各項(xiàng)均勻工資:tbb%.1ft%.1ft%.1ft%.1ft%.1fn,Average_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Ave

20、rage_GJJ);printf(輸入隨意鍵退出.);getch();structMessage*del_Message(structMessage*h,char*str)/*定義記錄刪除函數(shù)(二級(jí))*/structMessage*p1,*p2;p1=h;if(p1=NULL)printf(沒有找到信息!n);returnh;p2=p1-nextPrt;if(!strcmp(p1-name,str)Rec_2=p1;Rec_3=p2;h=p2;returnh;while(p2!=NULL)if(!strcmp(p2-name,str)Rec_1=p1;Rec_2=p2;Rec_3=p2-nex

21、tPrt;p1-nextPrt=p2-nextPrt;returnh;word資料elsep1=p2;p2=p2-nextPrt;printf(刪除成功!_);getch();returnh;structMessage*add_Message(structMessage*h,structMessage*a,char*strafter)/*定義記錄增添函數(shù)(二級(jí))*/structMessage*p1,*p2;p1=h;while(p1!=NULL)if(!strcmp(p1-name,strafter)a-nextPrt=p1-nextPrt;p1-nextPrt=a;returnh;elsep

22、1=p1-nextPrt;returnh;structMessage*Recover_Message(structMessage*h)/*定義記錄恢復(fù)函數(shù)(二級(jí))*/if(Rec_1=NULL)h=Rec_2;Rec_2-nextPrt=Rec_3;elseRec_1-nextPrt=Rec_2;Rec_2-nextPrt=Rec_3;returnh;structMessage*Modify_Message(structMessage*h,char*str)word資料/*定義記錄改正函數(shù)(二級(jí))*/structMessage*p1;inti;p1=h;if(p1=NULL)printf(沒有

23、找到信息!);returnh;while(strcmp(p1-name,str)p1=p1-nextPrt;printf(請(qǐng)輸入需要改正的信息(序號(hào)):n);printf(1.姓名2.ID3.基本薪資4.職務(wù)薪資5.津貼6.醫(yī)療保險(xiǎn)7.公積金8.總薪資n);scanf(%d,&i);switch(i)case1:printf(請(qǐng)輸入改正后的姓名:n);scanf(%s,&p1-name);break;case2:printf(請(qǐng)輸入改正后的ID:n);scanf(%d,&p1-ID);break;case3:printf(請(qǐng)輸入改正后的基本薪資:n);scanf(%d,&p1-JBGZ);br

24、eak;case4:printf(請(qǐng)輸入改正后的職務(wù)薪資:n);scanf(%d,&p1-ZWGZ);break;case5:printf(請(qǐng)輸入改正后的津貼:n);scanf(%d,&p1-JT);break;case6:printf(請(qǐng)輸入改正后的醫(yī)療保險(xiǎn):n);scanf(%d,&p1-YLBX);break;case7:printf(請(qǐng)輸入改正后的公積金:n);scanf(%d,&p1-GJJ);break;case8:printf(請(qǐng)輸入總薪資:n);scanf(%d,&p1-Total);break;printf(n改正成功!_n輸入隨意鍵查察結(jié)果.);getch();return

25、h;voidSearch_Message(structMessage*h)/*定義記錄搜尋函數(shù)(二級(jí))*/structMessage*p1;inta,b,i,u,n=0,x1=0,x2,x3=0,x4=0,x5,x6,w1=1,w2=1,w3=0;word資料charname50;p1=h;if(p1=NULL)printf(沒有找到信息!);printf(請(qǐng)選擇查找方式:1.按姓名查找2.按ID查找n);scanf(%d,&a);printf(請(qǐng)選擇搜尋方式:1.按重點(diǎn)字搜尋2.精準(zhǔn)搜尋n);scanf(%d,&b);if(a=1&b=1)printf(請(qǐng)輸入姓名:n);scanf(%s,n

26、ame);while(p1!=NULL)for(i=0;namei!=0;i+)for(u=0;p1-nameu!=0;u+)if(namei=p1-nameu)n+;if(2*n=strlen(name)printf(IDtbb姓名tbb基本薪資t職位薪資tbbbbbb津貼tb醫(yī)療保險(xiǎn)t公積金tb總薪資n);printf(%dtbb%stbb%dt%dt%dt%dt%dt%dn,p1-ID,p1-name,p1-JBGZ,p1-ZWGZ,p1-JT,p1-YLBX,p1-GJJ,p1-Total);p1=p1-nextPrt;p1=h;printf(n輸入隨意鍵退出.);getch();if

27、(a=1&b=2)printf(請(qǐng)輸入姓名:n);scanf(%s,name);while(p1!=NULL)if(!strcmp(p1-name,name)printf(IDtbb姓名tbb基本薪資t職位薪資tbbbbbb津貼tb醫(yī)療保險(xiǎn)t公積金tb總薪資n);printf(%dtbb%stbb%dt%dt%dt%dt%dt%dn,p1-ID,p1-name,p1-JBGZ,p1-ZWGZ,p1-JT,p1-YLBX,p1-GJJ,p1-Total);p1=p1-nextPrt;word資料p1=h;printf(n輸入隨意鍵退出.);getch();if(a=2&b=1)printf(請(qǐng)輸

28、入ID:n);scanf(%d,&x1);x2=x1;while(x2!=0)x2=x2/10;if(x2!=0)w1+;/*記錄輸入數(shù)據(jù)的位數(shù)w1*/while(p1!=NULL)x6=x1;/*用x6臨時(shí)儲(chǔ)存輸入的數(shù)據(jù)*/for(i=1;iID;while(x5!=0)x5=x5/10;if(x5!=0)w2+;/*記錄鏈表中某一節(jié)點(diǎn)位數(shù)*/x5=1;x4=p1-ID;/*x4臨時(shí)儲(chǔ)存鏈表中某一節(jié)點(diǎn)的ID*/for(u=1;uID,p1-name,p1-JBGZ,p1-ZWGZ,p1-JT,p1-YLBX,p1-GJJ,p1-Total);p1=p1-nextPrt;/*節(jié)點(diǎn)地點(diǎn)向后挪動(dòng)一

29、位,持續(xù)循環(huán)以判斷能否切合輸出要求*/;p1=h;printf(n輸入隨意鍵退出.);getch();if(a=2&b=2)printf(請(qǐng)輸入ID:n);scanf(%d,&x1);while(p1!=NULL)if(p1-ID=x1)printf(IDtbb姓名tbb基本薪資t職位薪資tbbbbbb津貼tb醫(yī)療保險(xiǎn)t公積金tb總薪資n);printf(%dtbb%stbb%dt%dt%dt%dt%dt%dn,p1-ID,p1-name,p1-JBGZ,p1-ZWGZ,p1-JT,p1-YLBX,p1-GJJ,p1-Total);p1=p1-nextPrt;p1=h;printf(n輸入隨意

30、鍵退出.);getch();voidStatistic_Message(structMessage*h)/*定義記錄統(tǒng)計(jì)函數(shù)*/word資料structMessage*p1;inti=0,a1=0,b1=0,c1=0;floata2,b2,c2;p1=h;printf(n);printf(ID號(hào)姓名基本薪資職務(wù)薪資津貼醫(yī)療保險(xiǎn)公積金總薪資n);printf(n);while(p1!=NULL)i+;printf(%dt%stbbbbbbbb%dtbbbb%dt%dt%dt%dtbbbbbb%ldn,p1-ID,p1-name,p1-JBGZ,p1-ZWGZ,p1-JT,p1-YLBX,p1-G

31、JJ,p1-Total);printf(n);(Sum_JBGZ+=p1-JBGZ,Sum_ZWGZ+=p1-ZWGZ,Sum_JT+=p1-JT,Sum_YLBX+=p1-YLBX,Sum_GJJ+=p1-GJJ);p1=p1-nextPrt;(Average_JBGZ=Sum_JBGZ/i,Average_ZWGZ=Sum_ZWGZ/i,Average_JT=Sum_JT/i,Average_YLBX=Sum_YLBX/i,Average_GJJ=Sum_GJJ/i);printf(n);printf(n);printf(各項(xiàng)均勻薪資%.1ftbbbb%.1ft%.1ftb%.1ftbbb

32、b%.1ftbbbbbbtbbn,Average_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Average_GJJ);printf(b);p1=h;while(p1!=NULL)p1-Sum_3=(p1-JBGZ+p1-ZWGZ+p1-JT);if(p1-Sum_3=1000&p1-Sum_3Sum_3=1500&p1-Sum_3Sum_32000)c1+;p1=p1-nextPrt;a2=(float)a1/i)*100;b2=(float)b1/i)*100;word資料c2=(float)c1/i)*100;printf(nn前三項(xiàng)薪資和在1000-1500元之間的員工人數(shù)為:%d,占總員工人數(shù)的百分比為:%.2f

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論