簡(jiǎn)單的職工信息管理系統(tǒng)報(bào)告_第1頁(yè)
簡(jiǎn)單的職工信息管理系統(tǒng)報(bào)告_第2頁(yè)
簡(jiǎn)單的職工信息管理系統(tǒng)報(bào)告_第3頁(yè)
簡(jiǎn)單的職工信息管理系統(tǒng)報(bào)告_第4頁(yè)
簡(jiǎn)單的職工信息管理系統(tǒng)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、精選優(yōu)質(zhì)文檔-傾情為你奉上淮陰工學(xué)院算法設(shè)計(jì)技能訓(xùn)練實(shí)習(xí)報(bào)告題目:簡(jiǎn)單的職工管理系統(tǒng)系(院): 計(jì)算機(jī)工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)(微軟合作) 班 級(jí): 計(jì)算機(jī) 1137 學(xué) 號(hào): 姓 名 指導(dǎo)教師: 周海巖 學(xué)年學(xué)期: 2014 2015 學(xué)年 第 1 學(xué)期2014年12月31日算法設(shè)計(jì)技能訓(xùn)練任務(wù)書(shū)課題名稱簡(jiǎn)單的職工管理系統(tǒng)設(shè)計(jì)目的1、通過(guò)算法設(shè)計(jì)技能訓(xùn)練,深入理解算法設(shè)計(jì)的意義和重要性,更好地掌握算法設(shè)計(jì)的知識(shí)。2、 能夠針對(duì)某一具體問(wèn)題,設(shè)計(jì)算法進(jìn)行解決。3、 鍛煉實(shí)踐動(dòng)手能力,提高解決問(wèn)題的能力。實(shí)驗(yàn)環(huán)境硬件:1、PC機(jī),奔騰以上CPU, 512MB以上內(nèi)存,80G以上硬盤(pán);

2、 軟件:Visual C+編程工具任務(wù)要求1.對(duì)單位的職工進(jìn)行管理,包括插入、刪除、查找、排序等功能.2.職工對(duì)象包括姓名、性別、出生年月、工作年月、學(xué)歷、職務(wù)、住址、電話等信息。 (1)新增一名職工:將新增職工對(duì)象按姓名以字典方式職工管理文件中。 (2)刪除一名職工:從職工管理文件中刪除一名職工對(duì)象。 (3)查詢:從職工管理文件中查詢符合某些條件的職工。 (4)修改:檢索某個(gè)職工對(duì)象,對(duì)其某些屬性進(jìn)行修改。 (5)排序:按某種需要對(duì)職工對(duì)象文件進(jìn)行排序。 3.實(shí)現(xiàn)功能 職工對(duì)象數(shù)不必很多,便于一次讀入內(nèi)容,所有操作不經(jīng)過(guò)內(nèi)外存交換。 (1)由鍵盤(pán)輸入職工對(duì)象,以文件方式保存。程序執(zhí)行時(shí)先將文

3、件讀入內(nèi)存。 (2)對(duì)職工對(duì)象中的“姓名”按字典順序進(jìn)行排序。 (3)對(duì)排序后的職工對(duì)象進(jìn)行增、刪、查詢、修改、排序等操作。工作進(jìn)度計(jì)劃序號(hào)起止日期工 作 內(nèi) 容12014.12.28任務(wù)下達(dá),查閱文獻(xiàn)資料22013.12.292013.12.31總體設(shè)計(jì)、素材搜集、課題詳細(xì)設(shè)計(jì)、調(diào)試32015.1.12015.1.3完善設(shè)計(jì)、撰寫(xiě)報(bào)告42015.1.4答辯指導(dǎo)教師(簽章): 年 月 日 摘要在當(dāng)今社會(huì),互聯(lián)網(wǎng)的發(fā)展,給人的工作和生活帶來(lái)了極大的便利和高效,信息化、電子化已經(jīng)成為節(jié)約運(yùn)營(yíng)成本提高工作效率的首選。隨著各個(gè)公司的規(guī)模增大,有關(guān)信息管理工作所涉及的數(shù)據(jù)量越來(lái)越大,職工信息量也大大增加

4、,利用傳統(tǒng)的手工查詢、登記、修改等方法的處理速度已經(jīng)遠(yuǎn)遠(yuǎn)跟不上公司的需求。而且,人工方式來(lái)管理職工信息,存在著許多缺點(diǎn),如:效率低、保密性差,對(duì)信息的查找、更新和維護(hù)不便。計(jì)算機(jī)作為知識(shí)經(jīng)濟(jì)時(shí)代的產(chǎn)物,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí)。本文對(duì)職工管理系統(tǒng)進(jìn)行設(shè)計(jì),主要為了企業(yè)職工的信息進(jìn)行集中管理和快捷查詢。本職工信息管理系統(tǒng)包括新增、刪除、查詢、修改、排序等常用功能。整個(gè)系統(tǒng)用C+語(yǔ)言設(shè)計(jì),用戶可輕松管理企業(yè)員工信息。關(guān)鍵詞 職工管理系統(tǒng) 職工信息管理 C+ 數(shù)據(jù)結(jié)構(gòu)目 錄1 引言 51.1 設(shè)計(jì)目的 5 1.2 設(shè)計(jì)意義 52 需求分析 62.1 設(shè)計(jì)題目描述 62.2 設(shè)計(jì)要求 62.3 實(shí)

