版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JINGCHU UNIVERSITY OF TECHNOLOGY 課程設(shè)計(jì)成果 設(shè)計(jì)題目:_職工工作量統(tǒng)計(jì)_ 學(xué) 院:_計(jì)算機(jī)工程_ 班 級(jí): 11軟件(本)三班 姓 名: 王 志 成 學(xué) 號(hào): 06 設(shè)計(jì)地點(diǎn):_A5-101 _ 完成日期: 2013年 01 月 12 日 指導(dǎo)老師評(píng)語: _ 成績(五級(jí)記分制): 教師簽名: 目 錄摘 要1第一章 項(xiàng)目概述21.1問題描述21.2問題分析2第二章 項(xiàng)目設(shè)計(jì)22.1 系統(tǒng)程序的功能示意圖如下:32.2 功能函數(shù)設(shè)計(jì)思想及說明42.2.1 隨機(jī)生成職工號(hào)函數(shù)42.2.2 隨機(jī)生成職工完成的產(chǎn)品數(shù)量52.2.3 排序函數(shù)62.2.4 查找函數(shù)72.
2、2.5 插入函數(shù)72.2.6刪除函數(shù)92.2.7 按職工完成的產(chǎn)品數(shù)量排名次函數(shù)92.2.8 輸出最終結(jié)果函數(shù)92.2.9 main()函數(shù)9第三章 程序調(diào)試113.1 調(diào)試程序遇到的問題及解決113.2 程序調(diào)試結(jié)果123.2.1 隨機(jī)生成職工號(hào)和隨機(jī)生成職工完成產(chǎn)品數(shù)量信息結(jié)果(如圖1)123.2.2 歡迎界面(如圖2)123.3.3 功能1排序函數(shù)(出現(xiàn)錯(cuò)誤的如圖3,正確的如圖4)133.3.4 排名次函數(shù)(如圖5)143.3.5 輸出職工工號(hào)和完成產(chǎn)品數(shù)量函數(shù)(如圖5)143.3.6 功能1排序函數(shù)(如圖6)143.3.7 功能2查找函數(shù)(如圖7和圖8)153.3.8 功能3插入函數(shù)(
3、如圖9、圖10和圖11)153.3.9 功能4刪除函數(shù)(如圖12)163.3.10 功能5輸出函數(shù)(如圖15)18第四章 設(shè)計(jì)總結(jié)與心得18第五章 參考文獻(xiàn)19附 錄20摘 要 數(shù)據(jù)結(jié)構(gòu)主要是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中的計(jì)算機(jī)操作對(duì)象以及它們之間的關(guān)系和操作等的學(xué)科。數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)與技術(shù)中是一門綜合性的專業(yè)基礎(chǔ)課,其研究不僅涉及到計(jì)算機(jī)硬件的研究范圍,而且和計(jì)算機(jī)軟件的研究有著更密切的關(guān)系。不論是編譯程序過程還是操作系統(tǒng)都涉及到數(shù)據(jù)元素在存儲(chǔ)器中的分配問題。在計(jì)算機(jī)科學(xué)與技術(shù)中,數(shù)據(jù)結(jié)構(gòu)不僅是一般程序性的基礎(chǔ),而且也是其他系統(tǒng)程序和大型程序的重要基礎(chǔ)。在社會(huì)生產(chǎn)日益群體合作化,生
4、產(chǎn)模式日益企業(yè)化的今天,企業(yè)的管理工作越來越受到企業(yè)經(jīng)營者的重視,而在員工的流動(dòng)、管理和工作報(bào)酬的分配中,職工的報(bào)酬是根據(jù)員工的工作量進(jìn)行分配的。因此,職工的工作量,就成了企業(yè)經(jīng)營者關(guān)注的信息。然而,對(duì)于現(xiàn)在的企業(yè)來說,人員數(shù)量多,工作量又復(fù)雜,通過普通的人工方式已經(jīng)難以滿足現(xiàn)代化企業(yè)的核算要求。怎樣進(jìn)行大量員工的工作量的管理工作呢?設(shè)計(jì)一個(gè)職工工作量統(tǒng)計(jì)系統(tǒng),就能夠滿足大多數(shù)現(xiàn)代化企業(yè)的需求了。 課程設(shè)計(jì)的目的和意義是:通過課程設(shè)計(jì)的實(shí)踐環(huán)節(jié)的教學(xué),可以加深對(duì)課堂所學(xué)基礎(chǔ)知識(shí)的掌握與理解,提高所學(xué)內(nèi)容的綜合運(yùn)用能力;同時(shí)也可以通過查詢相關(guān)資料,培養(yǎng)學(xué)生自學(xué)能力、接受新知識(shí)的能力,提高學(xué)習(xí)興趣
5、;增強(qiáng)學(xué)生程序設(shè)計(jì)能力,掌握編程技巧,并可培養(yǎng)學(xué)生實(shí)際上機(jī)調(diào)試程序的能力。“理論與實(shí)踐”相結(jié)合,使學(xué)生得到很好的鍛煉,為以后學(xué)習(xí)、工作打下堅(jiān)實(shí)的基礎(chǔ)。本次職工工作量統(tǒng)計(jì)系統(tǒng)是通過C語言來設(shè)計(jì)的,也是由本人獨(dú)立完成的。 關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu)、課程設(shè)計(jì)、職工工作量第一章 項(xiàng)目概述1.1問題描述 問題描述及分析: 采用隨機(jī)函數(shù)產(chǎn)生職工的工號(hào)和他所完成產(chǎn)品個(gè)數(shù)的數(shù)據(jù)信息,對(duì)同一職工多次完成的產(chǎn)品個(gè)數(shù)進(jìn)行累計(jì),最后按以下格式輸出;職工完成產(chǎn)品數(shù)量的名次、該名次每位職工完成的產(chǎn)品數(shù)量、職工人數(shù)和職工號(hào)要求:1)輸出統(tǒng)計(jì)結(jié)果,如下所示: Order quantity count number 1 375 3
6、10 20 21 4 256 2 3 5 6 200 1 92)每一個(gè)函數(shù)要有必要的注釋,在課程設(shè)計(jì)論文中有流程圖。1.2 問題分析 問題中包含有職工工號(hào)、職工多次完成的產(chǎn)品數(shù)量、職工完成的產(chǎn)品總數(shù)量、按完成產(chǎn)品數(shù)量個(gè)數(shù)的名次、職工相同名次的人數(shù)。因此,設(shè)置結(jié)構(gòu)體為:typedef struct int order; int count; int ftotal5; int quantity; int number; SqList;SqList PaMAX=0;職工的信息應(yīng)包含排序、查找、插入、刪除等功能;每個(gè)職工都包含以上結(jié)構(gòu)體中的數(shù)據(jù),因此,該問題的設(shè)計(jì)思想是:采用結(jié)構(gòu)體數(shù)組來存儲(chǔ)職工信息,
7、然后對(duì)各職工的信息進(jìn)行排序、查找、插入、刪除等操作。第二章 項(xiàng)目設(shè)計(jì) 系統(tǒng)在win-TC中運(yùn)行,由于win-TC不支持中文輸出功能,故采用純英文進(jìn)行設(shè)計(jì)編寫。這樣能作出美觀的界面,并且制作出詳細(xì)的菜單。先輸出工號(hào)和完成的數(shù)量,最后輸出查找的結(jié)果輸入(15)隨機(jī)生成職工號(hào)、職工完成工作量 歡迎界面 開始先排序排名次,最后輸出最終要求的輸出結(jié)果先輸出工號(hào)和職工完成的數(shù)量,再刪除給定的職工信息最后輸出最終要求的結(jié)果Ch=12Ch=52先按工作量排序,再輸出排序后的工號(hào)和完成的數(shù)量,最后輸出最終要求的結(jié)果Ch=42Ch=32Ch=22Ch=12Ch=42Ch=32Ch=22Ch=12先輸出工號(hào)和完成的
8、產(chǎn)量,再插入一個(gè)信息,最后輸出最終的結(jié)果Ch=12Ch=52先按工作量排序,再輸出排序后的工號(hào)和完成的數(shù)量,最后輸出最終要求的結(jié)果Ch=42Ch=32Ch=22Ch=12Ch=42Ch=32Ch=22Ch=12 結(jié)束2.1 系統(tǒng)程序的功能示意圖如下: 示意圖1,系統(tǒng)函數(shù)功能示意圖2.2 功能函數(shù)設(shè)計(jì)思想及說明 2.2.1 隨機(jī)生成職工號(hào)函數(shù) void SandNumber(SqList Pa,int n,int *p) 先定義了全局?jǐn)?shù)組NUMMAX=0和指針*p,并且讓指針指向該數(shù)組,用來保存職工的工號(hào)信息,再使用系統(tǒng)函數(shù)srand()、rand()生成n個(gè)員工的工號(hào),工號(hào)為不為零的兩位數(shù),且
9、這n個(gè)員工的工號(hào)各不相同。在生成完后,再依次輸出這n個(gè)員工的工號(hào),其圖示如下: 將m的值存入*(p+i) 結(jié)束第i個(gè)和第j個(gè)工號(hào)相等 i0 i0 i=n輸出員工工號(hào) m=0使用隨機(jī)函數(shù)給m賦值m=rand()%100; 定義三個(gè)變量i=0, j, m使用當(dāng)前時(shí)間種子將m的值存入*(p+i) 結(jié)束第i個(gè)和第j個(gè)工號(hào)相等 i0 i0 i=n輸出員工工號(hào) m=0使用隨機(jī)函數(shù)給m賦值m=rand()%100; 定義三個(gè)變量i=0, j, m使用當(dāng)前時(shí)間種子 示意圖2,隨機(jī)生成職工號(hào)函數(shù)示意圖2.2.2 隨機(jī)生成職工完成的產(chǎn)品數(shù)量 void SandQuantity(SqList Pa,int n,in
10、t *q) 先定義了全局?jǐn)?shù)組QUMAX=0和指針*q,并且讓指針指向該數(shù)組,用來保存職工完成產(chǎn)品的次數(shù)信息,再使用系統(tǒng)函數(shù)srand()、rand()生成n個(gè)員工的數(shù)量信息Pai.quantity,其中該信息為各個(gè)員工(最多有5個(gè)小于100)的信息Pai.ftotalj之和,在生成完后,再依次輸出這n個(gè)員工的數(shù)量信息,其圖示如下:i5用rand()函數(shù)重新給*(q+i)賦值,*(q+i)=rand();ini+;i=0 jn示意圖3,隨機(jī)生成職工數(shù)據(jù)信息函數(shù)示意圖2.2.3 排序函數(shù) int Paixu_quantity(SqList Pa,int n,int *q) 使用冒泡法進(jìn)行排序,先定
11、義一個(gè)結(jié)構(gòu)體arr,兩個(gè)變量i和j,其中j用來計(jì)算已經(jīng)完成的職工個(gè)數(shù),i表示尚未比較個(gè)數(shù),從j=0開始,當(dāng)j(n-j)時(shí),第一輪比較結(jié)束,使j+,進(jìn)入下一輪,當(dāng)j=n時(shí),表示第n輪比較結(jié)束,此時(shí)排序完成。函數(shù)示意圖(3)如下:Pai.quantityPai+1.quantity交換第i個(gè)和第i+1個(gè)結(jié)構(gòu)體中對(duì)應(yīng)位置的元素信息;i+ in-j jn時(shí)還未找到要查找的元素,則表示該元素不存在,輸出“the employee hasnt been found!n”并返回空。其示意圖如下:從主函數(shù)輸入得到工號(hào)num輸出沒有找到,返回空 結(jié)束輸出查找信息,返回查找到的位置i i=s時(shí),將Pai中的數(shù)據(jù)全
12、部對(duì)輸出輸入錯(cuò)誤Pas.ftotali=rand()%100;累計(jì)得到總數(shù)量Pas.quantity輸出插入錯(cuò)誤,返回n的原值 得到插入的工號(hào)查找工號(hào)位置,并將返回值給sSrand(unsigned)time(NULL)S=s輸入次數(shù)total Totaln時(shí),則輸出”Delete is wrong!n”;否則,如果當(dāng)Pai=Pas時(shí),先將Pai位置的數(shù)據(jù)信息保存在結(jié)構(gòu)體str中,再將Pai+1位置的數(shù)據(jù)信息前移到Pai位置中,循環(huán)直到in時(shí),將結(jié)構(gòu)體的個(gè)數(shù)減1,最后輸出被刪除的信息,程序執(zhí)行結(jié)束。2.2.7 按職工完成的產(chǎn)品數(shù)量排名次函數(shù) void Count_order(SqList Pa
13、,int n) 功能:給各職工排名次和賦count數(shù)據(jù)項(xiàng)的值。 要給職工按完成的產(chǎn)品數(shù)量排名次,則要求先對(duì)各職工的信息進(jìn)行排完成產(chǎn)品數(shù)量排序,即在排名次函數(shù)中又調(diào)用了按職工完成產(chǎn)品數(shù)量排序函數(shù)進(jìn)行排序。排序完成后,先對(duì)這n個(gè)員工按序號(hào)排名次,即Pa0,Pai, Pan-1的名次依次為1,2,3,n;然后當(dāng)jn時(shí)(假設(shè)i=j),判斷Pai.quantity和Paj.quantity是否相等,如果相等,則將序號(hào)為j的名次變?yōu)榕c序號(hào)為i的員工名次相同,j+,并且每增多一個(gè)名次相同的員工,則將其員工名次相同的個(gè)數(shù)信息加1,即Pai.count+;否則i的序號(hào)為j的下一個(gè)結(jié)構(gòu)體元素j-1,再使i和j自加
14、1,即i+,j+,直到in時(shí)結(jié)束。2.2.8 輸出最終結(jié)果函數(shù) void Print_All(SqList Pa,int n) 功能:輸出所有員工的名次、完成數(shù)量、同名次人數(shù)以及各自的工號(hào)。 由于每個(gè)員工信息都包含5個(gè)數(shù)據(jù)元素,而其中有三個(gè)(number、quantityftotal)都已經(jīng)由隨機(jī)函數(shù)自動(dòng)生成。 因此,在輸出之前,必須要給各個(gè)員工的其它兩個(gè)數(shù)據(jù)元素(order、count)賦值。為此,我在輸出之前調(diào)用Count_order(SqList Pa,int n) 函數(shù),對(duì)未完成賦值的元素賦值;然后,當(dāng)i=n時(shí),輸出完畢,程序結(jié)束。(注:由于void Print_All(SqList
15、Pa,int n)函數(shù)中調(diào)用了Count_order(SqList Pa,int n) 函數(shù),而Count_order(SqList Pa,int n) 函數(shù)中又調(diào)用了int Paixu_quantity(SqList Pa,int n,int *q)排序函數(shù),故此程序中實(shí)際上包含有三個(gè)函數(shù)的嵌套調(diào)用。)2.2.9 main()函數(shù) 先輸出輸入職工人數(shù)信息,再調(diào)用隨機(jī)函數(shù)隨機(jī)生成職工號(hào)和職工數(shù)量信息,再初始化未生成的數(shù)據(jù)信息,接著輸出歡迎界面及功能菜單,并提示選擇功能,功能分為五個(gè),分別是排序、查找、插入、刪除和最終結(jié)果,使用Switch(choose)分支,由于問題要求輸出最終結(jié)果,因此,在
16、每個(gè)分支中,都有調(diào)用最終結(jié)果輸出函數(shù),輸出最終所有職工的名次、職工完成的數(shù)量、相同名次的人數(shù)和他們對(duì)應(yīng)的工號(hào)。其中:1號(hào)菜單的功能是:先輸出排序前的工號(hào)和完成的產(chǎn)品數(shù)量,再進(jìn)行排序,再輸出排序后的職工工號(hào)和完成的產(chǎn)品數(shù)量信息,最后輸出所有的職工的最終要求的結(jié)果,由于該項(xiàng)菜單中先調(diào)用并執(zhí)行排序函數(shù)功能,再調(diào)用排名次函數(shù),最后執(zhí)行最終結(jié)果的輸出,而排名次函數(shù)中又調(diào)用了排序函數(shù),排序函數(shù)中有排序后的信息輸出,故1號(hào)功能會(huì)產(chǎn)生兩次排序后的信息輸出;2號(hào)菜單的功能是:先輸出職工的全部工號(hào)和全部完成的產(chǎn)品數(shù)量信息,再根據(jù)輸入的工號(hào)信息查找該職工信息,最后輸出要求的最終結(jié)果;3號(hào)菜單的功能是:先輸出職工的全
17、部工號(hào)和全部完成的產(chǎn)品數(shù)量信息,再根據(jù)輸出的職工工號(hào),在該位置中插入一個(gè)職工信息,然后再進(jìn)行排序,最后輸出要求的最終結(jié)果;4號(hào)菜單的功能是:先輸出職工的各部工號(hào)和全部完成的產(chǎn)品數(shù)量信息,再根據(jù)輸出的職工工號(hào),將該職工的信息刪除,最后輸出要求的最終結(jié)果;5號(hào)菜單的功能是:輸出問題要求的職工信息;void main() int i,j,n,choose; int num; printf(please input the quantity of the employee:n); scanf(%d,&n); ChushiHua(Pa,n,q); SandNumber(Pa,n,p); /*隨機(jī)賦職工工
18、號(hào)*/ SandQuantity(Pa,n,q); /*隨機(jī)賦職工完成產(chǎn)品信息*/ WelcomeScreen(); printf(please choose(15):n); scanf(%d,&choose); switch(choose) case 1:Paixu_quantity(Pa,n,q); /*降序排序后輸出工號(hào)和其完成產(chǎn)品的總數(shù)量*/ Print_NumQU(Pa,n); Print_All(Pa,n); break; case 2:Print_NumQU(Pa,n); printf(Please input the number located to be searched:
19、); scanf(%d,&num); Search_Number(Pa,n,num); Print_All(Pa,n); /*根據(jù)給定的工號(hào)查找該職工信息*/ break; case 3:Print_NumQU(Pa,n); printf(Please input the number located to be searched:); scanf(%d,&num); n=Insert(Pa,n,num); /*在給定的職工工號(hào)位置插入一個(gè)職工信息*/ Paixu_quantity(Pa,n,q); Print_All(Pa,n); break; case 4:Print_NumQU(Pa,n
20、); printf(Please input the number located to be deleted:); scanf(%d,&num); n=Delete(Pa,n,q,num); /*將給定的職工工號(hào)將其信息刪除*/ Print_All(Pa,n); break; case 5:Print_All(Pa,n); break; default:break; getch(); 第三章 程序調(diào)試3.1 調(diào)試程序遇到的問題及解決 通過清屏函數(shù)放在不同位置使得到不同的要求輸出的內(nèi)容,而清除不需要的內(nèi)容,利于比較功能函數(shù)運(yùn)行前后的變化,再使用輸出語句輸出需要知道的信息進(jìn)行對(duì)比,然后進(jìn)行分析。
21、 1)使用冒泡法排序測試排序函數(shù)時(shí),排序命令沒有執(zhí)行,功能沒有實(shí)現(xiàn)(如圖3)。原因是:在使用冒泡法排序中,在if條件后誤加了一個(gè)”;,導(dǎo)致排序時(shí),移動(dòng)命令沒能執(zhí)行。過去一直以為功能沒有實(shí)現(xiàn),是由于形參和實(shí)參之間的數(shù)據(jù)傳遞的問題,但我將參數(shù)全部改為指針之后,發(fā)現(xiàn)仍然沒有響應(yīng)。長時(shí)間的查找之后,只能逐條指令進(jìn)行分析,最后欣慰地發(fā)現(xiàn),原來在if語句之后,不應(yīng)該有的”;”,多了起來,才恍然大悟地明白并解決了問題(如圖4)。2)最終結(jié)果輸出函數(shù)輸出時(shí),名次相同的重復(fù)輸出(如圖10)。原因是:在輸出時(shí),只考慮使相同名次的人數(shù)自加Pai.count+,卻忘記了同時(shí)還要使表示輸出結(jié)構(gòu)體位置的i也要同時(shí)變化為i
22、=i+Pai.count-1;在對(duì)比不同數(shù)據(jù)輸出情況之后,找到了錯(cuò)誤,并改正之后,重新運(yùn)行后獲得了成功(如圖7)。3)測試插入函數(shù)功能時(shí),發(fā)現(xiàn)執(zhí)行插入函數(shù)功能時(shí),并沒有插入成功,員工人數(shù)沒有增加,但也沒有提示插入錯(cuò)誤(如圖10)。原因是:我在插入函數(shù)中雖然使n=n+1;并返回了n的值,但沒有將職工人數(shù)的返回值重新賦給n,使n的值并沒有真正地改變,所以在輸出時(shí),少了一個(gè)員工的信息。在比較多次的運(yùn)行輸出的情況與輸出自動(dòng)生成的數(shù)據(jù)之后,發(fā)現(xiàn)插入的位置的數(shù)據(jù)有新插入的數(shù)據(jù)生成,但最后一個(gè)數(shù)據(jù)丟失,最后找到了錯(cuò)誤的原因。改正并運(yùn)行之后,插入功能運(yùn)行獲得了成功(如圖11)。4)測試刪除函數(shù)時(shí),當(dāng)未查找到員
23、工號(hào)時(shí),輸出結(jié)果(如圖12)。經(jīng)查找后,原因是在輸出時(shí)員工的人數(shù)通過刪除操作帶回的返回值重新賦值,而當(dāng)未刪除的位置不存在時(shí),刪除函數(shù)中沒有返回值,導(dǎo)致輸出是系統(tǒng)隨機(jī)的值。當(dāng)刪除位置不存在時(shí),修改為帶回n的原值,運(yùn)行成功(如圖13)。3.2 程序調(diào)試結(jié)果3.2.1 隨機(jī)生成職工號(hào)和隨機(jī)生成職工完成產(chǎn)品數(shù)量信息結(jié)果(如圖1)圖1,輸出隨機(jī)生成的職工號(hào)和職工完成產(chǎn)品數(shù)量3.2.2 歡迎界面(如圖2)圖2,歡迎界面和菜單3.3.3 功能1排序函數(shù)(出現(xiàn)錯(cuò)誤的如圖3,正確的如圖4)圖3, 排序功能未實(shí)現(xiàn)圖4,排序功能實(shí)現(xiàn)3.3.4 排名次函數(shù)(如圖5) 圖5,排名次函數(shù)3.3.5 輸出職工工號(hào)和完成產(chǎn)品
24、數(shù)量函數(shù)(如圖5) 圖5中有輸出3.3.6 功能1排序函數(shù)(如圖6) 圖6,排序函數(shù)3.3.7 功能2查找函數(shù)(如圖7和圖8)圖7,未找到時(shí)的查找界面圖圖8,查找到所給職工的界面圖3.3.8 功能3插入函數(shù)(如圖9、圖10和圖11)圖9,插入位置錯(cuò)的界面 圖10,插入出錯(cuò)的界面 圖11插入正確的界面3.3.9 功能4刪除函數(shù)(如圖12) 圖12,刪除位置不存在時(shí)細(xì)節(jié)出錯(cuò),刪除后輸出結(jié)果圖13,修改后,刪除結(jié)果圖14,當(dāng)給定職工號(hào)存在時(shí),刪除結(jié)果3.3.10 功能5輸出函數(shù)(如圖15) 圖15,最終結(jié)果輸出函數(shù)第四章 設(shè)計(jì)總結(jié)與心得兩個(gè)星期的課程設(shè)計(jì)實(shí)踐時(shí)間很快過去了,我的課程設(shè)計(jì)也終于結(jié)束了。
25、回憶起這兩個(gè)星期的生活,還真是百感交集卻難言。準(zhǔn)確地說我是在老師宣布可以準(zhǔn)備做課程設(shè)計(jì)時(shí),就已經(jīng)做準(zhǔn)備了。不過,當(dāng)時(shí)我以為是讓自己挑選其中的一個(gè)去做。而我是去分析了第一個(gè)。到真正開始時(shí),我才不得不重新來分析新課題職工工作量統(tǒng)計(jì)系統(tǒng)。剛開始時(shí),由于連隨機(jī)函數(shù)是什么?我都還沒聽說過,剛開始還以為是隨意寫一個(gè)生成職工工號(hào)和完成產(chǎn)品數(shù)量的信息。知道隨機(jī)函數(shù)是一個(gè)系統(tǒng)函數(shù)是在一次無意中聽到同學(xué)提起,我才到網(wǎng)上查找,才明白的。在知道隨機(jī)函數(shù)是一個(gè)系統(tǒng)函數(shù)后,由于對(duì)什么是隨機(jī)函數(shù)一無所知,僅僅查資料就花了我近兩天時(shí)間,不過還是似懂非懂,只能通過模仿來調(diào)試,漸漸地才會(huì)使用它。在編寫函數(shù)的過程中,由于時(shí)間比較緊
26、,我沒有提前設(shè)計(jì)算法,而是直接上機(jī)編寫、調(diào)試。這暴露了許多的問題:其一,是積累的知識(shí)太少,好多知識(shí)在運(yùn)用的時(shí)候卻印象不深,只能停下來去查資料;其二,是對(duì)所學(xué)知識(shí)掌握不牢,編寫程序的過程中,由于沒有把握,不敢冒然寫下去,也只能去查資料確認(rèn);其三,實(shí)踐得太少,很容易發(fā)現(xiàn)的錯(cuò)誤,卻在實(shí)踐中,花費(fèi)了大量的時(shí)間去查找,其中這點(diǎn),讓我印象尤其深刻,在編寫排序函數(shù)后進(jìn)行調(diào)試時(shí),發(fā)現(xiàn)排序功能沒有達(dá)到目的,而在我慣性思維中,它可能是因?yàn)閰?shù)傳遞出錯(cuò),因此,盲目地將傳遞的數(shù)組參數(shù)改為指針,花費(fèi)了時(shí)間不說,竟然還是沒有達(dá)到目的。從七號(hào)晚上開始查找,直到九號(hào)晚上十點(diǎn)多才在無意中發(fā)現(xiàn)if條件語句后,多加了一個(gè)“;”,這
27、個(gè)發(fā)現(xiàn)真是讓我又氣又恨。要是在平時(shí),可能這對(duì)于任意一個(gè)學(xué)習(xí)軟件的學(xué)生都知道它有錯(cuò),而我卻忽略了。這個(gè)教訓(xùn)是深刻的,它使我明白,認(rèn)真和仔細(xì)對(duì)于一個(gè)人,去做一件事來說,是多么地重要而自己是多么地粗心。其次,對(duì)于知識(shí)的理解,我發(fā)現(xiàn)自己始終停留在一知半解甚至是表面上懂,卻一無所知的境地。在函數(shù)編寫完成后,表面上看似沒有問題了,不過一調(diào)試才發(fā)現(xiàn),問題好多就都出來了。 同時(shí),我也深刻地體會(huì)到:科學(xué)是嚴(yán)密的,不容有半點(diǎn)地大意,一個(gè)人對(duì)工作的態(tài)度往往決定了其工作的成敗。 準(zhǔn)確地說,這是我的第一次課程設(shè)計(jì)實(shí)踐。從這次課程設(shè)計(jì)中,我真正地體驗(yàn)到了課程設(shè)計(jì)的過程,也真正地體驗(yàn)到了程序設(shè)計(jì)的樂趣。在近半個(gè)月的程序設(shè)計(jì)
28、和調(diào)試過程中,獲得的知識(shí)是很多的。 通過此次課程設(shè)計(jì),使我鞏固了所學(xué)的有關(guān)課程設(shè)計(jì)的知識(shí),學(xué)會(huì)真正地去分析問題,思考問題,并且學(xué)會(huì)怎樣去思考解決問題。在設(shè)計(jì)的過程中,我曾遇到過許多的問題,但經(jīng)過反復(fù)地思考之后,終于找出了原因并使問題得以解決。這同時(shí)也暴露出了自己知識(shí)的潰乏、經(jīng)驗(yàn)的不足。實(shí)踐出真知,這一次,真正地有了深刻的體會(huì):不斷實(shí)踐,不斷發(fā)現(xiàn)自己的不足,不斷地改正,不斷地領(lǐng)悟,不斷地總結(jié),是獲取真知的必然選擇。 本次課程設(shè)計(jì)即將結(jié)束了,由于我們小組事先的設(shè)計(jì)分工沒有做好,我只能獨(dú)立地完成本次設(shè)計(jì)任務(wù),這也使我學(xué)會(huì)了獨(dú)立思考。錯(cuò)過了交流思想的機(jī)會(huì),這是個(gè)遺憾。不過同時(shí),我也明白了,做課程設(shè)計(jì)之
29、前的準(zhǔn)備工作是多么地重要,而我此次正是像經(jīng)歷了一場“無頭仗”??傊?,此次課程設(shè)計(jì)實(shí)踐讓我收獲很多。完成此次課程設(shè)計(jì)后,讓我產(chǎn)生了很強(qiáng)的成就感,充滿了快樂感,同時(shí)也讓我對(duì)程序設(shè)計(jì)產(chǎn)生了喜愛。第五章 參考文獻(xiàn)1李素若.數(shù)據(jù)結(jié)構(gòu).北京:化學(xué)工業(yè)出版社,2009.2 朱蓉,數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書3嚴(yán)蔚敏 吳偉民,.數(shù)據(jù)結(jié)構(gòu)(C語言版),1999,清華大學(xué)出版社;附 錄程序代碼: #include#include #include /*使用當(dāng)前時(shí)鐘做種子*/ #define MAX 100typedef struct int order; int count; int ftotal5; int quanti
30、ty; int number; SqList,*Sq;SqList PaMAX=0;int NUMMAX=0,QUMAX=0; /*NUM數(shù)組用來保存隨機(jī)生成的職工號(hào),QU用來保存職工完成總數(shù)量的次數(shù)*/int *p=NUM,*q=QU;void SandNumber(SqList Pa,int n,int *p) /*隨機(jī)產(chǎn)生職工的工號(hào)并輸出其工號(hào)信息*/ int i,j,m; srand(unsigned)time(NULL); /*設(shè)置隨機(jī)數(shù)種子*/ for(i=0;i0) /*如果產(chǎn)生的工號(hào)相同,則重新生成新的隨機(jī)數(shù)直到不同為止作為職工號(hào)*/ for(j=0;ji;j+) if(*(p
31、+i)=*(p+j) m=rand()%100; while(m=0) m=rand()%100; *(p+i)=m; for(i=0;in;i+) Pai.number=*(p+i); printf(Pa%d.number=%2dn,i,Pai.number); printf(n); void SandQuantity(SqList Pa,int n,int *q) /*隨機(jī)生成職工各次完成的工作量,并累計(jì)各職 工的總完成產(chǎn)品數(shù)量*/ int i,j,k; srand(unsigned)time(NULL); /*設(shè)置隨機(jī)數(shù)種子*/ for(i=0;i5)/*各職工完成的總次數(shù)不大于5*/
32、*(q+i)=rand()%10; for(j=0;jn;j+) for(i=0;i*(q+j);i+) Paj.ftotali=rand()%100; printf(the Pa%d.ftotal%d=%3dn,j,i,Paj.ftotali); Paj.quantity+=Paj.ftotali; /*累計(jì)各職工多次完成的產(chǎn)品數(shù)量*/ printf(The %dth quantity of the employee is %dn,(j+1),Paj.quantity); printf(n); printf(n); int Search_Number(SqList Pa,int n,int
33、num) /*根據(jù)給定的職工號(hào)進(jìn)行查找函數(shù)*/ int i=0; while(in) if(Pai.number!=num) i+; else printf(the employee information to search is:n); printf(%dt%dt%dt%dt,Pai.order,Pai.quantity,Pai.count,Pai.number); printf(n); return(i); printf(the employee hasnt been found!n); /*i大于n時(shí)表示給定的職工信息不存在*/ return(NULL); int Delete(SqL
34、ist Pa,int n,int *q,int num) /*將給定工號(hào)為num的職工信息刪除,原始值在QU中不改變*/ int i=0,j,k; SqList str; int s; s=Search_Number(Pa,n,num); while(s!=NULL&in) if(Pai.number!=Pas.number) i+; else str.order=Pai.order; str.number=Pai.number; for(j=0;j*(q+i);j+) str.ftotalj=Pai.ftotalj; str.quantity=Pai.quantity; str.count=
35、Pai.count; for(k=s;kn;k+) Pak.order=Pak+1.order; /*將要?jiǎng)h除的數(shù)據(jù)后的數(shù)據(jù)全部前移*/ Pak.number=Pak+1.number; for(j=0;j*(q+i);j+) Paj.ftotalj=Pak.ftotalj; Pak.quantity=Pak+1.quantity; Pak.count=Pak+1.count; n-=1; printf(the information deletecd is :n); printf(%dt%dt%dt%dn,str.order,str.quantity,str.count,str.number
36、); for(i=0;i*(q+s);i+) printf(%dt,str.ftotali); printf(n); return(n); printf(Delete is wrong!n);Return(n); printf(n); int Insert(SqList Pa,int n,int num) /*在工號(hào)為num的位置插入一個(gè)員工信息*/ int i,j,s,total,k; s=Search_Number(Pa,n,num); srand(unsigned)time(NULL); if(s=s;i-) /*先將第s個(gè)結(jié)構(gòu)體位置騰出*/ Pai+1.order=Pai.order;
37、 Pai+1.number=Pai.number; for(j=0;j*(q+s);j+) Pai+1.ftotalj=Pai.ftotalj; Pai+1.quantity=Pai.quantity; Pai+1.count=Pai.count; printf(please input the total(i5) printf(input wrong!n); printf(please input the total(i=5):); scanf(%d,&total); Pas.quantity=0; Pas.order=1; Pas.count=0; for(i=0;itotal;i+) P
38、as.ftotali=rand()%100; Pas.quantity+=Pas.ftotali; k=rand()%100; for(i=0;in;i+) while(k=Pai.number) k=rand()%100; Pas.number=k; n=n+1; return(n); int Paixu_quantity(SqList Pa,int n,int *q) /*按完成的產(chǎn)品數(shù)量排序*/ int i,j,k; SqList arr; int str; for(j=0;jn;j+) for(i=0;in-j;i+) if(Pai.quantityPai+1.quantity) st
39、r=*(q+i); *(q+i)=*(q+i+1); *(q+i+1)=str; arr.quantity=Pai.quantity; Pai.quantity=Pai+1.quantity; Pai+1.quantity=arr.quantity; arr.order=Pai.order; Pai.order=Pai+1.order; Pai+1.order=arr.order; arr.count=Pai.count; Pai.count=Pai+1.count; Pai+1.count=arr.count; for(k=0;k*(q+j);k+) str=*(q+i); *(q+i)=*(q+i+1); *(q+i+1)=str; arr.ftotalk=Pai.ftotalk; Pai.ftotalk=Pai+1.ftotalk; Pai+1.ftotalk=arr.ftotalk; arr.number=Pa
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年山東眾匯商業(yè)運(yùn)營有限公司蓼河古街曲阜宴項(xiàng)目(孔府宴秀)招聘備考題庫含答案詳解
- 2026年·包頭稀土高新區(qū)教育系統(tǒng)校園招聘25人備考題庫(三)(北京師范大學(xué)招聘站)及完整答案詳解一套
- 2026年成都空港實(shí)驗(yàn)學(xué)校招聘備考題庫完整答案詳解
- 2026年常熟中遠(yuǎn)海運(yùn)物流有限公司招聘備考題庫及答案詳解1套
- 2026年寧波市鎮(zhèn)海區(qū)招寶山街道專職消防隊(duì)副隊(duì)長招聘備考題庫附答案詳解
- 2026年四川長虹集團(tuán)財(cái)務(wù)有限公司關(guān)于招聘客戶經(jīng)理崗等崗位的備考題庫及1套參考答案詳解
- 2026年北京順鑫控股集團(tuán)有限公司招聘備考題庫及一套參考答案詳解
- 2026年內(nèi)蒙古錦華路港物流有限責(zé)任公司鐵路運(yùn)輸分公司招聘備考題庫及答案詳解參考
- 2026年中日友好醫(yī)院公開招聘物理師的備考題庫及參考答案詳解一套
- 2026年樂從鎮(zhèn)沙滘小學(xué)招聘語文、數(shù)學(xué)、英語臨聘老師備考題庫附答案詳解
- 2021-2022學(xué)年天津市濱海新區(qū)九年級(jí)上學(xué)期物理期末試題及答案
- 江蘇省蘇州市、南京市九校2025-2026學(xué)年高三上學(xué)期一輪復(fù)習(xí)學(xué)情聯(lián)合調(diào)研數(shù)學(xué)試題(解析版)
- 2026年中國醫(yī)學(xué)科學(xué)院醫(yī)學(xué)實(shí)驗(yàn)動(dòng)物研究所第三批公開招聘工作人員備考題庫及答案詳解一套
- 2025年幼兒園教師業(yè)務(wù)考試試題及答案
- 國家開放大學(xué)《Python語言基礎(chǔ)》形考任務(wù)4答案
- (自2026年1月1日起施行)《增值稅法實(shí)施條例》重點(diǎn)解讀
- 2026春小學(xué)科學(xué)教科版(2024)三年級(jí)下冊(cè)《4.幼蠶在生長》教學(xué)設(shè)計(jì)
- 管道安裝協(xié)議2025年
- 2026年內(nèi)蒙古商貿(mào)職業(yè)學(xué)院單招綜合素質(zhì)考試題庫附答案詳解
- 2025寧夏賀蘭工業(yè)園區(qū)管委會(huì)招聘40人筆試參考題庫及答案解析
- 2026年青島航空科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫含答案詳解
評(píng)論
0/150
提交評(píng)論