2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p>  設(shè)計(jì)題目: 職工工資管理系統(tǒng) </p><p>  學(xué)生姓名: 劉漢 </p><p>  學(xué)生學(xué)號(hào): 200940410106 </p><p>  專業(yè)班級(jí): 09計(jì)科(1)

2、 </p><p>  指導(dǎo)教師: 祁文青 </p><p>  2011-12-20 </p><p><b>  目 錄</b></p><p><b>  一、前言1</b></p><p>  二、課題要求、課題

3、分析1</p><p><b> ?。ㄒ唬┱n題要求1</b></p><p><b> ?。ǘ┱n題分析1</b></p><p><b>  三、方案設(shè)定2</b></p><p>  四、程序功能描述與模塊結(jié)構(gòu)2</p><p> ?。ㄒ唬?/p>

4、程序功能描述2</p><p><b>  (二)功能模塊2</b></p><p> ?。ㄈ┏绦蛄鞒虉D3</p><p>  四、用戶使用說(shuō)明6</p><p><b>  五、測(cè)試結(jié)果7</b></p><p>  六﹑程序經(jīng)驗(yàn)教訓(xùn)總結(jié)12</p>

5、;<p><b>  七﹑附錄13</b></p><p><b>  一、前言</b></p><p>  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++語(yǔ)言

6、中同樣能夠體現(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ì)。</p><p>  二、課題要求、課題分析</p><p><b> ?。ㄒ唬┱n題要求&l

7、t;/b></p><p>  《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á)到能用C++編寫初等程度軟件的目的,為繼續(xù)學(xué)習(xí)后續(xù)課程及今后走上相關(guān)工作崗位打下良好的基礎(chǔ)。&l

8、t;/p><p>  經(jīng)過(guò)調(diào)查分析,決定設(shè)計(jì)職工工資管理系統(tǒng)。</p><p>  創(chuàng)建存儲(chǔ)職工工資信息的存儲(chǔ)文件。添加某職工的工資信息。刪除某職工的工資信息。修改某職工的部分工資信息(當(dāng)月開(kāi)始增加或減少某些項(xiàng)工資或扣款數(shù)變化)。輸出指定編號(hào)職工的工資信息(查詢用)。輸出全體職工的工資信息(發(fā)工資用)。</p><p><b> ?。ǘ┱n題分析</b&

9、gt;</p><p>  職工工資管理系統(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ù)輸入、顯示、排序、查找、增加、刪除、修改、保存等。</p><p>  三、課程設(shè)計(jì)內(nèi)容及進(jìn)度安排</p><p><b>

10、;  (一)課題內(nèi)容:</b></p><p>  該系統(tǒng)在磁盤上存儲(chǔ)了某單位全體職工的工資信息。對(duì)于每位職工存儲(chǔ)以下信息:職工編號(hào)、基本工資、津貼、崗貼、補(bǔ)貼、應(yīng)發(fā)數(shù)、個(gè)人所得稅、應(yīng)扣數(shù)、實(shí)發(fā)數(shù)。個(gè)人所得稅計(jì)算方法設(shè)為:工資少于1100元的部分為0,1100—1600元部分為5%,1600—2600部分為10%,2600—3600部分為15%,5600元以上部分為20%。</p>&l

11、t;p><b> ?。ǘ┱n題要求:</b></p><p>  1.分析問(wèn)題,給出數(shù)學(xué)模型,選擇數(shù)據(jù)結(jié)構(gòu).</p><p>  2.設(shè)計(jì)算法,給出算法描述</p><p><b>  3.給出源程序清單</b></p><p>  4. 編輯、編譯、調(diào)試源程序</p><

12、p>  5. 撰寫課程設(shè)計(jì)報(bào)告</p><p>  四、 程序功能描述與模塊結(jié)構(gòu)</p><p><b>  (一)程序功能描述</b></p><p>  通過(guò)主菜單display()函數(shù)將讀取文件信息、輸入、顯示、統(tǒng)計(jì)、增加、刪除、修改、查找、排序等函數(shù)結(jié)合一起,在用戶通過(guò)相關(guān)操作選擇其中一個(gè)功能時(shí),調(diào)用該功能函數(shù),完成數(shù)據(jù)處理。在主

13、函數(shù)中調(diào)用主菜單diplay()函數(shù),完成操作。用一個(gè)中間函數(shù)將主函數(shù)與各功能函數(shù)連接在一起,不僅使程序語(yǔ)言簡(jiǎn)潔、明了、易懂,而且在功能實(shí)現(xiàn)上也更加晚上。</p><p><b>  (二)功能模塊</b></p><p>  1.主函數(shù)int main():設(shè)置背景顏色和字體顏色、調(diào)用設(shè)計(jì)者的相關(guān)信息函數(shù)、調(diào)用display函數(shù),實(shí)現(xiàn)系統(tǒng)的主要功能處理;</p