5、現(xiàn)提示 62.4 選做內(nèi)容 62.5 軟硬件運(yùn)行環(huán)境及開(kāi)發(fā)工具 63 課程設(shè)計(jì)報(bào)告內(nèi)容 6 3.1 系統(tǒng)設(shè)計(jì)思想 7 3.2 系統(tǒng)概要設(shè)計(jì) 7 3.3 系統(tǒng)詳細(xì)設(shè)計(jì) 93.3.1 結(jié)構(gòu)體設(shè)計(jì) 93.3.2 主函數(shù)設(shè)計(jì) 93.3.3 查找算法設(shè)計(jì) 113.3.4 排序算法設(shè)計(jì) 11 3.4 運(yùn)行與測(cè)試 13總結(jié) 16致謝 17參考文獻(xiàn) 18附錄 程序代碼 19指導(dǎo)教師評(píng)語(yǔ) 32圖1 系統(tǒng)流程圖 7圖2 系統(tǒng)功能結(jié)構(gòu)圖 8表1 函數(shù)功能表 8圖3 模塊調(diào)用關(guān)系圖 9圖4 主函數(shù)程序流程圖 10圖5 排序算法程序流程圖 13圖6 主菜單選擇界面 13圖7 新增并查詢職工信息界面 14圖8 修改職工信

6、息界面 14圖9 按工資排序職工信息顯示圖 15圖10 退出職工管理系統(tǒng) 15專心-專注-專業(yè)1 引言通過(guò)大一一學(xué)年對(duì)C+語(yǔ)言的學(xué)習(xí),了解到了很多C+語(yǔ)言的相關(guān)知識(shí)。它簡(jiǎn)潔緊湊、使用靈活方便、運(yùn)算符豐富、適用范圍大、可移植性好。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。此職工管理系統(tǒng)利用C+語(yǔ)言的優(yōu)點(diǎn),進(jìn)行了設(shè)計(jì)。睡著社會(huì)經(jīng)濟(jì)的飛速發(fā)展,信息化程度的不斷深入,傳統(tǒng)方式的職工信息管理已愈來(lái)愈不能滿足各大公司的需求。企業(yè)間的競(jìng)爭(zhēng)愈加激烈時(shí),如何高效地管理大量的職工信息,如何進(jìn)行快速地查詢,如何利用計(jì)算機(jī)技術(shù)加強(qiáng)企業(yè)職工信息管理,是擺在各家企業(yè)面前的一個(gè)迫切需要解決的問(wèn)題。信息化的職工管理系統(tǒng)為

7、用戶提供充足的信息和快捷的查詢手段,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高職工管理的效率,也是公司的科學(xué)化、正規(guī)化管理和與世界接軌的重要條件。職工管理系統(tǒng)作為一種管理軟件正在各公司中得到越來(lái)越廣泛的應(yīng)用,且已達(dá)到了良好效果。11 設(shè)計(jì)目的本程序旨在訓(xùn)練基于C+語(yǔ)言的編程思想,進(jìn)一步加深、鞏固所學(xué)專業(yè)課程的基本理論知識(shí),理論聯(lián)系實(shí)際,了解管理信息系統(tǒng)的開(kāi)發(fā)流程,熟悉C+語(yǔ)言的文件和結(jié)構(gòu)數(shù)組的各種基本操作。能夠利用所學(xué)的基本知識(shí)好技能,解決簡(jiǎn)單的程序設(shè)計(jì)問(wèn)題,增強(qiáng)獨(dú)立完成工作的能力。通過(guò)本程序的訓(xùn)練,提高邏輯思

8、維能力,熟練掌握一些排序算法,熟練掌握利用數(shù)組存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)職工信息管理的原理,為進(jìn)一步開(kāi)發(fā)出高質(zhì)量的管理系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。12 設(shè)計(jì)意義做一個(gè)企業(yè)員工信息管理系統(tǒng),就是需求所定制的,所以他首先要做的是滿足最基本得員工信息的增刪改查及排序基礎(chǔ)上進(jìn)行功能的擴(kuò)展,其次是部門(mén)管理,工資管理等等。 一個(gè)正規(guī)性企業(yè)都希望自己的員工管理非常合理,如此復(fù)雜性的操作如果通過(guò)人手動(dòng)的寫(xiě),會(huì)非常的麻煩?;谶@一點(diǎn)考慮到設(shè)計(jì)管理類型的軟件,來(lái)解決這個(gè)繁瑣的問(wèn)題,方便與企業(yè)的工作管理以及一些制度的規(guī)定。 在企業(yè)中,員工信息管理工作是非常重要的一項(xiàng)工作,它負(fù)責(zé)整個(gè)企業(yè)的日常人事安排,員工的人事管理等。高效的人事管理可以

