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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)</b></p><p>  學(xué) 號 _ </p><p>  班 級 ___ _____ </p><p>  姓 名 _ __ __</p><p>  指導(dǎo)教師 __ ______</p><p>  2010年 10 月

2、 08 日</p><p><b>  目錄</b></p><p><b>  一、需求分析1</b></p><p><b>  二、設(shè)計(jì)分析2</b></p><p>  三、主要界面截圖7</p><p><b>  四、技術(shù)要點(diǎn)

3、8</b></p><p><b>  五、個(gè)人總結(jié)10</b></p><p><b>  六、參考文獻(xiàn)11</b></p><p><b>  七、源程序11</b></p><p><b>  一、需求分析</b></p&g

4、t;<p>  經(jīng)過對程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為五個(gè)模塊,其中每一個(gè)模塊對應(yīng)一個(gè)函數(shù),他們的功能分別是:錄入新教材信息,添加已有教材,查找教材信息,保存教材函數(shù)。在這些函數(shù)當(dāng)中,前三個(gè)函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而最后一個(gè)函數(shù)用來將修改的函數(shù)保存在book.txt中。</p><p><b>  1. 穩(wěn)定性分析</b></p><

5、p>  指系統(tǒng)比較健壯,只要是用戶的合理操作,系統(tǒng)都應(yīng)給出合理正確的回應(yīng),而不是出現(xiàn)令用戶感到意外的系統(tǒng)錯(cuò)誤或系統(tǒng)崩潰。</p><p><b>  2. 主要功能分析</b></p><p> ?。?)錄入教材信息:允許用戶輸入教材名稱、作者、出版社、教材冊數(shù)、編號、售價(jià)。</p><p> ?。?)查詢教材: 允許按照編號和書名對教材

6、的各項(xiàng)信息進(jìn)行查詢; </p><p> ?。?)添加已有教材: 通過添加已有教材的同時(shí)對教材信息的更改;</p><p>  (4)保存教材函數(shù) 將執(zhí)行插入教材信息存入book.txt中。</p><p>  除上面介紹的功能之外,程序還具有退出功能,可以在輸入修改信息之后實(shí)現(xiàn)選擇退出。</p><p>  每一本教材記錄都包含編號、作者

7、、出版社、售價(jià)、書名和數(shù)量,在程序當(dāng)中,將教材記錄類型定義為結(jié)構(gòu)體類型,添加以及追加的教材信息直接寫入book.txt文件中,其他函數(shù)每次對教材記錄的訪問,其數(shù)據(jù)來源都是book.txt文件,這樣做不但可以保證教材數(shù)據(jù)的一致性,而且可以對教材數(shù)據(jù)進(jìn)行保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)。</p><p><b>  二、設(shè)計(jì)分析</b></p><p>  主要

8、有5個(gè)功能模塊,每個(gè)模塊對應(yīng)一個(gè)C語言自定義函數(shù)。這些函數(shù)原型及其功能簡述如下:</p><p><b>  教材錄入函數(shù)說明</b></p><p>  這個(gè)函數(shù)用static聲明局部變量,使函數(shù)調(diào)用結(jié)束后不消失而保留原值。用只寫的方式打開一個(gè)文件夾(book.txt)把數(shù)據(jù)項(xiàng)寫入指定文件(book.txt)中。關(guān)閉文件。</p><p>&

9、lt;b>  2、教材查詢的函數(shù)</b></p><p>  該函數(shù)的核心內(nèi)容是switch函數(shù)的使用、for函數(shù)的嵌套使用與strcmp比較字符串函數(shù)的使用。</p><p>  3、已有教材添加函數(shù)</p><p>  該函數(shù)的核心內(nèi)容是if函數(shù)嵌套和for函數(shù)的使用以及strcmp比較字符串函數(shù)的使用</p><p>

10、  4、教材信息保存函數(shù)</p><p>  這個(gè)函數(shù)先建立一個(gè)文件并把具體的信息存入文件中</p><p><b>  1、程序總體結(jié)構(gòu)圖</b></p><p><b>  程序結(jié)構(gòu)總圖 </b></p><p><b>  2、具體功能框圖</b></p>

11、<p> ?。?)錄入新教材信息函數(shù)</p><p><b>  (2)查詢教材信息</b></p><p> ?。?)添加已有教材信息</p><p> ?。?)保存教材信息函數(shù)</p><p><b>  三、主要界面截圖</b></p><p><b&

12、gt;  圖1 程序主界面</b></p><p><b>  圖2 錄入界面</b></p><p><b>  圖3 查詢界面</b></p><p><b>  四、技術(shù)要點(diǎn)</b></p><p> ?。▽Ρ境绦蜇暙I(xiàn)較大的C語言知識(shí)點(diǎn);重要算法的設(shè)計(jì)與實(shí)現(xiàn))

