2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  一、題目總體介紹4</p><p><b>  二、需求分析5</b></p><p><b>  三、總體設(shè)計(jì)6</b></p><p>  1、現(xiàn)行系統(tǒng)組織結(jié)構(gòu)圖:6</p><p&

2、gt;  2、數(shù)據(jù)結(jié)構(gòu)分析6</p><p><b>  3、工作原理等6</b></p><p><b>  三、詳細(xì)設(shè)計(jì)6</b></p><p>  四.系統(tǒng)調(diào)試與結(jié)果分析19</p><p><b>  六、總結(jié)22</b></p><p&

3、gt;<b>  七、附件22</b></p><p><b>  參考文獻(xiàn)23</b></p><p><b>  一、題目總體介紹</b></p><p>  (一)、課程設(shè)計(jì)題目:</p><p><b>  學(xué)生信息管理</b></p&g

4、t;<p> ?。ǘ?、課程設(shè)計(jì)內(nèi)容與主要功能:</p><p>  設(shè)計(jì)與開發(fā)一個學(xué)生信息管理系統(tǒng),對學(xué)生的學(xué)號、姓名、性別、年齡等基本信息進(jìn)行管理、主要功能如下:</p><p><b>  1).輸入記錄</b></p><p><b>  2).顯示全部記錄</b></p><p&

5、gt;<b>  3).查找記錄</b></p><p><b>  4).刪除記錄</b></p><p><b>  5).插入記錄</b></p><p><b>  6).保存文件</b></p><p><b>  7).讀文件<

6、/b></p><p>  8).按學(xué)號顯示記錄</p><p><b>  9).按姓名排序</b></p><p>  (三)、目的與要求: </p><p><b>  1、目的: </b></p><p>  (1)要求學(xué)生達(dá)到熟練掌握C語言的基本知識和技能;

7、</p><p> ?。?)基本掌握C語言程序設(shè)計(jì)的基本思路和方法; </p><p> ?。?)能夠利用所學(xué)的基本知識和技能,解決簡單的C語言程序設(shè)計(jì)問題。 </p><p><b>  2、基本要求: </b></p><p>  1)設(shè)計(jì)正確,方案合理。</p><p>  2)界面友好,使

8、用方便。</p><p>  3)程序精煉,結(jié)構(gòu)清晰。</p><p><b>  3、創(chuàng)新要求: </b></p><p>  在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。 </p><p>  4、寫出設(shè)計(jì)說明書 </p><p> ?。ㄋ模⒃O(shè)計(jì)方法和基本原理: <

9、/p><p>  1、問題描述(功能要求): </p><p>  (1)能夠從屏幕上讀取一個學(xué)生的信息并將信息存入到數(shù)據(jù)文件中。</p><p> ?。?)能夠?qū)⒅付ǖ男畔奈募袆h除。</p><p>  (3)能夠按學(xué)號、姓名、性別、年齡對學(xué)生的信息進(jìn)行檢索并將檢索結(jié)果顯示在屏幕上。</p><p>  (4)如果檢

10、索不到相應(yīng)的信息應(yīng)提示用戶。 </p><p>  2、問題的解決方案: </p><p>  根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: </p><p> ?。?)寫出需求分析(做什么);</p><p>  (2)分析系統(tǒng)中的各個實(shí)體之間的關(guān)系及其屬性和行為; </p><p> ?。?)根據(jù)問題描述,設(shè)計(jì)系

11、統(tǒng)的類層次; </p><p>  (4)完成類層次中各個類的描述(包括屬性和方法); </p><p> ?。?)完成類中各個成員函數(shù)的定義; </p><p> ?。?)用戶界面的設(shè)計(jì); </p><p> ?。?)分析系統(tǒng)功能模塊(系統(tǒng)流程圖);</p><p> ?。?)代碼編寫,功能調(diào)試;</p>

12、<p> ?。?)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。</p><p><b>  二、需求分析</b></p><p>  (1)能夠從屏幕上讀取一個學(xué)生的信息并將信息存入到數(shù)據(jù)文件中。</p><p> ?。?)能夠?qū)⒅付ǖ男畔奈募袆h除。</p><p>  (3)能夠按學(xué)號、姓名、性別、年齡對學(xué)生