9、提高企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力,使企業(yè)具有更強(qiáng)的凝聚力和活力。為此,提高員工管理工作的效率,設(shè)計(jì) 一套員工信息管理系統(tǒng)具有實(shí)際應(yīng)用意義。2 設(shè)計(jì)題目描述和設(shè)計(jì)要求21 設(shè)計(jì)題目描述對(duì)單位的職工進(jìn)行管理,包括插入、刪除、查找、排序等功能。 22 設(shè)計(jì)要求職工對(duì)象包括姓名(字符串)、性別(字符)、出生年月(數(shù)字)、工作年月(數(shù)字)、學(xué)歷(字符串)、職務(wù)(字符串)、住址(字符串)、電話(字符串)等信息。 (1)新增一名職工:將新增職工對(duì)象按姓名以字典方式職工管理文件中。 (2)刪除一名職工:從職工管理文件中刪除一名職工對(duì)象。 (3)查詢:從職工管理文件中查詢符合某些條件的職工。 (4)修改:檢索某個(gè)職工對(duì)象,

10、對(duì)其某些屬性進(jìn)行修改。 (5)排序:按某種需要對(duì)職工對(duì)象文件進(jìn)行排序。2.3 實(shí)現(xiàn)提示 職工對(duì)象數(shù)不必很多,便于一次讀入內(nèi)容,所有操作不經(jīng)過(guò)內(nèi)外存交換。 (1)由鍵盤(pán)輸入職工對(duì)象,以文件方式保存。程序執(zhí)行時(shí)先將文件讀入內(nèi)存。 (2)對(duì)職工對(duì)象中的“姓名”按字典順序進(jìn)行排序。 (3)對(duì)排序后的職工對(duì)象進(jìn)行增、刪、查詢、修改、排序等操作。2.4 選做內(nèi)容 將職工對(duì)象按散列法存儲(chǔ),并設(shè)計(jì)解決沖突的方法。在此基礎(chǔ)上實(shí)現(xiàn)增、刪、查詢、修改、排序等操作。2.5 軟硬件運(yùn)行環(huán)境及開(kāi)發(fā)工具Windows7操作系統(tǒng) Visual C+ 6.0 運(yùn)行環(huán)境3 課程設(shè)計(jì)報(bào)告內(nèi)容3.1 系統(tǒng)設(shè)計(jì)思想(1)系統(tǒng)數(shù)據(jù)需求&

11、#160;通過(guò)對(duì)企業(yè)員工的信息管理業(yè)務(wù)流程的調(diào)查,總結(jié)系統(tǒng)對(duì)其數(shù)據(jù)的需求,主要有:?jiǎn)T工檔案信息,員工工資信息,部門(mén)、職務(wù)、工資類型等基礎(chǔ)信息。(2)系統(tǒng)功能需求 系統(tǒng)的主要需求,即所設(shè)計(jì)的系統(tǒng)在功能上應(yīng)做什么。本系統(tǒng)主要的功能有:?jiǎn)T工管理:完成員工檔案的新增、修改、刪除、查詢及打印等功能;主要實(shí)現(xiàn)對(duì)所有員工的姓名、性別、出生年月、工作年月、學(xué)歷、職務(wù)(字符串)、住址、電話等信息的管理。 工資管理:完成員工工資的錄入、查詢、分析及相關(guān)打印等功能;主要實(shí)現(xiàn)對(duì)員工的姓名、工資類別及工資金額等信息的管理。  系統(tǒng)幫助:幫助用戶解決問(wèn)題,溝通與軟件開(kāi)發(fā)者的聯(lián)系。(

12、3)系統(tǒng)性能需求 系統(tǒng)的性能指標(biāo)包括存儲(chǔ)容量限制、運(yùn)行時(shí)間限制、傳輸速度要求、安全保密性等幾個(gè)方面。 (4)系統(tǒng)運(yùn)行環(huán)境需求 硬件方面:采用的設(shè)備機(jī)型以及外部設(shè)備等; 軟件方面:支持系統(tǒng)運(yùn)行的系統(tǒng)軟件,如操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)等。 (5)系統(tǒng)可靠性及安全保密需求 對(duì)系統(tǒng)、重要子系統(tǒng)在運(yùn)行中的安全、可靠、保密方面提出要求。3.2 系統(tǒng)總體設(shè)計(jì)1、輸入功能的實(shí)現(xiàn):要想實(shí)現(xiàn)職工管理系統(tǒng)的輸入,必須要建立一個(gè)職工信息系統(tǒng)的抽象數(shù)據(jù)類型,其中職工信息以鏈表的存儲(chǔ)方式實(shí)現(xiàn)。由鍵盤(pán)輸入職工對(duì)象,以文件方式保存。程序執(zhí)行時(shí)先將文件讀入內(nèi)存。 2、系統(tǒng)處

