c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《程序設(shè)計與算法語言》課程設(shè)計</p><p><b>  報 告 書</b></p><p>  題 目 學(xué)生信息管理系統(tǒng) </p><p>  院系名稱 </p><p>  專 業(yè) (班 級) 信息與計算科學(xué)</p&g

2、t;<p>  姓 名 (學(xué) 號) </p><p>  指 導(dǎo) 教 師 </p><p>  完 成 時 間 2013-01-10</p><p><b>  一、問題描述</b></p><p>  在學(xué)校對學(xué)生的管理中,要掌握每個班

3、級學(xué)生的一些基本信息,需要建立一個基本的學(xué)生管理系統(tǒng)。這個系統(tǒng)可以管理學(xué)生的一些基本信息姓名,學(xué)號,學(xué)生科目的成績;可以對學(xué)生的姓名、學(xué)號基本信息錄入,修改,注銷,成績的錄如,和信息的修改。</p><p><b>  二、基本要求</b></p><p>  1、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p>  2、系統(tǒng)的各個功能

4、模塊要求用函數(shù)形式實現(xiàn)</p><p>  3、使用學(xué)生管理系統(tǒng)對學(xué)生一些基本信息的管理</p><p>  4、結(jié)構(gòu)體成員中包括學(xué)生的學(xué)號、年齡、名字、所學(xué)的科目</p><p>  5、學(xué)生信息管理系統(tǒng)應(yīng)該提供以下功能</p><p>  a、學(xué)生基本信息的錄入</p><p>  b、學(xué)生基本信息的修改</

5、p><p><b>  c、學(xué)生成績的錄入</b></p><p><b>  d、修改成績</b></p><p><b>  e、瀏覽</b></p><p><b>  f、退出</b></p><p><b>  三、

6、算法思想</b></p><p>  本程序中包括了11個函數(shù)和一個清屏函數(shù)</p><p>  student-new</p><p>  student-del</p><p>  student-edit</p><p>  score-input</p><p>  scor

7、e-edit</p><p><b>  brower</b></p><p>  page-title</p><p>  return-confirm</p><p><b>  search-id</b></p><p>  10、sort-it</p>

8、<p><b>  11、main</b></p><p>  在函數(shù)page-title中形參menu-item被聲明為char *類型的指針變量,其中函數(shù)page-title在函數(shù)1、2、3、4、5、6,和主函數(shù)11中被調(diào)用。調(diào)用函數(shù)7時,函數(shù)分別將實參(字符串的首地址)傳遞給menu-item,使menu-item指向字符串的首地址,在函數(shù)中輸出字符串。函數(shù)return-co

9、nfirm中定義是一個無形參的函數(shù),其中函數(shù)return-confirm在函數(shù)1、2、3、4、5被調(diào)用。函數(shù)student-new是無形參的函數(shù),在函數(shù)student-new中,當(dāng)學(xué)號不等于0,n不大于班級學(xué)生的總?cè)藬?shù)是執(zhí)行函數(shù),采用遍歷分別實現(xiàn)學(xué)號、姓名、年齡的錄入。在錄入學(xué)生的基本信息后執(zhí)行函數(shù)8,返回主菜單。函數(shù)search-id函數(shù)定義為int型無形參,定義變量i為當(dāng)前輸入的學(xué)號,采用遍歷法實現(xiàn)當(dāng)前的學(xué)號與系統(tǒng)已保存的學(xué)號比較,

10、當(dāng)輸入的學(xué)號已在在系統(tǒng)保存中并且輸入的學(xué)號不等于0時顯示學(xué)生的信息再返回學(xué)號,否者就顯示錯誤或者學(xué)號不存在返回-1,其中search-id在函數(shù)2、3、5中被調(diào)用。函數(shù)student-del是無形參函數(shù),定義n為int型,調(diào)用search-</p><p>  四 系統(tǒng)模塊圖和模塊劃分</p><p>  1、page-title函數(shù)</p><p><b&g

11、t;  功能:顯示字符串</b></p><p><b>  參數(shù):無</b></p><p>  2、return-confirm</p><p>  功能:顯示字符串,并提示按任意鍵返回函數(shù)主菜單</p><p><b>  參數(shù):無</b></p><p>