14、><p>  2.主菜單dispiay()函數(shù):確定如何選擇所需功能,調(diào)用讀取文件信息、數(shù)據(jù)輸入、顯示、排序、查找、增加、刪除、修改、保存等函數(shù),完成職工工資管理系統(tǒng)的數(shù)據(jù)處理;</p><p>  3.讀取文件的信息read()函數(shù):從文件中讀取職工工資的信息表并顯示出來(lái);</p><p>  4.數(shù)據(jù)輸入函數(shù)shuru():建立鏈表,完成職工信息錄入;</p&

15、gt;<p>  5.數(shù)據(jù)顯示函數(shù)diaplay():將職工信息數(shù)據(jù)顯示出來(lái);</p><p>  6.數(shù)據(jù)統(tǒng)計(jì)函數(shù)tongji():統(tǒng)計(jì)職工人數(shù);</p><p>  7.數(shù)據(jù)增加函數(shù)tianjia():添加職工信息;</p><p>  8.數(shù)據(jù)刪除函數(shù)shanchu():刪除職工信息數(shù)據(jù);</p><p>  9.數(shù)據(jù)修改

16、函數(shù)xiugai():修改職工工資等信息數(shù)據(jù);</p><p>  10.數(shù)據(jù)查找函數(shù)chazhao():查找某一職工工資等信息情況;</p><p>  11.數(shù)據(jù)保存函數(shù)save():對(duì)系統(tǒng)中的數(shù)據(jù)進(jìn)行相關(guān)的操作后將其保存起來(lái);</p><p>  12.作者信息函數(shù)editor():顯示設(shè)計(jì)者的相關(guān)信息;</p><p>  13.登陸

17、函數(shù)Pass():設(shè)定使用權(quán)限。</p><p><b> ?。ㄈ┏绦蛄鞒虉D</b></p><p>  程序流程圖主是對(duì)各功能模塊的具體描述,以一種圖表的方式簡(jiǎn)潔明了的將各模塊的呈現(xiàn)出來(lái),通過(guò)這些流程圖可清楚的看出整個(gè)程序的運(yùn)行過(guò)程,體會(huì)程序的流暢性。</p><p><b>  主函數(shù)流程圖</b></p>

18、;<p>  圖1-1主函數(shù)的流程圖</p><p>  2.各子功能函數(shù)流程圖</p><p>  圖1-2 Menu函數(shù)流程圖</p><p><b>  五、用戶使用說(shuō)明</b></p><p>  這是一個(gè)關(guān)于職工工資管理系統(tǒng),具有輸入、輸出、統(tǒng)計(jì)、刪除、查詢、修改數(shù)據(jù)等功能,建立了一個(gè)含有姓名、性

19、別、編號(hào)、工資、總工資等成員的結(jié)構(gòu)體數(shù)據(jù)類型的變量struct xinxi 。</p><p>  用戶使用時(shí),根據(jù)提示操作,進(jìn)入登陸頁(yè)面。輸入登陸名ltf,登陸密碼ltf,進(jìn)入操作系統(tǒng)。如果登陸信息輸錯(cuò)三次,自動(dòng)退出系統(tǒng)。</p><p>  按顯示的數(shù)字選擇操作,先輸入職工數(shù)據(jù),然后進(jìn)行其他操作。所以輸入“1”,開(kāi)始錄入相關(guān)數(shù)據(jù)。用戶錄入完數(shù)據(jù)后,在姓名處鍵以“0”,結(jié)束操作。<

20、/p><p>  提取文件信息,輸入數(shù)字“9”,回車確定操作,將系統(tǒng)以前操作過(guò)的保存的文件提取出來(lái),并顯示。</p><p>  顯示職工信息,輸入數(shù)字“3”,將需顯示的職工信息的編號(hào)輸入,回車確定操作,系統(tǒng)提取相關(guān)數(shù)據(jù)并顯示。</p><p>  將輸入的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)排序,輸入數(shù)字“7”,回車確定操作,系統(tǒng)顯示工資統(tǒng)計(jì)表、及各項(xiàng)工資的平均值。</p>&

21、lt;p>  查找職工工資,輸入“4”,回車確定操作,系統(tǒng)顯示“請(qǐng)輸入要查找的編號(hào)”,輸入想要查找的職工的編號(hào),系統(tǒng)提取保存的數(shù)據(jù),并顯示出來(lái)。</p><p>  增加職工工資,輸入“6”回車確定操作,系統(tǒng)顯示輸入的頁(yè)面,將需增加的職工信息輸入,輸入完后回車確定,系統(tǒng)顯示成功插入,并顯示職工工資信息表。</p><p>  刪除職工工資,輸入“5”,回車確定操作,系統(tǒng)顯示“請(qǐng)輸入要