13、的信息進(jìn)行檢索并將檢索結(jié)果顯示在屏幕上。</p><p>  (7)如果檢索不到相應(yīng)的信息應(yīng)提示用戶。</p><p><b>  三、總體設(shè)計(jì)</b></p><p>  1、現(xiàn)行系統(tǒng)組織結(jié)構(gòu)圖:</p><p><b>  2、數(shù)據(jù)結(jié)構(gòu)分析</b></p><p>  使

14、用整型,雙精度,字符型定義變量和函數(shù)。使用結(jié)構(gòu)體,類等概念實(shí)現(xiàn)數(shù)據(jù)存儲。同時也是用這些自定義類型定義了變量和函數(shù)。體現(xiàn)面向?qū)ο笤O(shè)計(jì)的特點(diǎn)。</p><p><b>  3、工作原理等</b></p><p><b>  系統(tǒng)功能結(jié)構(gòu)圖:</b></p><p><b>  四、詳細(xì)設(shè)計(jì)</b><

15、/p><p><b>  1、類設(shè)計(jì)</b></p><p>  類:student </p><p><b>  數(shù)據(jù)成員</b></p><p>  學(xué)號,姓名,性別,年齡 </p><p><b>  類:school</b></p>&

16、lt;p><b>  成員函數(shù)</b></p><p>  輸入記錄函數(shù)enter ():輸入編號到計(jì)算機(jī)中;</p><p>  顯示記錄函數(shù)list():顯示全部輸入的內(nèi)容,如學(xué)號、姓名、性別、年齡等;</p><p>  按姓名查找顯示記錄函數(shù)search ():按學(xué)號或姓名查找學(xué)生的信息;</p><p>

17、  刪除記錄函數(shù)delete():刪除指定學(xué)號學(xué)生信息;</p><p>  插入記錄函數(shù)add():插入指定學(xué)號學(xué)生信息;</p><p>  記錄保存為文件函數(shù)save():將學(xué)生信息保存為文件函數(shù);</p><p>  從文件中讀記錄函數(shù)load():從文件中讀出學(xué)生信息;</p><p>  按序號查找顯示記錄函數(shù)display():

18、按序號查找學(xué)生信息;</p><p>  按姓名排序函數(shù)sort():按學(xué)生姓名排序;</p><p>  文件復(fù)制函數(shù)copy():將文件復(fù)制;</p><p>  顯示單條記錄函數(shù)print(STUDENTS temp);顯示單條學(xué)生信息;</p><p>  查找函數(shù)find(STUDENTS t[],int n,char *s):查找

19、學(xué)生信息;</p><p>  輸出函數(shù)menu_select():輸出學(xué)生信息;</p><p>  五.系統(tǒng)調(diào)試與結(jié)果分析</p><p><b>  1、初始目錄:</b></p><p><b>  2、輸入數(shù)據(jù):</b></p><p><b>  3、顯

20、示所有記錄:</b></p><p><b>  4、查找記錄:</b></p><p><b>  5、刪除記錄:</b></p><p><b>  6、插入記錄:</b></p><p><b>  7、按姓名排序</b></p&g

21、t;<p><b>  8、復(fù)制信息</b></p><p><b>  9、按序號排序</b></p><p>  2.系統(tǒng)運(yùn)行的結(jié)果:</p><p>  設(shè)計(jì)特點(diǎn)和不足之處:</p><p>  系統(tǒng)整體清晰明了,功能基本齊全,但系統(tǒng)中報(bào)錯功能不完整,當(dāng)學(xué)號等信息輸入數(shù)字等時不出

22、現(xiàn)報(bào)錯,可設(shè)置提醒重新輸入。</p><p><b>  六、總結(jié)</b></p><p>  1、在做了課程實(shí)驗(yàn)以后,我對C語言的了解更深了,很多知識得到了鞏</p><p>  固,一些不懂的知識也漸漸明了!但從C語言這門課程開始,已發(fā)現(xiàn)程序</p><p>  設(shè)計(jì)的樂趣,在學(xué)習(xí)C語言的過程中也學(xué)到了許多計(jì)算機(jī)應(yīng)用

23、基礎(chǔ)知識,對計(jì)</p><p>  算機(jī)的機(jī)體也有了一個大體的了解</p><p>  2、作了學(xué)生學(xué)生信息管理系統(tǒng)程序后,我對數(shù)據(jù)類型、函數(shù)、指針、結(jié)</p><p>  構(gòu)體更加熟悉了,作為C語言所特有得指針、結(jié)構(gòu)體和對象再編寫程</p><p>  序得過程中運(yùn)用十分廣泛,我還必須多加練習(xí)才能達(dá)到一個更高的水</p>&l

