成績(jī)管理分析系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  成績(jī)管理分析系統(tǒng)課程設(shè)計(jì)文檔</p><p><b>  班級(jí): </b></p><p><b>  學(xué)生: </b></p><p><b>  學(xué)號(hào):</b></p><p><b>  目 錄</b></p>

2、<p>  一、軟件需求分析1</p><p><b>  1、可行性分析1</b></p><p> ?。?)經(jīng)濟(jì)可行性1</p><p>  (2)法律可行性1</p><p> ?。?)技術(shù)可行性1</p><p>  2、用戶(hù)需求概述1</p><

3、p>  二、軟件分析與設(shè)計(jì)2</p><p>  1、整體設(shè)計(jì)(概要設(shè)計(jì))2</p><p><b>  2、詳細(xì)設(shè)計(jì)3</b></p><p><b>  三、編碼實(shí)現(xiàn)4</b></p><p>  主菜單第一項(xiàng):錄入學(xué)生成績(jī)4</p><p>  主菜單第

4、二項(xiàng):查詢(xún)學(xué)生成績(jī)5</p><p>  主菜單第三項(xiàng):修改學(xué)生成績(jī)7</p><p>  主菜單第四項(xiàng):平均成績(jī)和排序7</p><p>  主菜單第五項(xiàng):顯示系別成績(jī)單9</p><p>  主菜單第六項(xiàng):顯示班級(jí)成績(jī)單9</p><p>  主菜單第七項(xiàng):增加學(xué)生成績(jī)10</p><

5、;p>  初始化數(shù)組函數(shù)10</p><p><b>  總結(jié)11</b></p><p><b>  參考資料11</b></p><p><b>  一、軟件需求分析</b></p><p><b>  1、可行性分析</b></p&

6、gt;<p><b> ?。?)經(jīng)濟(jì)可行性</b></p><p>  本軟件可以快速的統(tǒng)計(jì)大量學(xué)生的成績(jī),并且很方便的增刪學(xué)生的成績(jī),可以讓人很好的了解學(xué)生成績(jī)的整體情況。該軟件適合在各個(gè)學(xué)校進(jìn)行大量推廣,例如可以將此軟件的源代碼以及設(shè)計(jì)風(fēng)格上進(jìn)行修改,還可以用在別的方面。</p><p><b> ?。?)法律可行性</b>&l

7、t;/p><p>  本軟件是根據(jù)教材知識(shí)編寫(xiě),并用合法的編譯器進(jìn)行開(kāi)發(fā),所以該軟件的編寫(xiě)在法律上可行。</p><p><b> ?。?)技術(shù)可行性</b></p><p>  經(jīng)過(guò)大量的測(cè)試以及更改,本軟件在技術(shù)上可行.</p><p><b>  2、用戶(hù)需求概述</b></p>&

8、lt;p>  表1 數(shù)據(jù)結(jié)構(gòu)(結(jié)構(gòu)體student)成員表</p><p><b>  功能描述:</b></p><p>  1. 錄入學(xué)生成績(jī)</p><p>  2. 查詢(xún)學(xué)生成績(jī)</p><p>  3. 修改學(xué)生成績(jī)</p><p>  4. 平均成績(jī)和排序<

9、/p><p>  5. 顯示系成績(jī)單</p><p>  6. 顯示班級(jí)成績(jī)單</p><p>  7. 增加學(xué)生成績(jī)</p><p><b>  8. 重置</b></p><p><b>  0. 退出</b></p><p>&l

10、t;b>  查詢(xún)學(xué)生成績(jī)</b></p><p><b>  1.按學(xué)號(hào)查詢(xún)</b></p><p><b>  2.按科目查詢(xún)</b></p><p><b>  3.重置</b></p><p><b>  0.返回上一層菜單</b>

11、</p><p><b>  二、軟件分析與設(shè)計(jì)</b></p><p>  1、整體設(shè)計(jì)(概要設(shè)計(jì))</p><p><b>  2、詳細(xì)設(shè)計(jì)</b></p><p><b>  三、編碼實(shí)現(xiàn)</b></p><p>  主菜單第一項(xiàng):錄入學(xué)生成績(jī)&l

12、t;/p><p>  void input(student stu[])</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  printf("請(qǐng)依次輸入學(xué)生成績(jī)信息:系別 班級(jí) 學(xué)號(hào) 姓名 數(shù)學(xué) 英語(yǔ) C語(yǔ)言 計(jì)算機(jī) 網(wǎng)頁(yè)設(shè)計(jì) \n

13、");</p><p>  for(i=0;i<stu_number;i++)</p><p><b>  {</b></p><p>  printf("學(xué)生 %d :",i+1);</p><p>  scanf("%s%s%s%s",stu[i].depart

14、ment,stu[i].clase,stu[i].id,stu[i].name);</p><p>  scanf("%f%f%f%f%f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);</p><p>

15、<b>  }</b></p><p><b>  }</b></p><p>  void save_file(student stu[])</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p>

