版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì)設(shè)計(jì)題目: 職工工資管理系統(tǒng) 學(xué)生姓名: 劉漢 學(xué)生學(xué)號(hào): 6 專業(yè)班級(jí): 09計(jì)科(1) 指導(dǎo)教師: 祁文青 2011-12-20 目 錄一、前言1二、課題要求、課題分析1(一)課題要求1(二)課題分析1三、方案設(shè)定2四、程序功能描述與模塊結(jié)構(gòu)2(一)程序功能描述2(二)功能模塊2(三)程序流程圖3四、用戶使用說(shuō)明6五、測(cè)試結(jié)果7六程序經(jīng)驗(yàn)教訓(xùn)總結(jié)12七附錄13一、前言C+語(yǔ)言是具有面向?qū)ο筇匦缘腃語(yǔ)言的繼承者,即是由C語(yǔ)言演變而來(lái),全面兼容C語(yǔ)言。C語(yǔ)言的優(yōu)點(diǎn),如語(yǔ)言簡(jiǎn)潔靈活,運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)豐富,具有結(jié)構(gòu)化控制語(yǔ)句,程序執(zhí)行效率高,同時(shí)具有高級(jí)語(yǔ)言與匯編語(yǔ)言的優(yōu)點(diǎn),這些在C
2、+語(yǔ)言中同樣能夠體現(xiàn)出來(lái)。但是C+語(yǔ)言最有意義的方面是支持面向?qū)ο蟮某绦蛟O(shè)計(jì),在數(shù)據(jù)類型、算法的控制結(jié)構(gòu)、函數(shù)等方面都有很好的體現(xiàn)。面向?qū)ο缶幊讨校瑢?duì)象是程序設(shè)計(jì)的基本單位,但對(duì)象的靜態(tài)屬性往往需要用某種類型的數(shù)據(jù)來(lái)表示,對(duì)象的動(dòng)態(tài)屬性要由成員函數(shù)來(lái)實(shí)現(xiàn),面向函數(shù)的實(shí)現(xiàn)歸根到底還是算法的設(shè)計(jì)。二、課題要求、課題分析(一)課題要求C+課程設(shè)計(jì)通過(guò)綜合運(yùn)用在C+程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)中所學(xué)的程序結(jié)構(gòu)、流程控制語(yǔ)句、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、數(shù)據(jù)結(jié)構(gòu)等知識(shí),以簡(jiǎn)易“管理信息系統(tǒng)”程序設(shè)計(jì)為載體,以C+語(yǔ)言為工具,使我們更深地涉足計(jì)算機(jī)專業(yè)設(shè)計(jì)領(lǐng)域,并使所學(xué)知識(shí)和技能得到進(jìn)一步鞏固、深化和擴(kuò)展,以達(dá)到能用
3、C+編寫初等程度軟件的目的,為繼續(xù)學(xué)習(xí)后續(xù)課程及今后走上相關(guān)工作崗位打下良好的基礎(chǔ)。經(jīng)過(guò)調(diào)查分析,決定設(shè)計(jì)職工工資管理系統(tǒng)。創(chuàng)建存儲(chǔ)職工工資信息的存儲(chǔ)文件。添加某職工的工資信息。刪除某職工的工資信息。修改某職工的部分工資信息(當(dāng)月開始增加或減少某些項(xiàng)工資或扣款數(shù)變化)。輸出指定編號(hào)職工的工資信息(查詢用)。輸出全體職工的工資信息(發(fā)工資用)。(二)課題分析職工工資管理系統(tǒng)可定位于企業(yè)會(huì)計(jì)系統(tǒng)的一個(gè)子系統(tǒng),該系統(tǒng)主要完成的工作為:錄入各職工自身及工資情況、對(duì)已經(jīng)存在的數(shù)據(jù)的修改、刪除、可查詢、統(tǒng)計(jì)系統(tǒng)中的數(shù)據(jù)等。為此因此職工工資管理系統(tǒng)的功能:讀取文件信息、數(shù)據(jù)輸入、顯示、排序、查找、增加、刪除
4、、修改、保存等。三、課程設(shè)計(jì)內(nèi)容及進(jìn)度安排(一)課題內(nèi)容:該系統(tǒng)在磁盤上存儲(chǔ)了某單位全體職工的工資信息。對(duì)于每位職工存儲(chǔ)以下信息:職工編號(hào)、基本工資、津貼、崗貼、補(bǔ)貼、應(yīng)發(fā)數(shù)、個(gè)人所得稅、應(yīng)扣數(shù)、實(shí)發(fā)數(shù)。個(gè)人所得稅計(jì)算方法設(shè)為:工資少于1100元的部分為0,11001600元部分為5%,16002600部分為10%,26003600部分為15%,5600元以上部分為20%。(二)課題要求:1分析問題,給出數(shù)學(xué)模型,選擇數(shù)據(jù)結(jié)構(gòu).2設(shè)計(jì)算法,給出算法描述3給出源程序清單4. 編輯、編譯、調(diào)試源程序5. 撰寫課程設(shè)計(jì)報(bào)告四、 程序功能描述與模塊結(jié)構(gòu)(一)程序功能描述 通過(guò)主菜單display()函
5、數(shù)將讀取文件信息、輸入、顯示、統(tǒng)計(jì)、增加、刪除、修改、查找、排序等函數(shù)結(jié)合一起,在用戶通過(guò)相關(guān)操作選擇其中一個(gè)功能時(shí),調(diào)用該功能函數(shù),完成數(shù)據(jù)處理。在主函數(shù)中調(diào)用主菜單diplay()函數(shù),完成操作。用一個(gè)中間函數(shù)將主函數(shù)與各功能函數(shù)連接在一起,不僅使程序語(yǔ)言簡(jiǎn)潔、明了、易懂,而且在功能實(shí)現(xiàn)上也更加晚上。(二)功能模塊1.主函數(shù)int main():設(shè)置背景顏色和字體顏色、調(diào)用設(shè)計(jì)者的相關(guān)信息函數(shù)、調(diào)用display函數(shù),實(shí)現(xiàn)系統(tǒng)的主要功能處理;2.主菜單dispiay()函數(shù):確定如何選擇所需功能,調(diào)用讀取文件信息、數(shù)據(jù)輸入、顯示、排序、查找、增加、刪除、修改、保存等函數(shù),完成職工工資管理系
6、統(tǒng)的數(shù)據(jù)處理;3.讀取文件的信息read()函數(shù):從文件中讀取職工工資的信息表并顯示出來(lái);4.數(shù)據(jù)輸入函數(shù)shuru():建立鏈表,完成職工信息錄入;5.數(shù)據(jù)顯示函數(shù)diaplay():將職工信息數(shù)據(jù)顯示出來(lái);6.數(shù)據(jù)統(tǒng)計(jì)函數(shù)tongji():統(tǒng)計(jì)職工人數(shù);7.數(shù)據(jù)增加函數(shù)tianjia():添加職工信息;8.數(shù)據(jù)刪除函數(shù)shanchu():刪除職工信息數(shù)據(jù);9.數(shù)據(jù)修改函數(shù)xiugai():修改職工工資等信息數(shù)據(jù);10.數(shù)據(jù)查找函數(shù)chazhao():查找某一職工工資等信息情況;11.數(shù)據(jù)保存函數(shù)save():對(duì)系統(tǒng)中的數(shù)據(jù)進(jìn)行相關(guān)的操作后將其保存起來(lái);12.作者信息函數(shù)editor():顯
7、示設(shè)計(jì)者的相關(guān)信息;13.登陸函數(shù)Pass():設(shè)定使用權(quán)限。(三)程序流程圖程序流程圖主是對(duì)各功能模塊的具體描述,以一種圖表的方式簡(jiǎn)潔明了的將各模塊的呈現(xiàn)出來(lái),通過(guò)這些流程圖可清楚的看出整個(gè)程序的運(yùn)行過(guò)程,體會(huì)程序的流暢性。1. 主函數(shù)流程圖結(jié)束調(diào)用主菜單函數(shù)調(diào)用登陸函數(shù)pass () Main ()調(diào)用作息信息函數(shù)editor ()調(diào)用系統(tǒng)函數(shù)system(“color d”)開始 圖1-1主函數(shù)的流程圖2各子功能函數(shù)流程圖開始定義變量輸出系統(tǒng)相關(guān)信息輸入sumsum9while(sum)調(diào)用 統(tǒng)計(jì)函數(shù)調(diào)用 顯示函數(shù)調(diào)用 輸入函數(shù)調(diào)用 查找函數(shù)調(diào)用 增加函數(shù)調(diào)用 刪除函數(shù)調(diào)用 修改函數(shù)調(diào)用
8、 保存函數(shù)輸出函數(shù)結(jié)束NY圖1-2 Menu函數(shù)流程圖五、用戶使用說(shuō)明這是一個(gè)關(guān)于職工工資管理系統(tǒng),具有輸入、輸出、統(tǒng)計(jì)、刪除、查詢、修改數(shù)據(jù)等功能,建立了一個(gè)含有姓名、性別、編號(hào)、工資、總工資等成員的結(jié)構(gòu)體數(shù)據(jù)類型的變量struct xinxi 。1. 用戶使用時(shí),根據(jù)提示操作,進(jìn)入登陸頁(yè)面。輸入登陸名ltf,登陸密碼ltf,進(jìn)入操作系統(tǒng)。如果登陸信息輸錯(cuò)三次,自動(dòng)退出系統(tǒng)。2. 按顯示的數(shù)字選擇操作,先輸入職工數(shù)據(jù),然后進(jìn)行其他操作。所以輸入“1”,開始錄入相關(guān)數(shù)據(jù)。用戶錄入完數(shù)據(jù)后,在姓名處鍵以“0”,結(jié)束操作。3. 提取文件信息,輸入數(shù)字“9”,回車確定操作,將系統(tǒng)以前操作過(guò)的保存的文
9、件提取出來(lái),并顯示。4. 顯示職工信息,輸入數(shù)字“3”,將需顯示的職工信息的編號(hào)輸入,回車確定操作,系統(tǒng)提取相關(guān)數(shù)據(jù)并顯示。5. 將輸入的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)排序,輸入數(shù)字“7”,回車確定操作,系統(tǒng)顯示工資統(tǒng)計(jì)表、及各項(xiàng)工資的平均值。6. 查找職工工資,輸入“4”,回車確定操作,系統(tǒng)顯示“請(qǐng)輸入要查找的編號(hào)”,輸入想要查找的職工的編號(hào),系統(tǒng)提取保存的數(shù)據(jù),并顯示出來(lái)。7. 增加職工工資,輸入“6”回車確定操作,系統(tǒng)顯示輸入的頁(yè)面,將需增加的職工信息輸入,輸入完后回車確定,系統(tǒng)顯示成功插入,并顯示職工工資信息表。8. 刪除職工工資,輸入“5”,回車確定操作,系統(tǒng)顯示“請(qǐng)輸入要?jiǎng)h除的編號(hào)”,輸入要?jiǎng)h除的職
10、工編號(hào),系統(tǒng)將保存的數(shù)據(jù)刪除,并顯示剩余的職工工資信息表。9. 修改職工信息,輸入“2”,回車確定操作,輸入要修改的編號(hào),系統(tǒng)顯示該職工的信息,將改后的信息輸入系統(tǒng)。10.將所有操作過(guò)的信息保存,輸入“8”,回車確定操作,系統(tǒng)顯示成功保存信息。11.退出系統(tǒng),輸入“0”,回車確定操作,系統(tǒng)顯示退出的頁(yè)面,輸入任意一個(gè)鍵,退出系統(tǒng)。(溫馨提示:因時(shí)間的限制等原因,本程序內(nèi)存設(shè)置還不夠很完善,所以對(duì)于整個(gè)系統(tǒng)的使用應(yīng)按照系統(tǒng)設(shè)置的順序,一項(xiàng)項(xiàng)完成下來(lái),方可不出現(xiàn)漏洞。如果沒按照順序操作,可能會(huì)在使用的過(guò)程出現(xiàn)一些小差錯(cuò)。)六、測(cè)試結(jié)果1. 開始運(yùn)行程序,進(jìn)入系統(tǒng)頁(yè)面,顯示制作者的信息。圖2-1 顯
11、示制作者信息的頁(yè)面2. 任意鍵繼續(xù)操作,進(jìn)入登陸頁(yè)面。圖2-2 登陸系統(tǒng)的頁(yè)面輸錯(cuò)管理員名字或者密碼進(jìn)入到的頁(yè)面如下圖2-3 登陸系統(tǒng)出錯(cuò)的頁(yè)面3. 成功進(jìn)入操作系統(tǒng),按照使用說(shuō)明進(jìn)行操作,進(jìn)入的是總系統(tǒng)的提示頁(yè)面。圖2-4 系統(tǒng)操作的頁(yè)面圖2-5 輸入數(shù)據(jù)的頁(yè)面圖2-6 顯示數(shù)據(jù)的頁(yè)面圖2-7 文件提取信息的頁(yè)面圖2-8 排序統(tǒng)計(jì)的頁(yè)面圖2-9 查找職工信息的頁(yè)面圖2-10 查找不到職工信息的頁(yè)面圖2-11 增加職工信息的頁(yè)面圖2-12 增加職工信息后并顯示職工工資信息表的頁(yè)面圖2-13 刪除職工信息并顯示剩余職工信息的頁(yè)面圖2-14 修改職工信息的頁(yè)面圖2-15 成功修改職工信息的頁(yè)面圖2
12、-16 修改沒有編號(hào)職工信息的頁(yè)面圖2-17 保存所有數(shù)據(jù)的頁(yè)面圖2-18 退出系統(tǒng)的頁(yè)面七程序經(jīng)驗(yàn)教訓(xùn)總結(jié)通過(guò)這個(gè)程序設(shè)計(jì),我不僅提高了動(dòng)手操作能力,對(duì)C+語(yǔ)言有了更深的認(rèn)識(shí),能夠更好地運(yùn)用C+語(yǔ)言進(jìn)行編程設(shè)計(jì),同時(shí)在思維、看待問題的全面性等方面也有了很大的提高。不過(guò)由于時(shí)間、經(jīng)驗(yàn)不夠、對(duì)語(yǔ)言的掌握程度不深等問題,在這個(gè)系統(tǒng)設(shè)計(jì)還存在一些問題,比如內(nèi)存設(shè)計(jì)還不夠完善,整個(gè)系統(tǒng)的流暢性等,希望可以在今后的設(shè)計(jì)上能夠解決這些問題,做的更好。九附錄/職工成績(jī)管理系統(tǒng)#include #include #include #include #include #include #define NULL
13、0int const N=20;#define LEN sizeof(struct epployee)using namespace std; int n=0; /定義一個(gè)全局變量統(tǒng)計(jì)職工人數(shù) /定義一個(gè)職工信息的結(jié)構(gòu)體struct epployee char nameN; /用來(lái)存放姓名char sexN; /用來(lái)存放性別long id; /用來(lái)存放編號(hào)float paid3; /用來(lái)存放工資int total; /用來(lái)存放總工資struct epployee *next;/職工類class Information public:Information() ; /構(gòu)造函數(shù). Informat
14、ion() ; /析構(gòu)函數(shù). epployee *creat(); /建立鏈表void output(epployee *head); /顯示職工信息int count(epployee *head); /定義函數(shù)count()統(tǒng)計(jì)職工總數(shù)epployee *insert(epployee*head); /指針函數(shù)*insert()用來(lái)添加職工信息.epployee *cancel(epployee *head,long id); /指針函數(shù)*cancel()用來(lái)刪除職工信息.epployee *find(epployee *head,long id); /指針函數(shù)*find()用來(lái)查找職工信
15、息.epployee *modify(epployee *head,long id); /指針函數(shù)*modife()用來(lái)修改職工的信息.void sort(epployee *head); /定義paixu()函數(shù)將職工的總額從大到小排列并輸出void average(epployee *head); /定義職工工資平均值的函數(shù)void save(epployee *head); /保存文件信息epployee *Read(); /讀取文件信息private:epployee *p1,*p2,*p3,*head,st; ;Information:Information() cout *n;co
16、ut -n; cout *nn; /作者的信息和提示void editor() coutnttt本程序制作者:nntttI dont know nntttQQ : ; coutnntttMade By VC6.0+nnttt2008年9月30日nnttt按鍵進(jìn)入登陸界面!; coutnnttt如果需要對(duì)原來(lái)的信息進(jìn)行操作,則先選擇0讀取文件信息nendl;Information:Information() cout *n;cout -n; cout *n;/建立鏈表信息epployee *Information:creat(void) /定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函
17、數(shù)*creat()用來(lái)錄入職工信息. char chN;n=0; /用來(lái)存放職工姓名 p1=p2=(epployee *)malloc(LEN);/調(diào)用malloc()函數(shù)用來(lái)開辟一個(gè)新的存儲(chǔ)單元 cout -endl;coutch;head=NULL; /給指針head賦初值while (strcmp(ch,#)!=0) /調(diào)用字符比較函數(shù)strcmp()用來(lái)判斷是否繼續(xù)輸入 p1=(epployee *)malloc(LEN); /調(diào)用malloc()函數(shù)用來(lái)開辟一個(gè)新的存儲(chǔ)單元strcpy(p1-name,ch); /將循環(huán)結(jié)構(gòu)前面輸入的姓名復(fù)制到結(jié)構(gòu)體名為p1的數(shù)組name中coutp
18、1-sex;coutp1-id;while(p1-id)id) /判斷輸入的編號(hào)是否有效(個(gè))cout0p1-id; coutp1-paid0;while(p1-paid0)paid0) /判斷輸入的分?jǐn)?shù)是否有效(=0 =)cout0p1-paid0; coutp1-paid1;while(p1-paid1)paid1) /判斷輸入的分?jǐn)?shù)是否有效(=0 =)cout0p1-paid1; coutp1-paid2;while(p1-paid2)paid2) /判斷輸入的分?jǐn)?shù)是否有效(=0 =)cout0p1-paid2; p1-total=p1-paid0+p1-paid1+p1-paid2;
19、/計(jì)算總額 if(n=0)head=p1; /如果是輸入第一組職工信息就將指針p1賦給指針headelse p2-next=p1; /否則將p1賦給p2所指結(jié)構(gòu)體的next指針p2=p1; /將指針p1賦給指針p2n+; /將職工人數(shù)n的值加1coutch; /將輸入的姓名存放到字符數(shù)組ch中p2-next=NULL; /將p2所指結(jié)構(gòu)體的next指針重新賦空值return (head);/將輸入的第一組職工信息返回/定義output()函數(shù)將職工的信息從頭指針?biāo)竷?nèi)容開始輸出void Information:output(epployee *head) /system(cls);if(hea
20、d=NULL) cout 這是一個(gè)空表,請(qǐng)先輸入職工信息!n;elsecout-n;cout *職工工資信息表*n;cout-n; cout|編 號(hào)| |姓 名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額|n;cout-n; p1=head; /將頭指針賦給p docoutsetw(6)idsetw(14)namesetw(11)sexsetw(11)paid0setw(15)paid1setw(13)paid2setw(13)totalendl;coutnext; /將下一組職工信息的next指針賦給pwhile(p1!=NULL); /若指針p非空則繼續(xù),目的是把所有的職
21、工信息都傳給指針p然后輸出./統(tǒng)計(jì)職工人數(shù)的函數(shù)int Information:count(struct epployee *head) /定義函數(shù)count()統(tǒng)計(jì)職工總數(shù)if(head=NULL)return(0); /若指針head為空返回值為0else return(1+count(head-next); /函數(shù)的遞歸調(diào)用/添加職工的成績(jī)的函數(shù)epployee *Information:insert( epployee *head) /插入新結(jié)點(diǎn)定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*insert()用來(lái)添加職工信息./system(cls);coutt-nendl
22、;p1=(epployee *)malloc(LEN); /使p1指向插入的新結(jié)點(diǎn)coutp1-id;while(p1-id)id)cout0p1-id; /將輸入的編號(hào)存放到p1所指結(jié)構(gòu)體的數(shù)組id中 coutp1-name; /將輸入的姓名存放到結(jié)構(gòu)體名為p1的數(shù)組name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)cout0p1-paid0; /將輸入的基本工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中coutp1-paid1;while(p1-paid1)paid1)cout0p1-paid1; /將輸入的加班工資存放到p1所指結(jié)構(gòu)體的數(shù)組p
23、aid中coutp1-paid2;while(p1-paid2)paid2)cout0p1-paid2; /將輸入的其他獎(jiǎng)金存放到p1所指結(jié)構(gòu)體的數(shù)組paid中 p1-total=p1-paid0+p1-paid1+p1-paid2;/計(jì)算總分 p2=head; /將頭指針賦給p2if(head=NULL) /若沒調(diào)用次函數(shù)以前的頭指針head為空head=p1;p1-next=NULL; /則將p1賦給頭指針head并將p1所指結(jié)構(gòu)體成員指針next賦空值else while(p1-idp2-id)&(p2-next!=NULL)p3=p2; /p3指向原p2指向的結(jié)點(diǎn)p2=p2-next;
24、 /p2后移一個(gè)結(jié)點(diǎn)if(p1-idid)if(head=p2)p1-next=head;head=p1; /插入到第一個(gè)結(jié)點(diǎn)之前else p3-next=p1;p1-next=p2; /插入到p3所指結(jié)點(diǎn)之后elsep2-next=p1;p1-next=NULL; /插入到尾結(jié)點(diǎn)之后n+; /將職工人數(shù)加1coutt-id&p1-next!=NULL) /尋找要?jiǎng)h除的結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且p1所指的next指針不為空p2=p1;p1=p1-next; /p2指向原p1指向的結(jié)點(diǎn)p1后移一個(gè)結(jié)點(diǎn)if(id=p1-id) /如果輸入的職工編號(hào)是p1所指的職工編號(hào)/結(jié)點(diǎn)找到
25、后刪除if(p1=head) head=p1-next; /如果head指針和p1指針相等則將下一個(gè)結(jié)點(diǎn)賦給指針head else p2-next=p1-next; /否則將p1所指結(jié)點(diǎn)賦給p2所指結(jié)點(diǎn)將要?jiǎng)h除的職工信息跳過(guò)去cout 刪除編號(hào)為id的職工n;n-; /將職工人數(shù)減1 return(head); /將頭指針返回/*修改職工數(shù)據(jù)*/epployee *Information:modify(epployee *head,long id)/system(cls);coutt-nid&p1-next!=NULL)/尋找結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且p1所指的next指針
26、不為空p1=p1-next; /p2指向原p1指向的結(jié)點(diǎn)p1后移一個(gè)結(jié)點(diǎn) if(id=p1-id) /如果要查找的職工編號(hào)是p1所指的職工編號(hào)cout你需要修改的職工信息如下:n;cout-n;cout|編 號(hào)| |姓 名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額|n;cout-n;coutsetw(6)idsetw(10)namesetw(10)sexsetw(10)paid0setw(15)paid1setw(12)paid2setw(12)totalendl;cout-n;coutp1-id;while(p1-id)id)cout0p1-id; /將輸入的編號(hào)存放到p
27、1所指結(jié)構(gòu)體的數(shù)組id中 coutp1-name; /將輸入的姓名存放到結(jié)構(gòu)體名為p1的數(shù)組name中coutp1-sex; coutp1-paid0;while(p1-paid0)paid0)cout0p1-paid0; /將輸入的基本工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中coutp1-paid1;while(p1-paid1)paid1)cout0p1-paid1; /將輸入的加班工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中coutp1-paid2;while(p1-paid2)paid2)cout0p1-paid2; /將輸入的其他獎(jiǎng)金存放到p1所指結(jié)構(gòu)體的數(shù)組paid中 p1-total
28、=p1-paid0+p1-paid1+p1-paid2; /計(jì)算總分 else cout 需要修改的信息中沒有編號(hào)為id的職工.nn; /沒有想要修改的結(jié)點(diǎn)信息getchar();return(head);/查找職工信息epployee *Information:find(epployee *head,long id) /定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*find()用來(lái)查找職工信息./system(cls);if(head=NULL) /若調(diào)用次函數(shù)以前的頭指針head為空coutid&p1-next!=NULL)/尋找結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且
29、p1所指的next指針不為空p1=p1-next; /p2指向原p1指向的結(jié)點(diǎn)p1后移一個(gè)結(jié)點(diǎn)if(id=p1-id) /如果要查找的職工編號(hào)是p1所指的職工編號(hào)cout-n;cout|編 號(hào)| |姓 名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額|n;cout-n;coutsetw(6)idsetw(10)namesetw(10)sexsetw(10)paid0setw(14)paid1setw(12)paid2setw(12)totalendl;cout-n;else cout信息中沒有編號(hào)為id的職工.n; /結(jié)點(diǎn)沒找到return(head);/定義sort()函數(shù)將
30、職工的工資總額從大到小排列并輸出void Information:sort(epployee *head) /system(cls);int i,k,m=0,j;epployee *pN;/定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針數(shù)組p if(head!=NULL)/如果頭指針是空則繼續(xù) m=count(head);cout-n;cout *職工工資統(tǒng)計(jì)表*n;cout-n;cout|編號(hào)| |姓名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額| |名次|n;cout-n;p1=head;for(k=0;knext;for(k=0;km-1;k+) /選擇排序法f
31、or(j=k+1;jtotaltotal)p2=pk;pk=pj;pj=p2; /從大到小排列的指針 for(i=0;im;i+)coutsetw(6)idsetw(8)namesetw(9)sexsetw(10)paid0setw(10)paid1setw(15)paid2setw(11)totalsetw(10)i+1endl;cout-n; /求各工資的平均值的函數(shù)void Information:average(epployee *head)int k,m;float arg1=0,arg2=0,arg3=0;if(head=NULL)/如果頭指針是空則繼續(xù)cout 這是一個(gè)空表,請(qǐng)先
32、輸入職工信息!n;elsem=count(head);p1=head;for(k=0;kpaid0;arg2+=p1-paid1;arg3+=p1-paid2;p1=p1-next;arg1/=m;arg2/=m;arg3/=m;cout *各項(xiàng)工資的平均值*n;cout-n;couttt基本工資的平均值: setw(4)arg1ntt加班工資的平均值: setw(4)arg2ntt獎(jiǎng)金的平均值: setw(4)arg3n;cout-n;/保存函數(shù).void Information:save(epployee *head) /system(cls); ofstream out(data,ios
33、:out); outcount(head)endl; while(head!=NULL) outnamet idtt sext paid0t paid1t paid2t totalnext; /讀取文件的信息epployee *Information:Read() /system(cls); int i=0; p1=p2=( epployee *)malloc(LEN); head=NULL; ifstream in(data,ios:out); ini; if(i=0)cout data 文件中的數(shù)據(jù)為空,請(qǐng)先輸入數(shù)據(jù)!endl; return 0; else coutn原文件已保存的信息如下:n; cou
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年福建廈門一中集美分校教師招聘考試真題
- 中暑課件軍隊(duì)教學(xué)課件
- 教師演講比賽講話稿例文7篇
- 酒店實(shí)習(xí)總結(jié)5篇
- 急診科臨床診療指南(急診醫(yī)學(xué))
- 臨床診療指南-口腔醫(yī)學(xué)分冊(cè)
- 農(nóng)村小學(xué)生英語(yǔ)學(xué)習(xí)情況調(diào)查
- 三方協(xié)議錄取函
- 銷售總結(jié)分析如何寫5篇
- 貨幣供求曲線形態(tài)
- 企業(yè)如何利用新媒體做好宣傳工作課件
- 如何培養(yǎng)孩子的自信心課件
- 中醫(yī)藥膳學(xué)全套課件
- 頸脊髓損傷-匯總課件
- 齒輪故障診斷完美課課件
- 2023年中國(guó)鹽業(yè)集團(tuán)有限公司校園招聘筆試題庫(kù)及答案解析
- 大班社會(huì)《特殊的車輛》課件
- 野生動(dòng)物保護(hù)知識(shí)講座課件
- 早教托育園招商加盟商業(yè)計(jì)劃書
- 光色變奏-色彩基礎(chǔ)知識(shí)與應(yīng)用課件-高中美術(shù)人美版(2019)選修繪畫
- 前列腺癌的放化療護(hù)理
評(píng)論
0/150
提交評(píng)論