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

下載本文檔

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

文檔簡介

1、<p>  《高級語言程序設計》課程設計</p><p>  設計題目:學生選修課程系統(tǒng)設計</p><p><b>  目錄</b></p><p>  1.設計目的…………………….p2</p><p>  2 .總體設計……………………p3</p><p>  3.詳細設計…………

2、………….p4</p><p>  4.調試與測試………………….p5</p><p>  5.源程序清單與執(zhí)行結果…….p6</p><p>  6.建議和體會………………….p21</p><p><b>  一.設計目的</b></p><p> ?。?)基本掌握面向過程程序設計的基本思路和

3、方法; </p><p> ?。?)達到熟練掌握C語言的基本知識和技能; </p><p> ?。?)能夠利用所學的基本知識和技能,解決簡單的程序設計問題</p><p><b>  程序功能:</b></p><p> ?。?)輸入信息,密碼保護</p><p><b> ?。?)瀏覽

4、信息</b></p><p> ?。?)查詢信息,提供兩種查詢方式</p><p><b> ?。?)統(tǒng)計選課情況</b></p><p><b> ?。?)進入選課操作</b></p><p><b>  (6)退出選課系統(tǒng)</b></p><

5、p><b>  二.總體設計</b></p><p><b>  設計的流程圖如下</b></p><p><b>  三、詳細設計</b></p><p>  1、輸入初始的課程信息:課程信息用文件保存,包括課程編號,課程名稱,課程性質,總學時,授課學時,實驗或上機學時,學分,開課學期等相關信

6、息。在輸入課程信息前要先輸入管理員密碼,從而限制權限;</p><p>  2、瀏覽模塊:按照指示就可以找到課程編號,課程名稱,課程性質,總學時,授課學時,實驗或上機學時,學分,開課學期等相關信息;</p><p>  3、查詢模塊:按照指示可以選擇通過學分查詢信息,或者選擇課程性質來查詢信息;</p><p>  4、選擇模塊:通過輸入學號和課程編號來選擇所修課程

7、,并有統(tǒng)計功能;</p><p>  5、查閱模塊:選擇主菜單的選項,可以了解統(tǒng)計所選課程的人數(shù);</p><p>  6、退出模塊:在主菜單選擇“0”退出選課系統(tǒng)。</p><p>  四:調試與測試

8、 </p><p><b>  問題一、查詢模塊:</b></p><p>  其中包括課程編號,課程名稱,課程性質,總學時,授課學時,實驗或上機學時,學分,開課學期等相關信息;當輸入學分或者課程性質后,系統(tǒng)進行判斷時,提示“輸入錯誤!請重新輸入!”</p><p><b>  解決辦法及步驟:</b></p>

9、;<p>  1、瀏覽所有課程中的學分是否為你所輸入的值。</p><p>  2、瀏覽所有課程中的課程性質是否有存在你所輸入的值。</p><p>  3、輸出用于循環(huán)檢查語句中的課程,發(fā)現(xiàn)亂碼。</p><p>  4、仔細分析亂碼的原因,最后發(fā)現(xiàn)是變量的類型錯誤,錯將課程性質的結構體指針變量定義為了其他類型的指針變量。</p>&l

10、t;p><b>  問題二、選擇模塊:</b></p><p>  從主菜單進入選課系統(tǒng),通過輸入學號和課程編號來選擇所修課程。當輸入選擇信息時,系統(tǒng)卻提示“輸入錯誤!請重新輸入!”</p><p><b>  解決辦法及步驟:</b></p><p>  1、檢查所編寫的程序代碼是否完全正確,若不是,則改之,然后再

11、繼續(xù)正確輸入選擇信息,</p><p>  2、檢查當我們在輸入選擇信息時,看是否我們輸入的信息有誤,若是這樣的話,我們應當仔細輸入選擇信息。</p><p>  五.源程序清單與執(zhí)行結果</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p>

