學(xué)生籍貫信息記錄簿(c語(yǔ)言課程設(shè)計(jì)報(bào)告)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  2012~2013 學(xué)年第1學(xué)期</p><p><b>  目錄</b></p><p>  一、緒言——需求分析…………………… </p&

2、gt;<p>  二、系統(tǒng)設(shè)計(jì) ……………………………</p><p>  (一) 設(shè)計(jì)思想………………………… </p><p>  (二) 源程序設(shè)計(jì)………………………… </p><p> ?。ㄈ?、設(shè)計(jì)表示……………………………</p><p>  三、系統(tǒng)調(diào)試 ………………………………</p>&l

3、t;p>  四、學(xué)生籍貫記錄薄使用說(shuō)明…………………</p><p>  五、 總結(jié) …………………………………… </p><p>  六、參考文獻(xiàn)……………………………………</p><p>  一、緒言——需求分析</p><p>  隨著學(xué)校辦學(xué)規(guī)模的不斷擴(kuò)大、辦學(xué)層次的 多樣化、在校生的不斷增多。開(kāi)發(fā)這系統(tǒng)可以是教務(wù)處老師減輕

4、工作壓力,比較系統(tǒng)的對(duì)學(xué)生進(jìn)行管理,加快速度、加強(qiáng)管理,使各項(xiàng)管理更加規(guī)范化 。</p><p>  題目要求設(shè)計(jì)一個(gè)學(xué)生籍貫信息記錄簿系統(tǒng),該系統(tǒng)要求對(duì)學(xué)生籍貫信息進(jìn)行管理和維護(hù)。</p><p><b>  要求為:</b></p><p> ?。?)創(chuàng)建信息鏈表并以磁盤(pán)文件保存;</p><p> ?。?)讀取磁盤(pán)

5、文件并顯示輸出所有學(xué)生的籍貫信息;</p><p> ?。?)按學(xué)號(hào)或姓名查詢(xún)其籍貫;</p><p> ?。?)按籍貫查詢(xún)并輸出該籍貫的所有學(xué)生;</p><p> ?。?)能添加、刪除和修改學(xué)生的籍貫信息(可選項(xiàng))。</p><p><b>  二、系統(tǒng)設(shè)計(jì)</b></p><p> ?。ㄒ唬?/p>

6、 設(shè)計(jì)思想:流程圖</p><p><b> ?。ǘ?、源程序設(shè)計(jì)</b></p><p>  #include<stdio.h> ///宏定義函數(shù)</p><p>  #include<stdlib.h> //串操作及內(nèi)存操作函數(shù)</p><p>  #include&l

7、t;string.h> /////調(diào)用系統(tǒng)函數(shù)</p><p>  typedef struct student ////定義新結(jié)構(gòu)體 student </p><p><b>  {</b></p><p>  char name[10]; /*定義姓名*/</p><p>  int num;

8、 /*定義學(xué)號(hào)*/</p><p>  char sex[10]; /*定義性別*/</p><p>  int age; /*定義年齡*/</p><p>  char location[10]; /*定義籍貫*/</p><p><b>  }s;</b></p><p>  void Fun

9、()</p><p><b>  { </b></p><p>  char ch1;/*定義字符*/</p><p>  printf("繼續(xù)操作?\n\t——輸入Y繼續(xù)操作/N退出系統(tǒng)[不區(qū)分大小寫(xiě)]\n");</p><p>  scanf("%s",&ch1);

10、 /*接收字符*/</p><p>  switch(ch1) /*選擇結(jié)構(gòu)*/</p><p><b>  {</b></p><p><b>  case 'Y':</b></p><p><b>  case 'y':</b>&l

11、t;/p><p><b>  break;</b></p><p><b>  case 'N':</b></p><p><b>  case 'n':</b></p><p>  printf("歡迎您再次使用。\n");&l

12、t;/p><p><b>  exit(0);</b></p><p><b>  default:</b></p><p>  printf("輸入有誤!");</p><p>  /*若輸入的字符不是“Y”或“y”或“N”或“n”,會(huì)提示輸入有誤*/</p>&

13、lt;p><b>  }</b></p><p>  system("cls"); /*清屏*/</p><p><b>  }</b></p><p>  void menu()</p><p><b>  /*主函數(shù)菜單*/</b><