13、理功能的實(shí)現(xiàn):系統(tǒng)管理員根據(jù)公司的人員流動(dòng)情況,在提示信息的提示下,選擇相應(yīng)的服務(wù)進(jìn)行操作。如對(duì)職工對(duì)象中的"姓名"按字典順序進(jìn)行排序;對(duì)排序后的職工對(duì)象進(jìn)行增、刪、查詢、修改、排序等操作。 3、輸出的實(shí)現(xiàn):根據(jù)選擇的操作,輸出與之對(duì)應(yīng)的信息。 綜上可以繪制出職工管理功能的系統(tǒng)流程圖,如圖1所示。圖1 系統(tǒng)流程圖4、 功能結(jié)構(gòu)根據(jù)職工管理系統(tǒng)問(wèn)題的分析和設(shè)計(jì)要求,可以得到該職工管理系統(tǒng)可以分為五個(gè)模塊:職工信息添加模塊、職工信息修改模塊、職工信息刪除模塊、職工信息查詢模塊、職工信息排序模塊。其系統(tǒng)功能結(jié)構(gòu)如圖2所示。圖2 系統(tǒng)功能結(jié)構(gòu)圖5、模塊函數(shù)構(gòu)造 根據(jù)系統(tǒng)功

14、能結(jié)構(gòu)圖的描述,可以構(gòu)造出該系統(tǒng)的抽象數(shù)據(jù)類型和相對(duì)應(yīng)的函數(shù),其方法名和功能如表1所示。表1函數(shù)功能表6、系統(tǒng)模塊的調(diào)用關(guān)系圖框架根據(jù)系統(tǒng)功能結(jié)構(gòu)圖的描述,可以構(gòu)造出該系統(tǒng)的抽象數(shù)據(jù)類型和相對(duì)應(yīng)的函數(shù),函數(shù)之間通過(guò)調(diào)用來(lái)實(shí)現(xiàn)系統(tǒng)的功能。 職工管理系統(tǒng)問(wèn)題的系統(tǒng)模塊類圖如圖3所示:圖3模塊調(diào)用關(guān)系圖3.3 系統(tǒng)詳細(xì)設(shè)計(jì)3.3.1 結(jié)構(gòu)體設(shè)計(jì)本課程設(shè)計(jì)的是職工管理系統(tǒng),對(duì)于職工的基本信息通過(guò)構(gòu)造結(jié)構(gòu)體鏈表實(shí)現(xiàn):struct Employee string m_Code; /編號(hào)string m_Name; /姓名string m_Year; /出生年月string m_Sex; /性別string

15、 m_Post; / 職務(wù)string m_Department; /部門(mén)unsigned int m_Wage; /工資struct Employee* Next; ;3,3.2 主函數(shù)設(shè)計(jì)  本程序主要是使用鏈表來(lái)實(shí)現(xiàn)操作。使用鏈表這樣做的好處是,可以隨時(shí)增加內(nèi)容,也容易將職工信息從文件中刪除。為職工設(shè)計(jì)一個(gè)類,單獨(dú)設(shè)計(jì)完成這個(gè)文件讀寫(xiě)的成員函數(shù)。使用結(jié)構(gòu)數(shù)組作為職工信息的存儲(chǔ)器,由它們和文件建立讀寫(xiě)關(guān)系。需要顯示它們時(shí),先將文件讀入內(nèi)存,然后再顯示。需要顯示輸出職工信息時(shí),則直接從內(nèi)存鏈表中篩選。當(dāng)然,需要顯示原始信息時(shí),也通過(guò)直接顯示鏈表信息的方法實(shí)現(xiàn)。這四種數(shù)據(jù)的顯示問(wèn)題均

16、通過(guò)一個(gè)成員函數(shù)來(lái)完成。(1)根據(jù)詳細(xì)設(shè)計(jì)要求,可以得到主函數(shù)代碼及其對(duì)應(yīng)的程序流程圖:在主函數(shù)中,實(shí)現(xiàn)了友好的界面設(shè)計(jì)。系統(tǒng)需要輸入職工的基本信息:姓名、性別、出生年月、工作年月、學(xué)歷、職務(wù)、住址、電話等。這個(gè)系統(tǒng)還利用鍵盤(pán)輸入提供的主菜單服務(wù),在主菜單中,有七種操作的調(diào)用: 1)新建函數(shù) Link Create(Link Head);/ 創(chuàng)建一個(gè)帶頭節(jié)點(diǎn)的空鏈表 2)修改函數(shù) Link Modify(Link Head);/修改單個(gè)節(jié)點(diǎn)3)刪除函數(shù) Link Del(Link &Head);4)查詢函數(shù): bool Search(Link Head)/ 查詢同時(shí)滿足“姓名