22、刪除的編號(hào)”,輸入要?jiǎng)h除的職工編號(hào),系統(tǒng)將保存的數(shù)據(jù)刪除,并顯示剩余的職工工資信息表。</p><p>  修改職工信息,輸入“2”,回車確定操作,輸入要修改的編號(hào),系統(tǒng)顯示該職工的信息,將改后的信息輸入系統(tǒng)。</p><p>  10.將所有操作過(guò)的信息保存,輸入“8”,回車確定操作,系統(tǒng)顯示成功保存信息。</p><p>  11.退出系統(tǒng),輸入“0”,回車確定

23、操作,系統(tǒng)顯示退出的頁(yè)面,輸入任意一個(gè)鍵,退出系統(tǒng)。</p><p>  (溫馨提示:因時(shí)間的限制等原因,本程序內(nèi)存設(shè)置還不夠很完善,所以對(duì)于整個(gè)系統(tǒng)的使用應(yīng)按照系統(tǒng)設(shè)置的順序,一項(xiàng)項(xiàng)完成下來(lái),方可不出現(xiàn)漏洞。如果沒(méi)按照順序操作,可能會(huì)在使用的過(guò)程出現(xiàn)一些小差錯(cuò)。)</p><p><b>  六、測(cè)試結(jié)果</b></p><p>  開(kāi)始運(yùn)行

24、程序,進(jìn)入系統(tǒng)頁(yè)面,顯示制作者的信息。</p><p>  圖2-1 顯示制作者信息的頁(yè)面</p><p>  任意鍵繼續(xù)操作,進(jìn)入登陸頁(yè)面。</p><p>  圖2-2 登陸系統(tǒng)的頁(yè)面</p><p>  輸錯(cuò)管理員名字或者密碼進(jìn)入到的頁(yè)面如下</p><p>  圖2-3 登陸系統(tǒng)出錯(cuò)的頁(yè)面</p>

25、<p>  成功進(jìn)入操作系統(tǒng),按照使用說(shuō)明進(jìn)行操作,進(jìn)入的是總系統(tǒng)的提示頁(yè)面。</p><p>  圖2-4 系統(tǒng)操作的頁(yè)面</p><p>  圖2-5 輸入數(shù)據(jù)的頁(yè)面</p><p>  圖2-6 顯示數(shù)據(jù)的頁(yè)面</p><p>  圖2-7 文件提取信息的頁(yè)面</p><p>  圖2-8 排序統(tǒng)計(jì)的

26、頁(yè)面</p><p>  圖2-9 查找職工信息的頁(yè)面</p><p>  圖2-10 查找不到職工信息的頁(yè)面</p><p>  圖2-11 增加職工信息的頁(yè)面</p><p>  圖2-12 增加職工信息后并顯示職工工資信息表的頁(yè)面</p><p>  圖2-13 刪除職工信息并顯示剩余職工信息的頁(yè)面</p&

27、gt;<p>  圖2-14 修改職工信息的頁(yè)面</p><p>  圖2-15 成功修改職工信息的頁(yè)面</p><p>  圖2-16 修改沒(méi)有編號(hào)職工信息的頁(yè)面</p><p>  圖2-17 保存所有數(shù)據(jù)的頁(yè)面</p><p>  圖2-18 退出系統(tǒng)的頁(yè)面</p><p>  七﹑程序經(jīng)驗(yàn)教訓(xùn)總結(jié)

28、</p><p>  通過(guò)這個(gè)程序設(shè)計(jì),我不僅提高了動(dòng)手操作能力,對(duì)C++語(yǔ)言有了更深的認(rèn)識(shí),能夠更好地運(yùn)用C++語(yǔ)言進(jìn)行編程設(shè)計(jì),同時(shí)在思維、看待問(wèn)題的全面性等方面也有了很大的提高。不過(guò)由于時(shí)間、經(jīng)驗(yàn)不夠、對(duì)語(yǔ)言的掌握程度不深等問(wèn)題,在這個(gè)系統(tǒng)設(shè)計(jì)還存在一些問(wèn)題,比如內(nèi)存設(shè)計(jì)還不夠完善,整個(gè)系統(tǒng)的流暢性等,希望可以在今后的設(shè)計(jì)上能夠解決這些問(wèn)題,做的更好。</p><p><b&g

29、t;  九﹑附錄</b></p><p>  //職工成績(jī)管理系統(tǒng)</p><p>  #include <iomanip></p><p>  #include <iostream></p><p>  #include <fstream></p><p>  #inc

