課程設計--教師信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  教師名稱 C語言教師設計 </p><p>  課題名稱 教師信息管理系統(tǒng) </p><p>  專 業(yè) 建筑環(huán)境 </p><p>  班 級

2、 </p><p>  學 號 </p><p>  姓 名 </p><p>  指導教師 </p><p>  2013年 06 月 30 日</p><

3、;p>  一、設計內(nèi)容與設計要求</p><p><b>  1.設計內(nèi)容:</b></p><p>  課題五:教師信息管理系統(tǒng)。具體內(nèi)容見附件。</p><p><b>  2.設計要求:</b></p><p>  1)設計正確,方案合理。</p><p>  2

4、)界面友好,使用方便。</p><p>  3)程序精煉,結構清晰。</p><p><b>  4)上機演示。</b></p><p><b>  3.設計報告要求:</b></p><p>  教師設計報告格式如下:</p><p>  1)正文的格式:一級標題用3號黑體

5、,二級標題用四號宋體加粗,正文用小四號宋體,行距為22。 </p><p>  2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能的實現(xiàn)、程序調試、總結、附件(所有程序的源代碼,要求對程序寫出必要的注釋),教師設計報告需5000字左右(不含附件)。</p><p>  3)教師設計報告裝訂順序:封面、任務書、目錄、正文、評分、程序清單附件。</p><p&g

6、t;<b>  附錄:</b></p><p>  設計課題五:教師信息管理系統(tǒng)</p><p><b>  一、問題描述:</b></p><p>  本系統(tǒng)可以用來進行簡單的教師信息管理,具體管理操作包括:教師信息的錄入、添加、顯示、查找、刪除、修改、排序和保存等功能。</p><p><

7、b>  二、功能描述:</b></p><p>  1、本系統(tǒng)采用結構體數(shù)組,每個數(shù)據(jù)的結構應當包括教師號、教師姓名、性別、系別、年齡、學歷等。</p><p><b>  2、系統(tǒng)功能:</b></p><p>  信息錄入:即添加新的教師信息記錄。</p><p><b>  信息顯示:

8、</b></p><p><b>  按教師編號順序顯示</b></p><p><b>  按教師姓名順序顯示</b></p><p><b>  信息查詢:</b></p><p><b> ?。?)按教師名查詢</b></p>

9、<p><b> ?。?)按教師號查詢</b></p><p>  信息修改:即修改已錄入的信息記錄。</p><p>  信息報廢:即刪除不需要的信記錄息。</p><p>  信息保存: 將錄入的教師信息保存到文件。</p><p><b>  g.退出系統(tǒng)。</b></p&

10、gt;<p>  3、系統(tǒng)使用說明:執(zhí)行一個具體的功能之后,程序將重新顯示功能菜單。系統(tǒng)的功能并不限于上述,可以對其進行擴充完善。</p><p><b>  三、測試數(shù)據(jù):</b></p><p><b>  教師人數(shù)>=10</b></p><p><b>  目 錄</b

11、></p><p>  題目設計思想簡述·······························

12、;················6</p><p>  詳細設計················

13、;··································7</p>&l

14、t;p>  教師信息錄入函數(shù)··································

15、;···········7</p><p>  教師信息顯示函數(shù)····················&

16、#183;························7</p><p>  教師信息查詢函數(shù)······

17、83;····································&

18、#183;·8</p><p>  教師信息排序函數(shù)·····························

19、83;···············8</p><p>  教師信息修改函數(shù)················

20、;·····························9</p><p>  教師信息刪除函數(shù)··&

21、#183;····································

22、;······9</p><p>  教師信息保存函數(shù)·························&

23、#183;···················9</p><p>  源程序代碼············

24、····································

25、3;····10</p><p>  程序運行效果圖···························

26、·····················18</p><p>  4.1登陸界面··········&#

27、183;····································

28、····19</p><p>  4.2錄入功能···························&#

29、183;························19</p><p>  4.3顯示功能······

30、3;····································&#

31、183;·······20</p><p>  4.4查詢功能·······················