13、</p><p><b>  1、結(jié)構(gòu)體的應(yīng)用</b></p><p>  定義了結(jié)構(gòu)體用來描述教材的名稱、作者、出版社、編號、冊數(shù)和售價(jià),具體的定義如下:</p><p>  #define B 1000 </p><p>  typedef struct Bo

14、ok </p><p>  { char num[20];</p><p>  char name[20]; </p><p>  char author[20];

15、 </p><p>  char press[20]; </p><p>  int count; </p><p>  float shoujia;</p><p><b>  }book[B];</b><

16、;/p><p>  struct Book books[B];</p><p>  所定義的結(jié)構(gòu)體主要用于定義數(shù)組。</p><p><b>  2、文件操作</b></p><p>  包括了文件的寫入、讀取和保存三個(gè)方面。例如如下程序段用于保存教材信息:</p><p>  void save()

17、 </p><p><b>  {</b></p><p>  int i = 0; </p><p><b>  FILE *fp;</b><

18、;/p><p>  fp = fopen("e:\\book.txt", "wr"); </p><p>  while(books[i].count > 0) </p><p><b>  {</b></p&

19、gt;<p>  fprintf(fp, "教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n", books[i].name, books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia); </p><p>  i++;

20、 </p><p><b>  }</b></p><p>  fclose(fp); </p><p><b>  }</