30、lude <malloc.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #define NULL 0</p><p>  int const N=20;</p><p>  #defi

31、ne LEN sizeof(struct epployee)</p><p>  using namespace std; </p><p>  int n=0; //定義一個(gè)全局變量統(tǒng)計(jì)職工人數(shù) </p><p>  //定義一個(gè)職工信息的結(jié)構(gòu)體</p><p>  struct epployee</p><

32、;p><b>  { </b></p><p>  char name[N]; //用來(lái)存放姓名</p><p>  char sex[N]; //用來(lái)存放性別</p><p>  long id; //用來(lái)存放編號(hào)</p><p>  float paid[3];

33、 //用來(lái)存放工資</p><p>  int total; //用來(lái)存放總工資</p><p>  struct epployee *next;</p><p><b>  };</b></p><p><b>  //職工類</b></p><p>  cl

34、ass Information</p><p><b>  { </b></p><p><b>  public:</b></p><p>  Information() ; //構(gòu)造函數(shù). </p><p>  ~Information() ; //析構(gòu)函數(shù). </p&

35、gt;<p>  epployee *creat(); //建立鏈表</p><p>  void output(epployee *head); //顯示職工信息</p><p>  int count(epployee *head); //定義函數(shù)count()統(tǒng)計(jì)職工總數(shù)</p><p>  epployee

36、 *insert(epployee*head); //指針函數(shù)*insert()用來(lái)添加職工信息.</p><p>  epployee *cancel(epployee *head,long id); //指針函數(shù)*cancel()用來(lái)刪除職工信息.</p><p>  epployee *find(epployee *head,long id); //指針函數(shù)*fi

37、nd()用來(lái)查找職工信息.</p><p>  epployee *modify(epployee *head,long id); //指針函數(shù)*modife()用來(lái)修改職工的信息.</p><p>  void sort(epployee *head); //定義paixu()函數(shù)將職工的總額從大到小排列并輸出</p><p>  vo

38、id average(epployee *head); //定義職工工資平均值的函數(shù)</p><p>  void save(epployee *head); //保存文件信息</p><p>  epployee *Read(); //讀取文件信息</p><p><b>

39、;  private:</b></p><p>  epployee *p1,*p2,*p3,*head,st; </p><p><b>  };</b></p><p>  Information::Information() </p><p>  {cout<<" ********

40、**********************************************************************\n";</p><p>  cout<<" ------------------------<<歡迎您使用職工工資管理系統(tǒng)>>------------------------\n"; </p>

41、<p>  cout<<" ******************************************************************************\n\n"; </p><p><b>  }</b></p><p>  //作者的信息和提示</p><p>  v

42、oid editor()</p><p><b>  {</b></p><p>  cout<<"\n\t\t\t本程序制作者:\n\n\t\t\tI don't know \n\n\t\t\tQQ : 895026504";</p><p>  cout<<"\n\n\t\t\t

43、Made By VC6.0++\n\n\t\t\t2008年9月30日\(chéng)n\n\t\t\t按<Enter>鍵進(jìn)入登陸界面!!";</p><p>  cout<<"\n\n\t\t\t如果需要對(duì)原來(lái)的信息進(jìn)行操作,則先選擇0讀取文件信息\n"<<endl;</p><p><b>  }</b><

44、/p><p>  Information::~Information()</p><p>  { cout<<" ******************************************************************************\n";</p><p>  cout<<" -

45、-----------------------<<謝謝您使用職工工資管理系統(tǒng)>>------------------------\n"; </p><p>  cout<<" ******************************************************************************\n";</

46、p><p><b>  }</b></p><p><b>  //建立鏈表信息</b></p><p>  epployee *Information::creat(void) </p><p>  {//定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*creat()用來(lái)錄入職工信息. &

47、lt;/p><p>  char ch[N];n=0; //用來(lái)存放職工姓名 </p><p>  p1=p2=(epployee *)malloc(LEN);//調(diào)用malloc()函數(shù)用來(lái)開(kāi)辟一個(gè)新的存儲(chǔ)單元 </p><p>  cout<<" -------------<<請(qǐng)建立職工信息表,在姓名處鍵以 # 結(jié)束輸入

48、!>>--------------"<<endl;</p><p>  cout<<" 姓名:";</p><p><b>  cin>>ch;</b></p><p>  head=NULL; //給指針head賦初值</p><p&g

49、t;  while (strcmp(ch,"#")!=0) //調(diào)用字符比較函數(shù)strcmp()用來(lái)判斷是否繼續(xù)輸入</p><p><b>  { </b></p><p>  p1=(epployee *)malloc(LEN); //調(diào)用malloc()函數(shù)用來(lái)開(kāi)辟一個(gè)新的存儲(chǔ)單元</p><p

50、>  strcpy(p1->name,ch); //將循環(huán)結(jié)構(gòu)前面輸入的姓名復(fù)制到結(jié)構(gòu)體名為p1的數(shù)組name中</p><p>  cout<<" 性別:";</p><p>  cin>>p1->sex;</p><p>  cout<<" 編號(hào):&qu

51、ot;;</p><p>  cin>>p1->id;</p><p>  while((p1->id)<0||(p1->id)>100000) //判斷輸入的編號(hào)是否有效(100000個(gè))</p><p><b>  {</b></p><p>  cout<&l

52、t;" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<1000000): ";</p><p>  cin>>p1->id;</p><p><b>  } </b></p><p>  cout<<" 基本工資:";</p><p>  cin

53、>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000) //判斷輸入的分?jǐn)?shù)是否有效(>=0 <=100000)</p><p><b>  {</b></p><p>  cout<<&

