學生籍貫信息記錄簿(c語言課程設計報告)_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  計算機科學與技術系</b></p><p><b>  課程設計報告</b></p><p>  2012~2013 學年第1學期</p><p><b>  目錄</b></p><p>  一、緒言——需求分析…………………… </p&

2、gt;<p>  二、系統(tǒng)設計 ……………………………</p><p> ?。ㄒ唬?設計思想………………………… </p><p>  (二) 源程序設計………………………… </p><p> ?。ㄈ?、設計表示……………………………</p><p>  三、系統(tǒng)調試 ………………………………</p>&l

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

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

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

6、 設計思想:流程圖</p><p><b>  (二)、源程序設計</b></p><p>  #include<stdio.h> ///宏定義函數</p><p>  #include<stdlib.h> //串操作及內存操作函數</p><p>  #include&l

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

8、 /*定義學號*/</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ū)分大小寫]\n");</p><p>  scanf("%s",&ch1);

10、 /*接收字符*/</p><p>  switch(ch1) /*選擇結構*/</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”,會提示輸入有誤*/</p>&

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

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

15、t;); </p><p>  printf("2 --按學號查詢\n"); </p><p>  printf("3 --按姓名查詢\n"); </p><p>  printf("4 --按籍貫查詢\n"); </p><p>  printf("

16、5 --結束程序\n");</p><p>  printf("***********請選擇您需進行的選項************\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+");/*打開文件并讀取*/ </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>  /*讀取姓名,學號等信息*/</p><p><b>  i++;</b></p><p><b>  n++;</b></p>&

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

21、 </p><p><b>  switch(m)</b></p><p>  /*選擇結構,選擇查詢方式或添加學生信息*/</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("請輸入學號:"); </p><p>  scanf("%d",&num); </p><p>  if(num>10) /*在 “information.txt”這

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

25、; </p><p><b>  } </b></p><p>  system("cls"); </p><p>  for(i=0;i<n;i++)</p><p>  /*依次查詢滿足的學生*/ </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("請輸入需查詢的學生姓名\n"); </p><p>  printf("若輸入錯誤則無法查詢!\n:"); </p><p>  scanf("%s",name); </p><p>  system("cls"); </p

29、><p>  for(i=0;i<n;i++)</p><p>  /*依次查詢滿足的學生*/</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("請輸入籍貫\n"); </p><p>  

32、printf("若輸入錯誤則無法查詢!\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>  /*打開文件并往里寫入信息*/</p><p>  printf("請輸入增加學生的人數:");</p><p>  scanf("%d",&n);</p><p

36、>  printf("請輸入增加學生的姓名、學號、性別、年齡及籍貫:\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("輸入錯誤,請重新輸入!

39、\n");</p><p>  /*若輸入的數字不是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>  (三)、設計表示</b></p><p>  2.3.1 進入到界面</p><p>  printf("*****************歡迎進入學生籍貫信息記錄簿*******************\n");</p><p>  2.3.2選擇程序進行管理</p><p>  print

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

42、<p>  printf("5 --結束程序\n");</p><p>  2.3.3對文件進行讀取,并顯示學生的信息。</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ù)程序為switch語句進行選擇,選擇完畢后會提示是否繼續(xù),繼續(xù)則進入到主菜單,否則退出系統(tǒng)。</p><p><b>  三、系統(tǒng)調試</b></p><p><b>  3.2調試程序</b></p><p>  3.1.1 顯示所有信息</p><

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

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

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

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

50、;<p>  自己做的這個程序雖然簡單,但過程中還是遇到了很多困難。例如對字符串的處理。開始時總是無法顯示輸入的學生姓名,性別,籍貫這三項信息。后來通過自己看書和詢問同學,總算把字符串問題處理得當了。程序雖簡單,調試過程中總是會出現這樣那樣很多錯誤,例如:少分號,未定義等等。有些錯誤很簡單,自己看一下就可以改出來,但有些錯誤怎么也修改不出來,例如簡單的少分號,很多時候加了分號還是沒用!此時只有問同學和請教老師。好在最后是完

51、成了這個程序。</p><p>  四、學生籍貫信息記錄簿的使用說明</p><p>  進入系統(tǒng)后按照提示輸入數字并鍵入enter即可實現你需要的操作。進入后會有提示信息提示用戶應該怎么做,按照提示輸入后再鍵入enter即可實現功能。</p><p>  本系統(tǒng)較為簡單,使用時按照提示操作,輸入所提示的信息后按enter鍵即可。</p><p&

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

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

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

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

溫馨提示

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

評論

0/150

提交評論