32、3;···························20</p><p>  4.5排序功能····

33、····································

34、3;··········21</p><p>  4.6修改功能·····················

35、······························21</p><p>  4.7刪除功能·&#

36、183;····································

37、·············22</p><p>  4.8保存功能··················&#

38、183;································22</p><p> 

39、 總結報告····································

40、;··················23</p><p>  5.1課程設計中遇到的主要問題和解決方法···········

41、··············23</p><p>  5.2創(chuàng)新和得意之處·················

42、;···························23</p><p>  5.3設計中存在的不足及改進的設想··

43、83;····························23</p><p>  5.4本次課程設計的感想和心得體會·&

44、#183;····························24</p><p><b>  題目設計思想簡述</

45、b></p><p>  如上圖所示,該教師信息管理系統(tǒng)主要是一個選擇語句應用為基礎來實現(xiàn)對教師信息的錄入,查詢,刪除等功能。</p><p><b>  定義的結構體如下:</b></p><p>  struct teacher</p><p><b>  {</b></p>

46、<p>  int no; //編號</p><p>  char name[99]; //姓名</p><p>  char xingbie[99];//性別</p><p>  char xibie[99]; //系別</p><p>  int Hyear; //年齡</p><

47、p>  char xueli[99]; //學歷</p><p><b>  };</b></p><p>  主函數(shù)進行菜單欄函數(shù)的調用,主要工作通過菜單函數(shù)實現(xiàn)。</p><p>  菜單欄函數(shù)通過用switch語句實現(xiàn)不同功能的選擇,不同的功能用不同的子函數(shù)實現(xiàn)。</p><p>  顯示信息函數(shù)就是把結構體

48、數(shù)組中教師的信息按數(shù)組的順序輸出。</p><p>  排序函數(shù)用冒泡法對教師信息進行排序,</p><p>  查詢函數(shù)分按姓名查詢和教師編號查詢,先用一個Switch語句進行選擇,然后按姓名查找時用循環(huán)語句進行查找,用輸入的姓名字符串與已有的字符串進行比較,然后輸出查詢的結果。若果按教師號進行查詢,也是先用一個循環(huán)語句,然后再加一個條件語句進行判斷,最后輸出查詢結果。</p>

49、;<p>  修改教師信息函數(shù),用戶先輸入要修改的教師編號,然后用一個循環(huán)語句找到結構體數(shù)組中對應的編號,如果沒找到就輸出沒有要修改的教師,找到后輸出該編號的信息提示是否修改,如果確定修改就將修改的信息輸入另一個新結構體變量中,最后將新結構體中的信息賦值給原來要修改的結構體變量中。</p><p>  刪除信息函數(shù),用戶先輸入要刪除的教師編號,用一個條件語句找到數(shù)組中的編號,沒找到就輸出沒找到要刪除

50、的教師,找到后就將結構體數(shù)組中從該編號起向前移一個。</p><p>  保存信息函數(shù),利用文件的字符寫函數(shù)將輸入的信息保存到文件中。</p><p><b>  詳細設計</b></p><p>  1.教師信息錄入函數(shù)(void input() )</p><p> ?。?)先定義一個while語句,當輸入Y時,

51、輸入教師信息。while(choice1=='y' || choice1=='Y')</p><p>  (2 )定義結構體數(shù)變量struct teacher temp;將教師信息錄入該結構體中。</p><p> ?。?)把該結構體數(shù)組賦值給結構體數(shù)組的第零個元素tea[count]=temp;; count++;;</p><p&g

52、t; ?。?)清空temp中的信息,fflush(stdin);</p><p>  (5)要繼續(xù)輸入,輸入Y將重復上述操作。</p><p>  2.顯示信息函數(shù)(void displayall()))</p><p> ?。?)定義整型變量i;</p><p> ?。?)用一個for循環(huán)語句將教師信息依次輸出,知道i=count;<