54、quot; 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[0];</p><p><b>  } </b></p><p>  cout<<" 加班工資:";</p><p>  ci

55、n>>p1->paid[1];</p><p>  while((p1->paid[1])<0||(p1->paid[1])>100000) //判斷輸入的分?jǐn)?shù)是否有效(>=0 <=100000)</p><p><b>  {</b></p><p>  cout<<

56、" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[1];</p><p><b>  } </b></p><p>  cout<<" 其他獎(jiǎng)金:";</p><p>  c

57、in>>p1->paid[2];</p><p>  while((p1->paid[2])<0||(p1->paid[2])>100000) //判斷輸入的分?jǐn)?shù)是否有效(>=0 <=100000)</p><p><b>  {</b></p><p>  cout<<

58、;" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[2];</p><p><b>  } </b></p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->paid

59、[2]; //計(jì)算總額 </p><p>  if(n==0)head=p1; //如果是輸入第一組職工信息就將指針p1賦給指針head</p><p>  else p2->next=p1; //否則將p1賦給p2所指結(jié)構(gòu)體的next指針</p><p>  p2=p1; //將指針p1賦給指針p2<

60、;/p><p>  n++; //將職工人數(shù)n的值加1</p><p>  cout<<"\n 姓名:";</p><p>  cin>>ch; //將輸入的姓名存放到字符數(shù)組ch中</p><p><b>  }</b></p&g

61、t;<p>  p2->next=NULL; //將p2所指結(jié)構(gòu)體的next指針重新賦空值</p><p>  return (head);//將輸入的第一組職工信息返回</p><p><b>  }</b></p><p>  //定義output()函數(shù)將職工的信息從頭指針?biāo)竷?nèi)容開(kāi)始輸出</p><

62、;p>  void Information::output(epployee *head) </p><p><b>  {</b></p><p>  //system("cls");</p><p>  if(head==NULL) cout<<" 這是一個(gè)空表,請(qǐng)先輸入職工信息!\n&quo

63、t;;</p><p><b>  else{</b></p><p>  cout<<"-------------------------------------------------------------------------------\n";</p><p>  cout<<"

64、 *職工工資信息表*\n";</p><p>  cout<<"-------------------------------------------------------------------------------\n"; </p><p>  cout<<"|編 號(hào)| |姓 名| |性別| |基本工資

65、| |加班工資| |其他獎(jiǎng)金| |總額|\n";</p><p>  cout<<"-------------------------------------------------------------------------------\n"; </p><p>  p1=head; //將頭指針賦給p </p>

66、<p><b>  do</b></p><p><b>  {</b></p><p>  cout<<setw(6)<<p1->id</p><p>  <<setw(14)<<p1->name</p><p>  <

67、;<setw(11)<<p1->sex</p><p>  <<setw(11)<<p1->paid[0]</p><p>  <<setw(15)<<p1->paid[1]</p><p>  <<setw(13)<<p1->paid[2]</p

68、><p>  <<setw(13)<<p1->total<<endl;</p><p>  cout<<"-------------------------------------------------------------------------------\n"; </p><p>  p

69、1=p1->next; //將下一組職工信息的next指針賦給p</p><p>  }while(p1!=NULL); //若指針p非空則繼續(xù),目的是把所有的職工信息都傳給指針p然后輸出.</p><p><b>  }</b></p><p><b>  }</b></p>

70、<p>  //統(tǒng)計(jì)職工人數(shù)的函數(shù)</p><p>  int Information::count(struct epployee *head) //定義函數(shù)count()統(tǒng)計(jì)職工總數(shù)</p><p><b>  {</b></p><p>  if(head==NULL)return(0);

71、 //若指針head為空返回值為0</p><p>  else return(1+count(head->next)); //函數(shù)的遞歸調(diào)用</p><p><b>  }</b></p><p>  //添加職工的成績(jī)的函數(shù)</p><p>  epployee *Infor

72、mation::insert( epployee *head) </p><p>  //插入新結(jié)點(diǎn)定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*insert()用來(lái)添加職工信息.</p><p><b>  {</b></p><p>  //system("cls");</p><p&g

73、t;  cout<<"\t----------------<<請(qǐng)輸入新增職工成績(jī)信息>>----------------\n"<<endl;</p><p>  p1=(epployee *)malloc(LEN); //使p1指向插入的新結(jié)點(diǎn)</p><p>  cout<<" 編號(hào):&q

74、uot;;</p><p>  cin>>p1->id;</p><p>  while((p1->id)<0||(p1->id)>100000)</p><p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(

75、>0<100000): ";</p><p>  cin>>p1->id; //將輸入的編號(hào)存放到p1所指結(jié)構(gòu)體的數(shù)組id中</p><p><b>  } </b></p><p>  cout<<" 姓名:";</p><p> 

76、 cin>>p1->name; //將輸入的姓名存放到結(jié)構(gòu)體名為p1的數(shù)組name中</p><p>  cout<<" 性別:";</p><p>  cin>>p1->sex; </p><p>  cout<<" 基本工資:";</p>&

77、lt;p>  cin>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000)</p><p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>

78、;0<100000): ";</p><p>  cin>>p1->paid[0]; //將輸入的基本工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>  }</b></p><p>  cout<<" 加班工資:";</p><p&g

79、t;  cin>>p1->paid[1];</p><p>  while((p1->paid[1])<0||(p1->paid[1])>100000)</p><p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<

80、100000): ";</p><p>  cin>>p1->paid[1]; //將輸入的加班工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>  }</b></p><p>  cout<<" 其他獎(jiǎng)金:";</p><p>  cin

