課程設(shè)計---學(xué)生成績管理系統(tǒng)軟件_第1頁
已閱讀1頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  面向?qū)ο笳n程設(shè)計</b></p><p>  學(xué)生成績管理系統(tǒng)軟件</p><p>  院(系)別 計算科學(xué)與電氣工程學(xué)院 </p><p>  班 級 計算111 </p><p>  學(xué) 號

2、 </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  時 間 2012-03-04—2012-03-28 </p><p><b>  目 錄</b></p>&

3、lt;p>  1課程設(shè)計概述1</p><p>  1.1成績管理軟件功能概述1</p><p>  1.2開發(fā)環(huán)境概述1</p><p>  2學(xué)生成績管理軟件總體設(shè)計1</p><p>  2.1成績管理軟件總體設(shè)計思想1</p><p>  3學(xué)生成績管理系統(tǒng)軟件詳細(xì)設(shè)計2</

4、p><p><b>  4程序測試20</b></p><p>  4.1菜單界面20</p><p>  4.2學(xué)生信息錄入界面21</p><p>  4.4按平均分排序界面22</p><p>  4.5修改個人信息界面22</p><p>  4.6

5、查詢個人信息界面.......................................................................................................23</p><p>  4.7 查詢不及格科目及學(xué)生名單.................................................................

6、.......................24</p><p>  4.8 退出界面........................................................................................................................24</p><p>  設(shè)計體會及今后的改進(jìn)意見25&l

7、t;/p><p><b>  參考文獻(xiàn)26</b></p><p><b>  課程設(shè)計概述</b></p><p>  學(xué)生成績管理系統(tǒng)軟件功能概述</p><p>  主要功能:(1)能按學(xué)期、按班級完成對學(xué)生成績的錄入、修改(2)能按班級統(tǒng)計學(xué)生的成績,求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平

8、均成績進(jìn)行排序(3)能查詢學(xué)生成績,不及格科目及學(xué)生名單(4)能按班級輸出學(xué)生的成績單</p><p><b>  開發(fā)環(huán)境概述</b></p><p>  Visual C++是微軟公司的重要產(chǎn)品之一, 是一種功能強大行之有效的可視化編程工具。它提供了MFC類庫,使用戶可以方便的開發(fā)自己想實現(xiàn)的功能。Visual C++6.0的主要特點:</p>

9、<p> ?。?)自動化和宏功能。</p><p>  (2)可以靈活地定制工具欄和菜單。</p><p> ?。?)可以直接運行和調(diào)試程序,還可以使用宏語言來自動操作調(diào)試器。</p><p>  (4)支持Internet連接。</p><p> ?。?)一個新的便捷的項目系統(tǒng)可以允許一個工作區(qū)內(nèi)包含多個不同的項目類型。</

10、p><p>  (6)在工作區(qū)內(nèi)可以包含多個并列的工程文件。</p><p> ?。?)可以在對話框中使用WizardBar將程序同可視化元素聯(lián)系起來。</p><p> ?。?)Find in File命令支持兩個獨立的輸出窗格,可以保存上一次搜索的結(jié)果。</p><p>  這些新特性可以更好地利用Visual C++開發(fā)工具進(jìn)行Window

11、s應(yīng)用程序開發(fā)。</p><p>  學(xué)生成績管理軟件總體設(shè)計</p><p>  學(xué)生成績管理軟件總體設(shè)計思想</p><p>  學(xué)生成績歷系統(tǒng)是為學(xué)生和老師提供的一款多功能操作,有學(xué)生成績錄入、學(xué)生成績?yōu)g覽、學(xué)生成績查詢以及不及格科目的程序。它的每項功能分別由主函數(shù)調(diào)用各個小函數(shù)來實現(xiàn)各項功能。</p><p>  先調(diào)用主函數(shù),進(jìn)入系

12、統(tǒng)主菜單界面。然后用戶可以根據(jù)提示選擇不同的功能,利用了getchar的一個小功能,當(dāng)你輸入的不是數(shù)字時,會讓你重新輸入。每執(zhí)行完每項功能,程序都會返回到主菜單界面,方便用戶繼續(xù)選擇其他的功能?!?lt;/p><p>  學(xué)生成績管理軟件詳細(xì)設(shè)計</p><p>  /*系統(tǒng)擬采用順序存儲結(jié)構(gòu)存儲學(xué)生信息,實現(xiàn)對學(xué)生的全面管理,具體包括:錄入,顯示,插入,刪除,查詢,同國際等一系列操作*/&l