14、/p><p><b>  {</b></p><p>  /*按說(shuō)明鍵入數(shù)字并鍵入 enter后可查詢(xún)*/</p><p>  printf("**********歡迎進(jìn)入學(xué)生籍貫信息記錄簿*************\n");</p><p>  printf("1 --顯示所有信息\n&quo

15、t;); </p><p>  printf("2 --按學(xué)號(hào)查詢(xún)\n"); </p><p>  printf("3 --按姓名查詢(xún)\n"); </p><p>  printf("4 --按籍貫查詢(xún)\n"); </p><p>  printf("

16、5 --結(jié)束程序\n");</p><p>  printf("***********請(qǐng)選擇您需進(jìn)行的選項(xiàng)************\n");</p><p><b>  }</b></p><p><b>  main()</b></p><p><b>  

17、{</b></p><p>  FILE *fp; /*定義文件型指針變量*/</p><p>  s stu[100];</p><p>  int i=0,n=0,m,num; /*定義變量*/</p><p>  char name[10],location[20];</p><p>

18、  fp=fopen("information.txt","r+");/*打開(kāi)文件并讀取*/ </p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fscanf(fp,"%s%d%s%d%s",&stu[i].n

19、ame,&stu[i].num,&stu[i].sex,&stu[i].age,&stu[i].location); </p><p>  /*讀取姓名,學(xué)號(hào)等信息*/</p><p><b>  i++;</b></p><p><b>  n++;</b></p>&

20、lt;p><b>  }</b></p><p>  L: menu();</p><p>  printf("輸入序號(hào):"); </p><p>  scanf("%d",&m); </p><p>  system("cls");

21、 </p><p><b>  switch(m)</b></p><p>  /*選擇結(jié)構(gòu),選擇查詢(xún)方式或添加學(xué)生信息*/</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  for(i=0;

22、i<n;i++) printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location);</p><p><b>  Fun();</b></p><p>  goto L; /*循環(huán)*/</p>&

23、lt;p><b>  case 2:</b></p><p>  K: printf("請(qǐng)輸入學(xué)號(hào):"); </p><p>  scanf("%d",&num); </p><p>  if(num>10) /*在 “information.txt”這

24、個(gè)文件中只有10位學(xué)生的信息,所以鍵入的數(shù)字不能超過(guò)10*/ </p><p><b>  { </b></p><p>  printf("警告:輸入錯(cuò)誤!請(qǐng)重新輸入:\n");</p><p>  /*鍵入的數(shù)字超過(guò)10后所顯示的提示*/ </p><p>  goto K

25、; </p><p><b>  } </b></p><p>  system("cls"); </p><p>  for(i=0;i<n;i++)</p><p>  /*依次查詢(xún)滿(mǎn)足的學(xué)生*/ </p><p>  { if(stu[i

26、].num==num) </p><p>  { printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location) </p><p><b>  break;</b></p><p&

27、gt;<b>  }</b></p><p><b>  } </b></p><p><b>  Fun();</b></p><p><b>  goto L;</b></p><p>  case 3: </p>&l

28、t;p>  printf("請(qǐng)輸入需查詢(xún)的學(xué)生姓名\n"); </p><p>  printf("若輸入錯(cuò)誤則無(wú)法查詢(xún)!\n:"); </p><p>  scanf("%s",name); </p><p>  system("cls"); </p

29、><p>  for(i=0;i<n;i++)</p><p>  /*依次查詢(xún)滿(mǎn)足的學(xué)生*/</p><p>  { if(strcmp(stu[i].name,name)==0) </p><p>  /*判斷字符串比較是否相等*/ </p><p>  { printf(&quo

30、t;%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location); </p><p><b>  break;</b></p><p><b>  }</b></p><p><b> 

31、 }</b></p><p><b>  Fun();</b></p><p><b>  goto L;</b></p><p>  case 4: </p><p>  printf("請(qǐng)輸入籍貫\n"); </p><p>  

32、printf("若輸入錯(cuò)誤則無(wú)法查詢(xún)!\n:"); scanf("%s",location);</p><p>  system("cls"); </p><p>  for(i=0;i<n;i++)</p><p>  { if(strcmp(stu[i].location,loca

33、tion)==0)</p><p>  /*判斷字符串比較是否相等*/ </p><p>  { printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location); </p><p><b>

34、  }</b></p><p><b>  }</b></p><p><b>  Fun();</b></p><p><b>  goto L;</b></p><p><b>  case 5:</b></p><p&