81、>>p1->paid[2];</p><p>  while((p1->paid[2])<0||(p1->paid[2])>100000)</p><p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000)

82、: ";</p><p>  cin>>p1->paid[2]; //將輸入的其他獎(jiǎng)金存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>  } </b></p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2];//計(jì)算總分

83、 </p><p>  p2=head; //將頭指針賦給p2</p><p>  if(head==NULL) //若沒(méi)調(diào)用次函數(shù)以前的頭指針head為空</p><p><b>  {</b></p><p>  head=p1;p1->next=NULL;</p><p&

84、gt;  } //則將p1賦給頭指針head并將p1所指結(jié)構(gòu)體成員指針next賦空值</p><p><b>  else </b></p><p><b>  {</b></p><p>  while((p1->id>p2->id)&&(p2->next!=NULL

85、))</p><p><b>  {</b></p><p>  p3=p2; //p3指向原p2指向的結(jié)點(diǎn)</p><p>  p2=p2->next;</p><p>  } //p2后移一個(gè)結(jié)點(diǎn)</p><p>  if(p1->id<=p

86、2->id)</p><p><b>  {</b></p><p>  if(head==p2)</p><p><b>  {</b></p><p>  p1->next=head;</p><p><b>  head=p1;</b>

87、</p><p>  } //插入到第一個(gè)結(jié)點(diǎn)之前</p><p><b>  else </b></p><p><b>  {</b></p><p>  p3->next=p1;</p><p>  p1->next=p2;</p>

88、<p>  } //插入到p3所指結(jié)點(diǎn)之后</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p2->next=p1;</p><p>

89、;  p1->next=NULL;</p><p>  } //插入到尾結(jié)點(diǎn)之后</p><p><b>  }</b></p><p>  n++; //將職工人數(shù)加1</p><p>  cout<<"\t----------------<<你輸入的職工信息已經(jīng)成功插入&g

90、t;>----------------"<<endl;</p><p>  return (head);</p><p><b>  }</b></p><p><b>  //刪除職工信息</b></p><p>  epployee *Information::can

91、cel(epployee *head,long id) //定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*delete()用來(lái)刪除考生信息.</p><p><b>  { </b></p><p>  system("cls");</p><p>  if(head==NULL) //若調(diào)用次函

92、數(shù)以前的頭指針head為空</p><p><b>  { </b></p><p>  return(head);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</

93、b></p><p>  p1=head; //否則將頭指針賦給p1</p><p>  while(id!=p1->id&&p1->next!=NULL) //尋找要?jiǎng)h除的結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且p1所指的next指針不為空</p><p><b>  {</b><

94、;/p><p><b>  p2=p1;</b></p><p>  p1=p1->next;</p><p>  } //p2指向原p1指向的結(jié)點(diǎn)p1后移一個(gè)結(jié)點(diǎn)</p><p>  if(id==p1->id) //如果輸入的職工編號(hào)是p1所指的職工編號(hào)//結(jié)點(diǎn)