13、t;/p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<ctype.h></p><p>  #include<string.h></p><p>  #include <

14、conio.h>/*getch()用*/</p><p>  typedef struct /*定義結(jié)構(gòu)體結(jié)構(gòu)*/</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char name[10];</p

15、><p>  float math;</p><p>  float english;</p><p><b>  float c;</b></p><p>  float total;</p><p>  float average;</p><p><b>  }

16、Student;</b></p><p>  Student stu[10];</p><p>  int menu()</p><p><b>  {</b></p><p><b>  int c;</b></p><p><b>  do</

17、b></p><p><b>  {</b></p><p>  system("cls"); /*清屏*/</p><p>  printf("\t\t****學(xué)生成績管理系統(tǒng)****\n");</p><p>  printf("\t\t|1、錄入信息|

18、\n");</p><p>  printf("\t\t|2、顯示所有記錄|\n");</p><p>  printf("\t\t|3、按平均分排序|\n");</p><p>  printf("\t\t|4、修改個人信息|\n");</p><p>  printf(

19、"\t\t|5、查詢個人信息|\n");</p><p>  printf("\t\t|6、查詢不及格科目及學(xué)生名單|\n");</p><p>  printf("\t\t|0、退出|\n");</p><p>  printf("\t\t****************************

20、");</p><p>  printf("\n\n\n");</p><p>  printf("\t\t\t請輸入您的選擇(只能輸入數(shù)字0-5):");</p><p>  scanf("%d",&c);</p><p>  getchar();</p&g

21、t;<p>  }while(c<0||c>6);</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  void input(Student stu[],int n) /*輸入若干條記錄*/</p><p>

22、;<b>  {</b></p><p><b>  int i=0;</b></p><p>  system("cls"); /*清屏*/</p><p>  printf("學(xué)號輸入0退出");</p><p>  while(i<n)&l

23、t;/p><p><b>  {</b></p><p>  printf("\t\t\t學(xué)號:");</p><p>  scanf("%d",&stu[i].num);</p><p>  if(stu[i].num==0)</p><p><

24、b>  break;</b></p><p>  printf("\t\t\t姓名:");</p><p>  scanf("%s",stu[i].name);</p><p>  printf("\t\t\t數(shù)學(xué)成績:");</p><p>  scanf(&qu

25、ot;%f",&stu[i].math);</p><p>  printf("\t\t\t英語成績:");</p><p>  scanf("%f",&stu[i].english);</p><p>  printf("\t\t\tC語言成績:");</p>&l

26、t;p>  scanf("%f",&stu[i].c);</p><p>  stu[i].total=stu[i].math+stu[i].english+stu[i].c;</p><p>  stu[i].average=stu[i].total/3.0;</p><p><b>  i++;</b>&l

27、t;/p><p><b>  if(i==n)</b></p><p><b>  {</b></p><p>  printf("空間已滿,按任意鍵繼續(xù)...");</p><p><b>  getch();</b></p><p>

28、<b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void display(Student stu[],int n)

29、/*顯示所有記錄*/</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  int i=0;</b></p><p>  printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績

30、 C成績 總成績 平均成績\n");</p><p>  while(i<n)</p><p><b>  {</b></p><p>  printf("\t%d\t%s\t%.2f %.2f\t\t%.2f %.3f %.3f\n",stu[i].num,stu[i].name

31、,stu[i].math,stu[i].english,stu[i].c,stu[i].total,stu[i].average);</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p> 

32、 void Sort(Student stu[],int n) /*按總平均分排序*/</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  Student t;</p><p>  for(i=0;i<n-1;i++)

33、 /*冒泡法*/</p><p><b>  {</b></p><p>  for(j=0;j<n-i-1;j++)</p><p><b>  {</b></p><p>  if(stu[j].average>stu[j+1].average)</p><

34、;p><b>  {</b></p><p><b>  t=stu[j];</b></p><p>  stu[j]=stu[j+1];</p><p>  stu[j+1]=t;</p><p><b>  }</b></p><p><

35、b>  }</b></p><p><b>  }</b></p><p>  system("cls");</p><p>  printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 C成績 總成績 平均成績\n");</p><p>  for(i

36、=0;i<n;i++)</p><p>  {printf("\t%d\t%s\t%.2f %.2f\t%.2f %.3f %.3f",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c,stu[i].total,stu[i].average);}</p><p><b>  if(

37、i==n)</b></p><p><b>  {</b></p><p>  printf("按任意鍵繼續(xù)...");</p><p><b>  getch();</b></p><p><b>  }</b></p><

38、p><b>  }</b></p><p>  void update(Student stu[],int n) /*修改*/</p><p><b>  {</b></p><p><b>  int s;</b></p><p><b>  c

39、har m;</b></p><p><b>  int i=0;</b></p><p>  system("cls");</p><p>  printf("請輸入要修改學(xué)生的學(xué)號(0:結(jié)束修改):");</p><p>  scanf("%d"

40、,&s);</p><p>  for(;i<n;i++)</p><p><b>  {</b></p><p><b>  if(s==0)</b></p><p><b>  {</b></p><p>  printf("

41、按任意鍵繼續(xù)。\n");</p><p><b>  getch();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  while(stu[i].num==s)</p><p&g

42、t;<b>  {</b></p><p>  system("cls");</p><p>  printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 C成績 總成績 平均成績\n");</p><p>  printf("\t%d\t%s\t%.2f %.2f\t%.2f %

43、.3f %.3f",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c,stu[i].total,stu[i].average);</p><p>  printf("\n確定要修改嗎?(Y/N)");</p><p>  scanf("%c",&m);</p

44、><p>  if(m=='y'||m=='Y')</p><p><b>  {</b></p><p>  printf("請修改:\n");</p><p>  printf("學(xué)號:");</p><p>  scanf(

45、"%d",&stu[i].num);</p><p>  printf("姓名:");</p><p>  scanf("%s",stu[i].name);</p><p>  printf("數(shù)學(xué)成績:");</p><p>  scanf("

46、%f",&stu[i].math);</p><p>  printf("英語成績:");</p><p>  scanf("%f",&stu[i].english);</p><p>  printf("C成績:");</p><p>  scanf(&q

47、uot;%f",&stu[i].c);</p><p>  stu[i].total=stu[i].math+stu[i].english+stu[i].c;</p><p>  stu[i].average=stu[i].total/3.0;</p><p>  printf("按任意鍵繼續(xù)。\n");</p>

48、<p><b>  getch();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(m=='n'||m=='N')</p><p><b>

49、;  {</b></p><p>  printf("按任意鍵繼續(xù)。\n");</p><p><b>  getch();</b></p><p><b>  break;</b></p><p><b>  }</b></p>

50、<p><b>  }</b></p><p><b>  if(i>n)</b></p><p><b>  {</b></p><p>  printf("無此學(xué)號,請按任意鍵后重新輸入。\n");</p><p><b>  

51、getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void query(Student stu[],int n)</p><p&g

52、t;<b>  {</b></p><p>  system("cls");</p><p><b>  int s;</b></p><p><b>  int i=0;</b></p><p>  printf("\t\t\t請輸入學(xué)號:&qu

53、ot;);</p><p>  scanf("%d",&s);</p><p>  for(;i<n;i++) /*查找判斷*/</p><p><b>  {</b></p><p>  if(stu[i].num==s)</p><p><b>

54、  {</b></p><p>  system("cls");</p><p>  printf(" 學(xué)號 姓名 數(shù)學(xué)成績 英語成績 C成績 總成績 平均成績\n");</p><p>  printf("%d %s %.2f %.2f %.2f %.3f %.3f",s

55、tu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c,stu[i].total,stu[i].average);</p><p>  printf("\n按任意鍵繼續(xù)。\n");</p><p><b>  getch();</b></p><p><b&g

56、t;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(i>n)</b></p><p><b>  {</b></p><p&g

57、t;  printf("無此學(xué)號,請按任意鍵后重新輸入。\n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void fail(Student

58、stu[],int n)//不及格判斷</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  int s;</b></p><p><b>  int i=0;</b></p>&

59、lt;p>  for(;i<n;i++) /*查找判斷*/</p><p><b>  {</b></p><p>  if(stu[i].c<60||stu[i].english<60||stu[i].math<60)</p><p><b>  {</b></p><

60、;p>  printf("不及格學(xué)生名單:\n");</p><p>  printf("%d %s ",stu[i].num,stu[i].name);</p><p>  printf("不及格科目:\n");</p><p><b>  }</b></p>

61、<p>  if(stu[i].c<60)</p><p><b>  {</b></p><p>  printf("c語言");</p><p>  printf("%.2f",stu[i].c);</p><p><b>  }</b>

62、</p><p>  if(stu[i].english<60)</p><p><b>  {</b></p><p>  printf("英語成績");</p><p>  printf("%.2f",stu[i].english);</p><p&

63、gt;<b>  }</b></p><p>  if(stu[i].math<60)</p><p><b>  {</b></p><p>  printf("數(shù)學(xué)成績");</p><p>  printf("%.2f",stu[i].math)

64、;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(i>n)</b></p><p><b>  {</b></p><p>  printf("無此

65、學(xué)號,請按任意鍵后重新輸入。\n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  printf("\n按任意鍵繼續(xù)。\n");</p><p><b>  getch();</b&g

66、t;</p><p><b>  }</b></p><p>  void main()//主函數(shù)</p><p><b>  {</b></p><p>  for(int i=0;i<10;i++)</p><p>  stu[i].num=0;</p>

67、<p><b>  int n;</b></p><p><b>  int ch;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  ch=menu();</p&

68、gt;<p>  switch(ch)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("****請輸入要輸入的學(xué)生個數(shù):*****");</p><p>  scanf("%d

69、",&n);</p><p>  input(stu,n);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  display(stu,n);</p><p>  system(&quo

70、t;pause");</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  Sort(stu,n);</p><p><b>  break;</b></p><p><

71、b>  case 4:</b></p><p>  update(stu,n);</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  query(stu,n);</p><p><b

72、>  break;</b></p><p><b>  case 6:</b></p><p>  fail(stu,n);</p><p><b>  break;</b></p><p><b>  case 0:</b></p><p

73、><b>  exit(0);</b></p><p><b>  default:</b></p><p>  printf("選擇錯誤,請重新選擇。");</p><p><b>  getch();</b></p><p><b>  

74、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  程序測試</b></p><p><b>  菜單界面</b></p><p><b> 

75、 圖4-1 菜單界面</b></p><p>  圖4-2 菜單選擇出錯界面</p><p>  如上圖所示,該程序為用戶提供菜單界面,用戶可以對程序的各種功能進(jìn)行選擇,方便用戶使用。選擇0-6并按enter鍵進(jìn)行操作。如選擇出錯,系統(tǒng)將提示用戶按任意鍵退出系統(tǒng)重新進(jìn)行。</p><p><b>  錄入信息界面 </b><

76、/p><p>  圖4-3 ;錄入信息界面</p><p>  如上圖所示,錄入了2名同學(xué)的成績信息。</p><p><b>  顯示所有記錄界面</b></p><p>  圖4-4 顯示錄入信息界面</p><p>  如上圖所示,該功能實現(xiàn);錄入信息的瀏覽,按任意鍵會返回主菜單,程序?qū)⒃俅翁嵝?/p>

77、用戶進(jìn)行新的選擇。</p><p><b>  按平均分排序界面</b></p><p>  圖4-5 成績排序功能界面</p><p>  如上圖所示,該功能將錄入的所有學(xué)生的成績的平均分進(jìn)行了排序,由上到下依次升高。</p><p>  4.5 修改個人信息界面</p><p>  如圖所示,

78、這是對學(xué)號是“1”的同學(xué)信息進(jìn)行修改,其中“y”是yes的意思,“N”是no的意思,這是在讓用戶進(jìn)行確定是否要真的修改。</p><p><b>  修改之后的圖為</b></p><p>  4.6查詢個人信息界面</p><p>  在錄入信息時只錄入了一個學(xué)生的成績,所以只查到了一個學(xué)生的信息。</p><p> 

79、 4.7學(xué)生不及格科目及名單界面</p><p><b>  4.8 推出界面</b></p><p>  選擇0退出的時候,再按一下任意鍵就可以成功退出程序。</p><p>  設(shè)計體會及今后的改進(jìn)意見</p><p>  為了提高我們的實踐能力,讓我們學(xué)以致用,能靈活運用所學(xué)的知識進(jìn)行再創(chuàng)造,學(xué)校特安排我們進(jìn)行為期

80、二周的Visual C++課程設(shè)計實習(xí),并安排了指導(dǎo)老師幫助輔導(dǎo),讓我們在規(guī)范化、嚴(yán)謹(jǐn)化、實用化上面有了很大進(jìn)展。</p><p>  在此次學(xué)生成績管理系統(tǒng)程序開發(fā)過程中,有很多東西值得我們思考并總結(jié)。課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域, 在

81、生活中可以說得是無處不在。 從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困

82、難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如getcha的靈活運用,和清屏庫函數(shù)的運用等。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在同學(xué)們和老師的辛勤指導(dǎo)下</p><p>  在以后的日子里,要多多注重實踐過程,多對所做的程序進(jìn)行認(rèn)真調(diào)試,方可有希望做出大型程序。 </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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論