24、t;p>  平,結(jié)構(gòu)體和對象、指針都是非常重要的。</p><p>  3、這次實(shí)訓(xùn)是彭禎老師給了很大引導(dǎo),經(jīng)過自己的改寫,實(shí)現(xiàn)要</p><p>  求。先做簡單的輸出,一步步的再做其它圖案,在實(shí)際操作過程中犯</p><p>  的一些錯誤還會有意外的收獲,感覺實(shí)訓(xùn)很有意思。在具體操作中對</p><p>  這學(xué)期所學(xué)的C語言的理

25、論知識得到鞏固,達(dá)到實(shí)訓(xùn)的基本目的,也</p><p>  發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同時體會到C語</p><p>  言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)實(shí)訓(xùn)的</p><p>  重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。 </p><p>  4、在完完整整的做完一個課程實(shí)驗(yàn)后,我對程序的整體性

26、有了一個明確</p><p>  的認(rèn)識,做一個程序必須要注意程序前后的聯(lián)系,要具有清晰的思路,</p><p>  程序要具有層次。對整體性的把握至關(guān)重要!</p><p>  5、學(xué)習(xí)計(jì)算機(jī)語言,最重要的就是上機(jī)操作,我深感自己動手能力比較</p><p>  差,在以后的學(xué)習(xí)中,還必須多多上機(jī)調(diào)試程序,從實(shí)踐中多積累經(jīng)</p>

27、;<p>  驗(yàn),為以后學(xué)習(xí)和工作打下堅(jiān)實(shí)的基礎(chǔ)。</p><p><b>  七、附件</b></p><p>  /******頭文件(.h)***********/ </p><p>  #include <stdio.h> /*I/O函數(shù)*/ </p><p>  #include

28、<stdlib.h> /*標(biāo)準(zhǔn)庫函數(shù)*/ </p><p>  #include <string.h>/*字符串函數(shù)*/ </p><p>  #include <ctype.h>/*字符操作函數(shù)*/ </p><p>  #define M 50 /*定義常數(shù)表示記錄數(shù)*/ </p><p>  typ

29、edef struct /*定義數(shù)據(jù)結(jié)構(gòu)*/ </p><p><b>  { </b></p><p>  char no[20];/*學(xué)號*/ </p><p>  char name[20]; /*姓名*/ </p><p>  char sex[5];/*性別*/ </p><p>  i

30、nt age;/*年齡*/ </p><p>  }STUDENTS; </p><p>  /******以下是函數(shù)原型*******/ </p><p>  int enter(STUDENTS t[]); /*輸入記錄*/ </p><p>  void list(STUDENTS t[],int n); /*顯示記錄*/ </

31、p><p>  void search(STUDENTS t[],int n); /*按姓名查找顯示記錄*/ </p><p>  int delete(STUDENTS t[],int n); /*刪除記錄*/ </p><p>  int add(STUDENTS t[],int n); /*插入記錄*/ </p><p>  void s

32、ave(STUDENTS t[],int n); /*記錄保存為文件*/</p><p>  int load(STUDENTS t[]); /*從文件中讀記錄*/ </p><p>  void display(STUDENTS t[]); /*按序號查找顯示記錄*/ </p><p>  void sort(STUDENTS t[],int n); /*按姓名

33、排序*/ </p><p>  void copy(); /*文件復(fù)制*/ </p><p>  void print(STUDENTS temp); /*顯示單條記錄*/ </p><p>  int find(STUDENTS t[],int n,char *s) ; /*查找函數(shù)*/ </p><p>  int menu_selec