95、找到后刪除</p><p><b>  {</b></p><p>  if(p1==head) head=p1->next; //如果head指針和p1指針相等則將下一個(gè)結(jié)點(diǎn)賦給指針head </p><p><b>  else </b></p><p>  p2->next=p

96、1->next; //否則將p1所指結(jié)點(diǎn)賦給p2所指結(jié)點(diǎn)將要?jiǎng)h除的職工信息跳過(guò)去</p><p>  cout<<" 刪除編號(hào)為"<<id<<"的職工\n";</p><p>  n--; //將職工人數(shù)減1 </p><p><b

97、>  }</b></p><p>  return(head); //將頭指針?lè)祷?lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  /**************************修改職工數(shù)據(jù)************

98、**************/</p><p>  epployee *Information::modify(epployee *head,long id)</p><p><b>  {</b></p><p>  //system("cls");</p><p>  cout<<&q

99、uot;\t----------------<<請(qǐng)輸入須修改的職工工資信息>>----------------\n"<<endl;</p><p>  p1=(epployee *)malloc(LEN); //使p1指向輸入的結(jié)點(diǎn)</p><p>  p1=head; //否則將頭指針賦給p1</p&g

100、t;<p>  while(id!=p1->id&&p1->next!=NULL)</p><p>  //尋找結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且p1所指的next指針不為空</p><p><b>  {</b></p><p>  p1=p1->next; //p2指

101、向原p1指向的結(jié)點(diǎn)p1后移一個(gè)結(jié)點(diǎn)</p><p>  } </p><p>  if(id==p1->id) //如果要查找的職工編號(hào)是p1所指的職工編號(hào)</p><p><b>  {</b></p><p>  cout<<"你需要修改的職工信息如下:\n&

102、quot;;</p><p>  cout<<"------------------------------------------------------------------------------\n";</p><p>  cout<<"|編 號(hào)| |姓 名| |性別| |基本工資| |加班工資| |其他

103、獎(jiǎng)金| |總額|\n";</p><p>  cout<<"------------------------------------------------------------------------------\n";</p><p>  cout<<setw(6)<<p1->id</p>&

104、lt;p>  <<setw(10)<<p1->name</p><p>  <<setw(10)<<p1->sex</p><p>  <<setw(10)<<p1->paid[0]</p><p>  <<setw(15)<<p1->pai

105、d[1]</p><p>  <<setw(12)<<p1->paid[2]</p><p>  <<setw(12)<<p1->total<<endl;</p><p>  cout<<"------------------------------------------

106、------------------------------------\n";</p><p>  cout<<" 編號(hào):";</p><p>  cin>>p1->id;</p><p>  while((p1->id)<0||(p1->id)>100000)</p>

107、<p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->id; //將輸入的編號(hào)存放到p1所指結(jié)構(gòu)體的數(shù)組id中</p><p><b&g

108、t;  } </b></p><p>  cout<<" 姓名:";</p><p>  cin>>p1->name; //將輸入的姓名存放到結(jié)構(gòu)體名為p1的數(shù)組name中</p><p>  cout<<" 性別:";</p><p>  c

109、in>>p1->sex; </p><p>  cout<<" 基本工資:";</p><p>  cin>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000)</p><

110、p><b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[0]; //將輸入的基本工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>

111、  }</b></p><p>  cout<<" 加班工資:";</p><p>  cin>>p1->paid[1];</p><p>  while((p1->paid[1])<0||(p1->paid[1])>100000)</p><p><

112、b>  {</b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[1]; //將輸入的加班工資存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>  }</b

113、></p><p>  cout<<" 其他獎(jiǎng)金:";</p><p>  cin>>p1->paid[2];</p><p>  while((p1->paid[2])<0||(p1->paid[2])>100000)</p><p><b>  {&

114、lt;/b></p><p>  cout<<" 對(duì)不起,您的輸入錯(cuò)誤!請(qǐng)重新輸入(>0<100000): ";</p><p>  cin>>p1->paid[2]; //將輸入的其他獎(jiǎng)金存放到p1所指結(jié)構(gòu)體的數(shù)組paid中</p><p><b>  } </b><

115、/p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2]; //計(jì)算總分 </p><p><b>  }</b></p><p><b>  else </b></p><p>  cout<<" 需要

116、修改的信息中沒(méi)有編號(hào)為"<<id<<"的職工.\n\n"; //沒(méi)有想要修改的結(jié)點(diǎn)信息</p><p>  getchar();</p><p>  return(head);</p><p><b>  }</b></p><p><b>  //查找職工

117、信息</b></p><p>  epployee *Information::find(epployee *head,long id) </p><p>  //定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針函數(shù)*find()用來(lái)查找職工信息.</p><p><b>  {</b></p><p>

118、;  //system("cls");</p><p>  if(head==NULL) //若調(diào)用次函數(shù)以前的頭指針head為空</p><p><b>  {</b></p><p>  cout<<" 這是一個(gè)空表,請(qǐng)先輸入職工信息!\n";</p><p>

119、;  return(head); </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p1=head; //否則將頭指針賦給p1</p><p>

120、;  while(id!=p1->id&&p1->next!=NULL)</p><p>  //尋找結(jié)點(diǎn)當(dāng)p1所指的職工編號(hào)不是輸入的職工編號(hào)并且p1所指的next指針不為空</p><p><b>  {</b></p><p>  p1=p1->next; //p2指向原p1指向的結(jié)點(diǎn)p1后移一個(gè)

121、結(jié)點(diǎn)</p><p><b>  }</b></p><p>  if(id==p1->id) //如果要查找的職工編號(hào)是p1所指的職工編號(hào)</p><p><b>  {</b></p><p>  cout<<"---------------------------

