成績管理系統(tǒng)課程設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1 需求分析1</b></p><p>  1.1問題描述1</p><p>  1.2輸入數(shù)據(jù)要求1</p><p>  1.3輸出數(shù)據(jù)要求1</p><p>  1.4開發(fā)環(huán)境和工具

2、1</p><p>  1.5成員分工1</p><p><b>  2總體設(shè)計2</b></p><p>  2.1總體設(shè)計思路2</p><p>  2.2模塊結(jié)構(gòu)圖4</p><p>  2.3模塊說明5</p><p><b>  3詳

3、細設(shè)計5</b></p><p>  3.1數(shù)據(jù)類型定義5</p><p>  3.2修改模塊實現(xiàn)方法10</p><p>  3.3查詢模塊實現(xiàn)方法12</p><p>  4測試結(jié)果及分析18</p><p><b>  5總結(jié)19</b></p>

4、<p><b>  參考文獻21</b></p><p>  附錄………………………………………………………………………………………… 21</p><p><b>  1 需求分析</b></p><p><b>  問題描述</b></p><p><b

5、>  1.1數(shù)據(jù)需求</b></p><p>  成績表信息:學(xué)號,班級,姓名,語文,數(shù)學(xué),英語</p><p>  成績信息存放在文件中,以學(xué)號的先后順序存放</p><p><b>  1.2處理需求</b></p><p>  (1)打開:顯示文件中的所有成績記錄,提供分頁顯示</p>

6、<p> ?。?)保存:將成績表的更新結(jié)果存入文件</p><p> ?。?)更新:可插入、刪除、修改各科目成績</p><p> ?。?)查找:按學(xué)號,姓名、班級</p><p> ?。?)統(tǒng)計:求每門課程的平均分,求每個學(xué)生的平均分</p><p> ?。?)排序:按學(xué)號,某課程的分數(shù),各人的平均分</p>&

7、lt;p><b>  1.3其它要求</b></p><p>  (1)提供菜單選擇以上功能</p><p> ?。?)自學(xué):文件的讀寫,清屏函數(shù)</p><p>  1.4開發(fā)環(huán)境和工具</p><p>  開發(fā)環(huán)境:Windows 2000</p><p>  開發(fā)工具:Visual C

8、++ 6.0</p><p><b>  1.5成員分工:</b></p><p>  蜘蛛俠:總體設(shè)計、查詢模塊、排序模塊、……</p><p>  超 人:系統(tǒng)測試、主調(diào)模塊、更新模塊、……</p><p><b>  2 總體設(shè)計</b></p><p><

9、b>  2.1總體設(shè)計思路</b></p><p>  1.設(shè)計思路(功能模塊)</p><p><b>  1顯示成績</b></p><p><b>  2增加成績</b></p><p><b>  3修改成績</b></p><p&

10、gt;<b>  4刪除</b></p><p><b>  5姓名查找</b></p><p><b>  6學(xué)號查找</b></p><p><b>  7排序</b></p><p><b>  A學(xué)號</b></p>

11、;<p><b>  B語文</b></p><p><b>  C英語</b></p><p><b>  D數(shù)學(xué)</b></p><p><b>  E平均</b></p><p><b>  8語文平均</b>&l

12、t;/p><p><b>  9數(shù)學(xué)平均</b></p><p><b>  10英語平均</b></p><p><b>  11退出</b></p><p><b>  2.數(shù)據(jù)儲存</b></p><p><b>  文

13、件存儲</b></p><p>  文件的儲存是通過對兩個函數(shù)的調(diào)用來實現(xiàn)的:</p><p>  1 IO_ReadInfo即學(xué)生信息從文件中讀取。</p><p>  2 IO_WriteInfo即將學(xué)生信息寫入文件。</p><p><b>  2.2模塊結(jié)構(gòu)圖</b></p><p

14、><b>  2.3 模塊說明</b></p><p>  1顯示成績模塊:A顯示全部學(xué)生成績信息(void Student_Display())包括:"姓名","語文成績","數(shù)學(xué)成績","英語成績","平均成績"。</p><p>  B顯示主界面void h