53、/p><p>  if(count<1)</p><p>  printf("\n\t沒有教師信息!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n編號\

54、t姓名\t性別\t系別\t年齡\t學歷\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  printf("%-3d",tea[i].no);</p><p>  printf("\t%s&quo

55、t;,tea[i].name);</p><p>  printf("\t%s",tea[i].xingbie);</p><p>  printf("\t%s",tea[i].xibie);</p><p>  printf("\t%d",tea[i].Hyear);</p><p&g

56、t;  printf("\t%s\n",tea[i].xueli);</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.查詢信息函數(shù)void seach()</p><p> ?。?)定義整型變量i,xh,j,結構體變量( s

57、truct tescher hname;)</p><p>  (2)字符變量choice</p><p> ?。?)編寫一個switch選擇語句當choice=1時按教師姓名查詢,當choice=2時按教師編號查詢</p><p> ?。?)用循環(huán)語句查找要查詢的教師編號或姓名:for(i=0;i<count;i++) if(tea[i].no==xh)

58、 j=1;break;}如果沒找到就輸出沒有找到要查詢的教師,找到后用顯示函數(shù)將教師信息顯示出來;</p><p>  4.排序函數(shù)void sort() </p><p> ?。?)選用冒泡法來將教師信息進行排序</p><p>  (2)定義整型變量i,jchoice;</p><p> ?。?)編寫一個條件語句如果count小于

59、1就沒有教師信息,否則輸出排序前的教師信息。</p><p> ?。?)編寫一個大的循環(huán)語句,里面再寫一個選擇語句:當輸入1時按編號升序排序,當輸入2時按姓名升序排序,3按年齡降序,當輸入9時結束循環(huán)。該函數(shù)結束。</p><p>  (5)排序后用前面的顯示函數(shù)將排序后的結果輸出,</p><p> ?。?)按編號排序函數(shù):冒泡法排序</p><

60、;p>  for(i=0;i<count;i++) </p><p><b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p><p><b>  { </b></p><p>  if(tea[j].no > tea

61、[j+1].no)//比較第j個元素與第(j+1)元素中的編號,如果第j元素中的大就交換</p><p><b>  {</b></p><p>  temp=tea[j]; </p><p>  tea[j]=tea[j+1];</p><p>  tea[j+1]=temp;</p><p&

62、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)按姓名排序:冒泡法排序</p><p>  for(i=0;i<count;i++) </p><p><

63、b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p><p><b>  { </b></p><p>  if(tea[j].no > tea[j+1].no)</p><p><b>  {</b></

64、p><p>  temp=tea[j];</p><p>  tea[j]=tea[j+1];</p><p>  tea[j+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

65、t;  }</b></p><p><b> ?。?)按年齡降序:</b></p><p>  for(i=0;i<count;i++) </p><p><b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p&

66、gt;<p><b>  { </b></p><p>  if(tea[j].Hyear < tea[j+1].Hyear)</p><p><b>  {</b></p><p>  temp=tea[j];</p><p>  tea[j]=tea[j+1];</p&

67、gt;<p>  tea[j+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  5.教師修改函數(shù)void change() </p><

68、;p> ?。?)定義整型變量i,xh,j,int i,xh,j=0;;</p><p>  (1)定義結構體變量struct teacher temp;;</p><p>  (2)編寫一個for語句找到結構體數(shù)組中要修改的元素i, for(i=0;i<count;i++)</p><p>  If(tea[i].no==xh) { j=1;}

69、 如果沒找到就輸出沒有找到要修改的教師信息if (j==0)</p><p>  printf("\n\t沒有找到要修改的教師!\n");</p><p> ?。?)在給一個條件語句判斷如果J=1,將用顯示函數(shù)輸出你要修改的信息如下;是否確定修改,若輸入y則錄入教師信息到結構體變量temp中;</p><p> ?。?)條件判斷語句,如果輸入y則

70、將temp變量賦給結構體變量I; if (choice=='Y' || choice=='y')</p><p>  tea[i]=temp;</p><p><b>  }</b></p><p>  6.刪除教師信息函數(shù)void del()</p><p> ?。?)定義整型變量dn

