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

下載本文檔

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

文檔簡(jiǎn)介

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

2、 </p><p>  學(xué) 號(hào) </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  2013年 06 月 30 日</p><

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

4、)界面友好,使用方便。</p><p>  3)程序精煉,結(jié)構(gòu)清晰。</p><p><b>  4)上機(jī)演示。</b></p><p><b>  3.設(shè)計(jì)報(bào)告要求:</b></p><p>  教師設(shè)計(jì)報(bào)告格式如下:</p><p>  1)正文的格式:一級(jí)標(biāo)題用3號(hào)黑體

5、,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體,行距為22。 </p><p>  2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能的實(shí)現(xiàn)、程序調(diào)試、總結(jié)、附件(所有程序的源代碼,要求對(duì)程序?qū)懗霰匾淖⑨專處熢O(shè)計(jì)報(bào)告需5000字左右(不含附件)。</p><p>  3)教師設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評(píng)分、程序清單附件。</p><p&g

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

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

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

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

10、gt;<p>  3、系統(tǒng)使用說明:執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng)的功能并不限于上述,可以對(duì)其進(jìn)行擴(kuò)充完善。</p><p><b>  三、測(cè)試數(shù)據(jù):</b></p><p><b>  教師人數(shù)>=10</b></p><p><b>  目 錄</b

11、></p><p>  題目設(shè)計(jì)思想簡(jiǎn)述·······························

12、;················6</p><p>  詳細(xì)設(shè)計(jì)················

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>  程序運(yùn)行效果圖···························

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、 總結(jié)報(bào)告····································

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

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

42、;···························23</p><p>  5.3設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想··

43、83;····························23</p><p>  5.4本次課程設(shè)計(jì)的感想和心得體會(huì)·&

44、#183;····························24</p><p><b>  題目設(shè)計(jì)思想簡(jiǎn)述</

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

46、<p>  int no; //編號(hào)</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]; //學(xué)歷</p><p><b>  };</b></p><p>  主函數(shù)進(jìn)行菜單欄函數(shù)的調(diào)用,主要工作通過菜單函數(shù)實(shí)現(xiàn)。</p><p>  菜單欄函數(shù)通過用switch語句實(shí)現(xiàn)不同功能的選擇,不同的功能用不同的子函數(shù)實(shí)現(xiàn)。</p><p>  顯示信息函數(shù)就是把結(jié)構(gòu)體

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

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

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

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

52、t; ?。?)清空temp中的信息,fflush(stdin);</p><p>  (5)要繼續(xù)輸入,輸入Y將重復(fù)上述操作。</p><p>  2.顯示信息函數(shù)(void displayall()))</p><p> ?。?)定義整型變量i;</p><p> ?。?)用一個(gè)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編號(hào)\

54、t姓名\t性別\t系別\t年齡\t學(xué)歷\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,結(jié)構(gòu)體變量( s

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

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

59、1就沒有教師信息,否則輸出排序前的教師信息。</p><p> ?。?)編寫一個(gè)大的循環(huán)語句,里面再寫一個(gè)選擇語句:當(dāng)輸入1時(shí)按編號(hào)升序排序,當(dāng)輸入2時(shí)按姓名升序排序,3按年齡降序,當(dāng)輸入9時(shí)結(jié)束循環(huán)。該函數(shù)結(jié)束。</p><p>  (5)排序后用前面的顯示函數(shù)將排序后的結(jié)果輸出,</p><p>  (6)按編號(hào)排序函數(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個(gè)元素與第(j+1)元素中的編號(hào),如果第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>  (1)定義整型變量i,xh,j,int i,xh,j=0;;</p><p> ?。?)定義結(jié)構(gòu)體變量struct teacher temp;;</p><p>  (2)編寫一個(gè)for語句找到結(jié)構(gòu)體數(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> ?。?)在給一個(gè)條件語句判斷如果J=1,將用顯示函數(shù)輸出你要修改的信息如下;是否確定修改,若輸入y則錄入教師信息到結(jié)構(gòu)體變量temp中;</p><p>  (4)條件判斷語句,如果輸入y則