17、”和“部門(mén)”的職工信息 Link Search_Unique_Front(Link Head)/ 查詢滿足“職工代碼“的職工信息(職工代碼必需唯一)5)保存函數(shù) void Save_ByFile(Link Head)6)排序函數(shù)(包括按工資排序和按姓名進(jìn)行字典排序)Link Sort(Link Head)Link Sort_byname(Link Head)7)顯示函數(shù) void Display_List(Link Head)(2)主函數(shù)程序流程圖如圖4所示:圖4主函數(shù)程序流程圖3.3.3 查找算法設(shè)計(jì) 在查詢算法中,職工管理系統(tǒng)提供了七種查詢操作,實(shí)現(xiàn)了系統(tǒng)的人性化查詢操作。這些查

18、詢操作分別為: 對(duì)姓名進(jìn)行查詢,對(duì)性別進(jìn)行查詢,對(duì)出生年月進(jìn)行查詢,對(duì)工作年月進(jìn)行查詢,對(duì)學(xué)歷進(jìn)行查詢,對(duì)職位進(jìn)行查詢,對(duì)住址進(jìn)行查詢,對(duì)電話進(jìn)行查詢等一些列操作。查找算法中,利用鏈表的指針的移動(dòng)掃描整個(gè)職工信息表,利用strcmp()函數(shù)判斷字符串是否匹配。查找算法主要代碼如下:Link Search_Unique_Front(Link Head) /查詢滿足“職工代碼“的職工信息Link ptr; string code; ptr=Head->Next; cout<<"請(qǐng)輸入職工代碼:" cin>>code; cout<&l

19、t;endl<<"-查詢結(jié)果-"<<endl; while(ptr) if(ptr->m_Code=code) Display_Node(ptr);/打印滿足條件的節(jié)點(diǎn)。return ptr;ptr=ptr->Next;/查詢下一節(jié)點(diǎn)。return ptr; void Display_List(Link Head) /顯示職工信息函數(shù) Link ptr; ptr=Head->Next; cout<<"=所有職工信="<<endl; while(ptr) Display_Node(ptr);

20、 ptr=ptr->Next; 3.3.4 排序算法設(shè)計(jì) 在排序算法中,職工管理系統(tǒng)提供了四種查詢操作,實(shí)現(xiàn)了系統(tǒng)的基本排序操作。這些排序操作分別為: 對(duì)姓名進(jìn)行排序,對(duì)性別進(jìn)行排序,對(duì)出生年月進(jìn)行排序,對(duì)工作年月進(jìn)行排序,等一些列操作。排序算法中,利用鏈表的指針的移動(dòng)掃描整個(gè)職工信息表,利用strcmp()函數(shù)判斷字符串是否匹配。 排序的核心代碼:Link Sort(Link Head) /創(chuàng)建的是帶頭節(jié)點(diǎn)的鏈表(用直接插入法)if(Head->Next=NULL)|(Head->Next->Next=NULL)/條件判斷 cout<

21、;<"數(shù)據(jù)節(jié)點(diǎn)數(shù)少于2個(gè),不用排序!"<<endl; return Head; Link ptr; Link ptr_F; Link ptr_N; ptr=Head->Next->Next; ptr_F=Head;Head->Next->Next=NULL;/到此,分成了兩個(gè)鏈表while(ptr) ptr_N=ptr->Next; ptr_F=Head;/ptr_F的歸位。 while(ptr_F->Next) if(ptr->m_Wage>ptr_F->Next->m_Wage) ptr-&g

22、t;Next=ptr_F->Next; ptr_F->Next=ptr; break; else ptr_F=ptr_F->Next; if(ptr_F->Next=NULL) ptr->Next=ptr_F->Next; ptr_F->Next=ptr;/表示插到有序鏈表的最后面了 ptr=ptr_N;/歸位,準(zhǔn)備下一次排序cout<<"從高到低,排序成功!"<<endl; return Head; 排序算法流程圖如圖5所示:圖5排序算法程序流程圖3.4 運(yùn)行與測(cè)試測(cè)試是使用人工或者自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)

23、系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別.其主要階段包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。測(cè)試方法主要有白盒測(cè)試法和黑盒測(cè)試法;其中,白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作;黑盒測(cè)試也稱功能測(cè)試,它是通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)。 職工信息有:姓名、性別、出生年月、工作年月、學(xué)歷、職務(wù)、住址、電話。在數(shù)據(jù)輸入中注意數(shù)據(jù)類型。 (1)進(jìn)入職工管理系統(tǒng),如圖6所示:圖6主菜單選擇界面(2) 新