71、o,i,j,字符型變量choice,</p><p> ?。?)輸入要刪除的教師編號,和上面一樣用for循環(huán)語句找到該教師的編號i;</p><p> ?。?)如果i<count,將要修改的教師信息用顯示函數(shù)輸出,輸出確定修改嗎,輸入y,則將對該教師信息進行刪除。刪除該教師信息是將該教師的后面所有結構體變量向前移一,for(j=i;j<count-1;j++) tea[j]=

72、tea[j+1]; count--;同時總的結構體變量數(shù)減一;</p><p> ?。?)如果i>count,則輸出沒有找到該教師信息</p><p>  7.保存信息函數(shù)void baocun()</p><p>  (1)定義文件指針*fp,整型變量i;</p><p> ?。?)以只寫方式打開文件打開一個標準文件,并使文件指針*

73、fp指向該文件;</p><p> ?。?)用一個for循環(huán)語句將所有的教師信息讀入到文件中</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  fprintf(fp,"%-3d",tea[i].no);</p>

74、<p>  fprintf(fp,"\t%s",tea[i].name);</p><p>  fprintf(fp,"\t%s",tea[i].xingbie);</p><p>  fprintf(fp,"\t%s",tea[i].xibie);</p><p>  fprintf(fp,&

75、quot;\t%d",tea[i].Hyear);</p><p>  fprintf(fp,"\t%s\n",tea[i].xueli)</p><p> ?。?)最后關閉文件;</p><p>  #include <stdio.h></p><p>  #include <string.h

76、></p><p>  #define scores 3</p><p>  struct teacher</p><p><b>  {</b></p><p>  int no; //編號</p><p>  char name[99];//姓名</p>&l

77、t;p>  char xingbie[99];//性別</p><p>  char xibie[99];//系別</p><p>  int Hyear;//年齡</p><p>  char xueli[99];//學歷</p><p><b>  };</b></p><p>  st

78、ruct teacher tea[99]; //聲明一個結構數(shù)組變量</p><p>  int count=0;</p><p>  void input(); </p><p>  void displayall();</p><p>  void displayone(struct teacher);</p><p&

79、gt;  void sort();</p><p>  void seach();</p><p>  void change();</p><p>  void del();</p><p>  void baocun();</p><p>  void main()</p><p><

80、b>  {</b></p><p>  int choice;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\t☆☆☆☆☆歡迎使用教師信息績管理系統(tǒng)☆☆☆☆☆\n\n");</p&g

81、t;<p>  printf("\t\t1. 錄 入 教 師 信 息\n");</p><p>  printf("\t\t2. 顯 示 教 師 信 息\n");</p><p>  printf("\t\t3. 查 詢 教 師 信 息\n");</p><p>

82、  printf("\t\t4. 教 師 信 息 排 序\n");</p><p>  printf("\t\t5. 修 改 教 師 信 息\n");</p><p>  printf("\t\t6. 刪 除 教 師 信 息\n");</p><p>  printf(&quo

83、t;\t\t7. 保 存 教 師 信 息\n");</p><p>  printf("\t\t9. *退出教師成績管理系統(tǒng)*\n\n");</p><p>  printf("\t\t請選擇:");</p><p>  scanf("%d",&choice);</p>

84、;<p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  input();</b></p><p><b>  break;</b>&l

85、t;/p><p><b>  case 2:</b></p><p>  displayall();</p><p>  printf("\n");</p><p>  printf("\n");</p><p><b>  break;</b&

86、gt;</p><p><b>  case 3:</b></p><p><b>  seach();</b></p><p>  printf("\n");</p><p>  printf("\n");</p><p><b

87、>  break;</b></p><p><b>  case 4:</b></p><p><b>  sort();</b></p><p><b>  break;</b></p><p><b>  case 5:</b><

88、;/p><p><b>  change();</b></p><p><b>  break;</b></p><p><b>  case 6:</b></p><p><b>  del();</b></p><p><b&

89、gt;  break;</b></p><p><b>  case 7:</b></p><p>  printf("\n\t\t信息已保存!\n\n");</p><p><b>  baocun();</b></p><p><b>  break;&

90、lt;/b></p><p><b>  case 9:</b></p><p>  printf("\n\t謝謝使用本系統(tǒng)!\n");</p><p><b>  break;</b></p><p><b>  default:</b></p

91、><p>  printf("\n\t選擇錯誤!請重新選擇。\n");</p><p>  } //switch結構結束</p><p>  }while(choice!=9); //do結構結束</p><p>  } //main函數(shù)結束</p><p>  void input()

92、 //錄入函數(shù) </p><p><b>  {</b></p><p>  struct teacher temp;</p><p>  char choice1='y',choice2;</p><p>  while(choice1=='y' || choice1=='

93、Y')</p><p><b>  {</b></p><p>  printf("\n\t教師編號:");</p><p>  scanf("%d",&temp.no);</p><p>  printf("\n\t教師姓名:");</p

94、><p>  scanf("%s",temp.name);</p><p>  printf("\n\t教師性別:");</p><p>  scanf("%s",temp.xingbie);</p><p>  printf("\n\t教師系別:");</p&

95、gt;<p>  scanf("%s",temp.xibie);</p><p>  printf("\n\t教師年齡:");</p><p>  scanf("%d",&temp.Hyear);</p><p>  printf("\n\t教師學歷:");<

96、/p><p>  scanf("%s",temp.xueli);</p><p>  printf("\n\t您輸入的教師信息如下:\n");</p><p>  displayone(temp);</p><p>  printf("\n\t確定要保存嗎(Y/N)?");</p&

97、gt;<p>  fflush(stdin);</p><p>  choice2=getchar();</p><p>  if (choice2=='Y' || choice2=='y')</p><p><b>  {</b></p><p>  tea[count]=

98、temp;</p><p><b>  count++;</b></p><p><b>  }</b></p><p>  printf("\n\t要繼續(xù)輸入嗎(Y/N)?");</p><p>  fflush(stdin);</p><p>  ch

99、oice1=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void displayone(struct teacher t) //顯示信息函數(shù)</p><p><b>  {</b></p>

100、<p>  printf("\n\t編號:%d",t.no);</p><p>  printf("\n\t姓名:%s",t.name);</p><p>  printf("\n\t性別:%s",t.xingbie);</p><p>  printf("\n\t系別:%s&quo

101、t;,t.xibie);</p><p>  printf("\n\t年齡:%d",t.Hyear);</p><p>  printf("\n\t學歷:%s",t.xueli);</p><p><b>  }</b></p><p>  void displayall() //

102、顯示信息函數(shù)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  if(count<1)</p><p>  printf("\n\t沒有教師信息!\n");</p><p><b>

103、;  else</b></p><p><b>  {</b></p><p>  printf("\n編號\t姓名\t性別\t系別\t年齡\t學歷\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b>&

104、lt;/p><p>  printf("%-3d",tea[i].no);</p><p>  printf("\t%s",tea[i].name);</p><p>  printf("\t%s",tea[i].xingbie);</p><p>  printf("\t%s

105、",tea[i].xibie);</p><p>  printf("\t%d",tea[i].Hyear);</p><p>  printf("\t%s\n",tea[i].xueli);</p><p><b>  }</b></p><p><b>  

106、}</b></p><p><b>  }</b></p><p>  void sort() //排序函數(shù)</p><p><b>  {</b></p><p>  /* 冒泡排序法*/</p><p>  int i,j,choice;</p>

107、;<p>  struct teacher temp;</p><p>  if(count<1)</p><p>  printf("\n\t沒有教師信息!\n");</p><p><b>  else</b></p><p><b>  {</b><

108、;/p><p>  printf("\n\t排序前的教師信息:\n");</p><p>  displayall();</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n\t1

109、. 按 編 號 升 序");</p><p>  printf("\n\t2. 按 姓 名 升 序");</p><p>  printf("\n\t3. 按 年 齡 降 序");</p><p>  printf("\n\t9. 返 回 主 程 序");</p><p>

110、  printf("\n\t 請選擇排序依據(jù):");</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b&g

111、t;</p><p>  for(i=0;i<count;i++) </p><p><b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p><p><b>  { </b></p><p>  if(t

112、ea[j].no > tea[j+1].no)</p><p><b>  {</b></p><p>  temp=tea[j];</p><p>  tea[j]=tea[j+1];</p><p>  tea[j+1]=temp;</p><p><b>  }</b&

113、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  for(i=0;i&l

114、t;count;i++) </p><p><b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p><p><b>  { </b></p><p>  if(strcmp(tea[j].name,tea[j+1].name)>

115、0)</p><p><b>  {</b></p><p>  temp=tea[j];</p><p>  tea[j]=tea[j+1];</p><p>  tea[j+1]=temp;</p><p><b>  }</b></p><p>

116、<b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  for(i=0;i<count;i++) </p>

117、<p><b>  {</b></p><p>  for(j=0;j<count-i-1;j++) //比較元素</p><p><b>  { </b></p><p>  if(tea[j].Hyear < tea[j+1].Hyear)</p><p><b&g

118、t;  {</b></p><p>  temp=tea[j];</p><p>  tea[j]=tea[j+1];</p><p>  tea[j+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p&g

119、t;<p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 9:</b></p><p><b>  break;</b></p><p><b>  default:

120、</b></p><p>  printf("\n\t選擇錯誤,請重新選擇!\n");</p><p>  } //switch結構結束</p><p>  if(choice>=1 && choice <=3)</p><p><b>  {</b><

121、/p><p>  printf("\n\t排序后的教師信息:\n");</p><p>  displayall();</p><p><b>  }</b></p><p>  }while(choice!=9); //do循環(huán)結束</p><p>  } //if判斷結束&

122、lt;/p><p><b>  } </b></p><p>  void seach()//查詢函數(shù)</p><p><b>  {</b></p><p>  int i,xh,j=0;</p><p>  struct teacher Hname;</p>&

123、lt;p>  char choice;</p><p>  printf("\n\t請選擇查詢方式:");</p><p>  printf("\n\t1. 按 教 師 姓 名 查 詢 ");</p><p>  printf("\n\t2. 按 教 師 編 號 查 詢 \n\n");</p&g

124、t;<p>  printf("\t\t請選擇:");</p><p>  fflush(stdin);</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  {</b>&l

125、t;/p><p><b>  case 1:</b></p><p>  printf("\n\t請輸入要查詢教師的姓名: ");</p><p>  fflush(stdin);</p><p>  scanf("%s",Hname.name);</p><p&g

126、t;  for (i=0;i<99;i++)</p><p>  if (strcmp(Hname.name,tea[i].name)==0)</p><p><b>  {</b></p><p><b>  j=1;</b></p><p><b>  break;</b&

127、gt;</p><p><b>  }</b></p><p><b>  if (j==0)</b></p><p>  printf("\n\t沒有找到要查詢的教師!\n");</p><p><b>  else</b></p><

128、p><b>  {</b></p><p>  printf("\n\t您要查詢的教師信息如下:\n");</p><p>  displayone(tea[i]);</p><p>  printf("\n");</p><p><b>  }</b>

129、</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("\n\t請輸入要查詢教師的編號:");</p><p>  scanf("%d",&xh);</p>

130、<p>  for(i=0;i<count;i++)</p><p>  if(tea[i].no==xh)</p><p><b>  {</b></p><p><b>  j=1;</b></p><p><b>  break;</b></p&

131、gt;<p><b>  }</b></p><p><b>  if (j==0)</b></p><p>  printf("\n\t沒有找到要查詢的教師!\n");</p><p><b>  else</b></p><p><b

132、>  {</b></p><p>  printf("\n\t您要查詢的教師信息如下:\n");</p><p>  displayone(tea[i]);</p><p>  printf("\n");</p><p><b>  }</b></p>

133、<p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("\n\t選擇錯誤!請重新選擇。\n");</p><p><b>  }</b></p><p><b&g

134、t;  }</b></p><p>  void change() //修改教師信息函數(shù)</p><p><b>  {</b></p><p>  int i,xh,j=0;</p><p>  struct teacher temp;</p><p>  char choice;

135、</p><p>  printf("\n\t請輸入要修改教師的編號:");</p><p>  scanf("%d",&xh);</p><p>  for(i=0;i<count;i++)</p><p>  if(tea[i].no==xh)</p><p>

136、<b>  {</b></p><p><b>  j=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if (j==0)</b></p>

137、<p>  printf("\n\t沒有找到要修改的教師!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n\t您要修改的教師信息如下:\n");</p><p&

138、gt;  displayone(tea[i]);</p><p>  printf("\n\t要修改嗎(Y/N)?");</p><p>  fflush(stdin);</p><p>  choice=getchar();</p><p>  if (choice=='Y' || choice==

139、9;y')</p><p><b>  {</b></p><p>  printf("\t編號:");</p><p>  scanf("%d",&temp.no);</p><p>  printf("\n\t姓名:");</p>

140、<p>  scanf("%s",temp.name);</p><p>  printf("\n\t性別:");</p><p>  scanf("%s",temp.xingbie);</p><p>  printf("\n\t系別:");</p><

141、;p>  scanf("%s",temp.xibie);</p><p>  printf("\n\t年齡:");</p><p>  scanf("%d",&temp.Hyear);</p><p>  printf("\n\t學歷:");</p><

142、p>  scanf("%s",temp.xueli);</p><p>  printf("\n\t要保存所做的修改嗎(Y/N)?");</p><p>  fflush(stdin);</p><p>  choice=getchar();</p><p>  if (choice=='

143、Y' || choice=='y')</p><p>  tea[i]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  voi

144、d del()//刪除教師信息函數(shù)</p><p><b>  {</b></p><p>  int dno,i,j;</p><p>  char choice;</p><p>  printf("\n\t請輸入要刪除的教師的編號:");</p><p>  scanf(

145、"%d",&dno);</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  if(tea[i].no==dno)</p><p><b>  break;</b></p><p

146、><b>  }</b></p><p>  if(i<count)</p><p><b>  {</b></p><p>  printf("\n\t你要刪除的教師信息如下:\n");</p><p>  displayone(tea[i]);</p>

147、<p>  printf("\n\t確定要刪除該教師信息嗎(Y/N)?");</p><p>  fflush(stdin);</p><p>  choice=getchar();</p><p>  if (choice=='Y' || choice=='y')</p><p&

148、gt;<b>  {</b></p><p>  for(j=i;j<count-1;j++)</p><p>  tea[j]=tea[j+1];</p><p><b>  count--;</b></p><p><b>  }</b></p><

149、;p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n\t沒有找到要刪除的教師\n");</p><p><b>  }</b></p><p>  void baocun()//保存信息到

150、文件 </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i;</b></p><p>  fp=fopen("教師信息.txt","w");</

151、p><p>  fprintf(fp,"編號\t姓名\t性別\t系別\t年齡\t學歷\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  fprintf(fp,"%-3d",tea[i].no);&l

152、t;/p><p>  fprintf(fp,"\t%s",tea[i].name);</p><p>  fprintf(fp,"\t%s",tea[i].xingbie);</p><p>  fprintf(fp,"\t%s",tea[i].xibie);</p><p>  fpr

153、intf(fp,"\t%d",tea[i].Hyear);</p><p>  fprintf(fp,"\t%s\n",tea[i].xueli);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }<

154、/b></p><p><b>  程序運行效果圖</b></p><p><b>  3.1登陸界面</b></p><p><b>  3.2錄入功能</b></p><p><b>  3.3顯示功能</b></p><p&

155、gt;<b>  3.4查詢功能</b></p><p><b>  3.5排序功能</b></p><p><b>  3.6修改教師信息</b></p><p><b>  3.7刪除功能</b></p><p><b>  3.8保存功能&

156、lt;/b></p><p><b>  總結報告 </b></p><p>  5.1課程設計中遇到的主要問題和解決方法</p><p>  在這次的C語言課程設計的編程中,由于以前對鏈表和文件這兩部分的內(nèi)容了解過少,因此在編程中涉及到這兩方面的內(nèi)容時,照成了很大的阻礙,最主要是在對鏈表的結點進行交換,對文件某些特殊的讀寫不清楚。而且由

157、于第一次接觸這類比較復雜一點的題目,在循環(huán)方面的應用有所不足,這也是一個問題。</p><p>  在遇到這些問題時,對于每一個問題在實在無思路時,我首先會查閱相關的書籍,像文件中末尾讀起的方法,在通過查看C語言的書后我才知道原來有專門的庫函數(shù)可以用;在查閱完書籍確定該了解的基本內(nèi)容已了解之后,自己再重新思考算法,然后不斷的在VC++中調試,根據(jù)它的提示修正錯誤,直到編譯無錯且運行的結果正確為止。</p&g

158、t;<p>  5.2你的創(chuàng)新和得意之處</p><p>  這個教師信息管理系統(tǒng)不僅按要求可以讓用戶自己選擇要實現(xiàn)錄入,瀏覽,查找,刪除,排序中的任一種功能,而且在退出系統(tǒng)時為用戶提供能是否要保存該次的信息到文件中的選擇。且在瀏覽中當檢查到用戶該次登錄還未錄入過信息時,提供了是否要查看以前保存的文件的功能。</p><p>  5.3設計中存在的不足及改進的設想</p

159、><p>  在設計過程中,由于對C語言的理解不夠透徹,特別是鏈表和文件方面邊查書邊調試才寫出來的,所以導致程序在一定程度上的不嚴密,例如瀏覽其他文件的信息只有在檢測到該次登錄還未錄入過信息時才會提供用戶選擇之類的。當然,最主要的原因是由于第一次接觸這種較復雜點的題目,在算法的設計上不好,才導致程序過于冗長不嚴謹?shù)摹3绦蛟诓檎液团判驎r其實可以不用每種方式都寫一個函數(shù)的,這樣程序就不會顯得過于冗長。而且系統(tǒng)提供功能選擇

160、方面也可以再調整的更完善。</p><p>  5.4本次課程設計的感想和心得體會</p><p>  從拿到題目到完成的三周時間里,我了解到了原來在C語言的方面的應用我所存在的不足,更掌握了很多之前不懂的知識。在此次的課程設計中,剛接觸到題目時我就發(fā)覺了一個被我遺忘了的嚴重問題,那就是編程的能力只有通過不斷敲寫代碼才能保持和提高的。由于過長時間沒有寫過代碼的緣故,在拿到以前已經(jīng)編過的簡單

161、題目時我也得查找書籍才最終編寫完成,這重新提醒了我在編程方面實踐的重要。</p><p>  由于第一次拿到設計一個系統(tǒng)這樣比較復雜的題目,盡管最后設計出來的系統(tǒng)很簡單,當中間我所遇到的問題還是很多,甚至比學C語言時做過的所有題目遇到的還多。因此在編程時我?guī)缀跤职袰語言的整本書重新看了一遍,有了更深刻的認識。另外,在這次的編寫中,我了解到了以前所未了解的一個很重要的地方,就是設計算法的能力。因為以前所接觸的題目都

162、比較簡單,所以沒有專門想過設計算法,跟沒有意識到其重要性,這次的題目讓我明白了要編寫出一個好的程序,設計一個好的算法是非常必要的。由于開始我在設計算法方面的意識不足,導致這次寫出來的代碼很累贅很繁瑣,這時非常不好的。另外,我發(fā)現(xiàn)細節(jié)的注意不管是多熟悉編程了都很必要的,即使到最后快完成的時候我也會犯下缺函數(shù)的括號,語句缺冒號之類的小錯誤。</p><p>  雖然這次完成題目的結果不太好,但能夠自己獨立完成還是帶給

溫馨提示

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

評論

0/150

提交評論