70、將temp變量賦給結(jié)構(gòu)體變量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> ?。?)輸入要?jiǎng)h除的教師編號(hào),和上面一樣用for循環(huán)語句找到該教師的編號(hào)i;</p><p>  (3)如果i<count,將要修改的教師信息用顯示函數(shù)輸出,輸出確定修改嗎,輸入y,則將對(duì)該教師信息進(jìn)行刪除。刪除該教師信息是將該教師的后面所有結(jié)構(gòu)體變量向前移一,for(j=i;j<count-1;j++) tea[j]=

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

73、fp指向該文件;</p><p> ?。?)用一個(gè)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> ?。?)最后關(guān)閉文件;</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; //編號(hào)</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];//學(xué)歷</p><p><b>  };</b></p><p>  st

78、ruct teacher tea[99]; //聲明一個(gè)結(jié)構(gòu)數(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☆☆☆☆☆歡迎使用教師信息績(jī)管理系統(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. *退出教師成績(jī)管理系統(tǒng)*\n\n");</p><p>  printf("\t\t請(qǐng)選擇:");</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選擇錯(cuò)誤!請(qǐng)重新選擇。\n");</p><p>  } //switch結(jié)構(gòu)結(jié)束</p><p>  }while(choice!=9); //do結(jié)構(gòu)結(jié)束</p><p>  } //main函數(shù)結(jié)束</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教師編號(hào):");</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教師學(xué)歷:");<

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編號(hào):%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學(xué)歷:%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編號(hào)\t姓名\t性別\t系別\t年齡\t學(xué)歷\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、. 按 編 號(hào) 升 序");</p><p>  printf("\n\t2. 按 姓 名 升 序");</p><p>  printf("\n\t3. 按 年 齡 降 序");</p><p>  printf("\n\t9. 返 回 主 程 序");</p><p>

110、  printf("\n\t 請(qǐng)選擇排序依據(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選擇錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p>  } //switch結(jié)構(gòu)結(jié)束</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)結(jié)束</p><p>  } //if判斷結(jié)束&

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請(qǐng)選擇查詢方式:");</p><p>  printf("\n\t1. 按 教 師 姓 名 查 詢 ");</p><p>  printf("\n\t2. 按 教 師 編 號(hào) 查 詢 \n\n");</p&g

124、t;<p>  printf("\t\t請(qǐng)選擇:");</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請(qǐng)輸入要查詢教師的姓名: ");</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請(qǐng)輸入要查詢教師的編號(hào):");</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選擇錯(cuò)誤!請(qǐng)重新選擇。\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請(qǐng)輸入要修改教師的編號(hào):");</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編號(hào):");</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學(xué)歷:");</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請(qǐng)輸入要?jiǎng)h除的教師的編號(hào):");</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你要?jiǎng)h除的教師信息如下:\n");</p><p>  displayone(tea[i]);</p>

147、<p>  printf("\n\t確定要?jiǎng)h除該教師信息嗎(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沒有找到要?jiǎng)h除的教師\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,"編號(hào)\t姓名\t性別\t系別\t年齡\t學(xué)歷\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>  程序運(yùn)行效果圖</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>  總結(jié)報(bào)告 </b></p><p>  5.1課程設(shè)計(jì)中遇到的主要問題和解決方法</p><p>  在這次的C語言課程設(shè)計(jì)的編程中,由于以前對(duì)鏈表和文件這兩部分的內(nèi)容了解過少,因此在編程中涉及到這兩方面的內(nèi)容時(shí),照成了很大的阻礙,最主要是在對(duì)鏈表的結(jié)點(diǎn)進(jìn)行交換,對(duì)文件某些特殊的讀寫不清楚。而且由

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論