高級語言課程設計--職工工作量統(tǒng)計系統(tǒng)_第1頁
已閱讀1頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  課程名稱: 高級語言程序設計課程設計 </p><p>  姓 名: _ </p><p>  班級學號: </p><p> 

2、 指導教師: _ _ </p><p>  完成日期: _ _ 目錄</p><p>  1 課程設計目的與要求1</p><p><b>  1.1設計目的1</b></p><p><b>  1.2設計

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課程設計注意問題2</p><p&

4、gt;<b>  3總體設計4</b></p><p>  3.1 功能分析4</p><p>  3.2 系統(tǒng)使用的主要函數(shù)4</p><p>  3.3 系統(tǒng)使用的主要數(shù)據(jù)結構4</p><p><b>  4 詳細設計5</b></p><p>  4.1 程

5、序總體結構圖5</p><p>  4.2 程序流程6</p><p><b>  5 功能測試9</b></p><p><b>  5.1系統(tǒng)界面9</b></p><p>  5.2輸入信息界面9</p><p>  5.3按職工號查詢界面10</p&

6、gt;<p>  5.4職工作量查詢界面10</p><p>  5.5退出查詢系統(tǒng)界面10</p><p>  5.6錯誤輸入信息出錯界面11</p><p>  6 程序設計調試情況分析12</p><p>  7課程設計小結13</p><p><b>  參考文獻14<

7、/b></p><p>  附錄 系統(tǒng)源程序15</p><p><b>  職工工作量統(tǒng)計系統(tǒng)</b></p><p>  1 課程設計目的與要求</p><p><b>  1.1設計目的</b></p><p>  程序設計綜合課程設計的目的是培養(yǎng)學生綜合運用

8、C或C++所學到的知識編寫程序解決實際問題的能力,以及嚴謹?shù)墓ぷ鲬B(tài)度和良好的程序設計習慣,通過課程設計的訓練能讓我們了解軟件的基本開發(fā)過程以及編程語言的運用,能夠提高學生分析問題、解決問題,從而運用所學知識解決實際問題的能力,并培養(yǎng)基本的、良好的程序設計技能和掌握編寫、調試、測試程序的基本技巧,充分理解結構化程序設計的基本方法,按照課程設計的要求,分析、設計、編寫、調試、測試程序及按要求編寫課程設計設計報告。</p>&l

9、t;p><b>  1.2設計要求</b></p><p>  課程設計要求學生遵循軟件開發(fā)過程中的基本規(guī)范,運用結構化程序設計的方法,程序設計報告應該能夠反映學生完成課程設計題目的全部情況,包括對課程設計題目要求的分析、應用程序的設計、程序的測試過程以及程序的運行情況等,因此,編寫課程設計報告是課程設計一個不容忽視的重要環(huán)節(jié)。一個高質量的課程暢、用詞準確且無二義性;能夠反映結構化程序

10、設計方法的基本原則;繪制的所有圖表規(guī)范且正確。 設計報告應該滿足下列條件:報告內(nèi)容完整、觀點正確;層次清晰、語流 </p><p><b>  2 問題描述</b></p><p><b>  2.1系統(tǒng)概要</b></p><p>  設計一個職工工作量統(tǒng)計系統(tǒng):</p><p>  1、完成一下

11、職工工號和完成的產(chǎn)品數(shù)量,程序允許同一職工有多次程序,由程序對其完成的產(chǎn)品數(shù)量實現(xiàn)累計;</p><p>  2、按完成數(shù)量對職工排序,并確定名次;</p><p>  3、按完成的產(chǎn)品數(shù)量由多到少的順序,輸出名次,同一名次的職工人數(shù)及他們的工號(工號由小到大順序輸出)。</p><p><b>  2.2功能要求</b></p>

12、<p>  職工工作量系統(tǒng)統(tǒng)計系統(tǒng)要實現(xiàn)以下幾個基本功能:</p><p>  1.按完成數(shù)量對職工排序,并確定名次;</p><p>  2.能夠能完成對職工工作量信息的錄入,并且允許同一職工有多次程序,由程序對其完成的產(chǎn)品數(shù)量實現(xiàn)累計;</p><p>  3. 按完成的產(chǎn)品數(shù)量由多到少的順序,輸出名次,同一名次的職工人數(shù)及他們的工號(工號由小到大順

13、序輸出);</p><p>  4.能夠輸出所有職工的工作總量。</p><p>  2.3課程設計注意問題</p><p>  1、針對編寫的C程序,應該主要考查下列內(nèi)容:</p><p>  ●是否符合題目要求,是否完成了主要功能;</p><p>  ●是否存在語法錯誤,邏輯錯誤及運行錯誤;</p>

