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

下載本文檔

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

文檔簡介

1、<p><b>  C語言程序設(shè)計報告</b></p><p>  題 目 學(xué)生成績管理系統(tǒng)設(shè)計 </p><p>  院 系 計算機工程學(xué)院 </p><p>  專 業(yè) 數(shù)字媒體技術(shù) </p><p>  目

2、 錄</p><p>  一、內(nèi)容摘要與課程設(shè)計目的......................................</p><p>  二、設(shè)計題目分析..........................................................</p><p>  2.1題目意義.......................

3、.......................................</p><p>  2.2設(shè)計思想..............................................................</p><p>  三、課程設(shè)計要求..........................................................

4、.</p><p>  四、程序清單和執(zhí)行結(jié)果...............................................</p><p>  4.1菜單函數(shù)..............................................................</p><p>  4.2輸入函數(shù)................

5、..............................................</p><p>  4.3輸出函數(shù)..............................................................</p><p>  4.4排序函數(shù)....................................................

6、..........</p><p>  4.5查詢函數(shù)..............................................................</p><p>  4.6插入函數(shù)..............................................................</p><p>  4.7

7、刪除函數(shù)……………………………………… </p><p>  五、總結(jié)與體會...............................................................</p><p>  六、參考文獻(xiàn)...................................................................</p>

8、<p>  內(nèi)容摘要與課程設(shè)計的目的</p><p>  1.1內(nèi)容摘要:本次課程設(shè)計的課題是學(xué)生成績管理系統(tǒng),本文介紹課程設(shè)計課題的選題意義,說明了本系統(tǒng)提供的主要功能,對設(shè)計目的、設(shè)計意義、設(shè)計思路與各個函數(shù)進(jìn)行了詳細(xì)的說明。本文提供了主要的源程序代碼,并展示了每個函數(shù)的功能與運行效果的圖片,清晰的讓讀者知道哪塊程序段是做什么用途的。最后寫了我關(guān)于對于此次的課程設(shè)計的想法與感受外加所獲。</

9、p><p>  1.2課程設(shè)計的目的:通過課程設(shè)計的課程設(shè)計題目與答辯來確認(rèn)我們第一個學(xué)期的c語言學(xué)習(xí)情況是如何的,同樣通過對一個課件包括多個功能的實現(xiàn)更加奠定c語言的基礎(chǔ),能夠更好地學(xué)習(xí)接下來的課程。</p><p><b>  設(shè)計題目分析</b></p><p><b>  2.1題目的意義</b></p>

10、<p>  一個學(xué)校需要管理學(xué)生的基本信息和各門功課的考試成績,希望當(dāng)用到時直接從計算機中輸出,從而減輕管理人員的負(fù)擔(dān),也使學(xué)生的成績和信息能夠長期保存。通過建立一個簡單的學(xué)生成績管理系統(tǒng)來管理學(xué)生的成績和信息。</p><p><b>  2.2設(shè)計思想</b></p><p>  函數(shù)的調(diào)用:通過函數(shù)調(diào)用實現(xiàn)各個模塊的功能</p><

11、;p>  創(chuàng)建結(jié)構(gòu)體類型:通過創(chuàng)建結(jié)構(gòu)體類型,將不同類型的數(shù)據(jù)組合成一個有機的整體,以便使用。</p><p><b>  課程設(shè)計要求</b></p><p>  學(xué)生成績信息包括:學(xué)號、班級、姓名、四門課程成績(語文、數(shù)學(xué)、英語、計算機)</p><p><b>  系統(tǒng)需要有一下功能</b></p>

12、<p>  能對學(xué)生的成績進(jìn)行插入、修改、刪除;</p><p>  能對學(xué)生的成績進(jìn)行求總分以及平均分;</p><p>  能查詢學(xué)生的成績,各科目成績及學(xué)生的名單</p><p>  能對每位學(xué)生的成績按總分進(jìn)行從高到低排序(降序)。</p><p><b>  四、總結(jié)與體會</b></p&g

