版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C++課程設(shè)計(jì)報(bào)告</b></p><p><b> 高校工資管理系統(tǒng)</b></p><p> 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)任務(wù)書(shū)</p><p> 一、題目:高校工資管理系統(tǒng)</p><p><b> 二、設(shè)計(jì)要求</b></p>
2、;<p> ?。?)王瑛璞、汲晨熙和王蘭蘭(組長(zhǎng))組成設(shè)計(jì)小組。</p><p> (2)小組成員分工協(xié)作完成,要求每個(gè)成員有自己相對(duì)獨(dú)立的模塊,同時(shí)要了解其他組員完成的內(nèi)容。</p><p> (3)查閱相關(guān)資料,自學(xué)具體課題中涉及到的新知識(shí)。</p><p> ?。?)根據(jù)實(shí)現(xiàn)的功能,劃分出合理的對(duì)象類(lèi),明確對(duì)象類(lèi)間的關(guān)系。為每個(gè)對(duì)象類(lèi)設(shè)計(jì)正確
3、的屬性和方法,為每個(gè)方法設(shè)計(jì)合理的方法體。</p><p> ?。?)編程簡(jiǎn)練,程序功能齊全,能正確運(yùn)行。</p><p> ?。?)課題完成后提交課程設(shè)計(jì)報(bào)告,格式規(guī)范,內(nèi)容詳實(shí)。其主要內(nèi)容包括:1-封皮、2-課程設(shè)計(jì)任務(wù)書(shū),3-指導(dǎo)教師評(píng)語(yǔ)與成績(jī)、4-目錄、5-需求分析、6-概要設(shè)計(jì)、7-詳細(xì)設(shè)計(jì)(含主要代碼)、8-調(diào)試分析與測(cè)試結(jié)果、9-用戶(hù)使用說(shuō)明、10-附錄或參考資料。報(bào)告用A4
4、紙打印,中文字體為宋體,西文字體用Time New Roma,小四號(hào)字,行距采用“固定值”18磅,首行縮進(jìn)2字符。</p><p> ?。?)課程設(shè)計(jì)報(bào)告內(nèi)容的說(shuō)明:需求分析-分析課題需要實(shí)現(xiàn)的功能以及要用到的知識(shí)點(diǎn),分析課題涉及的對(duì)象間的關(guān)系;概要設(shè)計(jì)-根據(jù)實(shí)現(xiàn)的功能,劃分出合理的對(duì)象類(lèi),明確對(duì)象類(lèi)間的關(guān)系;為每個(gè)對(duì)象類(lèi)設(shè)計(jì)正確的屬性和方法,為每個(gè)方法設(shè)計(jì)合理的方法體;詳細(xì)設(shè)計(jì)-具體的類(lèi)、對(duì)象和功能的實(shí)現(xiàn)以及主
5、要程序代碼;調(diào)試分析與測(cè)試結(jié)果-用多組測(cè)試用例調(diào)試分析系統(tǒng)的正確性、完備性等各項(xiàng)性能指標(biāo),寫(xiě)出測(cè)試結(jié)果;用戶(hù)使用說(shuō)明-編寫(xiě)該系統(tǒng)的使用說(shuō)明書(shū);附錄或參考資料-完整的程序代碼以及查閱資料的參考文獻(xiàn)。</p><p><b> 三、課程設(shè)計(jì)工作量</b></p><p> 由于是設(shè)計(jì)小組團(tuán)結(jié)協(xié)作完成設(shè)計(jì)任務(wù),一般每人的程序量在200行有效程序行左右,不得抄襲。<
6、/p><p> 四、課程設(shè)計(jì)工作計(jì)劃</p><p> 2011年6月13日,指導(dǎo)教師講課,學(xué)生根據(jù)題目準(zhǔn)備資料;</p><p> 2010年6月13日、17日、18日,設(shè)計(jì)小組進(jìn)行總體方案設(shè)計(jì)和任務(wù)分工;每人完成自己承擔(dān)的程序模塊并通過(guò)獨(dú)立編譯;</p><p> 2010年6月21日~2010年6月23日,將各模塊集成為一個(gè)完整的系
7、統(tǒng),并錄入足夠的數(shù)據(jù)進(jìn)行調(diào)試運(yùn)行;同時(shí)撰寫(xiě)報(bào)告。</p><p> 2010年6月27日,驗(yàn)收;提交課程設(shè)計(jì)報(bào)告。</p><p> 指導(dǎo)教師簽章: 教研室主任簽章 </p><p> 面向?qū)ο蟪虒W(xué)設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)教師評(píng)語(yǔ)與成績(jī)</p><p><b> 目
8、 錄</b></p><p><b> 1需求分析1</b></p><p> 1.1 性能需求1</p><p> 1.2 功能需求1</p><p> 2 程序的基本功能及操作手冊(cè)2</p><p> 2.1 程序的基本功能2</p>&l
9、t;p> 2.2 操作手冊(cè)2</p><p><b> 3 詳細(xì)設(shè)計(jì)3</b></p><p> 3.1 動(dòng)畫(huà)功能模塊設(shè)計(jì)3</p><p> 3.2 開(kāi)始界面功能模塊設(shè)計(jì)4</p><p> 3.3 管理員界面功能模塊設(shè)計(jì)11</p><p> 4 調(diào)試分析與
10、測(cè)試結(jié)果14</p><p> 4.1 開(kāi)始界面的運(yùn)行14</p><p> 4.2 歡迎動(dòng)畫(huà)的運(yùn)行16</p><p> 5 系統(tǒng)的總體結(jié)構(gòu)圖17</p><p> 5.1 定義的函數(shù)及說(shuō)明17</p><p> 5.2 系統(tǒng)總體框圖17</p><p><
11、b> 6 結(jié)束語(yǔ)18</b></p><p><b> 需求分析</b></p><p><b> 1.1 性能需求</b></p><p> 隨著高等學(xué)校的快速發(fā)展,高校規(guī)模越來(lái)越大,教職員工的數(shù)量也越來(lái)越多,高校工資管理更加的復(fù)雜,而工資管理這以瑣碎、復(fù)雜又十分細(xì)致的工作容不得半點(diǎn)差錯(cuò),工
12、資的計(jì)算、發(fā)放、核算的工作兩很大,如果實(shí)行手動(dòng)操作,每月發(fā)放工資需要手工填制大量的表格、做很大規(guī)模的運(yùn)算,這會(huì)在無(wú)形中浪費(fèi)了勞動(dòng)力,耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算準(zhǔn)確無(wú)誤、快速輸出,而且還可以利用計(jì)算機(jī)對(duì)有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門(mén)其他方面的核算和財(cái)務(wù)處理,同時(shí)計(jì)算機(jī)具有著手工管理無(wú)法比擬的優(yōu)點(diǎn)。例如:迅速檢索,查找方便,可靠性高,儲(chǔ)存量大,保密性好,壽命長(zhǎng),低成本,安全等等。這
13、些有點(diǎn)能夠極大的提高人事工資管理的效率,也是科學(xué)化管理,與世界接軌的重要條件。這就對(duì)高校工資管理系統(tǒng)提出了新的要求,用計(jì)算機(jī)管理系統(tǒng)來(lái)管理高校工資已經(jīng)成為目前的趨勢(shì),使用計(jì)算機(jī)可以告訴,快捷的完成以上工作。在計(jì)算機(jī)聯(lián)網(wǎng)后,數(shù)據(jù)在網(wǎng)間傳遞,可以實(shí)現(xiàn)數(shù)據(jù)的交互,避免重復(fù)勞動(dòng),規(guī)范數(shù)據(jù)管理的行為,繼而提高了管理的效率和水平。高校工資管理系統(tǒng)便是以計(jì)算機(jī)為工具,通過(guò)對(duì)工資管理所需的信息管理,不僅把管理人員從大量繁瑣</p><
14、;p> 在企業(yè)部門(mén)里,管理人員應(yīng)該對(duì)員工的基本檔案信息進(jìn)行記錄存儲(chǔ),這樣,在確定好部門(mén)里的人員對(duì)象后,才能正確的進(jìn)行進(jìn)一步操作動(dòng)作,如對(duì)人員進(jìn)行工資計(jì)算、工資統(tǒng)計(jì)分析等。管理人員應(yīng)該在需要的時(shí)候能及時(shí)的查看員工的基本檔案信息,對(duì)如員工的調(diào)職、離開(kāi)等要能夠即使的給予信息更正。</p><p><b> 1.2 功能需求</b></p><p> 程序運(yùn)行后
15、顯示動(dòng)畫(huà)圖片,按任意鍵退出歡迎界面。之后選擇相應(yīng)的權(quán)限(管理員或普通用戶(hù)),選擇為管理員時(shí)必須輸入密碼方可進(jìn)入旗下界面,其中包括數(shù)據(jù)錄入、查詢(xún)、刪除、修改及統(tǒng)計(jì)等各種功能,選擇為普通用戶(hù)時(shí)無(wú)需輸入密碼,但只能進(jìn)行數(shù)據(jù)的查詢(xún)、統(tǒng)計(jì)、瀏覽。另外進(jìn)行各種操作前都會(huì)出現(xiàn)相應(yīng)的文字提示,方便使用者更好的應(yīng)用此軟件。</p><p> 數(shù)據(jù)輸入后系統(tǒng)自動(dòng)將其保存到person.dat文件中,如果要?jiǎng)h除或修改已輸入的個(gè)別數(shù)據(jù)
16、,則只需選擇此功能,系統(tǒng)即從文件中查到相應(yīng)數(shù)據(jù)加以刪除或修改,并再次進(jìn)行數(shù)據(jù)的保存,從而完成工資管理的自動(dòng)化。</p><p> 2 程序的基本功能及操作手冊(cè)</p><p> 2.1 程序的基本功能</p><p> ?。?) 向文件中錄入職工信息數(shù)據(jù)。 (2)查詢(xún)職工信息,獲取崗位、工時(shí)、薪資等信息
17、0; (3)修改一個(gè)員工的資料。 (4)刪除某個(gè)員工的信息。 (5)按類(lèi)別瀏覽職工薪資信息。 (6)按工號(hào)查詢(xún)某個(gè)薪資信息。 (7)增加職工信息。 (8)區(qū)別管理員身
18、份與普通用戶(hù),分別分配不同瀏覽空間。 </p><p><b> 2.2 操作手冊(cè)</b></p><p> 運(yùn)行程序后,先出現(xiàn)歡迎動(dòng)畫(huà),雖然簡(jiǎn)短,但是透漏出了我們程序開(kāi)發(fā)人員對(duì)用戶(hù)的衷心祝愿, 它會(huì)在屏幕上運(yùn)動(dòng)一周,然后自行消失。隨之出現(xiàn)一靜態(tài)畫(huà)面“歡迎登陸”。接著映入眼簾的是系統(tǒng)的基本界面,核實(shí)身份,并賦予使用者應(yīng)有的身份。如果您是管理員,在介入
19、密碼后會(huì)被賦予管理員身份進(jìn)入程序,在程序中,您可以做錄入職工數(shù)據(jù)、修改職工數(shù)據(jù)、刪除職工數(shù)據(jù)、瀏覽、統(tǒng)計(jì)等操作。如果您不是管理員,那么選擇相應(yīng)的數(shù)字后,您會(huì)擁有 瀏覽、查詢(xún)、統(tǒng)計(jì)等權(quán)利。</p><p><b> 3 詳細(xì)設(shè)計(jì)</b></p><p> 3.1 動(dòng)畫(huà)功能模塊設(shè)計(jì)</p><p> 此簡(jiǎn)單的動(dòng)畫(huà)為:兩個(gè)笑臉?lè)謩e從屏幕的左端
20、和右端移動(dòng)到中間,設(shè)計(jì)主要是用循環(huán)和清屏來(lái)完成的,類(lèi)似于掃描原理。</p><p><b> 程序流程圖如下:</b></p><p><b> 開(kāi) 始</b></p><p> i<44&&j<25</p><p><b> 主要代碼如下:</b
21、></p><p> void donghua()</p><p><b> {</b></p><p> system("cls");</p><p><b> int j;</b></p><p> for(j=2,i=2;j<2
22、5&&i<44;j++,i=i+4)</p><p><b> {</b></p><p> cout<<"\n\n\n\n";</p><p> cout<<setw(j)<<" "<<" ◢▇▇◣ &q
23、uot;<<setw(40-i)</p><p> <<" "<<" ◢▇▇◣ "<<endl;</p><p> cout<<setw(j)<<" "<<" ◢▇▇▇▇◣"<<setw
24、(40-i)</p><p> <<" "<<" ◢▇▇▇▇◣"<<endl;</p><p> cout<<setw(j)<<" "<<" ▇(*^__^*)▇"<<setw(40-i)</p&g
25、t;<p> <<" "<<" ▇(*^__^*)▇"<<endl;</p><p> cout<<setw(j)<<" "<<" ◥▇▇▇▇◤"<<setw(40-i)</p><p>
26、 <<" "<<" ◥▇▇▇▇◤"<<endl;</p><p> cout<<setw(j)<<" "<<" ▇▇▇▇ "<<setw(40-i)</p><p> <<"
27、"<<" ▇▇▇▇ "<<endl;</p><p> cout<<setw(j)<<" "<<" | | | | "<<setw(40-i)</p><p> <<" "<
28、<" | | | | "<<endl;</p><p> system("cls");</p><p><b> }}</b></p><p> cout<<"\n\n\n\n";</p><p> co
29、ut<<setw(20)<<" "<<" ★★★ ★★★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★ ★ ★"<&l
30、t;endl;</p><p> cout<<setw(20)<<" "<<" ★ ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★
31、 歡 迎 登 陸 ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<&qu
32、ot; "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout&
33、lt;<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p>
34、<p> cout<<setw(20)<<" "<<" ★★"<<endl;</p><p> system("pause");</p><p><b> }</b></p><p>
35、 3.2 開(kāi)始界面功能模塊設(shè)計(jì)</p><p> 此開(kāi)始界面主要是讓用戶(hù)選擇所需的權(quán)限(管理員或普通用戶(hù)),若選擇管理員權(quán)限,則必須先輸入管理員密碼才能進(jìn)入下一步操作;若選擇普通用戶(hù)權(quán)限,則可直接進(jìn)入旗下的用戶(hù)界面,此界面只能進(jìn)行數(shù)據(jù)的查詢(xún)、統(tǒng)計(jì)、瀏覽和返回到開(kāi)始界面四個(gè)功能。</p><p> 程序流程圖(密碼登陸部分)如下:</p><p><b&g
36、t; 主要代碼如下:</b></p><p> Void jiem()</p><p><b> {</b></p><p><b> char j,c;</b></p><p> char p[10],pass[10]="wwwww";</p>
37、;<p> int i=0,k;</p><p> College c0; //定義大學(xué)對(duì)象</p><p> cout<<"*************************歡迎使用我們的程序**************************"<<endl;</p><p> cout<&l
38、t;"*請(qǐng)輸入你要使用的權(quán)限............ *"<<endl;</p><p> cout<<"*┏━ 1.管理員 ━━━━━━━━━━━━━━━━━━━━━━━━━┓*"<<endl;</p><p> cout<<&
39、quot;*┣━ 2.普通用戶(hù)━━━━━━━━━━━━━━━━━━━━━━━━━┫*"<<endl;</p><p> cout<<"*┗━ 0.退出系統(tǒng)━━━━━━━━━━━━━━━━━━━━━━━━━┛*"<<endl;</p><p> cout<<"*********************
40、************************************************"<<endl;</p><p> cout<<"請(qǐng)選擇(0-2) ";</p><p><b> k:</b></p><p><b> cin>>c;</
41、b></p><p> if(c=='1')</p><p><b> {</b></p><p> cout<<"請(qǐng)輸入管理員密碼:";</p><p><b> cin>>p;</b></p><p&g
42、t; for(k=0;pass[k]!='\0';k++)</p><p><b> { </b></p><p> if(p[k]==pass[k])</p><p><b> {</b></p><p><b> i++;</b></p&g
43、t;<p><b> }</b></p><p><b> }</b></p><p><b> if(i==5)</b></p><p><b> {</b></p><p> system("cls");&l
44、t;/p><p><b> guanli();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<endl
45、; </p><p> cout<<"密碼錯(cuò)誤!";</p><p> cout<<"是否返回到開(kāi)始(y返回/n退出)";</p><p><b> cin>>j;</b></p><p> if(j=='y'||j==
46、'Y')</p><p><b> {</b></p><p> system("cls");</p><p><b> jiem();</b></p><p><b> }</b></p><p> els
47、e exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> else if(c=='2') </p><p><b> { </b></p><p><b> d
48、o</b></p><p><b> { </b></p><p> system("cls");</p><p> cout<<"**************************************************************\n";</p
49、><p> cout<<"* 你是普通用戶(hù),只能進(jìn)行下列操作... *\n"<<endl;</p><p> cout<<"*┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓*\n";</p><p> cout<<
50、"*┣1-查詢(xún)┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n"; </p><p> cout<<"*┣2-統(tǒng)計(jì)┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n"; </p><p> cout<<"*┣3-瀏覽┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";<
51、/p><p> cout<<"*┣0-返回到開(kāi)始┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";</p><p> cout<<"*┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛*\n";</p><p> cout<<"******************
52、********************************************"<<endl;</p><p> cout<<"請(qǐng)選擇(0-3)";</p><p><b> b:</b></p><p><b> cin>>c;</b>&l
53、t;/p><p><b> switch(c)</b></p><p><b> {</b></p><p> case '1':{c0.Find(); system("pause");}break;</p><p> case '2':{c0
54、.Stat();system("pause");} break; </p><p> case '3':{c0.Print(); system("pause");}break;</p><p> case '0':{system("cls");jiem();system("pause&
55、quot;);}break;</p><p> default: {</p><p> cout<<"你輸入的字符有誤!!!\n";</p><p> cout<<"請(qǐng)確認(rèn)后重新選擇(0-3)";</p><p><b> goto b;</b>&l
56、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> while(c!='0');</p><p> system("cls");&
57、lt;/p><p><b> jiem();</b></p><p><b> }</b></p><p> else if(c=='0')</p><p><b> exit(0);</b></p><p><b>
58、 else</b></p><p><b> {</b></p><p> cout<<"你輸入的字符有誤!!!\n";</p><p> cout<<"請(qǐng)確認(rèn)后重新選擇(0-2)";</p><p><b> goto k;&
59、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p> College類(lèi)中的四個(gè)成員函數(shù)的實(shí)現(xiàn)代碼如下:</p><p> void College::Find() </p><p><b>
60、{ </b></p><p> double ID; </p><p> Person *p1; </p><p> Person *p2; </p><p> cout<<"輸入你要查詢(xún)的編號(hào):"; </p><p><b> cin>>ID
61、; </b></p><p> p1=PL->next; </p><p><b> p2=PL; </b></p><p> while(p1) </p><p><b> { </b></p><p> if(p1->num==ID) &
62、lt;/p><p> break; //找到 </p><p><b> else </b></p><p><b> { </b></p><p> p2=p1; //繼續(xù)查找 </p><p> p1=p1->next; </p><p&
63、gt;<b> } </b></p><p><b> } </b></p><p> if(!p1) {cout<<"找不到你所查詢(xún)的人!!!\n請(qǐng)確認(rèn)你所查詢(xún)的編號(hào)是否出錯(cuò)!!!\n";return;} </p><p><b> else </b><
64、/p><p> { cout<<"\n** 職工信息表 **\n"; </p><p> cout<<"編號(hào) 姓名 崗位 工作時(shí)間 收入情況(元)\n"; </p><p> p1->Output();} </p><p><b> } <
65、;/b></p><p> //查找職工結(jié)點(diǎn)(返回1-找到,0-未找到.結(jié)點(diǎn)指針由p1返回,p2為前看指針) </p><p> int College::Cfind(int ID,Person **p1,Person **p2) </p><p><b> { </b></p><p> *p1=PL-
66、>next; </p><p><b> *p2=PL; </b></p><p> while(*p1) </p><p><b> { </b></p><p> if((*p1)->num==ID) </p><p> break; //找到 &l
67、t;/p><p><b> else </b></p><p><b> { </b></p><p> *p2=*p1; //繼續(xù)查找 </p><p> *p1=(*p1)->next; </p><p><b> } </b><
68、/p><p><b> } </b></p><p> return *p1?1:0;</p><p><b> }</b></p><p> Void College::Print() </p><p><b> { </b></p&g
69、t;<p> cout<<"\n** 職工信息表 **\n"; </p><p> cout<<"編號(hào) 姓名 崗位 工作時(shí)間 收入情況(元)\n"; </p><p> Person *p=PL->next; </p><p><b> if(!p)
70、 </b></p><p><b> { </b></p><p> cout<<"無(wú)職工記錄!\n"; </p><p><b> return; </b></p><p><b> } </b></p>&l
71、t;p> while(p) //遍歷鏈表,輸出職工信息 </p><p><b> { </b></p><p> p->Output(); </p><p> p=p->next; </p><p><b> } </b></p><p><
72、;b> }</b></p><p> Void College::Stat() </p><p><b> { </b></p><p> Person *p1; </p><p> Person *p2; </p><p> double Sa=0; </p
73、><p> int a,b,i=0; </p><p> double c,d; </p><p> cout<<"選擇你要統(tǒng)計(jì)的類(lèi)別:\n1-類(lèi)別;\n2-工資;\n3-要發(fā)的工資總數(shù);\n4-總的人數(shù);\n"; </p><p><b> cin>>a; </b><
74、;/p><p><b> if(a==1) </b></p><p><b> { </b></p><p> cout<<"輸入你要統(tǒng)計(jì)的類(lèi)別:\n1-教師;\n2-清潔員;\n3-院長(zhǎng)\n45-院長(zhǎng)兼教師;\n\n"; </p><p><b> c
75、in>>b; </b></p><p> p1=PL->next; </p><p><b> p2=PL; </b></p><p> while(p1) </p><p><b> { </b></p><p> if(p1-&g
76、t;Duty==b) </p><p><b> { </b></p><p><b> i++; </b></p><p><b> //找到 </b></p><p> p2=p1; //繼續(xù)查找 </p><p> p1=p1->n
77、ext; </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> p2=p1; //繼續(xù)查找 </p><p> p1=p1->next; <
78、;/p><p><b> } </b></p><p> }cout<<b<<"類(lèi)職工的個(gè)數(shù)是:"<<i<<endl; </p><p><b> } </b></p><p> else if(a==2) </p>
79、;<p><b> { </b></p><p> cout<<"輸入工資下限:";cin>>c; </p><p> cout<<"\n輸入工資上限:";cin>>d; </p><p> p1=PL->next; </
80、p><p><b> p2=PL; </b></p><p> while(p1) </p><p><b> { </b></p><p> if(p1->Salary>=c&&p1->Salary<=d) </p><p>&
81、lt;b> { </b></p><p> p1->Output();//找到 </p><p> p2=p1; //繼續(xù)查找 </p><p> p1=p1->next; </p><p><b> } </b></p><p><b> el
82、se </b></p><p><b> { </b></p><p> p2=p1; //繼續(xù)查找 </p><p> p1=p1->next; </p><p><b> } </b></p><p><b> } </b
83、></p><p><b> } </b></p><p> else if(a==3) </p><p><b> { </b></p><p> Person *p=PL->next; </p><p> while(p) //遍歷鏈表 </
84、p><p><b> { </b></p><p> Sa=Sa+(p->Salary); </p><p> p=p->next; </p><p><b> } </b></p><p> cout<<"工資總數(shù)是:"&l
85、t;<Sa<<endl; </p><p><b> } </b></p><p> else if(a==4) </p><p><b> { </b></p><p> Person *p=PL->next; </p><p><b&
86、gt; while(p) </b></p><p><b> { </b></p><p><b> i=i+1; </b></p><p> p=p->next; </p><p><b> } </b></p><p>
87、 cout<<"總?cè)藬?shù)是:"<<i<<endl; </p><p><b> } </b></p><p> cout<<"統(tǒng)計(jì)完成!!!\n"; </p><p><b> }</b></p><p>
88、 3.3 管理員界面功能模塊設(shè)計(jì)</p><p> 此界面類(lèi)似于用戶(hù)界面,但它擁有管理員特有的功能權(quán)限,除了用戶(hù)的功能外,它還有數(shù)據(jù)錄入、刪除職工、增加職工、修改職工功能,以便于管理員隨時(shí)對(duì)數(shù)據(jù)進(jìn)行更新,而普通用戶(hù)則無(wú)權(quán)對(duì)數(shù)據(jù)進(jìn)行任何更新操作,這也是此系統(tǒng)的一大亮點(diǎn)。</p><p><b> 程序流程圖如下:</b></p><p>&
89、lt;b> 開(kāi)始</b></p><p><b> 主要程序代碼如下:</b></p><p> void guanli() </p><p><b> { </b></p><p><b> char ch; </b></p>&l
90、t;p> College c; //定義大學(xué)對(duì)象 </p><p> //顯示主菜單,接受選擇,并分支調(diào)用大學(xué)類(lèi)的相應(yīng)功能的成員函數(shù) </p><p><b> do </b></p><p><b> {</b></p><p> system("cls");&
91、lt;/p><p> cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";</p><p> cout<<"┃ ☆☆ 高校工資管理系統(tǒng) ☆☆ ┃\n"; </p><p> cout<&l
92、t;"┃┏1—數(shù)據(jù)錄入┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┓ ┃\n"; </p><p> cout<<"┃┣2—查 詢(xún)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫ ┃\n"; </p><p> cout<<"┃┣3—修改職工┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
93、┫ ┃\n"; </p><p> cout<<"┃┣4—增加職工┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫ ┃\n"; </p><p> cout<<"┃┣5—?jiǎng)h除職工┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫ ┃\n"; </p><p>
94、 cout<<"┃┣6—統(tǒng) 計(jì)┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫ ┃\n"; </p><p> cout<<"┃┣7—瀏 覽┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫ ┃\n"; </p><p> cout<<"┃┗0—返回到開(kāi)始┅┅┅┅┅┅┅
95、┅┅┅┅┅┅┅┅┅┅┅┅┅┅┛ ┃\n"; </p><p> cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";</p><p> cout<<"請(qǐng)選擇:";</p><p><b> d:</b></p
96、><p><b> cin>>ch; </b></p><p> switch (ch) </p><p><b> { </b></p><p> case '1': {c.Load();system("pause");} break; <
97、/p><p> case '2': {c.Find();system("pause");} break; </p><p> case '3': {c.Modify();system("pause");} break; </p><p> case '4': {c.Add();
98、system("pause");} break; </p><p> case '5': {c.Delete();system("pause");} break; </p><p> case '6': {c.Stat(); system("pause");}break; </p>
99、<p> case '7': {c.Print();system("pause");} break;</p><p> case '0':{system("cls");jiem();system("pause");}break;</p><p> default: {</p&
100、gt;<p> cout<<"你輸入的字符有誤!!!\n";</p><p> cout<<"請(qǐng)確認(rèn)后重新選擇(0-3)";</p><p><b> goto d;</b></p><p><b> } </b></p>
101、<p><b> } </b></p><p> }while(ch!='0');</p><p> system("cls");</p><p><b> jiem();</b></p><p><b> }</b>
102、</p><p> 4 調(diào)試分析與測(cè)試結(jié)果</p><p> 4.1 開(kāi)始界面的運(yùn)行</p><p> 預(yù)期結(jié)果:(1)顯示提示的畫(huà)面,等待輸入字符 (2)輸入字符‘1’后,提示輸入密碼,(3)進(jìn)入管理員界面,出現(xiàn)提示畫(huà)面,(4)輸入字符‘2’后,進(jìn)入普通用戶(hù)界面,(5)輸入字符‘0’后,退出系統(tǒng),(6)輸入非法字符后,提示重新輸入。</p>
103、<p> 實(shí)際效果:(1)、(3)、(4)、(5)滿(mǎn)足,(2)、(6)不滿(mǎn)足,(2)中輸入正確密碼后不能進(jìn)入管理員界面,(6)中輸入非法字符后,直接退出了程序。</p><p> 查錯(cuò):出錯(cuò)的(2)部分代碼如下:</p><p> cout<<"請(qǐng)輸入管理員密碼:";</p><p><b> cin>
104、;>p;</b></p><p> for(k=0;pass[k]!='\0';k++)</p><p><b> { </b></p><p> if(p[k]=pass[k])</p><p><b> {</b></p><p&g
105、t;<b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(i==5)</b></p><p><b> {</b></p>&l
106、t;p> //system("cls");</p><p><b> guanli();</b></p><p><b> }</b></p><p> 修改:將“p[k]=pass[k]”改為“p[k]==pass[k]”。</p><p> 修改后運(yùn)行的實(shí)際效
107、果于預(yù)期效果一張(圖片如下):</p><p> 查錯(cuò):出錯(cuò)的(6)部分代碼如下:</p><p><b> b:</b></p><p><b> cin>>c;</b></p><p><b> switch(c)</b></p><
108、p><b> {</b></p><p> case '1':{c0.Find(); system("pause");}break;</p><p> case '2':{c0.Stat();system("pause");} break; </p><p>
109、 case '3':{c0.Print(); system("pause");}break;</p><p> case '0':{system("cls");jiem();system("pause");}break;</p><p> default: {</p><p&
110、gt; cout<<"你輸入的字符有誤!!!\n";</p><p> cout<<"請(qǐng)確認(rèn)后重新選擇(0-3)";</p><p><b> }</b></p><p><b> }</b></p><p><b>
111、 }</b></p><p> while(c!='0');</p><p> system("cls");</p><p><b> jiem();</b></p><p><b> }</b></p><p>
112、 修改:在‘cout<<"請(qǐng)確認(rèn)后重新選擇(0-3)";’后加上‘goto b;’。</p><p> 修改后實(shí)際效果與預(yù)期效果一致(圖片如下):</p><p> 4.2 歡迎動(dòng)畫(huà)的運(yùn)行</p><p> 預(yù)期結(jié)果:(1)兩個(gè)笑臉?lè)謩e從左端和右端向中間移動(dòng),(2)然后出現(xiàn)歡迎登陸的圖片,并等待按任意鍵。</p>
113、<p> 實(shí)際效果:(1)滿(mǎn)足,但(2)不等待按任意鍵直接進(jìn)入了開(kāi)始界面。</p><p> 查錯(cuò):錯(cuò)誤的部分代碼如下:</p><p><b> }</b></p><p> cout<<"\n\n\n\n";</p><p> cout<<setw(
114、20)<<" "<<" ★★★ ★★★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★ ★ ★"<<endl;</p&g
115、t;<p> cout<<setw(20)<<" "<<" ★ ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ 歡 迎 登
116、 陸 ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<&
117、lt;" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)
118、<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> co
119、ut<<setw(20)<<" "<<" ★★"<<endl;</p><p> }修改:在最后的‘}’前加上‘system("pause");’。</p><p> 修改后實(shí)際效果與預(yù)期效果一致(圖片如下):</p><p&g
120、t; 5 系統(tǒng)的總體結(jié)構(gòu)圖</p><p> 5.1 定義的函數(shù)及說(shuō)明</p><p> 此程序由如下函數(shù)構(gòu)成: </p><p> College(); 構(gòu)造函數(shù) </p><p> ~College(); 析構(gòu)函數(shù)</p><p> Add();增加職工函數(shù)</p><p>
121、 Delete();刪除職工函數(shù) </p><p> Modify(); 修改職工函數(shù) </p><p> Print(); 輸出職工信息函數(shù)</p><p> Save(); 職工信息存盤(pán)函數(shù) </p><p> Load(); 職工信息裝入函數(shù) </p><p> Find(); 查找 </p>
122、;<p> Build(); 導(dǎo)引 </p><p> Stat(); 統(tǒng)計(jì) </p><p> Main---主函數(shù)。</p><p> 5.2 系統(tǒng)總體框圖</p><p><b> 6 結(jié)束語(yǔ)</b></p><p> 通過(guò)工資管理系統(tǒng)的編程練習(xí)思考數(shù)據(jù)結(jié)構(gòu)的使用
123、,比如對(duì)類(lèi)及其派生類(lèi)、類(lèi)的對(duì)象、類(lèi)的指針的應(yīng)用等,讓我們感受到了對(duì)類(lèi)的操作。此外還熟悉了各種函數(shù)的應(yīng)用。</p><p> 對(duì)于我們初學(xué)者來(lái)說(shuō),學(xué)習(xí)編寫(xiě)工資管理系統(tǒng),對(duì)我們掌握了解C++語(yǔ)言的知識(shí)有很大的幫助。我們通過(guò)編程實(shí)踐,還能拓展思路,讓我們?nèi)ふ倚枰切┖瘮?shù)的調(diào)用,怎樣提高程序的質(zhì)量等。</p><p> 通過(guò)編程我知道了想要寫(xiě)出好的程序,需要有扎實(shí)的基礎(chǔ),這樣才會(huì)遇到一些基本
124、算法時(shí)做的游刃有余。在編程時(shí),我們要有豐富的想象力,不拘泥于固定的思維方式,試試別人從沒(méi)想過(guò)的方法。豐富的想象力是建立在豐富的知識(shí)的基礎(chǔ)上,所以我們要通過(guò)多個(gè)途徑來(lái)幫助自己建立較豐富的知識(shí)結(jié)構(gòu)。</p><p> 在編程時(shí),我們遇到了很多的困難,這就需要我們多與別人交流。在編程時(shí)我們也看到了有良好的編程風(fēng)格是十分重要的,至少在時(shí)間效率上就體現(xiàn)了這一點(diǎn)。</p><p> 現(xiàn)在自己也能編
125、寫(xiě)管理系統(tǒng)了,卻沒(méi)想到的是寫(xiě)管理系統(tǒng)并沒(méi)想象的那么簡(jiǎn)單(還有這份文檔)。這兩周,我們整天為了編程而忙碌,但看到自己的工資管理系統(tǒng)終于完成了,我們還是覺(jué)得很開(kāi)心。</p><p> 當(dāng)一切都完成以后,除了學(xué)會(huì)編寫(xiě)管理系統(tǒng)外,我們也學(xué)會(huì)了許多別的東西。首先,我們學(xué)會(huì)了合作。合作,必然會(huì)產(chǎn)生分歧;學(xué)會(huì)去解決分歧,留下更多的是友誼。其次,我們學(xué)會(huì)了分工。分工是為了更好的合作,分工才能提高合作的效率。最后,我們學(xué)會(huì)了奮斗
126、。我們相信,通過(guò)在北華大學(xué)的四年學(xué)習(xí),我們定能寫(xiě)出更精彩的程序,描繪出更精彩的人生。</p><p> 在這里,我們要感謝指導(dǎo)我們課程設(shè)計(jì)的xx老師,給予我們悉心的指導(dǎo)。老師多次詢(xún)問(wèn)我們編寫(xiě)進(jìn)程,并為我們指點(diǎn)迷津,幫助我們開(kāi)拓研究思路,精心點(diǎn)撥、熱枕鼓勵(lì)。老師一絲不茍的工作作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度以及踏踏實(shí)實(shí)的精神,不僅授我以文,更教會(huì)我做人,給以終生受益無(wú)窮之道。我還要感謝我們開(kāi)發(fā)小組的另外2名同學(xué),在設(shè)計(jì)中給予
127、我很大的幫助。正是由于我們團(tuán)結(jié)協(xié)作,才順利地完成了課程設(shè)計(jì)任務(wù)。在設(shè)計(jì)中,我確實(shí)感到了團(tuán)隊(duì)合作的力量。</p><p> 課程設(shè)計(jì)完成之后,留下的必將是美好的回憶。</p><p> #include<stdio.h></p><p> #include<iostream> </p><p> #include
128、<string> </p><p> #include<fstream> </p><p> #include<iomanip></p><p> #include<stdlib.h></p><p> using namespace std;</p><p>
129、 void jiem();</p><p> void guanli();</p><p> void donghua()</p><p><b> {</b></p><p> system("cls");</p><p><b> int j,i;<
130、;/b></p><p> for(j=2,i=2;j<25&&i<44;j++,i=i+4)</p><p><b> {</b></p><p> cout<<"\n\n\n\n";</p><p> cout<<setw(j)&l
131、t;<" "<<" ◢▇▇◣ "<<setw(40-i)<<" "<<" ◢▇▇◣ "<<endl;</p><p> cout<<setw(j)<<" "<<"
132、 ◢▇▇▇▇◣"<<setw(40-i)<<" "<<" ◢▇▇▇▇◣"<<endl;</p><p> cout<<setw(j)<<" "<<" ▇(*^__^*)▇"<<setw(40-i)<&l
133、t;" "<<" ▇(*^__^*)▇"<<endl;</p><p> cout<<setw(j)<<" "<<" ◥▇▇▇▇◤"<<setw(40-i)<<" "<<" ◥
134、▇▇▇▇◤"<<endl;</p><p> cout<<setw(j)<<" "<<" ▇▇▇▇ "<<setw(40-i)<<" "<<" ▇▇▇▇ "<<endl;</p>&
135、lt;p> cout<<setw(j)<<" "<<" | | | | "<<setw(40-i)<<" "<<" | | | | "<<endl;</p><p> system("cls&qu
136、ot;);</p><p><b> }</b></p><p> cout<<"\n\n\n\n";</p><p> cout<<setw(20)<<" "<<" ★★★ ★★★"<&
137、lt;endl;</p><p> cout<<setw(20)<<" "<<" ★ ★ ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★
138、 ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ 歡 迎 登 陸 ★"<<endl;</p><p> cout<<setw(20)<<
139、" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p>
140、 cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl
141、;</p><p> cout<<setw(20)<<" "<<" ★ ★"<<endl;</p><p> cout<<setw(20)<<" "<<" ★★&quo
142、t;<<endl;</p><p> system("pause");</p><p><b> }</b></p><p> class Person //人員類(lèi)(抽象類(lèi)) </p><p><b> { </b></p><p>
143、 protected: </p><p> double num; //編號(hào) </p><p> char Name[20]; //姓名 </p><p> int Duty; //人員類(lèi)別標(biāo)志(1-教師,2-清潔工,3-院長(zhǎng),4-院長(zhǎng)兼教師) </p><p> double Salary; //基本工資 </p>&
144、lt;p> Person *next; //指針域 </p><p><b> public: </b></p><p> Person() //基類(lèi)構(gòu)造 </p><p><b> { </b></p><p> next=0; //指針域設(shè)置為空 </p><
145、p><b> } </b></p><p> virtual ~Person() //基類(lèi)虛析構(gòu) </p><p><b> { </b></p><p><b> } </b></p><p> virtual void Input()=0; //從鍵盤(pán)輸入數(shù)
146、據(jù) </p><p> virtual void Input(ifstream& ifs)=0; //從文件輸入數(shù)據(jù) </p><p> virtual void Output()=0; //向屏幕輸出數(shù)據(jù) </p><p> virtual void Output(ofstream& ofs)=0; //向文件輸出數(shù)據(jù) </p>
147、<p> virtual double Incoming()=0; //計(jì)算收入 </p><p> friend class College; </p><p><b> }; </b></p><p> class Teacher:virtual public Person //教師類(lèi) </p><p
148、><b> { </b></p><p> protected: </p><p> int Hours; //教師課時(shí) </p><p><b> public: </b></p><p> //為對(duì)象設(shè)置數(shù)據(jù)分為兩種途徑,通過(guò)1)構(gòu)造函數(shù),2)一般成員函數(shù) </p>
149、<p> //分開(kāi)可以使得程序中應(yīng)用更加靈活 </p><p> //本程序采用:缺省構(gòu)造+Input() </p><p> Teacher() //構(gòu)造函數(shù),初始化部分?jǐn)?shù)據(jù) </p><p><b> { </b></p><p><b> Duty=1; </b>&l
150、t;/p><p> Salary=800; </p><p><b> } </b></p><p> void Input() //鍵盤(pán)補(bǔ)充輸入其它數(shù)據(jù) </p><p><b> { </b></p><p> cout<<"\n 編號(hào):&q
151、uot;; cin>>num; </p><p> cout<<"\n 姓名:"; cin>>Name; </p><p> cout<<"\n 教師上學(xué)期課時(shí):"; cin>>Hours; </p><p> cout<<"\n&qu
152、ot;; </p><p> Salary=Incoming(); </p><p><b> } </b></p><p> void Input(ifstream& ifs) </p><p><b> { </b></p><p> ifs>&
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)報(bào)告---高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)--高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)-----高校工資管理系統(tǒng)
- 高校工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 高校工資管理系統(tǒng)課程設(shè)計(jì)
- 高校工資管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--c++企業(yè)工資管理系統(tǒng)
- c++企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--高校職工工資管理系統(tǒng)
- c++企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--小型公司工資管理系統(tǒng)
- ”小型公司工資管理系統(tǒng)設(shè)計(jì)“c++課程設(shè)計(jì)
- 課程設(shè)計(jì)--高校工資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告
- 小型公司工資管理系統(tǒng)設(shè)計(jì) c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--高校工資管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)-職工工資管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)---企業(yè)員工工資管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論