14、<p>  ●程序設計是否合理;</p><p>  ●程序是否具有良好的可讀性和可靠性;</p><p>  ●是否符合結構化程序設計所倡導的基本理念;</p><p>  ●用戶界面是否友好。</p><p><b>  2、課程設計報告</b></p><p>  ●針對提交的課

15、程設計報告,應該主要考查下列內(nèi)容:</p><p>  ●程序設計的報告內(nèi)容是否全面,觀點是否正確;</p><p>  ●設計過程是否符合結構化程序設計方法的基本原則;</p><p>  ●層次是否清楚,語言是否通順;</p><p>  ●各種圖表是否規(guī)范;是否具有良好</p><p><b>  3總

16、體設計</b></p><p><b>  3.1 功能分析</b></p><p>  整個系統(tǒng)可以分為信息輸入、信息添加、信息瀏覽、信息排序、信息查詢和信息統(tǒng)計模塊。</p><p>  3.2 系統(tǒng)使用的主要函數(shù)</p><p>  void search() /*按職工號查詢*

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ù)結構</p><p>  define MAX 100 /*定義職

19、工人數(shù)小于100*/</p><p>  structworkerinfo /*定義職員信息結構體*/</p><p><b>  {</b></p><p>  int number; /*職員工號*/</p><p>  int products; /*職員工號*/</p><p>

20、;  int rank; /*職員工作量排序*/</p><p>  }workers[MAX]; 4 詳細設計</p><p>  4.1 程序總體結構圖 </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>  輸入職工工號流程(如圖 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 功能測試</b></p><p>  5.1系統(tǒng)界面 </p><p>  進入系統(tǒng)后的,系統(tǒng)進入選擇菜單(如圖 5—1) 。</p><p>&

24、lt;b> ?。▓D 5—1)</b></p><p>  5.2輸入信息界面 </p><p>  輸入選擇錄入職工信息后,系統(tǒng)界面進入職工信息輸入界面(如圖 5—2)。</p><p><b> ?。?圖5—2 )</b></p><p>  5.3按職工號查詢界面 </p>

25、;<p>  輸入按職工工號查詢菜單后,系統(tǒng)讀取文件內(nèi)容 (如圖 5—3)。</p><p><b>  ( 圖 5—3)</b></p><p>  5.4職工作量查詢界面 </p><p>  輸入按職工工號查詢菜單后,系統(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錯誤輸入信息出錯界面 </p><p>  輸入錯誤信息后,系統(tǒng)提醒錯誤

27、(如圖 5—6)。</p><p><b> ?。▓D 5—6)</b></p><p>  6 程序設計調試情況分析</p><p><b>  7課程設計小結</b></p><p><b>  小組成員分工</b></p><p><b>

28、  參考文獻</b></p><p>  [1]吉順如主編 《C程序設計教程與實驗》 清華大學出版社 2011.6</p><p>  [2]張傳學主編 《C語言程序設計案例教程》 華中科技大學出版社 2011.2</p><p>  [3]吳年志主編 《C程序設計簡明教程實》 中國水利水電出版社 2007.1</p><p&

29、gt;  [4]唐浩強主編 《C語言程序設計》 清華大學出版社 2010.6</p><p>  [5]陳秀玲主編 《C語言程序設計》 清華大學出版社 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ù)結構*/</p><p><b>  {</b></

31、p><p>  int number; /*職工工號*/</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員工工號\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、時若出錯輸出此句</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("請輸入要輸入職工的數(shù)量");</p>

38、<p>  scanf("%d",&n);</p><p>  printf("請輸入職工姓名工號和產(chǎn)品數(shù)量(工號0表示輸入結束):\n");</p><p>  printf("職工姓名\t職工工號\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ù)已達上限!\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號員工產(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工號\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)//先讀文件看是否文件為空 若為空執(zhí)行括號內(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);//關閉文件</p><p>  do//菜單選數(shù)字 選對應項</p><p><b>  {</b>

61、</p><p>  printf("\t\t\t******************************\n") ;//查找方法界面</p><p>  printf("\t\t\t歡迎來到職工工作量統(tǒng)計查詢系統(tǒng)\n");</p><p>  printf("\t\t\t-----------選擇菜單-----

62、------\n");</p><p>  printf("\t\t\t1-------錄入職工工作量\n");</p><p>  printf("\t\t\t2-------按職工號排序查詢\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選擇序號不對,請重新輸入\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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論