13、t;<p>  剛開始的時候著手寫學(xué)生成績管理系統(tǒng)的源代碼時什么都不會,完全不知道從何下手,后來從網(wǎng)上看看別人的課件資料再加上問大二的學(xué)長總算有了點思路,但是具體寫還是困難的,比如最后的課件設(shè)計的源代碼中的插入和刪除的使用需要用的密碼 這一些源代碼都是在網(wǎng)上拼拼湊湊找的再加上最后自己改改弄弄 終于運行出來了。尤其是在多次運行不行以后,可以運行后心情的愉悅是無法表達(dá)的,而且在課件設(shè)計期間 其他的收獲也是不小的,使我對c語言有

14、些</p><p>  已經(jīng)忘卻的知識點都重新又牢記在腦海中,感覺自己能理解</p><p>  程序的思想了,對結(jié)構(gòu)體有了大概的認(rèn)識以及使用。</p><p>  關(guān)于此次的學(xué)生成績管理系統(tǒng)的c語言的源代碼涉及雖然這個程序不是完全是自己編的,有些是問別人的和在看書及查資料的,但全部都是經(jīng)過自己的反復(fù)斟酌的 對于不是自己寫的源代碼段我也會反復(fù)看代碼然后弄懂代碼的含義

15、和對c程序源代碼的思想。有時候查c語言的相關(guān)資料,是從來沒有見到過的所以覺得自己學(xué)到了很多其他以前并不知道和所涉及的東西,還有在調(diào)試和運行期間 發(fā)現(xiàn)的許多錯誤,有很多的都是細(xì)小的 不容易發(fā)現(xiàn)的,這些就需要我更加認(rèn)真對待這份課件設(shè)計,在不斷調(diào)試和修改的過程中 有反復(fù)修改依舊有錯誤的時候 那時候我請教比我大一屆的學(xué)長 他幫助我找到了錯誤,也知道了自己在哪方面有些明顯的知識點的欠缺。課件設(shè)計的意義是極大的,現(xiàn)在自己對程序整體的把握,利用書上的

16、一些程序段 知識點 能使程序變得更加的簡單化、清楚化,都是我在課程設(shè)計中所學(xué)到的??傊豢磿恍?,光看書也不行,必須自己去思考去實踐才知道如何使用書上的東西,才能把東西活學(xué)活用,更好的運用c語言的知識!</p><p>  五、程序清單和執(zhí)行結(jié)果</p><p><b>  5.1菜單函數(shù)</b></p><p>  void main()

17、 //菜單函數(shù)</p><p><b>  {</b></p><p>  char choice;</p><p><b>  while (1)</b></p><p>  {printf("\n\n");</p><p>  prin

18、tf(" 學(xué)生成績管理系統(tǒng)\n");</p><p>  printf("******************************************\n");</p><p>  printf(" 1.輸入學(xué)生成績.\n");</p><p>  print