12、;<p>  #include <string.h></p><p>  struct course</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char name[20];</p><

13、;p>  char kind[10];</p><p><b>  int time;</b></p><p>  int ttime;</p><p>  int etime;</p><p><b>  int mark;</b></p><p><b>

14、  int term;</b></p><p><b>  };</b></p><p>  struct student</p><p><b>  {</b></p><p><b>  int snum;</b></p><p><

15、;b>  int cnum;</b></p><p>  char cname[20];</p><p><b>  };</b></p><p>  /*課程信息錄入*/</p><p>  void insert()</p><p><b>  {</b>

16、;</p><p>  void main();</p><p><b>  FILE *fp;</b></p><p>  struct course c;</p><p>  int count,secret=624816;</p><p>  int i,secret1;</p>

17、<p>  system("color 1f");</p><p>  if((fp=fopen("E:\\course.txt","a+"))==NULL)</p><p><b>  {</b></p><p>  printf("cannot open f

18、ile\n");</p><p><b>  }</b></p><p>  printf("請輸入系統(tǒng)密碼:");</p><p>  scanf("%d",&secret1);</p><p>  if(secret==secret1)</p>

19、<p><b>  {</b></p><p>  printf("\n密碼正確,請輸入課程門數(shù):\n");</p><p>  scanf("%d",&count);</p><p>  printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時

20、 學分 開課學期:\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  scanf("%d %s %s %d %d %d %d %d",&c.num,&c.name,&c.kind,&c.tim

21、e,&c.ttime,&c.etime,&c.mark,&c.term);</p><p>  fprintf(fp,"%d %s %s %d %d %d %d %d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);</p><p><b>  }<

22、/b></p><p><b>  }</b></p><p><b>  else </b></p><p>  printf("抱歉,密碼錯誤,您無此權限\n");</p><p>  fclose(fp);</p><p><b> 

23、 main();</b></p><p><b>  }</b></p><p>  /*課程信息瀏覽*/</p><p>  void browser()</p><p><b>  {</b></p><p>  void main();</p>

24、<p><b>  FILE *fp;</b></p><p>  struct course c;</p><p><b>  int a;</b></p><p>  system("color 3f");</p><p>  if((fp=fopen("

25、;E:\\course.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open course!\n");</p><p><b>  }</b></p><p>  

26、printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");</p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %s %d %d %d %d %d\n&quo

27、t;,&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);</p><p>  printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.m

28、ark,c.term);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("\n1-返回主菜單;2-退出選課系統(tǒng)\n");</p><p>  scanf("%d",&a);</p><

29、;p><b>  if(a==1)</b></p><p><b>  main();</b></p><p><b>  else</b></p><p><b>  exit(0);</b></p><p><b>  }</b&

30、gt;</p><p>  /*課程信息查詢*/</p><p>  void search()</p><p><b>  {</b></p><p>  void main();</p><p><b>  FILE *fp;</b></p><p&g

31、t;  struct course c;</p><p>  int score;</p><p>  char kind[10];</p><p><b>  int a;</b></p><p><b>  int b;</b></p><p>  system(&quo

32、t;color 2f");</p><p>  printf("1.按學分查詢,2.按課程性質查詢.\n");</p><p>  printf("請選擇查詢方式,輸入選項數(shù)字:");</p><p>  scanf("%d",&b);</p><p><b&

33、gt;  if(b==1)</b></p><p><b>  {</b></p><p>  printf("\n請輸入您要查詢的學分:\n");</p><p>  scanf("%d",&score);</p><p>  if((fp=fopen(&qu

34、ot;E:\\course.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open course!\n");</p><p><b>  }</b></p><p>

35、  printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");</p><p>  for(;!feof(fp);) /*feof(fp)遇到文件結束符時返回1,否則feof(fp)返回0*/</p><p><b>  {</b></p><p>  fscan

36、f(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);</p><p>  if(c.mark==score)</p><p>  printf("%5d%12s%9s

37、%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(b==2){</p>

38、<p>  printf("\n請輸入您要查詢的課程性質:\n");</p><p>  scanf("%s",&kind);</p><p>  if((fp=fopen("E:\\course.txt","r"))==NULL)</p><p><b> 

39、 {</b></p><p>  printf("\nCannot open course!\n");</p><p><b>  }</b></p><p>  printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");</p

40、><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.

41、mark,&c.term);</p><p>  if(strcmp(c.kind,kind)==0)</p><p>  printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);</p><p>&

42、lt;b>  }</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>  printf("輸入錯誤!");</p><p><b>  exit(1);</b></p>

43、<p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("\n1-返回主菜單;2-退出選課系統(tǒng)\n");</p><p>  scanf("%d",&a);</p><p><b>  if(a=

44、=1)</b></p><p><b>  main();</b></p><p><b>  else</b></p><p><b>  exit(1);</b></p><p><b>  }</b></p><p&g

45、t;  /*統(tǒng)計選課情況*/</p><p>  void xuanke_information()</p><p><b>  {</b></p><p>  void main();</p><p>  int total=0;</p><p><b>  int a;</b&

46、gt;</p><p><b>  FILE *fp;</b></p><p>  struct student s;</p><p>  system("color 6f");</p><p>  if((fp=fopen("E:\\student.txt","r&qu

47、ot;))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open student!\n");</p><p><b>  }</b></p><p>  printf(" 學號 課程編號 課

48、程名稱\n");</p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);</p><p><b>  t

49、otal++;</b></p><p>  printf("%7d%9d%13s\n",s.snum,s.cnum,s.cname);</p><p><b>  }</b></p><p>  printf("\n選課學生總人數(shù)為:%d 人",total);</p><p

50、>  fclose(fp);</p><p>  printf("\n1-返回主菜單;2-退出選課系統(tǒng)\n");</p><p>  scanf("%d",&a);</p><p><b>  if(a==1)</b></p><p><b>  main(

51、);</b></p><p><b>  else</b></p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  /*學生選修課程*/</p><p>  void xuan_ke(

52、)</p><p><b>  {</b></p><p>  void main();</p><p>  struct student s;</p><p>  struct course c;</p><p><b>  int a;</b></p>&l

53、t;p><b>  FILE *fp;</b></p><p>  system("color 5f");</p><p>  printf("\n請輸入您的學號及您要選擇的課程編號:");</p><p>  scanf("%d%d",&s.snum,&s.cn

54、um);</p><p>  if((fp=fopen("E:\\course.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open course!\n");</p><p>

55、<b>  }</b></p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.tim

56、e,&c.ttime,&c.etime,&c.mark,&c.term);</p><p>  if(s.cnum==c.num)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  fclose(fp);&l

57、t;/p><p>  if((fp=fopen("E:\\student.txt","a+"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open student!\n");</p><p><

58、;b>  }</b></p><p>  fprintf(fp,"%d %d %s\n",s.snum,s.cnum,c.name);</p><p>  fclose(fp);</p><p>  printf("\n1-返回主菜單;2-退出選課系統(tǒng)\n");</p><p>  s

59、canf("%d",&a);</p><p><b>  if(a==1)</b></p><p><b>  main();</b></p><p><b>  else</b></p><p><b>  exit(0);</b&

60、gt;</p><p><b>  }</b></p><p><b>  /*主菜單*/</b></p><p>  void main()</p><p><b>  {</b></p><p>  int n,w=0;</p><

61、;p>  system("color 1f");</p><p>  printf("********************************************************************************\n");</p><p>  printf("

62、 學生選課系統(tǒng)菜單 \n");</p><p>  printf("********************************************************************************\n");</p><p>  printf(&qu

63、ot; 1-錄入選課信息 \n");</p><p>  printf(" 2-瀏覽選課信息 \n");</p>&

64、lt;p>  printf(" 3-查詢選課信息 \n");</p><p>  printf(" 4-統(tǒng)計選課情況 \n&

65、quot;);</p><p>  printf(" 5-進入選課操作 \n");</p><p>  printf(" 0-退出選課系統(tǒng)

66、 \n");</p><p>  printf("********************************************************************************\n");</p><p>  printf(" 請選擇輸入選項前數(shù)字

67、:");</p><p>  scanf("%d",&n);</p><p><b>  do</b></p><p><b>  {</b></p><p>  if(n>5||n<0)</p><p><b> 

68、 {</b></p><p>  printf("\n輸入錯誤!請重新輸入!\n");</p><p>  scanf("%d",&n);</p><p><b>  }</b></p><p><b>  else w=1;</b><

69、;/p><p>  }while(w==0);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:insert();break;</p><p>  case 2:browser();break;&l

70、t;/p><p>  case 3:search();break;</p><p>  case 4:xuanke_information();break;</p><p>  case 5:xuan_ke();break;</p><p>  case 0:exit(0);</p><p><b>  }<

71、;/b></p><p><b>  return ;</b></p><p><b>  }</b></p><p><b>  執(zhí)行結果:</b></p><p><b>  1.主菜單功能</b></p><p>  2

72、.課程信息錄入或插入功能</p><p><b>  2.1密碼保護</b></p><p><b>  2.2信息正常錄入</b></p><p>  3.課程信息瀏覽功能</p><p>  4.課程信息查詢功能</p><p><b>  4.1學分查詢<

73、;/b></p><p><b>  4.2課程性質查詢</b></p><p>  5.學生選修課程功能</p><p>  6.統(tǒng)計選課情況功能</p><p><b>  六:建議和體會</b></p><p>  本學期我們的C語言程序設計課程的考試題目是讓學生

74、自主設計,老師為我們提供了相關課題;同時為激發(fā)同學們的創(chuàng)造性,同學們不僅可以對自己所選擇的課題進行相關的改進,而且可以自擬課題。</p><p>  C語言的實質就是以一定的語法規(guī)范為準,通過對數(shù)據(jù)量的復雜結構運算,完成一定功能的程序,是一門計算機基礎語言,我們通過這一學期的學習,對于其特點和算法有了一定程度的了解。這段時間的課程設計正是讓我們鞏固以前的知識并在此基礎上能夠有所突破。</p><

75、;p>  在設計的開始一段時間里,我努力弄懂每一個知識點,力求自己設計出一個完整的程序,可惜到處碰壁,一個星期下來只寫了不到100行,由于時間緊迫,得到網(wǎng)上搜索相關程序,不斷修改完善。了解到要設計一個完整的程序,其中最難的可能就屬設計整個程序的框架,其中可能會需要經過很多次的修改與調試,所以必須要有耐心,直至最后設計出自己想要的程序。 </p><p>  另外平時學習c語言的基礎也很關鍵,因為如

76、果平時學得就不怎么樣,那么在面對一個比較有難度的程序時,可能會望而卻步,看懂他人的程序都是個難點,更別說讓自己去設計了。因此平時要多向同學、老師請教,查找相關資料,開拓視野,增加知識面。</p><p>  設計一個程序的過程就是一個解決實際問題的過程,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成、從輸入到輸出的要求是什么;在次我們必須捋清思路,逐一的解決問題的各個方面

77、,即從輸入開始入手,著重考慮如何從輸入導出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程--算法。</p><p>  感謝這次的課程設計,它使我更加深刻地體會到c語言程序編寫過程的嚴謹與細致,還有就是無論做任何事都要有耐心,學會運用網(wǎng)絡信息資源。不懂的問題要及時解決,不斷提高編程能力。</p><p>  總的來說,這次程序設計讓我獲益匪淺,對C語言也有了進一步的認識

溫馨提示

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

評論

0/150

提交評論