12、  3、student-new函數(shù)</p><p>  功能:實行學(xué)生信息學(xué)號、姓名、年齡的錄入</p><p>  參數(shù):n為int型表示學(xué)生的人數(shù)</p><p>  4、search-id函數(shù)</p><p>  功能:得到一個函數(shù)的返回值</p><p>  參數(shù):n,i都為int型,其中n是系統(tǒng)已錄入的學(xué)生人

13、數(shù),i是重新輸入的學(xué)號</p><p>  5、student-edit函數(shù)</p><p>  功能:注銷學(xué)生的基本信息</p><p>  參數(shù):n為int型,n為系統(tǒng)已存在的學(xué)生人數(shù)</p><p>  6、student-edit函數(shù)</p><p>  功能:重新編輯學(xué)生的基本信息</p>&l

14、t;p>  參數(shù):n為int型,n系統(tǒng)已存在的學(xué)生人數(shù)</p><p>  7、score-input函數(shù)</p><p>  功能:學(xué)生成績的錄入</p><p>  參數(shù):s,n,t都為int型,s代表的科目,n是系統(tǒng)已存在的學(xué)生人數(shù),t代表的是要錄入的學(xué)生科目的成績</p><p>  8、score-edit函數(shù)</p&g

15、t;<p>  功能:學(xué)生成績的修改</p><p>  參數(shù):n為int型,n是已錄入系統(tǒng)的學(xué)生人數(shù)</p><p>  9、sort-it函數(shù)</p><p>  功能:按學(xué)號從高到低進(jìn)行選擇排序</p><p>  參數(shù):n、m、p、x、t[53]為int型,n是已錄入系統(tǒng)的學(xué)生人數(shù),t[53]為儲存學(xué)號的數(shù)組</p

16、><p>  10、browser函數(shù)</p><p>  功能:瀏覽已錄入的學(xué)生信息</p><p>  參數(shù):n,x為int型,k為char型,n是已錄入系統(tǒng)的學(xué)生人數(shù),x為學(xué)號所對應(yīng)的數(shù)組的下標(biāo),k是當(dāng)調(diào)用sort-it函數(shù)時傳遞為形參的值,進(jìn)行swith語句選擇</p><p><b>  五 源程序</b><

17、/p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <conio.h></p><p>  int INDEX[53];</p><p>  struct STUDENT{</p&

18、gt;<p><b>  int id;</b></p><p><b>  int age;</b></p><p>  int chinese,math,english;</p><p>  char name[21];</p><p>  }students[53]; //結(jié)構(gòu)

19、體</p><p>  void page_title(char *menu_item)</p><p>  { printf("學(xué) 生 管 理 系 統(tǒng) \n %s",menu_item);</p><p><b>  }</b></p><p>  void return_confirm(void)

