版權(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ào)告</b></p><p> 課程名稱: 高級(jí)語言程序設(shè)計(jì)課程設(shè)計(jì) </p><p> 姓 名: _ </p><p> 班級(jí)學(xué)號(hào): </p><p>
2、 指導(dǎo)教師: _ _ </p><p> 完成日期: _ _ 目錄</p><p> 1 課程設(shè)計(jì)目的與要求1</p><p><b> 1.1設(shè)計(jì)目的1</b></p><p><b> 1.2設(shè)計(jì)
3、要求1</b></p><p><b> 2 問題描述2</b></p><p><b> 2.1系統(tǒng)概要2</b></p><p><b> 2.2功能要求2</b></p><p> 2.3課程設(shè)計(jì)注意問題2</p><p&
4、gt;<b> 3總體設(shè)計(jì)4</b></p><p> 3.1 功能分析4</p><p> 3.2 系統(tǒng)使用的主要函數(shù)4</p><p> 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu)4</p><p><b> 4 詳細(xì)設(shè)計(jì)5</b></p><p> 4.1 程
5、序總體結(jié)構(gòu)圖5</p><p> 4.2 程序流程6</p><p><b> 5 功能測(cè)試9</b></p><p><b> 5.1系統(tǒng)界面9</b></p><p> 5.2輸入信息界面9</p><p> 5.3按職工號(hào)查詢界面10</p&
6、gt;<p> 5.4職工作量查詢界面10</p><p> 5.5退出查詢系統(tǒng)界面10</p><p> 5.6錯(cuò)誤輸入信息出錯(cuò)界面11</p><p> 6 程序設(shè)計(jì)調(diào)試情況分析12</p><p> 7課程設(shè)計(jì)小結(jié)13</p><p><b> 參考文獻(xiàn)14<
7、/b></p><p> 附錄 系統(tǒng)源程序15</p><p><b> 職工工作量統(tǒng)計(jì)系統(tǒng)</b></p><p> 1 課程設(shè)計(jì)目的與要求</p><p><b> 1.1設(shè)計(jì)目的</b></p><p> 程序設(shè)計(jì)綜合課程設(shè)計(jì)的目的是培養(yǎng)學(xué)生綜合運(yùn)用
8、C或C++所學(xué)到的知識(shí)編寫程序解決實(shí)際問題的能力,以及嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和良好的程序設(shè)計(jì)習(xí)慣,通過課程設(shè)計(jì)的訓(xùn)練能讓我們了解軟件的基本開發(fā)過程以及編程語言的運(yùn)用,能夠提高學(xué)生分析問題、解決問題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力,并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能和掌握編寫、調(diào)試、測(cè)試程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,按照課程設(shè)計(jì)的要求,分析、設(shè)計(jì)、編寫、調(diào)試、測(cè)試程序及按要求編寫課程設(shè)計(jì)設(shè)計(jì)報(bào)告。</p>&l
9、t;p><b> 1.2設(shè)計(jì)要求</b></p><p> 課程設(shè)計(jì)要求學(xué)生遵循軟件開發(fā)過程中的基本規(guī)范,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,程序設(shè)計(jì)報(bào)告應(yīng)該能夠反映學(xué)生完成課程設(shè)計(jì)題目的全部情況,包括對(duì)課程設(shè)計(jì)題目要求的分析、應(yīng)用程序的設(shè)計(jì)、程序的測(cè)試過程以及程序的運(yùn)行情況等,因此,編寫課程設(shè)計(jì)報(bào)告是課程設(shè)計(jì)一個(gè)不容忽視的重要環(huán)節(jié)。一個(gè)高質(zhì)量的課程暢、用詞準(zhǔn)確且無二義性;能夠反映結(jié)構(gòu)化程序
10、設(shè)計(jì)方法的基本原則;繪制的所有圖表規(guī)范且正確。 設(shè)計(jì)報(bào)告應(yīng)該滿足下列條件:報(bào)告內(nèi)容完整、觀點(diǎn)正確;層次清晰、語流 </p><p><b> 2 問題描述</b></p><p><b> 2.1系統(tǒng)概要</b></p><p> 設(shè)計(jì)一個(gè)職工工作量統(tǒng)計(jì)系統(tǒng):</p><p> 1、完成一下
11、職工工號(hào)和完成的產(chǎn)品數(shù)量,程序允許同一職工有多次程序,由程序?qū)ζ渫瓿傻漠a(chǎn)品數(shù)量實(shí)現(xiàn)累計(jì);</p><p> 2、按完成數(shù)量對(duì)職工排序,并確定名次;</p><p> 3、按完成的產(chǎn)品數(shù)量由多到少的順序,輸出名次,同一名次的職工人數(shù)及他們的工號(hào)(工號(hào)由小到大順序輸出)。</p><p><b> 2.2功能要求</b></p>
12、<p> 職工工作量系統(tǒng)統(tǒng)計(jì)系統(tǒng)要實(shí)現(xiàn)以下幾個(gè)基本功能:</p><p> 1.按完成數(shù)量對(duì)職工排序,并確定名次;</p><p> 2.能夠能完成對(duì)職工工作量信息的錄入,并且允許同一職工有多次程序,由程序?qū)ζ渫瓿傻漠a(chǎn)品數(shù)量實(shí)現(xiàn)累計(jì);</p><p> 3. 按完成的產(chǎn)品數(shù)量由多到少的順序,輸出名次,同一名次的職工人數(shù)及他們的工號(hào)(工號(hào)由小到大順
13、序輸出);</p><p> 4.能夠輸出所有職工的工作總量。</p><p> 2.3課程設(shè)計(jì)注意問題</p><p> 1、針對(duì)編寫的C程序,應(yīng)該主要考查下列內(nèi)容:</p><p> ●是否符合題目要求,是否完成了主要功能;</p><p> ●是否存在語法錯(cuò)誤,邏輯錯(cuò)誤及運(yùn)行錯(cuò)誤;</p>
14、<p> ●程序設(shè)計(jì)是否合理;</p><p> ●程序是否具有良好的可讀性和可靠性;</p><p> ●是否符合結(jié)構(gòu)化程序設(shè)計(jì)所倡導(dǎo)的基本理念;</p><p> ●用戶界面是否友好。</p><p><b> ?。病⒄n程設(shè)計(jì)報(bào)告</b></p><p> ●針對(duì)提交的課
15、程設(shè)計(jì)報(bào)告,應(yīng)該主要考查下列內(nèi)容:</p><p> ●程序設(shè)計(jì)的報(bào)告內(nèi)容是否全面,觀點(diǎn)是否正確;</p><p> ●設(shè)計(jì)過程是否符合結(jié)構(gòu)化程序設(shè)計(jì)方法的基本原則;</p><p> ●層次是否清楚,語言是否通順;</p><p> ●各種圖表是否規(guī)范;是否具有良好</p><p><b> 3總
16、體設(shè)計(jì)</b></p><p><b> 3.1 功能分析</b></p><p> 整個(gè)系統(tǒng)可以分為信息輸入、信息添加、信息瀏覽、信息排序、信息查詢和信息統(tǒng)計(jì)模塊。</p><p> 3.2 系統(tǒng)使用的主要函數(shù)</p><p> void search() /*按職工號(hào)查詢*
17、/</p><p> void input() /*信息的輸入 */</p><p> void sort() / *職工工作量的排名*/</p><p> void save() /*信息的保存 */</p><p> void output()
18、 /*信息的輸出 */</p><p> void main() /*主函數(shù)*/</p><p> void stop() /*停頓函數(shù) (公共函數(shù))*/</p><p> 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu)</p><p> define MAX 100 /*定義職
19、工人數(shù)小于100*/</p><p> structworkerinfo /*定義職員信息結(jié)構(gòu)體*/</p><p><b> {</b></p><p> int number; /*職員工號(hào)*/</p><p> int products; /*職員工號(hào)*/</p><p>
20、; int rank; /*職員工作量排序*/</p><p> }workers[MAX]; 4 詳細(xì)設(shè)計(jì)</p><p> 4.1 程序總體結(jié)構(gòu)圖 </p><p> 主函數(shù)流程圖(如圖4—1)</p><p><b> ?。?圖4—1 )</b></p><p> 職
21、工信息的錄入(如圖4—2)</p><p><b> ( 圖4—2 )</b></p><p> 職工工作量查詢 ?。?如圖4—3 )</p><p><b> ( 圖4—3 )</b></p><p><b> 4.2 程序流程</b></p><
22、p> 輸入職工工號(hào)流程(如圖 4—4)</p><p><b> ?。?圖 4—4 )</b></p><p> 輸入職工產(chǎn)品數(shù)量流程圖 (如圖 4—5)</p><p><b> ?。?圖 4—5 )</b></p><p> 職工產(chǎn)品數(shù)量排序流程圖 (如圖 4—6)</p>
23、;<p><b> ?。?lt;/b></p><p> (( 圖 4—6 )</p><p><b> 5 功能測(cè)試</b></p><p> 5.1系統(tǒng)界面 </p><p> 進(jìn)入系統(tǒng)后的,系統(tǒng)進(jìn)入選擇菜單(如圖 5—1) 。</p><p>&
24、lt;b> ?。▓D 5—1)</b></p><p> 5.2輸入信息界面 </p><p> 輸入選擇錄入職工信息后,系統(tǒng)界面進(jìn)入職工信息輸入界面(如圖 5—2)。</p><p><b> ?。?圖5—2 )</b></p><p> 5.3按職工號(hào)查詢界面 </p>
25、;<p> 輸入按職工工號(hào)查詢菜單后,系統(tǒng)讀取文件內(nèi)容 (如圖 5—3)。</p><p><b> ( 圖 5—3)</b></p><p> 5.4職工作量查詢界面 </p><p> 輸入按職工工號(hào)查詢菜單后,系統(tǒng)讀取文件內(nèi)容(如圖 5—4)。</p><p><b> ?。▓D
26、5—4)</b></p><p> 5.5退出查詢系統(tǒng)界面 </p><p> 輸入退出菜單后,系統(tǒng)退出 (如圖 5—5)。</p><p><b> ?。▓D 5—5)</b></p><p> 5.6錯(cuò)誤輸入信息出錯(cuò)界面 </p><p> 輸入錯(cuò)誤信息后,系統(tǒng)提醒錯(cuò)誤
27、(如圖 5—6)。</p><p><b> (圖 5—6)</b></p><p> 6 程序設(shè)計(jì)調(diào)試情況分析</p><p><b> 7課程設(shè)計(jì)小結(jié)</b></p><p><b> 小組成員分工</b></p><p><b>
28、 參考文獻(xiàn)</b></p><p> [1]吉順如主編 《C程序設(shè)計(jì)教程與實(shí)驗(yàn)》 清華大學(xué)出版社 2011.6</p><p> [2]張傳學(xué)主編 《C語言程序設(shè)計(jì)案例教程》 華中科技大學(xué)出版社 2011.2</p><p> [3]吳年志主編 《C程序設(shè)計(jì)簡(jiǎn)明教程實(shí)》 中國(guó)水利水電出版社 2007.1</p><p&
29、gt; [4]唐浩強(qiáng)主編 《C語言程序設(shè)計(jì)》 清華大學(xué)出版社 2010.6</p><p> [5]陳秀玲主編 《C語言程序設(shè)計(jì)》 清華大學(xué)出版社 2011.1</p><p><b> 附錄 系統(tǒng)源程序</b></p><p> #include <stdio.h></p><
30、p> #include <stdlib.h></p><p> #include<string.h></p><p> #define MAX 100</p><p> struct workerinfo /*職工信息數(shù)據(jù)結(jié)構(gòu)*/</p><p><b> {</b></
31、p><p> int number; /*職工工號(hào)*/</p><p> int products; /*職工產(chǎn)品量*/</p><p> int rank; /*職工排名*</p><p><b> }</b></p><p> workers[MAX],temp;&
32、lt;/p><p> int count;</p><p> void search() </p><p><b> { </b></p><p> int flag=1,i;</p><p> fflush(stdin);</p><p>
33、printf("\t員工工號(hào)\t產(chǎn)品數(shù)量\n");</p><p> for(i=0;i<count;i++ )</p><p> printf("\t%d\t\t%d\n",workers[i].number,workers[i].products);</p><p> fflush(stdin);</p&
34、gt;<p> getchar();</p><p><b> }</b></p><p> void save()//信息的保存</p><p><b> {</b></p><p><b> FILE *fp;</b></p><
35、p> if((fp=fopen("origin.dat","ab+"))==NULL) //打開輸出的文件并使fp指向此文件</p><p><b> {</b></p><p> printf("\n Cannot input the information! \n"); //打開
36、時(shí)若出錯(cuò)輸出此句</p><p><b> return;</b></p><p><b> }</b></p><p> fwrite(&count,sizeof(int),1,fp); </p><p> fwrite(workers,sizeof(workers),count,
37、fp);</p><p> fclose(fp);</p><p><b> }</b></p><p> void input()</p><p> {int n, i,z=0;</p><p> printf("請(qǐng)輸入要輸入職工的數(shù)量");</p>
38、<p> scanf("%d",&n);</p><p> printf("請(qǐng)輸入職工姓名工號(hào)和產(chǎn)品數(shù)量(工號(hào)0表示輸入結(jié)束):\n");</p><p> printf("職工姓名\t職工工號(hào)\t產(chǎn)品數(shù)量\n");</p><p> for(i=0;i<=n;i++)&l
39、t;/p><p><b> {</b></p><p> scanf("%s",workers[i].name);</p><p> scanf("%d", &workers[i].number);</p><p> scanf("%d", &
40、;workers[i].products);</p><p> workers[i].products += z;</p><p><b> }</b></p><p> if(count == MAX)</p><p> printf("職工人數(shù)已達(dá)上限!\n");</p>
41、<p><b> save();</b></p><p><b> }</b></p><p> void sort()</p><p><b> {</b></p><p> int i,j,k;</p><p> struct
42、 workerinfo t;</p><p> for(i=0; i<count;i++)</p><p><b> {</b></p><p><b> k=i;</b></p><p> for(j=i+1;j<count;j++)</p><p&
43、gt; if(workers[j].products > workers[k].products||workers[j].products==workers[k].products &&workers[j].number < workers[k].number)</p><p><b> k =j;</b></p><p>
44、if(i != k)</p><p><b> {</b></p><p> t = workers[i];</p><p> workers[i] = workers[k];</p><p> workers[k] = t;</p><p><b> }
45、</b></p><p> if(i == 0 || workers[i].products != workers[i - 1].products)</p><p> workers[i].rank = i + 1;</p><p><b> else</b></p><p> wo
46、rkers[i].rank = workers[i - 1].rank;</p><p><b> }</b></p><p><b> }</b></p><p> void output()</p><p> {int i, j, c;</p><p> f
47、or(i = 0; i < count; i = j)</p><p><b> {</b></p><p> for(c = i; c < count && workers[c].rank == i + 1; c++);</p><p> printf("第%d名的職工共有%d人:\n&qu
48、ot;, i + 1, c - i);</p><p> for(j = i; j < c; j++)</p><p> printf("第%d號(hào)員工產(chǎn)品總數(shù)為%d\n\n", workers[j].number,workers[j].products); </p><p><b> }</b><
49、/p><p><b> }</b></p><p> void name()</p><p> {FILE *fp;</p><p> int n,i,j=0,flag;</p><p> printf("\n按職工姓名排序:");</p><p&g
50、t; fp=fopen("origin.dat","rb");</p><p><b> n=0;</b></p><p> while(!feof(fp));</p><p><b> {</b></p><p> fread(&count
51、,sizeof(int),1,fp);</p><p><b> n++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p> for(i=0;i<n;i++)</p><p><b> {<
52、;/b></p><p><b> flag=0;</b></p><p> printf("姓名\t工號(hào)\t工作量\n");</p><p> for(j=0;j<n-1;j++)</p><p> if((strcmp(workers[j].name,workers[j+1].
53、name))>0)</p><p><b> {</b></p><p><b> flag=1;</b></p><p> temp.number=workers[j].number;</p><p> workers[j].number=workers[j+1].number;&l
54、t;/p><p> workers[j+1].number=temp.number;</p><p> strcpy(temp.name,workers[j].name);</p><p> strcpy(workers[j].name,workers[j+1].name);</p><p> strcpy(workers[j+1].na
55、me,temp.name);</p><p> temp.products=workers[j].products;</p><p> workers[j].products=workers[j+1].products;</p><p> workers[j+1].products=temp.products;</p><p> pr
56、intf("temp.name,temp.number,temp.products");</p><p><b> }</b></p><p> if(flag==0)</p><p><b> break;</b></p><p><b> }</b&g
57、t;</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> int k;</b></p><p><b> FILE *fp;</b>
58、;</p><p> if((fp=fopen("origin.dat","rb"))==NULL)//先讀文件看是否文件為空 若為空?qǐng)?zhí)行括號(hào)內(nèi)的程序</p><p><b> {</b></p><p> printf("\n不能打開員工信息庫\n");</p>
59、<p> fp=fopen("origin.dat","ab");</p><p><b> count=0;</b></p><p> fclose(fp);</p><p><b> }</b></p><p> fread(&
60、count,sizeof(int),1,fp);</p><p> fread(workers,sizeof(workers[0]),count,fp);//從文件中讀取數(shù)據(jù)</p><p> fclose(fp);//關(guān)閉文件</p><p> do//菜單選數(shù)字 選對(duì)應(yīng)項(xiàng)</p><p><b> {</b>
61、</p><p> printf("\t\t\t******************************\n") ;//查找方法界面</p><p> printf("\t\t\t歡迎來到職工工作量統(tǒng)計(jì)查詢系統(tǒng)\n");</p><p> printf("\t\t\t-----------選擇菜單-----
62、------\n");</p><p> printf("\t\t\t1-------錄入職工工作量\n");</p><p> printf("\t\t\t2-------按職工號(hào)排序查詢\n");</p><p> printf("\t\t\t3-------按工作量排序查詢\n");&
63、lt;/p><p> printf("\t\t\t4-------按姓名排序查詢\n");</p><p> printf("\t\t\t0-------退出\n");</p><p> printf("\t\t\t******************************\n") ;</p>
64、;<p> printf("\t\tPlease Enter Choose: ");</p><p> fflush(stdin);</p><p> scanf("%d",&k);</p><p><b> switch(k)</b></p><p
65、><b> {</b></p><p><b> case 1:</b></p><p> input();//職工信息錄入</p><p><b> break;</b></p><p><b> case 2:</b></p&g
66、t;<p><b> search();</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p><b> sort();</b></p><p><b>
67、 output();</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p><b> name();</b></p><p><b> break;</b></p
68、><p><b> case 0:</b></p><p> printf("\t\t退出\n"); //退出</p><p><b> exit(0);</b></p><p><b> default:</b></
69、p><p> printf("\t\t選擇序號(hào)不對(duì),請(qǐng)重新輸入\n");//鍵入的數(shù)不在范圍內(nèi)</p><p><b> }</b></p><p> }while(k!=0);</p><p><b> save();</b></p><p>&l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職工工作量統(tǒng)計(jì)系統(tǒng)課程設(shè)計(jì)
- 職工工作量統(tǒng)計(jì)課程設(shè)計(jì)報(bào)告
- c&c++課程設(shè)計(jì)-職工工作量統(tǒng)計(jì)系統(tǒng)
- 教師工作量管理系統(tǒng)課程設(shè)計(jì)
- 教師工作量管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 工作量統(tǒng)計(jì)
- 高級(jí)語言課程設(shè)計(jì)
- 高級(jí)語言課程設(shè)計(jì)-- 房產(chǎn)管理系統(tǒng)
- 工作量統(tǒng)計(jì)表
- 2016教職工科研工作量統(tǒng)計(jì)表
- c語言課程設(shè)計(jì)---職工管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)課程設(shè)計(jì)-成績(jī)統(tǒng)計(jì)系統(tǒng)+進(jìn)制轉(zhuǎn)換系統(tǒng)
- c語言課程設(shè)計(jì)--職工信息管理系統(tǒng)
- 職工信息管理系統(tǒng)c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)—職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--職工信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論