24、增一職工信息并查詢?nèi)柯毠ば畔ⅲ鐖D7所示:圖7新增并查詢職工信息界面(3) 修改職工信息并與前面信息對(duì)照,如圖8所示:圖8修改職工信息界面(4) 按工資排序職工信息并顯示,如圖9所示:圖9按工資排序職工信息顯示圖(5)退出系統(tǒng),如圖10所示:選擇 0,退出職工管理系統(tǒng)。圖10退出職工管理系統(tǒng)總結(jié)本次設(shè)計(jì)我選擇的題目是職工信息管理系統(tǒng)。因?yàn)槭孪鹊挠?jì)劃非常明確,所以我在完成這個(gè)設(shè)計(jì)的過(guò)程也是比較順利的。在系統(tǒng)分析和設(shè)計(jì)的部分仍然花了比較多的時(shí)間。模塊設(shè)計(jì)部分因?yàn)樯婕肮δ艿膶?shí)現(xiàn),要從抽象的設(shè)計(jì)轉(zhuǎn)化成實(shí)際的代碼,因此對(duì)于某項(xiàng)功能的實(shí)現(xiàn)方法都思考得比較詳盡。加上在開(kāi)發(fā)系統(tǒng)之前,我閱讀很多與本

25、系統(tǒng)有相關(guān)內(nèi)容的書(shū)籍以做參考,使得此次系統(tǒng)編寫(xiě)能順利進(jìn)行。由于班里每個(gè)人都需要做一份設(shè)計(jì),所以我們經(jīng)常互相交流。在交流的時(shí)候經(jīng)常能夠互相提出更好的建議。 經(jīng)過(guò)對(duì)職工信息管理系統(tǒng)的分析與編程,我得到了很大的收獲。自主學(xué)習(xí)的必要性更是解決問(wèn)題的基礎(chǔ)。這次設(shè)計(jì)使我重溫了以前學(xué)過(guò)的各科知識(shí),讓我對(duì)C編程有了更深刻的認(rèn)識(shí)。除了對(duì)系統(tǒng)做出正確的分析,實(shí)際的調(diào)查工作對(duì)系統(tǒng)的整體設(shè)計(jì)有著至關(guān)重要的作用。所以在分析系統(tǒng)之前,我花了一些時(shí)間在公司的實(shí)際管理工作調(diào)查上。也因?yàn)檫@樣,如何編寫(xiě)代碼逐漸變得明朗。每一個(gè)功能模塊經(jīng)過(guò)調(diào)查后,各個(gè)功能逐漸顯露出來(lái),然后,反復(fù)探討,驗(yàn)證這項(xiàng)功能是否有存在的必要,是否可

26、以改進(jìn)得更好。在這樣的前提下,最后順利完成了這份設(shè)計(jì)。這次C系統(tǒng)設(shè)計(jì)作業(yè),提升了我分析問(wèn)題的能力和思考問(wèn)題的邏輯能力,更明白實(shí)際調(diào)研的重要性。從這次設(shè)計(jì)學(xué)到的東西,相信會(huì)對(duì)我們?nèi)蘸蟮膶W(xué)習(xí)工作起到很大的指導(dǎo)作用。致謝感謝淮陰工學(xué)院、計(jì)算機(jī)工程系給我們提供了這次實(shí)驗(yàn)機(jī)會(huì),感謝實(shí)驗(yàn)室人員給我們提供了實(shí)驗(yàn)環(huán)境,感謝我們數(shù)據(jù)結(jié)構(gòu)任課老師張有棟老師的諄諄教誨,感謝周海巖老師的辛勤指導(dǎo)和無(wú)微不至的關(guān)懷,感謝朱葉、袁星星等同學(xué)在實(shí)驗(yàn)中給我提供的幫助,感謝實(shí)用c+教程的作者馬智嫻和徐克奇二人?;仡欉@過(guò)去的一周,我收獲了很多,也成長(zhǎng)了很多,感悟到上機(jī)實(shí)驗(yàn)是多么的重要,自己去動(dòng)手操作是多么的重要,懂得了如何去多方位

27、地查找資料,完善和創(chuàng)新一些舊的思維方式,相信這次課程設(shè)計(jì)的體驗(yàn)將成為今后我更多更廣學(xué)習(xí)的奠基石。同時(shí),也在此感謝老師能給我這次機(jī)會(huì)鍛煉自己!在這次的課程設(shè)計(jì)中要感謝我的朋友們,要不是他們的細(xì)心和熱情幫助這次的課程設(shè)計(jì)就沒(méi)那么容易完成。有些由于粗心造成的錯(cuò)誤就很難查出!所以在這里對(duì)他們表示我誠(chéng)摯的謝意!其次,也謝謝上機(jī)實(shí)驗(yàn)時(shí)指導(dǎo)老師的細(xì)心指導(dǎo)!當(dāng)然做課程設(shè)計(jì)不是靠一個(gè)人的力量能夠完成的,需要各個(gè)方面的支持和借鑒。在做課程設(shè)計(jì)的同時(shí)也提高了各方面的能力,讓我明白了一個(gè)道理:同學(xué)之間應(yīng)該相互幫助,相互學(xué)習(xí)才能提高自己的能力!在本次課程設(shè)計(jì)中由于我們沒(méi)有經(jīng)驗(yàn)所以在這一周的課程設(shè)計(jì)中經(jīng)常會(huì)遇到各方面的小