21、b></p><p><b>  3、關(guān)于查詢函數(shù)</b></p><p>  實(shí)現(xiàn)從系統(tǒng)中查詢某教材的相關(guān)信息的查詢函數(shù)稍微復(fù)雜一些,需要先進(jìn)行選擇是通過名稱查詢還是編號查詢。如下是通過教材名稱查詢的函數(shù):</p><p>  void chaxun() /*教材查詢*/</p><p>  { FILE *

22、fp;</p><p>  int i,flag=0; </p><p>  int a; </p><p>  char x[32];

23、 </p><p>  char y[32];</p><p>  if((fp=fopen("e:\\book.txt","r"))==NULL)</p><p><b>  {</b></p><p&

24、gt;  printf("此文件無法打開!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("請選擇查詢方式:1.教材名 2.編號\n");</p><p>  sca

25、nf("%d",&a);</p><p>  switch(a) </p><p><b>  {</b></p><p>  case 1: printf("輸入教材名:\n");scanf(&quo

26、t;%s",x);</p><p>  for(i=0;i<1000;i++) </p><p>  if (strcmp(books[i].name,x)==0) /*比較輸入名與存儲(chǔ)名的字符串大小*/</p><p>  {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",b

27、ooks[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p><p><b>  flag=1;</b></p><p><b>  }</b></p><p>  if(flag==0) <

28、;/p><p>  printf("此教材不存在\n");</p><p><b>  break;</b></p><p><b>  五、個(gè)人總結(jié)</b></p><p>  C語言是一門既有趣又非常有用的課程,說難也不難,但是也不簡單,只要會(huì)很好的應(yīng)用,便會(huì)覺得編程過程也并不感

29、覺枯燥,當(dāng)程序編完且運(yùn)行成功之后,便覺得非常有成就感,雖然有時(shí)也會(huì)被一時(shí)解決不了的問題弄的焦頭爛額,但在解決的過程中逐漸的、更深的掌握這門課程的知識(shí),所以,這一周的C語言課程設(shè)計(jì)實(shí)習(xí)的收獲是非常的大的,甚至還有一點(diǎn)覺得實(shí)習(xí)的時(shí)間有點(diǎn)短。通過這次c語言課程設(shè)計(jì),我對C語言的知識(shí)進(jìn)行了比較全面的學(xué)習(xí),了解到C語言的簡單編程的實(shí)際應(yīng)用。</p><p>  我的程序基本功能符合題目要求,但也并不是太完美。例如在輸入教材

30、冊數(shù)的時(shí)候如果輸入的不是數(shù)字的話,不會(huì)有提示。我始終沒有想到解決的辦法……</p><p>  通過此次課程設(shè)計(jì),我熟悉了函數(shù)的調(diào)用,指針的應(yīng)用,數(shù)組的運(yùn)用。程序可以實(shí)現(xiàn)題目所要求各項(xiàng),知道了實(shí)踐并真正上機(jī)操作的意義。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  1 譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2009&

31、lt;/p><p><b>  七、源程序</b></p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #define

32、B 1000 </p><p>  typedef struct Book /*定義教材結(jié)構(gòu)體*/</p><p>  { char num[20];</p><p>  char name[20];

33、 </p><p>  char author[20]; </p><p>  char press[20]; </p><

34、;p>  int count; </p><p>  float shoujia;</p><p><b>  }book[B];</b></p><p>  struct Book books[B]; </p><p>  void luru() /*錄入

35、教材信息*/</p><p><b>  {</b></p><p>  static int i = 0; </p><p>  printf("\n請輸入教材名稱:");</p><p>  sca

36、nf("%s", books[i].name);</p><p>  printf("請輸入作者:");</p><p>  scanf("%s", books[i].author);</p><p>  printf("請輸入出版社:");</p><p>  

37、scanf("%s", books[i].press);</p><p>  printf("請輸入教材冊數(shù):");</p><p>  scanf("%d", &books[i].count);</p><p>  printf("請輸入編號:");</p>&l

38、t;p>  scanf("%s", books[i].num);</p><p>  printf("請輸入售價(jià):");</p><p>  scanf("%f", &books[i].shoujia);</p><p>  printf("教材錄入結(jié)束.\n");<

39、/p><p><b>  i++;</b></p><p><b>  }</b></p><p>  void tianjia() /*教材添加*/</p><p><b>  { &l

40、t;/b></p><p>  int i,count;</p><p>  char name[10];</p><p>  printf("\n請輸入教材名稱:");</p><p>  scanf("%s",name);</p><p>  for(i=0;i<

41、1000;i++)</p><p>  { if(strcmp(books[i].name,name)==0)</p><p>  { printf("\n輸入添加冊數(shù):");</p><p>  scanf("%d", &count);</p><p>  books[i].coun

42、t += count; </p><p>  printf("\n教材已添加\n");</p><p><b>  break;</b></p><p><b>  }</b></p><

43、p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n無此教材\n");</p><p><b>  break;</b></p><p><b>  }</b><

44、/p><p><b>  }</b></p><p><b>  }</b></p><p>  void save() </p><p><b>  {</b></p><p>  

45、int i = 0; </p><p><b>  FILE *fp;</b></p><p>  fp = fopen("e:\\book.txt", "wr"); </p><p

46、>  while(books[i].count > 0) </p><p><b>  {</b></p><p>  fprintf(fp, "教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n", books[i].name, books

47、[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia); </p><p>  i++; </p><p><b>  }</b></p

48、><p>  fclose(fp); </p><p><b>  }</b></p><p>  void chaxun() /*教材查詢*/</p><p>  { FILE *fp;</p><p&

49、gt;  int i,flag=0; </p><p>  int a; </p><p>  char x[32];

50、 </p><p>  char y[32];</p><p>  if((fp=fopen("e:\\book.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("此文件

51、無法打開!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("請選擇查詢方式:1.教材名 2.編號\n");</p><p>  scanf("%d",&am

52、p;a);</p><p>  switch(a) </p><p><b>  {</b></p><p>  case 1: printf("輸入教材名:\n");scanf("%s",x);</p&

53、gt;<p>  for(i=0;i<1000;i++) </p><p>  if (strcmp(books[i].name,x)==0) /*比較輸入名與存儲(chǔ)名的字符串大小*/</p><p>  {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",books[i].name,books[i]

54、.author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p><p><b>  flag=1;</b></p><p><b>  }</b></p><p>  if(flag==0) </p><p>  p

55、rintf("此教材不存在\n");</p><p><b>  break;</b></p><p>  case 2: printf("輸入編號:\n");scanf("%s",y);</p><p>  for(i=0;i<1000;i++)</p><

56、p>  if (strcmp(books[i].num,y)==0)</p><p>  {printf("教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p

57、><p><b>  flag=1;</b></p><p><b>  }</b></p><p>  if(flag==0) </p><p>  printf("此教材不存在\n");</p><p><b>  break;</b>

58、;</p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b>&

59、lt;/p><p>  void show() /*顯示操作界面*/</p><p>  {printf("\n ******************沈陽航空航天大學(xué)教材管理系統(tǒng)********************* ");</p><p>  printf("\n *

60、 1 錄入教材信息 *");</p><p>  printf("\n * 2 查詢教材信息 *");</p><p>  printf("\n *

61、 3 更改教材信息 *");</p><p>  printf("\n * 4 保存教材信息 *");</p><p>  printf("\n *

62、 5 退出系統(tǒng) *\n");</p><p>  printf("\n 請輸入您要選擇的操作序號,按回車鍵確認(rèn):");</p><p><b>  }</b></p><p>  void main()</p><

63、p><b>  {int n;</b></p><p>  show(); </p><p>  scanf("%d",&n);</p><p><b>  while (1)</b><

64、/p><p>  {switch(n) </p><p>  { case 1: luru(); break;</p><p>  case 2: chaxun(); break;</p><p>  case 3: tianjia();break;</p>&l

65、t;p>  case 4: save(); break;</p><p>  case 5: exit(0); break;</p><p>  default: break;</p><p><b>  }</b></p><p><b>  show();</b></p>

66、<p>  scanf("%d",&n); </p><p><b>  }</b></p><p><b>  FILE *fp;</b></p><p>  fp = fopen("e:\\book.t

67、xt", "r+"); </p><p>  if(fp==0) </p><p>  printf("無法打開文件\n");</p><p>  fclose(fp);

溫馨提示

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

評論

0/150

提交評論