15、omepage()</p><p>  2刪除學(xué)生成績模塊:用void Student_Delete()來實現(xiàn)。</p><p>  3平均成績模塊:例如求語文成績的平均分,具體用float Chinese_Average(struct Student students[])來實現(xiàn)。</p><p>  4查詢學(xué)生信息請模塊:void Student_SelectB

16、yName()</p><p><b>  3.詳細設(shè)計</b></p><p><b>  3.1數(shù)據(jù)類型定義</b></p><p><b>  3.2模塊實現(xiàn)</b></p><p><b>  1.算法思想</b></p><p

17、>  設(shè)計一個主函數(shù)(main),定義一些功能子模塊函數(shù),在主函數(shù)中調(diào) 用主頁(homepage)函數(shù),然后在主頁函數(shù)中通過對各個子模塊的函數(shù)的調(diào)用實現(xiàn)各功能。外加一個登陸函數(shù)(denglu)設(shè)置用戶名和密碼和一個等待函數(shù)(waiting);在主函數(shù)末尾調(diào)用文件的讀入和寫入函數(shù)實現(xiàn)對操作的保存。1,顯示模塊定義一函數(shù)對結(jié)構(gòu)體數(shù)組中的成員輸出。2定義求語文成績平均分函數(shù),對結(jié)構(gòu)體數(shù)組中的成員Chinese求和,然后除以存儲學(xué)生數(shù)得

18、平均分。數(shù)學(xué),英語類似。3刪除學(xué)生成績,通過對類似與線性表的操作,將后一成員覆蓋到前一成員。4查找,姓名返回數(shù)組下標查找。</p><p><b>  2具體實現(xiàn)</b></p><p><b>  1顯示學(xué)生成績</b></p><p>  void Student_Display() /*定義顯示全部學(xué)生信息函

19、數(shù)*/ </p><p><b>  { </b></p><p><b>  int i; </b></p><p>  printf("%10s%10s%10s%10s%10s%10s%10s\n","學(xué)號","班級",</p><p>

20、;  "姓名","語文成績","數(shù)學(xué)成績","英語成績","平均成績"); </p><p>  printf(" -----------------------------------------"); </p><p>  printf("-------

21、-----------------------\n");</p><p>  for (i=0;i<num;i++) </p><p><b>  { </b></p><p>  printf("%10d%10s%10s%10.2f%10.2f%10.2f%10.2f\n",</p><

22、p>  students[i].Number,students[i].Class,students[i].Name, </p><p>  students[i].Chinese,students[i].Math,students[i].English,</p><p>  students[i].Average);</p><p><b>  }

23、</b></p><p><b>  getch();</b></p><p>  waiting();</p><p>  homepage();</p><p><b>  }</b></p><p><b>  2學(xué)生平均成績</b>&

24、lt;/p><p>  float Chinese_Average(struct Student students[]) /*定義求語文成績平均分函數(shù)*/</p><p><b>  {</b></p><p>  int i;float sum=0.0;</p><p>  for(i=0;i<num;i++)<

25、;/p><p>  sum=sum+students[i].Chinese;</p><p>  return (sum/num);}</p><p>  float Math_Average(struct Student students[]) /*定義求數(shù)學(xué)成績平均分函數(shù)*/</p><p><b>  {</b><

26、;/p><p>  int i;float sum=0.0;</p><p>  for(i=0;i<num;i++)</p><p>  sum=sum+students[i].Math;</p><p>  return (sum/num);}</p><p>  float English_Average(st

27、ruct Student studens[]) /*定義求英語成績平均分函數(shù)*/</p><p><b>  {</b></p><p>  int i;float sum=0.0;</p><p>  for(i=0;i<num;i++)</p><p>  sum=sum+students[i].English

28、;</p><p>  return (sum/num);}</p><p><b>  3刪</b></p><p><b>  3刪除學(xué)生成績</b></p><p>  void Student_Delete() /*定義刪除學(xué)生信息函數(shù)*/ </p><p>