19、f(" 2.輸出所有學(xué)生成績.\n");</p><p>  printf(" 3.對學(xué)生成績排序.\n");</p><p>  printf(" 4.查找學(xué)生信息.\n");</p><p>  printf(" 5.插入

20、某一學(xué)生成績(需要密碼).\n");</p><p>  printf(" 6.刪除某一學(xué)生成績(需要密碼).\n");</p><p>  printf(" 7.錄入結(jié)果存放到文件.\n");</p><p>  printf(" 8.退出管理系統(tǒng).\

21、n");</p><p>  printf("******************************************\n");</p><p>  printf(" 請輸入代碼選擇(1~8):");</p><p><b>  5.2輸入函數(shù)</b></p&

22、gt;<p>  void input() //輸入函數(shù)</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  char ask; </p><p><b>  while(1)</b></p

23、><p>  {printf("\n\n");</p><p>  printf("請輸入學(xué)生信息\n");</p><p>  printf("學(xué)號:");</p><p>  scanf("%d",&stu[i].num);</p><

24、;p>  printf("姓名:");</p><p>  scanf("%s",stu[i].name);</p><p>  printf("班級:");</p><p>  scanf("%d",&stu[i].bj);</p><p>  p

25、rintf("語文:");</p><p>  scanf("%d",&stu[i].chinese);</p><p>  printf("高數(shù):");</p><p>  scanf("%d",&stu[i].math);</p><p>  

26、printf("英語:");</p><p>  scanf("%d",&stu[i].english);</p><p>  printf("計算機:");</p><p>  scanf("%d",&stu[i].com);</p><p> 

27、 stu[i].sum=stu[i].chinese+stu[i].math+stu[i].english+stu[i].com;</p><p>  stu[i].ave=stu[i].sum/4;</p><p><b>  i++;</b></p><p>  getchar();</p><p>  printf

28、("繼續(xù)輸入信息嗎?(Y/N)");</p><p>  ask=getchar();</p><p>  if(ask!='y'&&ask!='Y')</p><p><b>  {</b></p><p>  getchar();</p>

29、;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.3輸出函數(shù)</b>&l

30、t;/p><p>  void output() //輸出函數(shù)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("\n\n");</p><p>  printf("學(xué)號

31、 姓名 班級 語文 高數(shù) 英語 計算機 總分 均分\n");</p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  if(stu[i].num )</p><p>  printf("%4d%9s%8d%8d%8d%8d%8

32、d%8d%8d\n",stu[i].num,stu[i].name,stu[i].bj,stu[i].chinese,stu[i].math,stu[i].english,stu[i].com,stu[i].sum,stu[i].ave);</p><p><b>  }</b></p><p><b>  }</b></p>

33、;<p><b>  5.4排序函數(shù)</b></p><p>  void sort() //排序函數(shù)</p><p><b>  {</b></p><p>  char choic;</p><p><b>  while (1)</b></p&g

34、t;<p><b>  {</b></p><p>  printf("\n\n");</p><p>  printf(" 對學(xué)生成績排序 \n");</p><p>  printf("********************

35、**********************\n");</p><p>  printf(" 1.按學(xué)號排序(升序)。 \n");</p><p>  printf(" 5.按總分排序(降序)。 \n");</p><p>  print

36、f(" 6.退出查找。 \n");</p><p>  printf("******************************************\n");</p><p>  printf(" 請輸入代碼選擇(1~6):");</p&g

37、t;<p>  choic=getchar();</p><p>  getchar();</p><p>  switch(choic)</p><p><b>  {</b></p><p>  case'1':sort_1();output();break;</p>&l

38、t;p>  case'5':sort_2();output();break;</p><p>  case'6':return;</p><p>  default:continue;</p><p><b>  }</b></p><p><b>  }</b>

39、;</p><p><b>  }</b></p><p>  void sort_1() //將學(xué)號以升序排序</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  struct stud

40、ent temp;</p><p>  for(j=0;j<M-1;j++)</p><p>  for(i=0;i<M-1-j;i++)</p><p>  if(stu[i].num>stu[i+1].num)</p><p><b>  {</b></p><p>  te

41、mp=stu[i];</p><p>  stu[i]=stu[i+1];</p><p>  stu[i+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void sort_2() //按總分成績降

42、序排</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  struct student temp;</p><p>  for(j=0;j<M-1;j++)</p><p>  for(i=0;i<M-

43、1-j;i++)</p><p>  if(stu[i].sum<stu[i+1].sum)</p><p><b>  {</b></p><p>  temp=stu[i];</p><p>  stu[i]=stu[i+1];</p><p>  stu[i+1]=temp;</

44、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.5查詢函數(shù)</b></p><p>  void search() //查找函數(shù)</p><p><b>  {</b>&l

45、t;/p><p><b>  int i;</b></p><p>  char m[10];</p><p>  printf("\n\n");</p><p>  printf("請輸入要查找同學(xué)的姓名:");</p><p>  scanf("%

46、s",m);</p><p>  for(i=0;i<M;i++)</p><p>  if(strcmp(m,stu[i].name)==0)</p><p><b>  {</b></p><p>  printf("學(xué)號 姓名 班級 語文 高數(shù) 英語 計算機 總分 均分\n");

47、</p><p>  printf("%4d%9s%8d%8d%8d%8d%8d%8d%8d\n",stu[i].num,stu[i].name,stu[i].bj,stu[i].chinese,stu[i].math,stu[i].english,stu[i].com,stu[i].sum,stu[i].ave);</p><p><b>  return;

48、</b></p><p><b>  }</b></p><p>  printf(" 沒有找到該學(xué)生信息!");</p><p><b>  return;</b></p><p><b>  }</b></p>

49、<p><b>  5.6插入函數(shù)</b></p><p>  void insert() //插入記錄函數(shù)</p><p><b>  {</b></p><p>  struct student temp;</p><p><b>  int i,j;</b&g

50、t;</p><p>  printf("\n\n");</p><p>  printf(" 此項為管理員權(quán)限.請慎用!\n");</p><p>  printf(" 若使用,請輸入密碼!\n");</p><p>  printf(&qu

51、ot; 密碼: ");</p><p>  password();</p><p><b>  if(m)</b></p><p><b>  {</b></p><p>  printf(" 密碼正確!");</p><

52、p>  printf("請輸入學(xué)生信息\n"); //輸入要插入的數(shù)據(jù)</p><p>  printf("學(xué)號:");</p><p>  scanf("%d",&temp.num);</p><p>  printf("姓名:");</p><p

53、>  scanf("%s",temp.name);</p><p>  printf("班級:");</p><p>  scanf("%d",&temp.bj);</p><p>  printf("語文:");</p><p>  scanf(&

54、quot;%d",&temp.chinese);</p><p>  printf("高數(shù):");</p><p>  scanf("%d",&temp.math);</p><p>  printf("英語:");</p><p>  scanf(&quo

55、t;%d",&temp.english);</p><p>  printf("計算機:");</p><p>  scanf("%d",&temp.com);</p><p>  temp.sum=temp.chinese+temp.math+temp.english+temp.com; //求出

56、總分</p><p>  temp.ave=temp.sum/4;</p><p>  getchar();</p><p><b>  sort_2();</b></p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p

57、><p>  if(temp.sum>stu[i].sum) //找出要插入的點 i</p><p><b>  {</b></p><p>  for(j=M-2;j>=i;j--) //將原來的數(shù)據(jù)向后移動</p><p>  stu[j+1]=stu[j]; //將插入的值 賦值給結(jié)構(gòu)體中&

58、lt;/p><p>  stu[i]=temp;</p><p>  printf("插入學(xué)生記錄之后為(總分降序):");</p><p><b>  output();</b></p><p>  return; //結(jié)束查找,避免循環(huán)</p><p><b> 

59、 }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf(&qu

60、ot; 密碼錯誤!\n");</p><p>  printf(" 返回上一級菜單!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.7刪除函數(shù)<

61、;/b></p><p>  void del () //刪除函數(shù)</p><p><b>  {</b></p><p>  int num,i,j;</p><p>  printf("\n\n");</p><p>  printf("

62、 此項為管理員權(quán)限.請慎用!\n");</p><p>  printf(" 若使用,請輸入密碼!\n");</p><p>  printf(" 密碼: ");</p><p>  password();</p><p><b> 

63、 if(m)</b></p><p><b>  {</b></p><p>  printf(" 密碼正確!");</p><p>  printf("\n請輸入要刪除記錄學(xué)生的學(xué)號");</p><p>  scanf("%d",&

64、;num);</p><p><b>  sort_1();</b></p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  if(num==stu[i].num)</p><p><b>  {<

65、;/b></p><p>  for(j=i;j<M;j++)</p><p>  stu[j]=stu[j+1];</p><p>  printf("刪除一條記錄后數(shù)據(jù)為:");</p><p><b>  sort_1();</b></p><p><b

66、>  output();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p

67、><b>  else</b></p><p><b>  {</b></p><p>  printf(" 密碼錯誤!\n");</p><p>  printf(" 返回上一級菜單!");</p><p>&l

溫馨提示

  • 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

提交評論