20、</p><p>  {printf("按任意鍵返回");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void student_new(void) //錄入學(xué)生信息</p><p>

21、;<b>  {int n;</b></p><p>  page_title("錄入學(xué)生基本信息");</p><p>  for(n=0;n<53;n++)</p><p>  if(students[n].id==0) break;</p><p>  printf("學(xué)號:&

22、quot;);</p><p>  scanf("%d",&students[n].id);</p><p>  printf("姓名:");</p><p>  scanf("%s",&students[n].name);</p><p>  printf(&quo

23、t;年齡:");</p><p>  scanf("%d",&students[n].age);</p><p>  return_confirm();</p><p><b>  }//1</b></p><p>  int search_id(void) //查找學(xué)生<

24、/p><p>  {int n,i;</p><p>  printf("請輸入學(xué)生學(xué)號:");</p><p>  scanf("%d",&i);</p><p>  for(n=0;n<53;n++)</p><p><b>  {</b>&

25、lt;/p><p>  if(students[n].id==i&&students[n].id!=0)</p><p><b>  {</b></p><p>  printf("學(xué)號:%d",students[n].id);</p><p>  printf("姓名:%s&q

26、uot;,students[n].name);</p><p>  printf("年齡:%d",students[n].age);</p><p><b>  return n;</b></p><p><b>  }</b></p><p><b>  }</

27、b></p><p>  printf("輸入錯誤或?qū)W號不存在.");</p><p>  return -1;</p><p><b>  }</b></p><p>  void student_del(void) //注銷學(xué)生信息</p><p><b&g

28、t;  {int n;</b></p><p>  page_title("注銷學(xué)生基本信息");</p><p>  if((n=search_id())!=-1) students[n].id=0;</p><p>  printf("!該學(xué)生已注銷.");</p><p>  ret

29、urn_confirm();</p><p><b>  }//3</b></p><p>  void student_edit(void) //修改學(xué)生信息</p><p><b>  {int n;</b></p><p>  page_title("編輯學(xué)生基本信息"

30、;);</p><p>  if((n=search_id())!=-1)</p><p><b>  {</b></p><p>  printf("請重新輸入新信息:學(xué)號:");</p><p>  scanf("%d",&students[n].id);</p&

31、gt;<p>  printf("姓名:");</p><p>  scanf("%s",&students[n].name);</p><p>  printf("年齡:");</p><p>  scanf("%d",&students[n].age);

32、</p><p><b>  }</b></p><p>  return_confirm();</p><p><b>  }//2</b></p><p>  void score_input(void) //輸入學(xué)生成績</p><p>  {int s,n,t;

33、</p><p>  page_title("錄入成績");</p><p>  printf("請用數(shù)字鍵選擇科目1-語文 2-數(shù)學(xué) 3-英語\n");</p><p>  scanf("%d",&s);</p><p>  for(n=0;n<53;n++)<

34、/p><p><b>  {</b></p><p>  if(students[n].id!=0)</p><p><b>  {</b></p><p>  printf("學(xué)號:%d 姓名:%s 成績:",students[n].id,students[n].name);<

35、;/p><p>  scanf("%d",&t);</p><p><b>  switch(s)</b></p><p><b>  {</b></p><p>  case 1 : students[n].chinese=t;break;</p><p

36、>  case 2 : students[n].math=t;break;</p><p>  case 3 : students[n].english=t;break;</p><p><b>  } </b></p><p><b>  } </b></p><p><b>

37、;  }</b></p><p>  return_confirm();</p><p><b>  }//4</b></p><p>  void score_edit(void) //修改學(xué)生成績</p><p><b>  {int n;</b></p><

38、;p>  page_title("修改成績");</p><p>  if((n=search_id())!=-1)</p><p><b>  {</b></p><p>  printf("語文:%d 數(shù)學(xué):%d 英語:%d\n",students[n].chinese,students[n].

39、math,students[n].english);</p><p>  printf("請重新輸入成績:語文:");</p><p>  scanf("%d",&students[n].chinese);</p><p>  printf("數(shù)學(xué):");</p><p> 

40、 scanf("%s",&students[n].math);</p><p>  printf("英語:");</p><p>  scanf("%d",&students[n].english);</p><p><b>  }</b></p><

41、;p>  return_confirm();</p><p><b>  }//5</b></p><p>  void sort_it(char nn) //學(xué)生信息排序</p><p>  {int n,m,p,x,t[53];</p><p>  for(n=0;n<53;n++)</p&g

42、t;<p><b>  {</b></p><p>  switch(nn)</p><p><b>  {</b></p><p>  case '1' : t[n]=students[n].id;break;</p><p>  case '2' :

43、 t[n]=students[n].chinese;break;</p><p>  case '3' : t[n]=students[n].math;break;</p><p>  case '4' : t[n]=students[n].english;break;</p><p>  case '5' : t[n

44、]=students[n].chinese+students[n].math+students[n].english;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  for(n=0;n<53;n++)</p><p><b

45、>  {</b></p><p><b>  x=0;</b></p><p><b>  p=-1;</b></p><p>  for(m=0;m<53;m++)</p><p><b>  {</b></p><p>  i

46、f(t[m]>x)</p><p><b>  {</b></p><p><b>  x=t[m];</b></p><p><b>  p=m;</b></p><p><b>  }</b></p><p><b&

47、gt;  }</b></p><p><b>  t[p]=-1;</b></p><p>  INDEX[n]=p; </p><p><b>  }</b></p><p><b>  }//</b></p><p>  void bro

48、wser(void) //瀏覽</p><p>  {int n,x;</p><p><b>  char k;</b></p><p>  sort_it('1');</p><p><b>  while(1)</b></p><p><b&

49、gt;  {</b></p><p>  page_title("瀏覽");</p><p>  printf("按數(shù)字鍵選擇排序方式或按 0 返回\n");</p><p>  printf("學(xué)號-1\t姓名\t年齡\t語文-2\t數(shù)學(xué)-3\t英語-4\t總分-5\n");</p>

50、;<p>  for(n=0;n<53;n++)</p><p><b>  {</b></p><p>  if(INDEX[n]!=-1)</p><p><b>  {</b></p><p>  x=INDEX[n];</p><p>  prin

51、tf("%d\t%s\t",students[x].id,students[x].name);</p><p>  printf("%d\t%d\t",students[x].age,students[x].chinese);</p><p>  printf("%d\t%d\t",students[x].math,student

52、s[x].english);</p><p>  printf("%d\n",students[x].chinese+students[x].math+students[x].english);</p><p><b>  }</b></p><p><b>  }</b></p><

53、;p>  k=getch();</p><p>  if(k<'6'&&k>'0') sort_it(k);</p><p>  else if(k=='0') break;</p><p>  else continue; </p><p><b>

54、  }</b></p><p><b>  }//6</b></p><p>  void main(void) //主函數(shù)</p><p>  {menu: page_title("操作選單\n");</p><p>  printf("請用數(shù)字鍵選擇操作\n")