28、問(wèn)題是自己一時(shí)難以解決的,再次,我要謝謝他們對(duì)我的幫助,讓我能夠比較順利的完成本次課程設(shè)計(jì),而且還提高了各個(gè)方面的能力。感謝所有支持和幫助過(guò)我的人。參考文獻(xiàn)1 殷人昆.數(shù)據(jù)結(jié)構(gòu)(第二版).北京:清華大學(xué)出版社,2007;2 馬智嫻、徐克奇、榮祺.實(shí)用c+教程.北京:高等教育出版社,2004;3 潘彥.算法設(shè)計(jì)與分析基礎(chǔ)M.北京:清華大學(xué)出版社,2007.1; 4 呂鳳翥.C+語(yǔ)言程序設(shè)計(jì)(第2版)M.北京:電子工業(yè)出版社,2007.2; 5 李云清,楊慶紅,揭安全.數(shù)據(jù)結(jié)構(gòu)(C+語(yǔ)言版)M.北京:人民郵電大學(xué)出版社,2004.6;附錄 程序代碼#include <string&

29、gt; #include <iostream> #include <fstream> #include <iomanip> #include <memory.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> using namespace std; struct Employee/聲明職工的結(jié)構(gòu)作為鏈表節(jié)點(diǎn) string m_Code; /數(shù)據(jù)域 string m_Name; unsigned short int m_Year; strin

30、g m_Sex; string m_Post; string m_Department; unsigned int m_Wage; struct Employee* Next; /鏈表節(jié)點(diǎn)的指針域 ; typedef struct Employee Node; /取別名 為現(xiàn)有數(shù)據(jù)類型定義同義詞typedef Node* Link; /取別名 Node*用Link替代/函數(shù)聲明 Link Create(Link Head); void Release(Link Head); Link Add(Link Head); bool Search(Link Head); Link Search_Uni

31、que(Link Head); void Display_List(Link Head); void Display_Node(Link pNode); Link Modify(Link Head); Link Del(Link Head); void Save_ByFile(Link Head,fstream& ofile); Link Sort(Link Head); /函數(shù)實(shí)現(xiàn)Link Create(Link Head) /創(chuàng)建一個(gè)帶頭節(jié)點(diǎn)的空鏈表 Head=(Link)new Node; if(!Head) cout<<"分配內(nèi)存失?。?quot;<

32、<endl; return NULL; Head->m_Code="" Head->m_Name="" Head->m_Year=0; Head->m_Sex="" Head->m_Post="" Head->m_Department="" Head->m_Wage=0; Head->Next=NULL; return Head; void Release(Link Head) /釋放鏈表 Link ptr; /聲明一個(gè)操作用的指針 whil

33、e(Head!=NULL) ptr=Head; Head=Head->Next; delete ptr; /釋放節(jié)點(diǎn)資源 Link Add(Link Head) /前插法添加數(shù)據(jù) Link pNew;/ 聲明一個(gè)新節(jié)點(diǎn)。 char again; string code,name,sex,post,department; unsigned short int year; unsigned int wage; do pNew=(Link)new Node; cout<<"請(qǐng)輸入職工代碼:" cin>>code; cout<<endl&l