122、---------------------------------------------------\n";</p><p>  cout<<"|編 號(hào)| |姓 名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額|\n";</p><p>  cout<<"------------

123、------------------------------------------------------------------\n";</p><p>  cout<<setw(6)<<p1->id</p><p>  <<setw(10)<<p1->name</p><p>  <&

124、lt;setw(10)<<p1->sex</p><p>  <<setw(10)<<p1->paid[0]</p><p>  <<setw(14)<<p1->paid[1]</p><p>  <<setw(12)<<p1->paid[2]</p&g

125、t;<p>  <<setw(12)<<p1->total<<endl;</p><p>  cout<<"------------------------------------------------------------------------------\n";</p><p><b&g

126、t;  }</b></p><p><b>  else </b></p><p>  cout<<"信息中沒(méi)有編號(hào)為"<<id<<"的職工.\n"; //結(jié)點(diǎn)沒(méi)找到</p><p>  return(head);</p><p>&

127、lt;b>  }</b></p><p><b>  }</b></p><p>  //定義sort()函數(shù)將職工的工資總額從大到小排列并輸出</p><p>  void Information::sort(epployee *head) </p><p><b>  {</b>

128、;</p><p>  //system("cls");</p><p>  int i,k,m=0,j;</p><p>  epployee *p[N];//定義一個(gè)指向struct epployee的結(jié)構(gòu)體指針數(shù)組p </p><p>  if(head!=NULL)//如果頭指針是空則繼續(xù)</p>&

129、lt;p>  { m=count(head);</p><p>  cout<<"------------------------------------------------------------------------------\n";</p><p>  cout<<" *職工工資統(tǒng)計(jì)表*\n";</p

130、><p>  cout<<"------------------------------------------------------------------------------\n";</p><p>  cout<<"|編號(hào)| |姓名| |性別| |基本工資| |加班工資| |其他獎(jiǎng)金| |總額| |名次

131、|\n";</p><p>  cout<<"------------------------------------------------------------------------------\n";</p><p><b>  p1=head;</b></p><p>  for(k=0;k

132、<m;k++)</p><p><b>  {</b></p><p><b>  p[k]=p1;</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p>  for(k=0;k<

133、m-1;k++) //選擇排序法</p><p>  for(j=k+1;j<m;j++)</p><p>  if(p[k]->total<p[j]->total)</p><p><b>  {</b></p><p><b>  p2=p[k];</b></p&g

134、t;<p>  p[k]=p[j];</p><p><b>  p[j]=p2;</b></p><p>  } //從大到小排列的指針 </p><p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p>  

135、cout<<setw(6)<<p[i]->id</p><p>  <<setw(8)<<p[i]->name</p><p>  <<setw(9)<<p[i]->sex</p><p>  <<setw(10)<<p[i]->paid[0]&l

136、t;/p><p>  <<setw(10)<<p[i]->paid[1]</p><p>  <<setw(15)<<p[i]->paid[2]</p><p>  <<setw(11)<<p[i]->total</p><p>  <<setw

137、(10)<<i+1<<endl;</p><p>  cout<<"------------------------------------------------------------------------------\n"; </p><p><b>  }</b></p><p>

138、;<b>  }</b></p><p><b>  }</b></p><p>  //求各工資的平均值的函數(shù)</p><p>  void Information::average(epployee *head)</p><p><b>  {</b></p>

139、<p><b>  int k,m;</b></p><p>  float arg1=0,arg2=0,arg3=0;</p><p>  if(head==NULL)//如果頭指針是空則繼續(xù)</p><p><b>  {</b></p><p>  cout<<&quo

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論