35、gt;  fp=fopen("information.txt","a+");</p><p>  /*打開(kāi)文件并往里寫(xiě)入信息*/</p><p>  printf("請(qǐng)輸入增加學(xué)生的人數(shù):");</p><p>  scanf("%d",&n);</p><p

36、>  printf("請(qǐng)輸入增加學(xué)生的姓名、學(xué)號(hào)、性別、年齡及籍貫:\n");</p><p>  for(i=0;i<n;i++)</p><p>  { scanf("%s%d%s%d%s",stu[i].name,&stu[i].num,stu[i].sex,&stu[i].age,stu[i].locati

37、on);/* 接收信息*/</p><p>  fprintf(fp,"%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location);/*打印信息*/</p><p><b>  }</b></p><p><b&

38、gt;  Fun();</b></p><p><b>  goto L;</b></p><p>  case 6: </p><p>  exit(0); </p><p>  default: </p><p>  printf("輸入錯(cuò)誤,請(qǐng)重新輸入!

39、\n");</p><p>  /*若輸入的數(shù)字不是1,2,3,4,5,6所提示的信息*/</p><p><b>  goto L;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&l

40、t;b>  (三)、設(shè)計(jì)表示</b></p><p>  2.3.1 進(jìn)入到界面</p><p>  printf("*****************歡迎進(jìn)入學(xué)生籍貫信息記錄簿*******************\n");</p><p>  2.3.2選擇程序進(jìn)行管理</p><p>  print

41、f("1 --顯示所有信息\n"); </p><p>  printf("2 --按學(xué)號(hào)查詢(xún)\n"); </p><p>  printf("3 --按姓名查詢(xún)\n"); </p><p>  printf("4 --按籍貫查詢(xún)\n"); </p>

42、<p>  printf("5 --結(jié)束程序\n");</p><p>  2.3.3對(duì)文件進(jìn)行讀取,并顯示學(xué)生的信息。</p><p><b>  FILE *fp;</b></p><p>  s stu[100];</p><p>  int i=0,n=0,m,num;</

43、p><p>  char name[10],location[20];</p><p>  fp=fopen("information.txt","r+");</p><p>  while(!feof(fp))</p><p>  fscanf(fp,"%s%d%s%d%s",&

44、;stu[i].name,&stu[i].num,&stu[i].sex,&stu[i].age,&stu[i].location)</p><p><b>  i++;</b></p><p><b>  n++;</b></p><p><b>  2.3.4</b&g

45、t;</p><p>  后續(xù)程序?yàn)閟witch語(yǔ)句進(jìn)行選擇,選擇完畢后會(huì)提示是否繼續(xù),繼續(xù)則進(jìn)入到主菜單,否則退出系統(tǒng)。</p><p><b>  三、系統(tǒng)調(diào)試</b></p><p><b>  3.2調(diào)試程序</b></p><p>  3.1.1 顯示所有信息</p><

46、;p>  進(jìn)入系統(tǒng)后鍵入“1+enter”后即可顯示如下界面。</p><p>  選擇第一個(gè)選項(xiàng)后,系統(tǒng)將會(huì)讀取磁盤(pán)文件"information.txt" 中所保存的信息,并在顯示屏上顯示(如下圖),且會(huì)提示是繼續(xù)操作還是退出系統(tǒng)。</p><p>  3.1.2 按學(xué)號(hào)查詢(xún)</p><p>  系統(tǒng)會(huì)先提示:“請(qǐng)輸入學(xué)號(hào)”。</p

47、><p>  輸入學(xué)號(hào)(例如:3)后鍵入“enter”: </p><p>  隨后鍵入“Y”或“y”繼續(xù)運(yùn)行程序。</p><p>  3.1.3 按姓名查詢(xún)</p><p>  鍵入“enter”后,若磁盤(pán)文件中有你輸入的學(xué)生姓名,則該同學(xué)的信息會(huì)在顯示屏上顯示。</p><p>  如若無(wú)此學(xué)生則直接跳到繼續(xù)操作這一

48、項(xiàng)。</p><p>  3.1.4 按籍貫查詢(xún)</p><p>  若磁盤(pán)文件所有學(xué)生籍貫信息中有你所輸入的地點(diǎn)這會(huì)顯示所有這個(gè)地點(diǎn)的學(xué)生,若無(wú)此地點(diǎn)的學(xué)生則直接跳到繼續(xù)操作這一項(xiàng)。</p><p>  3.1.5 添加學(xué)生信息</p><p>  系統(tǒng)先會(huì)提示你要輸入的學(xué)生數(shù)目。</p><p>  接著會(huì)提示要依

49、次輸入那些信息:“請(qǐng)輸入增加學(xué)生的姓名、學(xué)號(hào)、性別、年齡及籍貫”。</p><p>  輸入的信息將會(huì)被寫(xiě)入“information.txt”文件中。如下圖:</p><p>  3.1.6 退出系統(tǒng)</p><p>  隨后任意鍵入一個(gè)鍵就結(jié)束程序。</p><p><b>  3.2調(diào)試小結(jié)</b></p>

50、;<p>  自己做的這個(gè)程序雖然簡(jiǎn)單,但過(guò)程中還是遇到了很多困難。例如對(duì)字符串的處理。開(kāi)始時(shí)總是無(wú)法顯示輸入的學(xué)生姓名,性別,籍貫這三項(xiàng)信息。后來(lái)通過(guò)自己看書(shū)和詢(xún)問(wèn)同學(xué),總算把字符串問(wèn)題處理得當(dāng)了。程序雖簡(jiǎn)單,調(diào)試過(guò)程中總是會(huì)出現(xiàn)這樣那樣很多錯(cuò)誤,例如:少分號(hào),未定義等等。有些錯(cuò)誤很簡(jiǎn)單,自己看一下就可以改出來(lái),但有些錯(cuò)誤怎么也修改不出來(lái),例如簡(jiǎn)單的少分號(hào),很多時(shí)候加了分號(hào)還是沒(méi)用!此時(shí)只有問(wèn)同學(xué)和請(qǐng)教老師。好在最后是完

51、成了這個(gè)程序。</p><p>  四、學(xué)生籍貫信息記錄簿的使用說(shuō)明</p><p>  進(jìn)入系統(tǒng)后按照提示輸入數(shù)字并鍵入enter即可實(shí)現(xiàn)你需要的操作。進(jìn)入后會(huì)有提示信息提示用戶(hù)應(yīng)該怎么做,按照提示輸入后再鍵入enter即可實(shí)現(xiàn)功能。</p><p>  本系統(tǒng)較為簡(jiǎn)單,使用時(shí)按照提示操作,輸入所提示的信息后按enter鍵即可。</p><p&

52、gt;<b>  五、總結(jié)</b></p><p>  通過(guò)這次課程設(shè)計(jì),使我們更加熟悉的掌握了Visual C++語(yǔ)言的運(yùn)用。幫助我們熟悉了更多Visual C++語(yǔ)言的功能,提高了我們的動(dòng)手能力,學(xué)到了許多解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn).同時(shí)也挖掘出了我們潛在的能力,使我們對(duì)自己更有自信,對(duì)編程也更有興趣。我相信,只要努力、勤奮、堅(jiān)持不懈,就沒(méi)有什么做不到的事,不能還沒(méi)開(kāi)始就退縮,要勇于拼搏,敢

53、于創(chuàng)新?,F(xiàn)在知道自己還有很多的不足,而且,由于認(rèn)識(shí)的有限,無(wú)法去完善現(xiàn)在的程序,導(dǎo)致這個(gè)程序有很多功能還沒(méi)有實(shí)現(xiàn)。對(duì)此,自己以后還需要繼續(xù)學(xué)習(xí),把它完善。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  [1] 馬安鵬.Visual C++程序設(shè)計(jì)導(dǎo)學(xué)。北京:清華大學(xué)出版社,2002</p><p>  [2] 譚浩強(qiáng),C

54、程序設(shè)計(jì)(第四版)</p><p>  [2] 電子書(shū)籍. Visual C++技術(shù)內(nèi)幕(第四版).網(wǎng)址:http://www.5xsoft.com</p><p>  [3] Beck Zaratian.Microsoft Visual Visual C++ 6.0程序員指南.希望圖書(shū)創(chuàng)作室譯.北京:北京希望電腦公司出品,1998</p><p>  [4]Ric

55、hard C.Leinecker,Tom Archer. Visual C++ 6 寶典.張艷,張謙譯.北京:電子工業(yè)出版社,1999</p><p>  [5] 李強(qiáng),賈云霞. Visual C++項(xiàng)目開(kāi)發(fā)實(shí)踐.北京:中國(guó)鐵道出版社,2004</p><p>  [6] 鄭莉,董淵,張瑞豐.C++語(yǔ)言程序設(shè)計(jì).2003.</p><p>  [7] H.M.Dei

溫馨提示

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

評(píng)論

0/150

提交評(píng)論