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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、算法思想</b></p><p>  本程序中包括了11個函數和一個清屏函數</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>  在函數page-title中形參menu-item被聲明為char *類型的指針變量,其中函數page-title在函數1、2、3、4、5、6,和主函數11中被調用。調用函數7時,函數分別將實參(字符串的首地址)傳遞給menu-item,使menu-item指向字符串的首地址,在函數中輸出字符串。函數return-co

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

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

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

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

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

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

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

16、><p>  10、browser函數</p><p>  功能:瀏覽已錄入的學生信息</p><p>  參數:n,x為int型,k為char型,n是已錄入系統(tǒng)的學生人數,x為學號所對應的數組的下標,k是當調用sort-it函數時傳遞為形參的值,進行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]; //結構

19、體</p><p>  void page_title(char *menu_item)</p><p>  { printf("學 生 管 理 系 統(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) //錄入學生信息</p><p>

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

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) //查找學生<

24、/p><p>  {int n,i;</p><p>  printf("請輸入學生學號:");</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("學號:%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("輸入錯誤或學號不存在.");</p><p>  return -1;</p><p><b>  }</b></p><p>  void student_del(void) //注銷學生信息</p><p><b&g

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

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

30、;);</p><p>  if((n=search_id())!=-1)</p><p><b>  {</b></p><p>  printf("請重新輸入新信息:學號:");</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) //輸入學生成績</p><p>  {int s,n,t;

33、</p><p>  page_title("錄入成績");</p><p>  printf("請用數字鍵選擇科目1-語文 2-數學 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("學號:%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) //修改學生成績</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 數學:%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("數學:");</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) //學生信息排序</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("按數字鍵選擇排序方式或按 0 返回\n");</p><p>  printf("學號-1\t姓名\t年齡\t語文-2\t數學-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) //主函數</p><p>  {menu: page_title("操作選單\n");</p><p>  printf("請用數字鍵選擇操作\n")

55、;</p><p>  printf("1 錄入學生基本信息\n2 修改學生基本信息\n");</p><p>  printf("3 注銷學生基本信息\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>  六 測試數據和結果</b></p><p>  1、學生信息的基本錄入</p><p>  1)學號:01、02、03</p><p>  2)姓名:張某某、李某某、王某某</p><p>  3)年齡:21、20、19</p><p>  2、修改學生的基本信息</p&g

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

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

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

63、;/p><p>  5、 修改成績、瀏覽</p><p><b>  七、參考文獻</b></p><p>  1、嚴蔚敏.《數據結構( C語言版)》.清華大學出版社,</p><p>  2、譚浩強.《C語言程序設計》.清華大學出版社,</p><p><b>  小結</b&

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

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

溫馨提示

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

評論

0/150

提交評論