29、<b>  { </b></p><p><b>  int i; </b></p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  int number; </p><p&

30、gt;  int index; </p><p>  printf("請輸入要刪除的學(xué)生的學(xué)號:"); </p><p>  scanf("%d",&number); </p><p>  getchar(); </p><p>  index=Student_SearchByIndex(num

31、ber); /*調(diào)用通過學(xué)號返回數(shù)組下標函數(shù)*/</p><p>  if (index==-1) </p><p><b>  { </b></p><p>  printf("沒有該學(xué)生的信息!\n"); </p><p><b>  } </b></p>

32、<p><b>  else </b></p><p><b>  { </b></p><p>  printf("你要刪除的學(xué)生信息為:\n"); </p><p>  Student_DisplaySingle(index); /*調(diào)用顯示單條學(xué)生信息函數(shù)*/</p>

33、<p>  printf("是否真的要刪除?(y/n)"); </p><p>  if (getchar()=='y') </p><p><b>  { </b></p><p>  for (i=index;i<num-1;i++) </p><p><

34、b>  { </b></p><p>  students[i]=students[i+1]; </p><p><b>  } </b></p><p><b>  num--; </b></p><p><b>  } </b></p>&l

35、t;p>  getchar(); </p><p><b>  } </b></p><p>  printf("還要刪除其他同學(xué)的信息嗎?(y/n)");</p><p>  IO_WriteInfo();</p><p>  if (getchar()=='n') </

36、p><p><b>  { </b></p><p>  waiting();</p><p>  homepage();</p><p><b>  break;</b></p><p><b>  } </b></p><p>&

37、lt;b>  } </b></p><p><b>  } </b></p><p><b>  4查詢信息模塊</b></p><p>  void Student_SelectByName() /*定義按姓名查詢學(xué)生信息函數(shù)*/ </p><p><b>  {

38、 </b></p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  char name[20]; </p><p>  int index; </p><p>  printf("請輸入要查詢

39、的學(xué)生的姓名:"); </p><p>  scanf("%s",&name); </p><p>  getchar(); </p><p>  index=Student_SearchByName(name); /*調(diào)用按姓名返回數(shù)組下標函數(shù)*/ </p><p>  if (index==-1

40、) </p><p><b>  { </b></p><p>  printf("該學(xué)生的信息不存在!\n"); </p><p><b>  } </b></p><p><b>  else </b></p><p><b

41、>  { </b></p><p>  printf("你要查詢的學(xué)生信息為:\n"); </p><p>  Student_DisplaySingle(index); /*調(diào)用顯示單條學(xué)生信息函數(shù)*/</p><p><b>  } </b></p><p>  pri

42、ntf("還要查詢其他同學(xué)的信息嗎?(y/n)"); </p><p>  if (getchar()=='n') </p><p>  { waiting();</p><p>  homepage();</p><p><b>  break; </b></p>&l

43、t;p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void Student_SelectByNumber() /*定義按學(xué)號查詢學(xué)生信息函數(shù)*/</p><p><b>

44、;  {while(1)</b></p><p>  {int number;</p><p>  int index;</p><p>  printf("請輸入要查詢的學(xué)生的學(xué)號:");</p><p>  scanf("%d",&number);</p><

45、p>  getchar();</p><p>  index=Student_SearchByIndex(number); /*調(diào)用按學(xué)號返回數(shù)組下標函數(shù)*/</p><p>  if(index==-1)</p><p>  {printf("該學(xué)生的信息不存在!\n");</p><p><b>

46、  } </b></p><p><b>  else </b></p><p>  {printf("你要查詢的學(xué)生信息為:\n");</p><p>  Student_DisplaySingle(index); /*調(diào)用顯示單條學(xué)生信息函數(shù)*/</p><p><b&g

47、t;  }</b></p><p>  printf("還要查詢其他同學(xué)的信息嗎?(y/n)");</p><p>  if(getchar()=='n')</p><p>  { waiting();</p><p>  homepage();</p><p><

48、b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.測試結(jié)果及結(jié)果分析</p><p>  通過對程序的測試,所有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論