34、t(); /*主菜單函數(shù)*/ </p><p>  /******主函數(shù)開始*******/ </p><p><b>  main() </b></p><p><b>  { </b></p><p>  STUDENTS stu[M]; /*定義結(jié)構(gòu)體數(shù)組*/ </p>&l

35、t;p>  int length; /*保存記錄長度*/ </p><p>  clrscr(); /*清屏*/ </p><p>  for(;;)/*無限循環(huán)*/ </p><p><b>  { </b></p><p>  switch(menu_select()) /*調(diào)用主菜單函數(shù),返回值整數(shù)作

36、開關(guān)語句的條件*/ </p><p><b>  { </b></p><p>  case 0:length=enter(stu);break;/*輸入記錄*/ </p><p>  case 1:list(stu,length);break; /*顯示全部記錄*/ </p><p>  case 2:search(s

37、tu,length);break; /*查找記錄*/ </p><p>  case 3:length=delete(stu,length);break; /*刪除記錄*/ </p><p>  case 4:length=add(stu,length); break; /*插入記錄*/ </p><p>  case 5:save(stu,length);b

38、reak; /*保存文件*/ </p><p>  case 6:length=load(stu); break; /*讀文件*/ </p><p>  case 7:display(stu);break; /*按序號顯示記錄*/ </p><p>  case 8:sort(stu,length);break; /*按姓名排序*/ </p><

39、;p>  case 9:copy();break; /*復(fù)制文件*/ </p><p>  case 10:exit(0); /*如返回值為11則程序結(jié)束*/ </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } <

40、;/b></p><p>  /*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項(xiàng)*/ </p><p>  menu_select() </p><p><b>  { </b></p><p>  char s[80]; </p><p><b>  int c; </b&g

41、t;</p><p>  gotoxy(1,25);/*將光標(biāo)定為在第25行,第1列*/ </p><p>  printf("press any key enter menu......\n");/*提示壓任意鍵繼續(xù)*/ </p><p>  getch(); /*讀入任意字符*/ </p><p>  clrscr()

42、; /*清屏*/ </p><p>  gotoxy(1,1); </p><p>  printf("********************MENU*********************\n\n"); </p><p>  printf(" 0. Enter record\n"); </p

43、><p>  printf(" 1. List the file\n"); </p><p>  printf(" 2. Search record on name\n"); </p><p>  printf(" 3. Delete a recor

44、d\n"); </p><p>  printf(" 4. add record \n"); </p><p>  printf(" 5. Save the file\n"); </p><p>  printf(" 6. Load t

45、he file\n"); </p><p>  printf(" 7. display record on order\n"); </p><p>  printf(" 8. sort to make new file\n"); </p><p>  printf(&q

46、uot; 9. copy the file to new file\n"); </p><p>  printf(" 10. Quit\n"); </p><p>  printf("***********************************************\n"); &l

47、t;/p><p><b>  do{ </b></p><p>  printf("\n Enter you choice(0~10):"); /*提示輸入選項(xiàng)*/ </p><p>  scanf("%s",s); /*輸入選擇項(xiàng)*/ </p><p>  c=ato

48、i(s); /*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/ </p><p>  }while(c<0||c>10); /*選擇項(xiàng)不在0~11之間重輸*/ </p><p>  return c; /*返回選擇項(xiàng),主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/ </p><p><b>  } </b></p><p>  /***輸

49、入記錄,形參為結(jié)構(gòu)體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/ </p><p>  int enter(STUDENTS t[]) </p><p><b>  { </b></p><p><b>  int i,n; </b></p><p><b>  char *s; <

50、/b></p><p>  clrscr(); /*清屏*/ </p><p>  printf("\nplease input num \n"); /*提示信息*/ </p><p>  scanf("%d",&n); /*輸入記錄數(shù)*/ </p><p>  printf("

51、please input record \n"); /*提示輸入記錄*/ </p><p>  printf("no name sex age\n"); </p><p>  printf("-----------------------------------------------

52、-\n"); </p><p>  for (i=0;i<n;i++) </p><p><b>  { </b></p><p>  scanf("%s",t[i].no);</p><p>  scanf("%s",t[i].name);</p>

53、<p>  scanf("%s",t[i].sex);</p><p>  scanf("%d",&t[i].age);</p><p><b>  } </b></p><p>  return n; /*返回記錄條數(shù)*/ </p><p><b>

54、  } </b></p><p>  /*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/ </p><p>  void list(STUDENTS t[],int n) </p><p><b>  { </b></p><p><b>  int i; </b></p><

55、;p>  clrscr(); </p><p>  printf("\n\n*******************STUDENTS******************\n"); </p><p>  printf("no name sex age\n"); </p>

56、<p>  printf("------------------------------------------------\n"); </p><p>  for(i=0;i<n;i++) </p><p>  printf("%-20s%-20s%-10s%-10d\n",t[i].no,t[i].name,t[i].sex,t

57、[i].age); </p><p>  if((i+1)%10==0) /*判斷輸出是否達(dá)到10條記錄*/ </p><p><b>  { </b></p><p>  printf("Press any key continue...\n"); /*提示信息*/ </p><p>  get

58、ch(); /*壓任意鍵繼續(xù)*/ </p><p><b>  } </b></p><p>  printf("************************end*******************\n"); </p><p><b>  } </b></p><p>

59、<b>  /*查找記錄*/ </b></p><p>  void search(STUDENTS t[],int n) </p><p><b>  { </b></p><p>  char s[20]; /*保存待查找姓名字符串*/ </p><p>  int i; /*保存查找到

60、結(jié)點(diǎn)的序號*/ </p><p>  clrscr(); /*清屏*/ </p><p>  printf("please search name\n"); </p><p>  scanf("%s",s); /*輸入待查找姓名*/ </p><p>  i=find(t,n,s); /*調(diào)用fin

61、d函數(shù),得到一個整數(shù)*/ </p><p>  if(i>n-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ </p><p>  printf("not found\n"); </p><p><b>  else </b></p><p>  print(t[i]); /*找到,調(diào)用顯

62、示函數(shù)顯示記錄*/ </p><p><b>  } </b></p><p>  /*顯示指定的一條記錄*/ </p><p>  void print(STUDENTS temp) </p><p><b>  { </b></p><p>  clrscr(); <

63、;/p><p>  printf("\n\n********************************************\n"); </p><p>  printf("no name sex age\n"); </p><p>  printf(&qu

64、ot;------------------------------------------------\n"); </p><p>  printf("%-20s%-20s%-10s%-10d\n",temp.no,temp.name,temp.sex,temp.age); </p><p>  printf("*******************

65、***end***********************\n"); </p><p><b>  } </b></p><p>  /*查找函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)以及姓名s */ </p><p>  int find(STUDENTS t[],int n,char *s) </p><p><

66、b>  { </b></p><p><b>  int i; </b></p><p>  for(i=0;i<n;i++)/*從第一條記錄開始,直到最后一條*/ </p><p><b>  { </b></p><p>  if(strcmp(s,t[i].name)=

67、=0)/*記錄中的姓名和待比較的姓名是否相等*/ </p><p>  return i; /*相等,則返回該記錄的下標(biāo)號,程序提前結(jié)結(jié)束*/ </p><p><b>  } </b></p><p>  return i; /*返回i值*/ </p><p><b>  } </b><

68、;/p><p>  /*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/ </p><p>  int delete(STUDENTS t[],int n) </p><p><b>  { </b></p><p>  char s[20]; /*要刪除記錄的姓名*/ </p><p>  int ch=0

69、; </p><p><b>  int i,j; </b></p><p>  printf("please deleted name\n"); /*提示信息*/ </p><p>  scanf("%s",s);/*輸入姓名*/ </p><p>  i=find(t,n,s)

70、; /*調(diào)用find函數(shù)*/ </p><p>  for(;i<n;i++) </p><p><b>  { </b></p><p>  strcpy(t[i].name,t[i+1].name); </p><p>  strcpy(t[i].no,t[i+1].no); </p><p

71、>  strcpy(t[i].sex,t[i+1].sex); </p><p>  t[i].age=t[i+1].age; </p><p><b>  } </b></p><p><b>  n--; </b></p><p>  return n; /*

72、返回記錄數(shù)*/ </p><p><b>  } </b></p><p>  /*插入記錄函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/ </p><p>  int add(STUDENTS t[],int n)/*插入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/ </p><p><b>  { </b></

73、p><p>  STUDENTS temp; /*新插入記錄信息*/ </p><p><b>  int i,j; </b></p><p>  char s[20]; /*確定插入在哪個記錄之前*/ </p><p>  printf("please input record\n"); </p

74、><p>  printf("************************************************\n"); </p><p>  printf("no name sex age\n"); </p><p>  printf("

75、--------------------------------------------------\n"); </p><p>  scanf("%s%s%s%d",temp.no,temp.name,temp.sex,&temp.age); /*輸入插入信息*/ </p><p>  printf("-------------------

76、-----------------------------\n"); </p><p>  printf("please input locate name \n"); </p><p>  scanf("%s",s); /*輸入插入位置的姓名*/ </p><p>  i=find(t,n,s); /*調(diào)用fin

77、d,確定插入位置*/ </p><p>  for(j=n-1;j>=i;j--) /*從最后一個結(jié)點(diǎn)開始向后移動一條*/ </p><p><b>  { </b></p><p>  strcpy(t[j+1].no,t[j].no); /*當(dāng)前記錄的學(xué)號拷貝到后一條*/ </p><p>  strcpy

78、(t[j+1].name,t[j].name); /*當(dāng)前記錄的姓名拷貝到后一條*/ </p><p>  strcpy(t[j+1].sex,t[j].sex); /*當(dāng)前記錄的性別拷貝到后一條*/ </p><p>  t[j+1].age=t[j].age; /*當(dāng)前記錄的年齡拷貝到后一條*/ </p><p><b>  } </b>&

79、lt;/p><p>  strcpy(t[i].no,temp.no); /*將新插入記錄的學(xué)號拷貝到第i個位置*/ </p><p>  strcpy(t[i].name,temp.name); /*將新插入記錄的姓名拷貝到第i個位置*/ </p><p>  strcpy(t[i].sex,temp.sex); /*將新插入記錄的性別拷貝到第i個位置*/ </

80、p><p>  t[i].age = temp.age; /*將新插入記錄的年齡拷貝到第i個位置*/ </p><p>  n++; /*記錄數(shù)加1*/ </p><p>  return n; /*返回記錄數(shù)*/ </p><p><b>  } </b></p><p>  /*保存函數(shù),參數(shù)

81、為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/ </p><p>  void save(STUDENTS t[],int n) </p><p><b>  { </b></p><p><b>  int i; </b></p><p>  FILE *fp; /*指向文件的指針*/ </p><

82、;p>  if((fp=fopen("record.txt","wb"))==NULL) /*打開文件,并判斷打開是否正常*/ </p><p><b>  { </b></p><p>  printf("can not open file\n");/*沒打開*/ </p><p

83、>  exit(1); /*退出*/ </p><p><b>  } </b></p><p>  printf("\nSaving file\n"); /*輸出提示信息*/ </p><p>  fprintf(fp,"%d",n); /*將記錄數(shù)寫入文件*/ </p><

84、;p>  fprintf(fp,"\r\n"); /*將換行符號寫入文件*/ </p><p>  for(i=0;i<n;i++) </p><p><b>  { </b></p><p>  fprintf(fp,"%-20s%-30s%-10s%-10d",t[i].no,t[i].

85、name,t[i].sex,t[i].age);/*格式寫入記錄*/ </p><p>  fprintf(fp,"\r\n"); /*將換行符號寫入文件*/ </p><p><b>  } </b></p><p>  fclose(fp);/*關(guān)閉文件*/ </p><p>  printf(&

86、quot;****save success***\n"); /*顯示保存成功*/ </p><p><b>  } </b></p><p>  /*讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/ </p><p>  int load(STUDENTS t[]) </p><p><b>  { </b>

87、;</p><p><b>  int i,n; </b></p><p>  FILE *fp; /*指向文件的指針*/ </p><p>  if((fp=fopen("record.txt","rb"))==NULL)/*打開文件*/ </p><p><b>  

88、{ </b></p><p>  printf("can not open file\n"); /*不能打開*/ </p><p>  exit(1); /*退出*/ </p><p><b>  } </b></p><p>  fscanf(fp,"%d",&a

89、mp;n); /*讀入記錄數(shù)*/ </p><p>  for(i=0;i<n;i++) </p><p>  fscanf(fp,"%20s%30s%10s%10d",t[i].no,t[i].name,t[i].sex,&t[i].age); /*按格式讀入記錄*/ </p><p>  fclose(fp); /*關(guān)閉文件*

90、/ </p><p>  printf("You have success read data from file!!!\n"); /*顯示保存成功*/ </p><p>  return n; /*返回記錄數(shù)*/ </p><p><b>  } </b></p><p>  /*按序號顯示記錄函數(shù)

91、*/ </p><p>  void display(STUDENTS t[]) </p><p><b>  { </b></p><p>  int id,n; </p><p>  FILE *fp; /*指向文件的指針*/ </p><p>  if((fp=fopen("rec

92、ord.txt","rb"))==NULL) /*打開文件*/ </p><p><b>  { </b></p><p>  printf("can not open file\n"); /*不能打開文件*/ </p><p>  exit(1); /*退出*/ </p>&l

93、t;p><b>  } </b></p><p>  printf("Enter order number...\n"); /*顯示信息*/ </p><p>  scanf("%d",&id); /*輸入序號*/ </p><p>  fscanf(fp,"%d",&

94、amp;n); /*從文件讀入記錄數(shù)*/ </p><p>  if(id>=0&&id<n) /*判斷序號是否在記錄范圍內(nèi)*/ </p><p><b>  { </b></p><p>  fseek(fp,(id-1)*sizeof(STUDENTS),1); /*移動文件指針到該記錄位置*/ </p&g

95、t;<p>  print(t[id]); /*調(diào)用輸出函數(shù)顯示該記錄*/ </p><p>  printf("\r\n"); </p><p><b>  } </b></p><p><b>  else </b></p><p>  printf("

96、;no %d number record!!!\n ",id); /*如果序號不合理顯示信息*/ </p><p>  fclose(fp); /*關(guān)閉文件*/ </p><p><b>  } </b></p><p>  /*排序函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/ </p><p>  void sort

97、(STUDENTS t[],int n) </p><p><b>  { </b></p><p>  int i,j,flag; </p><p>  STUDENTS temp; /*臨時變量做交換數(shù)據(jù)用*/ </p><p>  for(i=0;i<n;i++) </p><p>&

98、lt;b>  { </b></p><p>  flag=0; /*設(shè)標(biāo)志判斷是否發(fā)生過交換*/ </p><p>  for(j=0;j<n-1;j++) </p><p>  if((strcmp(t[j].name,t[j+1].name))>0) /*比較大小*/ </p><p><b> 

99、 { </b></p><p>  temp=t[j]; t[j]=t[j+1];t[j+1]=temp;</p><p><b>  flag++; </b></p><p><b>  } </b></p><p>  if(flag==0)break; /*如果標(biāo)志為0,說明沒有

100、發(fā)生過交換循環(huán)結(jié)束*/ </p><p><b>  } </b></p><p>  printf("sort sucess!!!\n"); /*顯示排序成功*/ </p><p><b>  } </b></p><p><b>  /*復(fù)制文件*/ </b&

101、gt;</p><p>  void copy() </p><p><b>  { </b></p><p>  char outfile[20]; /*目標(biāo)文件名*/ </p><p><b>  int i,n; </b></p><p>  STUDENTS temp

102、[M]; /*定義臨時變量*/ </p><p>  FILE *sfp,*tfp; /*定義指向文件的指針*/ </p><p>  clrscr();/*清屏*/ </p><p>  if((sfp=fopen("record.txt","rb"))==NULL) /*打開記錄文件*/ </p><

103、p><b>  { </b></p><p>  printf("can not open file\n"); /*顯示不能打開文件信息*/ </p><p>  exit(1); /*退出*/ </p><p><b>  } </b></p><p>  printf(

104、"Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示信息*/ </p><p>  scanf("%s",outfile); /*輸入目標(biāo)文件名*/ </p><p>  if((tfp=fopen(outfile,"wb"))==NULL) /*打開目標(biāo)文件*/ &l

105、t;/p><p><b>  { </b></p><p>  printf("can not open file\n"); /*顯示不能打開文件信息*/ </p><p>  exit(1); /*退出*/ </p><p><b>  } </b></p><

106、p>  fscanf(sfp,"%d",&n); /*讀出文件記錄數(shù)*/ </p><p>  fprintf(tfp,"%d",n);/*寫入目標(biāo)文件數(shù)*/ </p><p>  fprintf(tfp,"\r\n"); /*寫入換行符*/ </p><p>  for(i=0;i<n

107、;i++) </p><p><b>  { </b></p><p>  fscanf(sfp,"%20s%30s%10s%10d\n",temp[i].no,temp[i].name,temp[i].sex,&temp[i].age); /*讀入記錄*/ </p><p>  fprintf(tfp,"

108、%-20s%-30s%-10s%-10d\n",temp[i].no,temp[i].name,temp[i].sex,temp[i].age); /*寫入記錄*/ </p><p>  fprintf(tfp,"\r\n"); /*寫入換行符*/ </p><p><b>  } </b></p><p>  f

109、close(sfp); /*關(guān)閉源文件*/ </p><p>  fclose(tfp); /*關(guān)閉目標(biāo)文件*/ </p><p>  printf("you have success copy file!!!\n"); /*顯示復(fù)制成功*/ </p><p><b>  }</b></p><p>

溫馨提示

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

最新文檔

評論

0/150

提交評論