16、;<p><b>  int i;</b></p><p>  if((fp=fopen("f:\\student.dat","wb"))==NULL)</p><p><b>  {</b></p><p>  printf("打開(kāi)文件失敗,按任意鍵退出!\

17、n");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  for(i=0;i<stu_number;i++)</p><p>  if(fwrite(&stu[i],sizeof(student),1,fp)!

18、=1)</p><p><b>  {</b></p><p>  printf("Writer file error!\n");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p

19、>  fclose(fp);</p><p><b>  }</b></p><p>  int input_data()</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入學(xué)生實(shí)際人數(shù):");</p><p> 

20、 scanf("%d",&stu_number);</p><p>  input(stu);</p><p>  save_file(stu);</p><p>  return(stu_number);</p><p><b>  }</b></p><p>  主

21、菜單第二項(xiàng):查詢(xún)學(xué)生成績(jī)</p><p>  void search_menu()</p><p><b>  {</b></p><p>  printf("\n\t\t**************************************");</p><p>  printf("

22、\n\t\t* 學(xué)生成績(jī)查詢(xún) *");</p><p>  printf("\n\t\t* 1.按學(xué)號(hào)查詢(xún) *");</p><p>  printf("\n\t\t* 2.按科目查詢(xún) *");</p&g

23、t;<p>  printf("\n\t\t* 3.重置 *");</p><p>  printf("\n\t\t* 0.退出 *");</p><p>  printf("\n\t\t**************

24、************************");</p><p>  printf("\n\n");</p><p><b>  }</b></p><p>  int search_id(char id[10])</p><p><b>  {</b></

25、p><p><b>  int i;</b></p><p>  for(i=0;i<stu_number;i++)</p><p><b>  {</b></p><p>  if(!strcmp(id,stu[i].id)) // !strcmp(id,stu[i].id) 如

26、果查詢(xún)的學(xué)號(hào)和學(xué)號(hào)相等,那么函數(shù)返回0,!0也就是把0值再取反,結(jié)果是1,那就執(zhí)行if語(yǔ)句的代碼</p><p><b>  {</b></p><p>  printf("系別\t班級(jí)\t學(xué)號(hào)\t姓名\t數(shù)學(xué)\t英語(yǔ)\tC語(yǔ)言\t計(jì)算機(jī)\t網(wǎng)頁(yè)設(shè)計(jì)\n");</p><p>  printf("---------

27、-----------------------------\n");</p><p>  printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p>  printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i

28、].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p>

29、<p>  if(i==stu_number)</p><p>  printf("學(xué)號(hào)輸入有誤!沒(méi)有該學(xué)生!\n");</p><p>  return i;</p><p><b>  }</b></p><p>  void search_course(int course)&l

30、t;/p><p><b>  {</b></p><p><b>  int i;</b></p><p>  switch(course)</p><p><b>  {</b></p><p>  case 1:printf("\n系別\t班級(jí)

31、\t學(xué)號(hào)\t姓名\t數(shù)學(xué)\n");break;</p><p>  case 2:printf("\n系別\t班級(jí)\t學(xué)號(hào)\t姓名\t英語(yǔ)\n");break;</p><p>  case 3:printf("\n系別\t班級(jí)\t學(xué)號(hào)\t姓名\tC語(yǔ)言\n");break;</p><p>  case 4:pri

32、ntf("\n系別\t班級(jí)\t學(xué)號(hào)\t姓名\t計(jì)算機(jī)\n");break;</p><p>  case 5:printf("\n系別\t班級(jí)\t學(xué)號(hào)\t姓名\t網(wǎng)頁(yè)設(shè)計(jì)\n");break;</p><p>  default:printf("\n課程號(hào)錯(cuò)誤!\n");</p><p><b>

33、  return;</b></p><p><b>  }</b></p><p>  printf("-------------------------------\n");</p><p>  for(i=0;i<stu_number;i++)</p><p><b>

34、  {</b></p><p>  printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p>  printf("\t%-8.1f\n",stu[i].score[course-1]); </p><p&

35、gt;<b>  }</b></p><p>  printf("---------------------------------------\n");</p><p><b>  }</b></p><p>  void search_data()</p><p><b

36、>  {</b></p><p>  int select,flag=1;</p><p>  int course;</p><p>  char s_id[10];</p><p><b>  while(1)</b></p><p><b>  {</b&g

37、t;</p><p>  search_menu();</p><p>  printf("請(qǐng)輸入所選查詢(xún)功能號(hào):");</p><p>  scanf("%d",&select);</p><p>  switch(select)</p><p><b>  

38、{</b></p><p>  case 1:printf("請(qǐng)輸入查詢(xún)學(xué)號(hào):");</p><p>  scanf("%s",s_id);</p><p>  search_id(s_id);</p><p><b>  break;</b></p>&

39、lt;p>  case 2:printf("請(qǐng)輸入查詢(xún)科目號(hào):1數(shù)學(xué) 2英語(yǔ) 3C語(yǔ)言 4計(jì)算機(jī) 5網(wǎng)頁(yè)設(shè)計(jì)\n");</p><p>  scanf("%d",&course);</p><p>  search_course(course);</p><p><b>  break;</b&g

40、t;</p><p><b>  case 3:</b></p><p>  system("cls");</p><p><b>  break;</b></p><p>  default :printf("輸入有錯(cuò)誤,重新選擇!\n");</p&g

41、t;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  主菜單第三項(xiàng):修改學(xué)生成績(jī)</p><

42、;p>  void modify_data()</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  char id[10];</p><p><b>  FILE *fp;</b></p><

43、;p>  if((fp=fopen("f:\\studet.dat","wb"))==NULL)</p><p><b>  {</b></p><p>  printf("打開(kāi)文件失敗,按任意鍵退出!");</p><p><b>  return;</b>

44、;</p><p><b>  }</b></p><p>  printf("請(qǐng)輸入要修改的學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",id);</p><p>  i=search_id(id); </p><p>  printf(&q

45、uot;請(qǐng)按【數(shù)學(xué) 英語(yǔ) C語(yǔ)言 計(jì)算機(jī) 網(wǎng)頁(yè)設(shè)計(jì)】順序輸入成績(jī):");</p><p>  scanf("%f %f %f %f %f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);</p><p

46、>  fwrite(&stu[i],sizeof(student),stu_number,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  主菜單第四項(xiàng):平均成績(jī)和排序</p><p>  void sort(float average[50]

47、)</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  student t;</p><p>  float ave;</p><p>  for(i=0;i<stu_number-1;i++)</p&

48、gt;<p>  for(j=0;j<stu_number-1-i;j++)</p><p>  if(average[j]<average[j+1])</p><p><b>  {</b></p><p><b>  t=stu[i];</b></p><p>  st

49、u[i]=stu[i+1];</p><p>  stu[i+1]=t;</p><p>  ave=average[j];</p><p>  average[j]=average[j+1];</p><p>  average[j+1]=ave;</p><p><b>  }</b><

50、/p><p><b>  }</b></p><p>  void average_sort()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  float sum,average[50];<

51、;/p><p>  for(i=0;i<stu_number;i++)</p><p><b>  {</b></p><p>  sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4];</p><p> 

52、 average[i]=sum/5;</p><p><b>  }</b></p><p>  sort(average);</p><p>  printf("\n\t\t\t按平均成績(jī)升序輸出成績(jī)\n");</p><p>  printf("\t\t\t===============

53、==========\n");</p><p>  printf("系別\t班級(jí)\t學(xué)號(hào)\t姓名\t數(shù)學(xué)\t英語(yǔ)\tC語(yǔ)言\t計(jì)算機(jī)\t網(wǎng)頁(yè)設(shè)計(jì)\t平均成績(jī)\n");</p><p>  printf("--------------------------------\n");</p><p>  for(i=0;i

54、<stu_number;i++)</p><p><b>  {</b></p><p>  printf("%s\t%s\t%s\t%s",stu[i].department,stu[i].clase,stu[i].id,stu[i].name);</p><p>  printf("\t%-f\t%f\t

55、%f\t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p>  printf("\t%f\n",average[i]);</p><p><b>  }</b></p><

56、p>  printf("--------------------------------------------\n");</p><p><b>  }</b></p><p>  主菜單第五項(xiàng):顯示系別成績(jī)單</p><p>  void display_department_data()</p>&

57、lt;p><b>  {</b></p><p>  char department[10];</p><p><b>  int i=0;</b></p><p>  printf("情輸入系別名稱(chēng):");</p><p>  scanf("%s",d

58、epartment);</p><p>  printf("\n\t\t\t%s班成績(jī)單\n",department);</p><p>  printf("\t\t\t===============\n");</p><p>  printf("班級(jí)\t學(xué)號(hào)\t姓名\t數(shù)學(xué)\t\t英語(yǔ)\t\tC語(yǔ)言\t\t計(jì)算機(jī)\

59、t\t網(wǎng)頁(yè)設(shè)計(jì)\n");</p><p>  printf("-----------------------------------------\n");</p><p>  for(;i<stu_number;i++)</p><p><b>  {</b></p><p>  if

60、(!strcmp(department,stu[i].department))</p><p><b>  {</b></p><p>  printf("%s\t%s\t%s",stu[i].clase,stu[i].id,stu[i].name);</p><p>  printf("\t%f\t%f\t%f\

61、t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("-

62、--------------------------------------\n");</p><p><b>  }</b></p><p>  主菜單第六項(xiàng):顯示班級(jí)成績(jī)單</p><p>  void display_clase_data()</p><p><b>  {</b>&

63、lt;/p><p>  char clase[10];</p><p><b>  int i=0;</b></p><p>  printf("情輸入班級(jí)名稱(chēng):");</p><p>  scanf("%s",clase);</p><p>  printf(

64、"\n\t\t\t%s班成績(jī)單\n",clase);</p><p>  printf("\t\t\t===============\n");</p><p>  printf("系別\t學(xué)號(hào)\t姓名\t數(shù)學(xué)\t英語(yǔ)\tC語(yǔ)言\t計(jì)算機(jī)\t網(wǎng)頁(yè)設(shè)計(jì)\n");</p><p>  printf("-

65、----------------------------------------\n");</p><p>  for(;i<stu_number;i++)</p><p><b>  {</b></p><p>  if(!strcmp(clase,stu[i].clase))</p><p><

66、b>  {</b></p><p>  printf("%s\t%s\t%s",stu[i].department,stu[i].id,stu[i].name);</p><p>  printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i].score[0],stu[i].score[1],stu[i].scor

67、e[2],stu[i].score[3],stu[i].score[4]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("---------------------------------------\n");</p>

68、<p><b>  }</b></p><p>  主菜單第七項(xiàng):增加學(xué)生成績(jī)</p><p>  void insert_data()</p><p><b>  {</b></p><p>  student st;</p><p><b>  FI

69、LE *fp;</b></p><p>  printf("輕按下列順序輸入要插入學(xué)生的成績(jī):系別 班級(jí) 學(xué)號(hào) 姓名 數(shù)學(xué) 英語(yǔ) C語(yǔ)言 計(jì)算機(jī) 網(wǎng)頁(yè)設(shè)計(jì)\n");</p><p>  scanf("%s%s%s%s",&st.department,&st.clase,&st.id,&st.name);&l

70、t;/p><p>  scanf("%f %f %f %f %f",&st.score[0],&st.score[1],&st.score[2],&st.score[3],&st.score[4]);</p><p>  if((fp=fopen("f:\\student.dat","ab"))

71、==NULL)</p><p><b>  {</b></p><p>  printf("打開(kāi)文件失敗,按任意鍵退出!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>

72、;  fwrite(&st,sizeof(student),1,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  初始化數(shù)組函數(shù)</b></p><p>  int init_arr()</p><p

73、><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i=0;</b></p><p>  if((fp=fopen("f:\\student.dat","rb"))==NULL)</p

74、><p><b>  {</b></p><p>  printf("打開(kāi)文件失敗,按任意鍵退出!");</p><p>  return(0);</p><p><b>  }</b></p><p>  while(!feof(fp))</p>

75、<p><b>  {</b></p><p>  fread(&stu[i],sizeof(student),1,fp);</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  stu_number=i

76、-1;</p><p>  fclose(fp);</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  總結(jié)</b></p><p>  課程設(shè)計(jì)已經(jīng)結(jié)束了,因?yàn)樽约旱乃接邢蓿?/p>

77、一周的時(shí)間我不能夠完全由自己獨(dú)立完成。并且我在完成時(shí)遇到了很多困難,尤其在文件上。我很多東西都不懂,所以在做課程設(shè)計(jì)當(dāng)中,我浪費(fèi)了很多時(shí)間看書(shū),但是在做課程設(shè)計(jì)當(dāng)中,我有很大的收獲,并且文件也懂了一些。掌握面向過(guò)程程序設(shè)計(jì)的基本思路和方法,達(dá)到較熟練掌握l(shuí)inux C的基本知識(shí)和技能; </p><p>  還有我感到編程真的很難,想要學(xué)好是要付出很多努力的。還有課程設(shè)計(jì)讓我懂得了不要盲目的去敲代碼,在編程前一定

溫馨提示

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

評(píng)論

0/150

提交評(píng)論