55、;</p><p>  printf("1 錄入學(xué)生基本信息\n2 修改學(xué)生基本信息\n");</p><p>  printf("3 注銷學(xué)生基本信息\n4 錄入成績\n5 修改成績\n");</p><p>  printf("6 瀏覽\n0 退出\n");</p><p>  

56、switch(getch())</p><p><b>  {</b></p><p>  case '1' : student_new();break;</p><p>  case '2' : student_edit();break;</p><p>  case '3

57、9; : student_del();break;</p><p>  case '4' : score_input();break;</p><p>  case '5' : score_edit();break;</p><p>  case '6' : browser();break;</p>&l

58、t;p>  case '0' : exit(0);</p><p><b>  }</b></p><p>  system("cls");</p><p>  goto menu;</p><p><b>  }</b></p><p&

59、gt;<b>  六 測試數(shù)據(jù)和結(jié)果</b></p><p>  1、學(xué)生信息的基本錄入</p><p>  1)學(xué)號:01、02、03</p><p>  2)姓名:張某某、李某某、王某某</p><p>  3)年齡:21、20、19</p><p>  2、修改學(xué)生的基本信息</p&g

60、t;<p><b>  1)學(xué)號:01</b></p><p>  2)修改為:02 張某某 19</p><p>  3、注銷學(xué)生的基本信息</p><p><b>  學(xué)號:01</b></p><p><b>  4、錄入成績</b></p>

61、<p>  1)學(xué)號:02 語文成績100</p><p>  2)學(xué)號:03 語文成績 99</p><p><b>  5、修改學(xué)生成績</b></p><p><b>  6、瀏覽</b></p><p><b>  程序執(zhí)行頁面</b></p>

62、<p><b>  學(xué)生信息的基本錄入</b></p><p><b>  學(xué)生信息的修改</b></p><p><b>  錯誤為</b></p><p>  3、 注銷學(xué)生基本信息</p><p><b>  錄入成績</b><

63、;/p><p>  5、 修改成績、瀏覽</p><p><b>  七、參考文獻(xiàn)</b></p><p>  1、嚴(yán)蔚敏.《數(shù)據(jù)結(jié)構(gòu)( C語言版)》.清華大學(xué)出版社,</p><p>  2、譚浩強.《C語言程序設(shè)計》.清華大學(xué)出版社,</p><p><b>  小結(jié)</b&

64、gt;</p><p>  課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機應(yīng)用在是生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計算機開發(fā)技術(shù)十分重要的。我的題目是學(xué)生管理系統(tǒng)的設(shè)計,對于我們這些新手來說,這是很大的考驗,我一千次一萬次的問自己,怎么才能找到課堂所學(xué)與實際應(yīng)用的

65、最佳結(jié)合點?怎么才能讓自己的程序在篇幅上簡單,在使用價值上豐富?怎樣讓自己的業(yè)余更靠近專業(yè)?怎樣讓自己的計劃更具有序性,而不會忙無一用?機會是老師,學(xué)校,以及無數(shù)代教育工作者給的,而能力是自己的,耐性是需要的。經(jīng)過自己的琢磨,聽取了師姐,師兄們的建議,還查閱了很多書籍,才做到了心中有數(shù),才了解了C語言課程設(shè)計的真正用意——培養(yǎng)自學(xué)能力,養(yǎng)成程序編輯的好習(xí)慣。我從來不相信車到山前必有路的說法,認(rèn)為那只是懶惰者自尋懶惰的借口,我要積極,要把

溫馨提示

  • 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

提交評論