版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)基礎(chǔ)課程設(shè)計(jì)任務(wù)書</p><p> 一、題目:學(xué)生管理系統(tǒng)</p><p><b> 二、目的與要求</b></p><p><b> 目的:</b></p><p&g
2、t; ?。?)培養(yǎng)學(xué)生綜合利用C++語言進(jìn)行程序設(shè)計(jì)的能力,掌握排序算法,使學(xué)生能夠解決信息管理系統(tǒng)中的一些問題。</p><p> ?。?)提高學(xué)生建立程序文檔、歸納總結(jié)的能力。</p><p><b> 基本要求:</b></p><p> (1)要求用C++結(jié)構(gòu)化的設(shè)計(jì)思想來完成程序的設(shè)計(jì);</p><p>
3、 (2)要求各個(gè)功能分別使用函數(shù)來完成。</p><p> (3)源代碼程序要求必要的注釋。</p><p><b> 創(chuàng)新要求</b></p><p> 在基本要求達(dá)到后,請(qǐng)修改代碼,在功能不變的情況下盡可能修改代碼使代碼短小。</p><p><b> 書寫設(shè)計(jì)報(bào)告的要求</b><
4、/p><p> 設(shè)計(jì)報(bào)告中包含以下幾個(gè)方面:</p><p><b> 設(shè)計(jì)題目</b></p><p><b> 總體設(shè)計(jì)</b></p><p> 首先設(shè)計(jì)結(jié)構(gòu),建立鏈表</p><p> 用自頂而下或自底而上的方法,劃分功能模塊,設(shè)計(jì)每個(gè)類的成員函數(shù)</p&
5、gt;<p><b> 確定各模塊的算法</b></p><p><b> 根據(jù)算法畫出流程圖</b></p><p> 列出程序清單,并加以必要的注釋</p><p><b> 寫出調(diào)試程序的方法</b></p><p> 指出所設(shè)計(jì)問題的不足和改進(jìn)方
6、案</p><p><b> 畫出程序流程圖</b></p><p> 課程設(shè)計(jì)材料的裝訂順序?yàn)椋?lt;/p><p><b> 設(shè)計(jì)說明書封面</b></p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p><b> 課程設(shè)
7、計(jì)鑒定表</b></p><p><b> 目錄</b></p><p><b> 設(shè)計(jì)報(bào)告書正文</b></p><p> 三、設(shè)計(jì)方法和基本原理</p><p><b> 問題描述:</b></p><p> 計(jì)算機(jī)系新招服務(wù)外
8、包方向,招生前學(xué)生人數(shù)并不確定。請(qǐng)根據(jù)以下要求為教務(wù)管理人員設(shè)計(jì)一個(gè)學(xué)生管理系統(tǒng)。分別管理學(xué)生的相關(guān)信息。信息的詳細(xì)內(nèi)容如下:姓名、學(xué)號(hào)、年級(jí)、班級(jí)、入學(xué)數(shù)學(xué)成績(jī)、入學(xué)物理成績(jī)、入學(xué)英語成績(jī)。</p><p><b> 問題的解決方案:</b></p><p> 根據(jù)問題的描述,可以按照要求的功能采用面向?qū)ο蟮脑O(shè)計(jì)思想。</p><p>
9、 要求使用鏈表實(shí)現(xiàn),結(jié)構(gòu)中必須包含題干描述的內(nèi)容。</p><p> 使用排序函數(shù)實(shí)現(xiàn)排序功能。</p><p> 四、主要技術(shù)問題的描述</p><p> 計(jì)算機(jī)系新招服務(wù)外包方向,招生前學(xué)生人數(shù)并不確定。請(qǐng)根據(jù)以下要求為教務(wù)管理人員設(shè)計(jì)一個(gè)學(xué)生管理系統(tǒng)。分別管理學(xué)生的相關(guān)信息。信息的詳細(xì)內(nèi)容如下:姓名、學(xué)號(hào)、年級(jí)、班級(jí)、入學(xué)數(shù)學(xué)成績(jī)、入學(xué)物理成績(jī)、入學(xué)英語
10、成績(jī)。系統(tǒng)功能要求如下:</p><p><b> 增加某新學(xué)生的信息</b></p><p><b> 刪除某學(xué)生的信息</b></p><p><b> 修改某學(xué)生的信息</b></p><p> 輸出符合某種特征的學(xué)生信息列表(選做以下任意模塊)。</p&g
11、t;<p> 按名稱升序(降序)輸出學(xué)生列表</p><p> 按某門成績(jī)升序(降序)輸出學(xué)生列表</p><p> 按學(xué)號(hào)升序(降序)輸出學(xué)生列表</p><p> 根據(jù)提供的學(xué)生姓名輸出該學(xué)生的信息</p><p> 以下兩個(gè)模塊任選一個(gè)</p><p> 輸出特定班級(jí)的學(xué)生信息列表<
12、;/p><p> 輸出特定學(xué)號(hào)范圍的學(xué)生信息列表</p><p> 五、課程設(shè)計(jì)時(shí)間:第18周(共一周)</p><p> 六、課程設(shè)計(jì)的考核方式及評(píng)分方法</p><p><b> 1.考核方式</b></p><p> 課程設(shè)計(jì)結(jié)束時(shí),在機(jī)房當(dāng)場(chǎng)驗(yàn)收。</p><p&
13、gt; 教師提供測(cè)試數(shù)據(jù),檢查運(yùn)行結(jié)果是否正確。</p><p> 回答教師提出的問題。</p><p> 學(xué)生提交課程設(shè)計(jì)文檔(A4紙打印)</p><p><b> 2.評(píng)分方法</b></p><p> 上機(jī)檢查:書面報(bào)告 5:5,沒有通過上機(jī)檢查的其成績(jī)直接記錄不及格</p><p&
14、gt; 指導(dǎo)教師簽名: 日期: </p><p> 教研室主任簽名: 日期: </p><p> 系主任簽名: 日期: </p><p><b> 摘 要</b></p><p> 請(qǐng)為人力資源部設(shè)計(jì)一個(gè)新工人的管理
15、系統(tǒng)。分別管理工人的相關(guān)信息如下:姓名、工號(hào)、工種(電焊工、電工、鉗工、車工、鑄工)、級(jí)別(有的工種有8級(jí)有的只有5級(jí))、工資、獎(jiǎng)金。</p><p> 要求用C++結(jié)構(gòu)化編程思想來完成程序的設(shè)計(jì)。要求各個(gè)功能分別使用函數(shù)來完成。</p><p> 源代碼程序要求必要的注釋。培養(yǎng)學(xué)生綜合利用C++語言進(jìn)行程序設(shè)計(jì)的能力,掌握排序算法,使學(xué)生能夠解決信息管理系統(tǒng)中的一些問題。提高學(xué)生建立
16、程序文檔、歸納總結(jié)的能力。</p><p> 關(guān)鍵詞:C++ 工人信息管理系統(tǒng) 鏈表。</p><p><b> 目 錄</b></p><p> 1 設(shè)計(jì)內(nèi)容與要求 …………………………………………………………………………1</p><p> 2. 設(shè)計(jì)說明 ……………………………………………………………
17、……………………1</p><p> 2.1數(shù)據(jù)結(jié)構(gòu)說明…………………………………………………………………1</p><p> 2.2功能設(shè)計(jì)及函數(shù)說明………………………………………………………………………2</p><p> 2.3函數(shù)定義………………………………………………………………………………3</p><p> 2.4 界面
18、設(shè)計(jì)………………………………………………………………………………3</p><p> 2.5 調(diào)試及運(yùn)行結(jié)果……………………………………………………………………4</p><p> 3 總結(jié)…………………………………………………………………………………………9</p><p> 參考文獻(xiàn) ……………………………………………………………………………………10&l
19、t;/p><p> 附錄 源代碼………………………………………………………………………………11</p><p> 1. 設(shè)計(jì)內(nèi)容與要求</p><p> 分別管理工人的相關(guān)信息如下:姓名、工號(hào)、工種(電焊工、電工、鉗工、車工、鑄工)、級(jí)別(有的工種有8級(jí)有的只有5級(jí))、工資、獎(jiǎng)金、加班/曠工時(shí)數(shù)。系統(tǒng)功能要求如下:</p><p><
20、;b> 新增工人的信息</b></p><p><b> 刪除工人的信息</b></p><p><b> 修改工人的信息</b></p><p> 輸出符合某種特征的工人信息列表(選做以下任意模塊)。</p><p> 按工資升序(降序)輸出工人信息列表</p&g
21、t;<p> 按獎(jiǎng)金升序(降序)輸出工人信息列表</p><p> 按加班/曠工時(shí)數(shù)升序(降序)輸出工人信息列表</p><p> 根據(jù)提供的工人姓名輸出該工人的信息</p><p> 以下兩個(gè)模塊任選一個(gè)</p><p> 輸出特定工種的工人信息列表</p><p> 輸出特定工種級(jí)別的工人
22、信息列表。</p><p><b> 要求:</b></p><p> (1)用C++結(jié)構(gòu)化的設(shè)計(jì)思想來完成程序的設(shè)計(jì)</p><p> (2)各個(gè)功能分別使用函數(shù)來完成。</p><p> (3)源代碼程序要求必要的注釋.</p><p><b> 2. 設(shè)計(jì)說明</b
23、></p><p> 2.1 數(shù)據(jù)結(jié)構(gòu)說明</p><p> while+switch 選擇執(zhí)行功能(構(gòu)建main函數(shù)、構(gòu)建程序界面)</p><p> 建立鏈表:(申請(qǐng)一個(gè)動(dòng)態(tài)newhead逐個(gè)插入head中)首先建立鏈表頭head,再依次建立節(jié)點(diǎn),通過tail->next=temp.tail=temp將每個(gè)節(jié)點(diǎn)連接起來,將輸入的工人信息儲(chǔ)存在每
24、個(gè)節(jié)點(diǎn)中</p><p> 遍歷鏈表:(執(zhí)行while(head!=NULL)從鏈?zhǔn)组_始一,依次訪問鏈表中節(jié)點(diǎn)的信息,workers*curnode=head;while(curnode),curnode=curnode->next.再通過cout輸出每個(gè)節(jié)點(diǎn)信息</p><p> 輸出鏈表:將已經(jīng)修改、增加、刪除,過了的新鏈表先遍歷,同時(shí)依次用outputlist函數(shù)輸出節(jié)點(diǎn)中
25、的信息</p><p> 節(jié)點(diǎn)排序:通過pxlist函數(shù)新建一條空的鏈表把原來鏈表中的工資最小的放在新鏈表的第一個(gè)階點(diǎn),依次把剩下節(jié)點(diǎn)中工資最小的放在后面,最后返回新鏈表的首結(jié)點(diǎn)地址在通過outputlist函數(shù)輸出新鏈表的信息</p><p> 修改鏈表:先遍歷鏈表,找到所需修改的節(jié)點(diǎn)命名為curnode,然后用cin函數(shù)輸入節(jié)點(diǎn)中的信息覆蓋以前的信息,最后返回新的鏈表,通過out
26、putlist函數(shù)輸出來</p><p> 插入節(jié)點(diǎn):先遍歷鏈表,找要插入指針的節(jié)點(diǎn),把它賦給結(jié)構(gòu)指針prenode,把prenode->next賦給結(jié)構(gòu)指針curnode,然后新建一個(gè)新節(jié)點(diǎn)newhead,把它賦給prenode->next指向的節(jié)點(diǎn),最后把newhead->next指向的節(jié)點(diǎn)賦給curnode, 最后返回新的鏈表,通過outputlist函數(shù)輸出來</p>&
27、lt;p> 2.2 功能設(shè)計(jì)及函數(shù)說明</p><p> 圖1 程序功能模塊圖</p><p><b> 主函數(shù)說明</b></p><p> 主函數(shù)包括一個(gè)switch…case選擇結(jié)構(gòu),1代表添加工人信息2代表刪除工人信息3代表修改工人信息4代表按序號(hào)升序輸出工人信息5代表按輸入的工人的姓名輸出工人信息6代表輸出特定姓名的工人
28、信息,還有客戶見面目錄,while循環(huán)</p><p> 建立工人信息庫函數(shù)說明</p><p> 用戶先輸入要建立工人信息的工人數(shù)n,再把他建立createlist函數(shù)便構(gòu)成了一個(gè)鏈表,把每次輸入的工人信息儲(chǔ)存在不同節(jié)點(diǎn)中,便于以后修改,刪除,查詢</p><p><b> 增加工人信息</b></p><p>
29、 首先提示你要增加的工人數(shù),你在輸入數(shù)目,通過addlist函數(shù)把輸入工人的信息增加到鏈表中,在返回新的鏈表給outputlist函數(shù)輸出來</p><p> 刪除工人信息函數(shù)想說明</p><p> 輸入一個(gè)工人的工號(hào)通過deletelist函數(shù)找到該結(jié)點(diǎn)釋放該結(jié)點(diǎn)的信息在通過兩個(gè)指針把新的鏈表重新連接, 再把新鏈表返回給outputlist函數(shù)輸出來,在返回新的鏈表給主函數(shù),如果
30、沒有該工號(hào)的工人,則輸去沒有該工人,請(qǐng)重新輸入</p><p><b> 修改工人信息說明</b></p><p> 先輸入工人的工號(hào)通過flxlist函數(shù)找到儲(chǔ)存該工人信息的節(jié)點(diǎn)再重新輸入覆蓋原來節(jié)點(diǎn)的信息, 再返回給outputlist函數(shù)輸出來,如果沒有該工號(hào),則返回沒有該工號(hào)的工人,請(qǐng)重新輸入</p><p> 按工資升序輸出工人
31、信息說明</p><p> 通過pxlist函數(shù)新建一條空的鏈表把原來鏈表中的工資最小的放在新鏈表的第一個(gè)階點(diǎn),依次把剩下節(jié)點(diǎn)中工資最小的放在后面,最后返回新鏈表的首結(jié)點(diǎn)地址在通過outputlist函數(shù)輸出新鏈表的信息</p><p> 輸出特定特定姓名工人信息說明</p><p> 通過outputname函數(shù)找到該工人的信息,再返回給outputlist
32、函數(shù)輸出來,如果沒有該工人則提示輸入錯(cuò)誤,請(qǐng)重新輸入。</p><p><b> 2.3函數(shù)定義</b></p><p> 1 addlist(a,headlist) 增加工人信息</p><p> 2 deletelist(b,headlist)刪除工人信息</p><p> 3 fixlist(c,headl
33、ist)修改工人信息</p><p> 4 pxlist(headlist)按工資高到低排序</p><p> 5 outputlist(headlist)輸出修改后的新鏈表</p><p> 6 outputname (char name)按工人名字輸出信息</p><p> 7 outputgzh( e,headlist)輸出特定
34、工種信息數(shù)</p><p><b> 2.4界面設(shè)計(jì)</b></p><p> ************************************</p><p> ** 請(qǐng)選擇你所需的功能 **</p><p> ** 0 輸入0結(jié)束程序 **</
35、p><p> ** 1 增加工人信息 **</p><p> ** 2 刪除工人信息 **</p><p> ** 3 修改工人信息 **</p><p> ** 4 按工資升序輸出工人信息 **</p><p&
36、gt; ** 5 根據(jù)工人姓名輸出該工人的信息 **</p><p> ** 6 輸出特定工種的工人信息列表 **</p><p> *********************************** </p><p><b> 圖2界面</b></p><p><b> 2.5測(cè)試<
37、/b></p><p><b> 圖3.添加工人信息</b></p><p><b> 圖3.添加工人信息</b></p><p><b> 圖4.刪除工人信息</b></p><p><b> 圖4.刪除工人信息</b></p>
38、<p><b> 圖5.修改工人信息</b></p><p><b> 圖5.修改工人信息</b></p><p> 圖6.按工資升序輸出工人信息</p><p> 圖7.根據(jù)提供工人姓名輸出工人信息</p><p> 圖8.輸出特定特定工種的工人信息</p>
39、<p><b> 總結(jié)</b></p><p> 在設(shè)計(jì)程序的過程中,遇到了很多算法問題,以及函數(shù)的建立問題。剛開始覺得這是我不可能完成的任務(wù),因?yàn)槲乙稽c(diǎn)思路也沒有,為完成設(shè)計(jì),我們甚至熬夜做程序,在室友們熱情討論和指導(dǎo),查資料下終于完成了課程設(shè)計(jì)。盡管很困難很費(fèi)設(shè)計(jì)這個(gè)程序不但培養(yǎng)了我們綜合利用C++語言進(jìn)行程序設(shè)計(jì)的能力,掌握排序算法,解決信息管理系統(tǒng)中的一些問題。而且提高
40、了我們建立程序文檔、歸納總結(jié)的能力。最重要的是增加了我信心,以后遇到再難的問題我不會(huì)再畏懼。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 錢能. C++程序設(shè)計(jì)教程[M]. 北京:清華大學(xué)出版社,2005:315-324,415-418,423.</p><p> [2] 劉瑞新. Visual C++面向?qū)ο蟪?/p>
41、序設(shè)計(jì)教程[M]. 北京:機(jī)械工業(yè)出版社,2005.</p><p><b> 附錄 源代碼</b></p><p> #include<iostream.h></p><p> #include<string.h></p><p> struct workers //鏈表結(jié)構(gòu)&l
42、t;/p><p><b> {</b></p><p><b> int num;</b></p><p> char name[8];</p><p><b> int jj;</b></p><p><b> int jb;</
43、b></p><p><b> int gz;</b></p><p> int jbsj,kgsj;</p><p> char gzh[12];</p><p> workers *next;</p><p><b> };</b></p>
44、<p> workers *createlist(int); //要調(diào)用的函數(shù)原型</p><p> workers *addlist(int ,workers *head);</p><p> workers *deletelist(int ,workers *head);</p><p> workers
45、 *fixlist(int ,workers *head);</p><p> workers *outputname(char *d,workers *head);</p><p> workers *outputgzh(char*e,workers *head);</p><p> void outputlist(workers *head);</p
46、><p> workers *pxlist(workers *head);</p><p> int main() //主函數(shù)</p><p><b> {</b></p><p> int n,a,b,c;</p><p> char *d, *e;</p><p
47、> workers *headlist=NULL;</p><p> cout<<"請(qǐng)輸入所有工人信息:"<<endl;</p><p> cout<<"請(qǐng)輸入工人人數(shù):"<<endl;</p><p><b> cin>>n;</b&g
48、t;</p><p> headlist=createlist(n);</p><p> while(1) //客戶見面的目錄</p><p><b> {</b></p><p> cout<<"************************************"&l
49、t;<endl;</p><p> cout<<"** 請(qǐng)選擇你所需的功能 **"<<endl;</p><p> cout<<"** 0 輸入0結(jié)束程序 **"<<endl;</p><p> cout<&
50、lt;"** 1 增加工人信息 **"<<endl;</p><p> cout<<"** 2 刪除工人信息 **"<<endl;</p><p> cout<<"** 3 修改工人信息 **&
51、quot;<<endl;</p><p> cout<<"** 4 按工資升序輸出工人信息 **"<<endl;</p><p> cout<<"** 5 根據(jù)工人姓名輸出該工人的信息 **"<<endl;</p><p> cout<<
52、"** 6 輸出特定工種的工人信息列表 **"<<endl;</p><p> cout<<"**********************************"<<endl;</p><p><b> cin>>n;</b></p><p>
53、switch(n) //供選擇的功能</p><p><b> {</b></p><p> case 0:return 0;</p><p><b> case 1:</b></p><p><b> {</b></p><p> cou
54、t<<"請(qǐng)輸入要增加的工人數(shù):"<<endl;</p><p><b> cin>>a;</b></p><p><b> if(a>0)</b></p><p> headlist=addlist(a,headlist);</p><
55、p><b> break;</b></p><p><b> }</b></p><p><b> case 2:</b></p><p><b> {</b></p><p> cout<<"請(qǐng)輸入要?jiǎng)h除信息的工人的
56、工號(hào)"<<endl;</p><p><b> cin>>b;</b></p><p> headlist=deletelist(b,headlist);</p><p><b> break;</b></p><p><b> }</b&g
57、t;</p><p><b> case 3:</b></p><p><b> {</b></p><p> cout<<"請(qǐng)輸入要修改信息的工人的工號(hào)"<<endl;</p><p><b> cin>>c; </
58、b></p><p> headlist=fixlist(c,headlist);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 4:</b></p><p>&l
59、t;b> {</b></p><p> headlist=pxlist(headlist);</p><p> outputlist(headlist);</p><p><b> break;}</b></p><p><b> case 5:</b></p>
60、;<p><b> {</b></p><p> cout<<"請(qǐng)輸入要輸出工人的姓名:";</p><p> d=new char;</p><p><b> cin>>d;</b></p><p> outputname( d,
61、headlist);</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 6:</b></p><p><b> {</b></p><p> cout
62、<<"請(qǐng)輸入要查找的工種:";</p><p> e=new char;</p><p><b> cin>>e;</b></p><p> outputgzh( e,headlist);</p><p><b> break;</b></p
63、><p><b> }</b></p><p> default:cout<<"錯(cuò)誤,重新輸入!"<<endl;</p><p><b> }</b></p><p><b> }</b></p><p>
64、<b> return 0;</b></p><p><b> }</b></p><p> workers *createlist(int n) //建立鏈表</p><p><b> {</b></p><p> workers *temp;</p&g
65、t;<p> workers *head=NULL;</p><p> workers *tail=NULL;</p><p> head=new workers;</p><p> if(head==NULL)</p><p><b> {</b></p><p> c
66、out<<"No memory available!";</p><p> return NULL;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
67、;<p> cout<<"請(qǐng)輸入工人姓名:";</p><p> cin>>head->name;</p><p> cout<<"請(qǐng)輸入工人工號(hào):";</p><p> cin>>head->num;</p><p>
68、 cout<<"請(qǐng)輸入工人工種:";</p><p> cin>>head->gzh;</p><p> cout<<"請(qǐng)輸入工人工資:";</p><p> cin>>head->gz;</p><p> cout<<&q
69、uot;請(qǐng)輸入工人獎(jiǎng)金:";</p><p> cin>>head->jj;</p><p> cout<<"請(qǐng)輸入工人級(jí)別:";</p><p> cin>>head->jb;</p><p> cout<<"請(qǐng)輸入工人加班時(shí)間:&q
70、uot;;</p><p> cin>>head->jbsj;</p><p> cout<<"請(qǐng)輸入工人曠工時(shí)間:";</p><p> cin>>head->kgsj;</p><p> head->next=NULL;</p><p&
71、gt; tail=head; </p><p><b> }</b></p><p> for(int i=0;i<n-1;i++)</p><p><b> {</b></p><p> temp=new workers;</p><p> if(temp
72、==NULL)</p><p><b> {</b></p><p> cout<<"No memory available!"<<endl;</p><p> return head;</p><p><b> }</b></p>
73、<p><b> else</b></p><p><b> {</b></p><p> cout<<"請(qǐng)輸入工人姓名:";</p><p> cin>>temp->name;</p><p> cout<<&quo
74、t;請(qǐng)輸入工人工號(hào):";</p><p> cin>>temp->num;</p><p> cout<<"請(qǐng)輸入工人工種:";</p><p> cin>>temp->gzh;</p><p> cout<<"請(qǐng)輸入工人工資:&quo
75、t;;</p><p> cin>>temp->gz;</p><p> cout<<"請(qǐng)輸入工人獎(jiǎng)金:";</p><p> cin>>temp->jj;</p><p> cout<<"請(qǐng)輸入工人級(jí)別:";</p>&
76、lt;p> cin>>temp->jb;</p><p> cout<<"請(qǐng)輸入工人加班天數(shù):";</p><p> cin>>temp->jbsj;</p><p> cout<<"請(qǐng)輸入工人曠工天數(shù):";</p><p>
77、 cin>>temp->kgsj;</p><p> temp->next=NULL;</p><p> tail->next=temp;</p><p> tail=temp;</p><p><b> } </b></p><p> }return he
78、ad;</p><p><b> }</b></p><p> workers *addlist(int a,workers *head) //增加工人信息的函數(shù)</p><p><b> {</b></p><p> workers *curnode=head;</p>
79、<p> workers *prenode=NULL;</p><p> workers *newhead=NULL;</p><p> while(curnode!=NULL){</p><p> prenode=curnode;</p><p> curnode=curnode->next;</p>
80、<p><b> }</b></p><p> for(int i=0;i<a;i++)</p><p><b> {</b></p><p> newhead=new workers;</p><p> if(newhead==NULL)</p><
81、p><b> {</b></p><p> cout<<"No memory available!";</p><p> return head;</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入工人姓
82、名:";</p><p> cin>>newhead->name;</p><p> cout<<"請(qǐng)輸入工人工號(hào):";</p><p> cin>>newhead->num;</p><p> cout<<"請(qǐng)輸入工人工種:"
83、;;</p><p> cin>>newhead->gzh;</p><p> cout<<"請(qǐng)輸入工人工資:";</p><p> cin>>newhead->gz;</p><p> cout<<"請(qǐng)輸入工人獎(jiǎng)金:";</p&
84、gt;<p> cin>>newhead->jj;</p><p> cout<<"請(qǐng)輸入工人級(jí)別:";</p><p> cin>>newhead->jb;</p><p> cout<<"請(qǐng)輸入工人加班天數(shù):";</p><
85、;p> cin>>newhead->jbsj;</p><p> cout<<"請(qǐng)輸入工人曠工天數(shù):";</p><p> cin>>newhead->kgsj;</p><p> newhead->next=NULL;</p><p> prenod
86、e->next=newhead;</p><p> prenode=newhead;</p><p><b> }</b></p><p> return head;</p><p><b> }</b></p><p> workers *deletelis
87、t(int b,workers *head) //刪除工人信息的函數(shù)</p><p><b> {</b></p><p> workers *curnode=head;</p><p> workers *prenode=NULL;</p><p> while(curnode->num!=b){&l
88、t;/p><p> prenode=curnode;</p><p> curnode=curnode->next;</p><p><b> }</b></p><p> if(curnode==NULL)</p><p><b> {</b></p>
89、;<p> cout<<"沒有該工號(hào)的工人"<<endl;</p><p> return head;</p><p><b> }</b></p><p> if(prenode==NULL)</p><p> head=head->next;&
90、lt;/p><p><b> else</b></p><p> prenode->next=curnode->next;</p><p> delete curnode;</p><p> cout<<"已經(jīng)刪除該工人信息!"<<endl;</p>
91、<p> return head;</p><p><b> }</b></p><p> workers *fixlist(int c,workers *head) //修改工人信息的函數(shù)</p><p><b> {</b></p><p> workers *cu
92、rnode=head;</p><p> workers *prenode=NULL;</p><p> while(curnode!=NULL&&curnode->num!=c){</p><p> prenode=curnode;</p><p> curnode=curnode->next;</
93、p><p><b> } </b></p><p> if(curnode==NULL)</p><p><b> {</b></p><p> cout<<"沒有該工號(hào)的工人"<<endl;</p><p> return
94、head;</p><p><b> }</b></p><p> cout<<"重新輸入該工號(hào)工人的信息:";</p><p> cout<<"請(qǐng)輸入工人姓名:";</p><p> cin>>curnode->name;<
95、/p><p> cout<<"請(qǐng)輸入工人工號(hào):";</p><p> cin>>curnode->num;</p><p> cout<<"請(qǐng)輸入工人工種:";</p><p> cin>>curnode->gzh;</p>
96、<p> cout<<"請(qǐng)輸入工人工資:";</p><p> cin>>curnode->gz;</p><p> cout<<"請(qǐng)輸入工人獎(jiǎng)金:";</p><p> cin>>curnode->jj;</p><p>
97、 cout<<"請(qǐng)輸入工人級(jí)別:";</p><p> cin>>curnode->jb;</p><p> cout<<"請(qǐng)輸入工人加班天數(shù):";</p><p> cin>>curnode->jbsj;</p><p> cout
98、<<"請(qǐng)輸入工人曠工天數(shù):";</p><p> cin>>curnode->kgsj;</p><p> cout<<"成功修改該工號(hào)工人信息!"<<endl;</p><p> return head;</p><p><b>
99、 }</b></p><p> workers *outputname(char *d,workers *head) //根據(jù)工人姓名輸出該工人信息的函數(shù)</p><p><b> {</b></p><p> workers *curnode=head;</p><p> workers *
100、prenode=NULL;</p><p> while(curnode!=NULL&&strcmp(curnode->name,d))</p><p><b> {</b></p><p> prenode=curnode;</p><p> curnode=curnode->nex
101、t;</p><p><b> }</b></p><p> if(curnode==NULL)</p><p><b> {</b></p><p> cout<<"不能找到該工人!"<<endl;</p><p> r
102、eturn head;</p><p><b> }</b></p><p> cout<<"重新輸入該工號(hào)工人的信息:"<<endl;</p><p> cout<<"請(qǐng)輸入工人姓名:"<<curnode->name<<endl;&
103、lt;/p><p> cout<<"請(qǐng)輸入工人工號(hào):"<<curnode->num<<endl;</p><p> cout<<"請(qǐng)輸入工人工種:"<<curnode->gzh<<endl;</p><p> cout<<&quo
104、t;請(qǐng)輸入工人工資:"<<curnode->gz<<endl;</p><p> cout<<"請(qǐng)輸入工人獎(jiǎng)金:"<<curnode->jj<<endl;</p><p> cout<<"請(qǐng)輸入工人級(jí)別:"<<curnode->jb&l
105、t;<endl;</p><p> cout<<"請(qǐng)輸入工人加班天數(shù):"<<curnode->jbsj<<endl;</p><p> cout<<"請(qǐng)輸入工人曠工天數(shù):"<<curnode->kgsj<<endl;</p><p>
106、 cout<<endl;</p><p> return head;</p><p><b> }</b></p><p> workers *outputgzh(char *e,workers *head) //輸出特定工種的工人信息列表的函數(shù)</p><p><b> {<
107、/b></p><p> workers *curnode=head;</p><p> workers *prenode=NULL;</p><p> while(curnode!=NULL)</p><p><b> {</b></p><p> if(strcmp(curno
108、de->gzh,e))</p><p><b> {</b></p><p> cout<<"正在查找..."<<endl; </p><p><b> }</b></p><p><b> else</b></
109、p><p><b> {</b></p><p> cout<<endl;</p><p> cout<<"名字:"<<curnode->name<<endl;</p><p> cout<<"工號(hào):"<&
110、lt;curnode->num<<endl;</p><p> cout<<"工種:"<<curnode->gzh<<endl;</p><p> cout<<"級(jí)別:"<<curnode->jb<<endl;</p><p&
111、gt; cout<<"工資:"<<curnode->gz<<endl;</p><p> cout<<"獎(jiǎng)金:"<<curnode->jbsj<<endl;</p><p> cout<<"曠工天數(shù):"<<curnod
112、e->kgsj<<endl;</p><p> cout<<endl;</p><p><b> }</b></p><p> prenode=curnode;</p><p> curnode=curnode->next;</p><p><b&
113、gt; }</b></p><p> return head;</p><p><b> }</b></p><p> void outputlist(workers *head) //遍歷鏈表輸出的函數(shù)</p><p><b> {</b></p><
114、p> cout<<"工人信息如下所示:"<<endl;</p><p> workers *curnode=head;</p><p> while(curnode!=NULL)</p><p><b> {</b></p><p> cout<<&
115、quot;工人姓名、工號(hào)、工種、工資、獎(jiǎng)金、級(jí)別、加班天數(shù)、曠工天數(shù)依次為:"<<endl;</p><p> cout<<curnode->name<<"\t"<<curnode->num<<"\t"<<curnode->gzh<<"\t"
116、<<curnode->gz<<"\t"<<curnode->jj<<"\t"<<curnode->jbsj<<"\t"<<curnode->kgsj<<"\t"<<endl;</p><p> curn
117、ode=curnode->next;</p><p><b> }</b></p><p><b> }</b></p><p> workers *pxlist(workers *head) //按工資升序排序的函數(shù)</p><p><b> {</b>
118、</p><p> workers *tail,*min,*n,*newf=NULL,*e_min;</p><p> while(head!=NULL){</p><p> for(n=head,min=head;n->next!=NULL;n=n->next)</p><p><b> {</b>
119、</p><p> if(min->gz>n->next->gz)</p><p><b> {</b></p><p><b> e_min=n;</b></p><p> min=n->next;</p><p><b>
120、 }</b></p><p><b> }</b></p><p> if(min==head)</p><p><b> {</b></p><p> head=head->next;</p><p><b> }</b>&
121、lt;/p><p><b> else</b></p><p><b> {</b></p><p> e_min->next=min->next;</p><p><b> }</b></p><p> if(newf==NULL)
122、</p><p><b> {</b></p><p><b> newf=min;</b></p><p><b> tail=min;</b></p><p><b> }</b></p><p><b>
123、else</b></p><p><b> {</b></p><p> tail->next=min;</p><p><b> tail=min;</b></p><p><b> }</b></p><p><b&g
124、t; }</b></p><p> if(newf!=NULL)</p><p><b> {</b></p><p> tail->next=NULL;</p><p><b> }</b></p><p> head=newf;</p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- c++課程設(shè)計(jì)學(xué)生通訊管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)完-----學(xué)生管理系統(tǒng)
- c++課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)學(xué)生學(xué)籍成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c++學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論