34、t;<"請(qǐng)輸入職工姓名:" cin>>name; cout<<endl<<"請(qǐng)輸入職工出生年份:" cin>>year; while(cin.fail() cout<<"請(qǐng)輸入正確的年份格式。"<<endl; cin.clear(); fflush(stdin); cin>>year; cout<<endl<<"請(qǐng)輸入職工性別:" cin>>sex; cout<<endl<

35、<"請(qǐng)輸入職工職稱:" cin>>post; cout<<endl<<"請(qǐng)輸入職工部門(mén):" cin>>department; cout<<endl<<"請(qǐng)輸入職工工資:" cin>>wage; while(cin.fail() cout<<"請(qǐng)輸入正確的工資數(shù)據(jù)。"<<endl; cin.clear(); fflush(stdin); cin>>wage; cout<<endl;

36、 pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex; pNew->m_Post=post; pNew->m_Department=department; pNew->m_Wage=wage; pNew->Next=Head->Next; Head->Next=pNew; cout<<"數(shù)據(jù)添加成功!是否繼續(xù)添加?(Y/N)"<<endl; cin>>again; while(again

37、='Y'|again='y'); return Head; bool Search(Link Head) /查詢同時(shí)滿足“姓名”和“部門(mén)”的職工信息Link ptr; string department; string name; ptr=Head->Next; cout<<"請(qǐng)輸入部門(mén):" cin>>department; cout<<endl<<"請(qǐng)輸入姓名:" cin>>name; cout<<endl<<"-查詢結(jié)果

38、-"<<endl; while(ptr) if(ptr->m_Name=name)&&(ptr->m_Department=department) Display_Node(ptr);/打印滿足條件的節(jié)點(diǎn)。return true; ptr=ptr->Next;/查詢下一節(jié)點(diǎn)。 cout<<"未找到滿足的員工"<<endl;return false; Link Search_Unique_Front(Link Head) /查詢滿足“職工代碼“的職工信息(職工代碼必需唯一) Link ptr; s

39、tring code; ptr=Head->Next; cout<<"請(qǐng)輸入職工代碼:" cin>>code; cout<<endl<<"-查詢結(jié)果-"<<endl; while(ptr) if(ptr->m_Code=code) Display_Node(ptr);/打印滿足條件的節(jié)點(diǎn)。return ptr;ptr=ptr->Next;/查詢下一節(jié)點(diǎn)。 return ptr; void Display_List(Link Head) /顯示職工信息函數(shù) Link ptr; p

40、tr=Head->Next; cout<<"=所有職工信息="<<endl; while(ptr) Display_Node(ptr); ptr=ptr->Next; void Display_Node(Link pNode) /在標(biāo)準(zhǔn)輸出設(shè)備上輸出cout<<endl<<setw(10)<<left<<pNode->m_Code /setw(10)表示占10個(gè)字符位置<<setw(10)<<left<<pNode->m_Name <&l

41、t;setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(10)<<left<<pNode->m_Post <<setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl; Link Modify(Link Head)

42、/ 修改單一個(gè)節(jié)點(diǎn)Link ptr; ptr=Search_Unique_Front(Head); string code,name,sex,post,department; unsigned short int year; unsigned int wage; if(ptr) cout<<"-你現(xiàn)在可以修改此職工的信息了-"<<endl; cout<<"請(qǐng)輸入職工代碼:" cin>>code; cout<<endl<<"請(qǐng)輸入職工姓名:" cin>>

43、name; cout<<endl<<"請(qǐng)輸入職工出生年份:" cin>>year; while(cin.fail() cout<<"請(qǐng)輸入正確的年份格式。"<<endl; cin.clear(); cin>>year; cout<<endl<<"請(qǐng)輸入職工性別:" cin>>sex; cout<<endl<<"請(qǐng)輸入職工職稱:" cin>>post; cout<<

44、;endl<<"請(qǐng)輸入職工部門(mén):" cin>>department; cout<<endl<<"請(qǐng)輸入職工工資:" cin>>wage; while(cin.fail() cout<<"請(qǐng)輸入正確的工資數(shù)據(jù)。"<<endl; cin.clear(); fflush(stdin); cin>>wage; cout<<endl; ptr->m_Code=code;ptr->m_Name=name; ptr->m_Y

45、ear=year; ptr->m_Sex=sex; ptr->m_Post=post; ptr->m_Department=department; ptr->m_Wage=wage; elsecout<<"沒(méi)找到此職工的記錄,無(wú)法修改。"<<endl; return 0; Link Del(Link Head)/刪除信息 Link ptr; Link ptr_front; ptr_front=Search_Unique_Front(Head); ptr=ptr_front->Next; if(ptr) /*p=curre

46、nt->link;*/ /*current->link=p->link;*/ /單鏈表的刪除ptr_front->Next=ptr->Next; /* delete p;*/delete ptr; cout<<"刪除成功"<<endl; cout<<"沒(méi)找到此職工的記錄無(wú)法刪除。"<<endl; return Head; void Save_ByFile(Link Head,fstream& ofile) /保存函數(shù) Link pNode; pNode=Head->

47、;Next; ofile.clear();/清除文件結(jié)束狀態(tài)。 while(pNode) ofile<<setw(10)<<left<<pNode->m_Code /setw(10)表示占10個(gè)字符位置 <<setw(10)<<left<<pNode->m_Name <<setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(10)<

48、;<left<<pNode->m_Post <<setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl; pNode=pNode->Next; cout<<"數(shù)據(jù)文件保存成功!"<<endl; Link Sort(Link Head) /創(chuàng)建的是帶頭節(jié)點(diǎn)的鏈表(用直接插入法)if(Head->Next=NULL)|(Head-&g

49、t;Next->Next=NULL)/條件判斷 cout<<"數(shù)據(jù)節(jié)點(diǎn)數(shù)少于2個(gè),不用排序!"<<endl; return Head; /第二步 Link ptr; Link ptr_F; Link ptr_N; ptr=Head->Next->Next; ptr_F=Head;Head->Next->Next=NULL;/到此,分成了兩個(gè)鏈表/第三步 while(ptr) ptr_N=ptr->Next; ptr_F=Head;/ptr_F的歸位。 while(ptr_F->Next) if(ptr->m_Wage>ptr_F->Next->m_Wage) ptr-

溫馨提示

  • 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ù)網(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)論