c語(yǔ)言課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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語(yǔ)言程序設(shè)計(jì) </p><p>  課題名稱 圖書(shū)管理系統(tǒng) </p><p>  專 業(yè) 通信工程 </p><p>  2014年 6月 29 日<

2、;/p><p><b>  目錄</b></p><p>  一、課程設(shè)計(jì)目的1</p><p>  二、課程設(shè)計(jì)要求1</p><p>  三、設(shè)計(jì)題目分析1</p><p><b>  3.1題目簡(jiǎn)介1</b></p><p><b>

3、;  3.2設(shè)計(jì)要求1</b></p><p>  四、 課程設(shè)計(jì)內(nèi)容2</p><p><b>  4.1總體設(shè)計(jì)2</b></p><p><b>  4.2詳細(xì)設(shè)計(jì)3</b></p><p>  4.3調(diào)試與測(cè)試12</p><p>  五、 設(shè)計(jì)

4、心得與總結(jié)14</p><p><b>  六、建議15</b></p><p><b>  七、源代碼16</b></p><p>  八、計(jì)算機(jī)與通信學(xué)院課程設(shè)計(jì)評(píng)分表30</p><p><b>  一、課程設(shè)計(jì)目的</b></p><p>

5、;  《C語(yǔ)言程序設(shè)計(jì)》是通信工程專業(yè)重要的基礎(chǔ)課,通過(guò)本課程設(shè)計(jì)使學(xué)生進(jìn)一步鞏固課堂所學(xué)知識(shí),全面熟悉、掌握C語(yǔ)言程序設(shè)計(jì)的基本方法和技巧,進(jìn)一步提高編寫(xiě)程序、閱讀分析程序及上機(jī)操作、調(diào)試程序的能力。</p><p><b>  二、課程設(shè)計(jì)要求</b></p><p><b>  1、課程設(shè)計(jì)目 </b></p><p&

6、gt;<b>  2、課程設(shè)計(jì)要求 </b></p><p><b>  3、設(shè)計(jì)題目分析</b></p><p>  3、1 題目簡(jiǎn)介 </p><p>  3、2 設(shè)計(jì)要求 </p><p><b>  4、課程設(shè)計(jì)內(nèi)容</b></p><p>

7、  4、1 總體設(shè)計(jì):包括系統(tǒng)總體設(shè)計(jì)框架和系統(tǒng)功能模塊圖;</p><p>  4、2 詳細(xì)設(shè)計(jì):包括主要功能模塊說(shuō)明(如函數(shù)功能、函數(shù)參數(shù)說(shuō)明、函數(shù)調(diào)用 關(guān)系描述)和對(duì)應(yīng)的工作流程圖;</p><p>  4、3 調(diào)試與測(cè)試:包括程序調(diào)試過(guò)程、數(shù)據(jù)測(cè)試結(jié)果分析,測(cè)試過(guò)程中遇到的主要問(wèn)題及采取的解決措施;</p><p>  5、設(shè)計(jì)心得與總結(jié):包括課程設(shè)計(jì)過(guò)程中

8、的學(xué)習(xí)體會(huì)和收獲,對(duì)C語(yǔ)言和本次課程設(shè)計(jì)的認(rèn)識(shí)等內(nèi)容。</p><p><b>  6、建議</b></p><p>  7、報(bào)告最后附上評(píng)分表(見(jiàn)任務(wù)書(shū)末頁(yè))</p><p><b>  三、設(shè)計(jì)題目分析</b></p><p><b>  3.1題目簡(jiǎn)介</b></p

9、><p>  圖書(shū)管理系統(tǒng)(能夠?qū)崿F(xiàn)對(duì)圖書(shū)信息的查詢,如:書(shū)名、作者、出版單位、出版時(shí)間、分類號(hào)、價(jià)格等)。</p><p><b>  3.2設(shè)計(jì)要求</b></p><p>  圖書(shū)信息包括:書(shū)名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等;系統(tǒng)以菜單方式工作;具有圖書(shū)信息錄入,修改、插入、刪除功能;能按書(shū)名查詢或作者名查詢;所有信息保存在文件

10、中(每次使用,上次保存的信息能從文件中讀取</p><p><b>  課程設(shè)計(jì)內(nèi)容</b></p><p><b>  4.1總體設(shè)計(jì)</b></p><p>  系統(tǒng)總體設(shè)計(jì)框架和系統(tǒng)功能模塊圖</p><p><b>  4.2詳細(xì)設(shè)計(jì)</b></p>&l

11、t;p>  包括主要功能模塊說(shuō)明(如函數(shù)功能、函數(shù)參數(shù)說(shuō)明、函數(shù)調(diào)用關(guān)系描述)和相應(yīng)的工作流程圖;</p><p>  1、主函數(shù):main();</p><p>  在主函數(shù)中執(zhí)行菜單函數(shù)menu();,然后當(dāng)菜單函數(shù)執(zhí)行完后會(huì)執(zhí)行printf(“退出系統(tǒng)!’);語(yǔ)句在顯示屏顯示 退出系統(tǒng)!然后程序結(jié)束。</p><p>  主菜單函數(shù):menu();<

12、;/p><p>  通過(guò)主菜單顯示系統(tǒng)的功能,并通過(guò)主菜單進(jìn)入各功能函數(shù)。</p><p>  3、圖書(shū)信息錄入函數(shù):input_data();</p><p>  本函數(shù)的功能:錄入圖書(shū)信息并保存在</p><p><b>  文件中。</b></p><p><b>  N</b&

13、gt;</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  Y</b></p><p>  4、圖書(shū)信息修改函數(shù):uodate();&l

14、t;/p><p>  本函數(shù)的功能是:修改圖書(shū)信息并將修改后的信息保存在文件中。</p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b&g

15、t;</p><p><b>  Y</b></p><p><b>  Y</b></p><p><b>  N</b></p><p>  5、圖書(shū)信息插入函數(shù):insert_data();</p><p>  本函數(shù)的功能是:實(shí)現(xiàn)對(duì)圖書(shū)信息的補(bǔ)錄

16、。</p><p><b>  Y</b></p><p><b>  N</b></p><p>  6、圖書(shū)信息刪除函數(shù):delete();</p><p>  本函數(shù)的功能是:將已寫(xiě)入文件的圖書(shū)信息進(jìn)行刪除。</p><p><b>  N</b>

17、</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  YN</b></p><p><b>  Y</b></p><p>  7、圖書(shū)信息查找菜單:find_menu();

18、</p><p>  本函數(shù)的功能是:顯示一個(gè)菜單供用戶選擇是按書(shū)名查找信息還是按作者名查找圖書(shū)信息。</p><p>  8、按書(shū)名查找函數(shù):find_title();</p><p>  本函數(shù)的功能是能通過(guò)輸入圖書(shū)名查詢相關(guān)圖</p><p><b>  書(shū)的信息。</b></p><p>

19、<b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  YN</b></p><p>  Y

20、 Y</p><p><b>  Y</b></p><p><b>  N</b></p><p>  9、按作者名查找圖書(shū)信息find_author_name():</p><p>  本函數(shù)的功能是:通過(guò)輸入作者名來(lái)差查詢圖書(shū)信息。</p><p>

21、<b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b

22、>  Y</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  4.3調(diào)試與測(cè)試</b></p><p>  包括程序調(diào)試過(guò)程、數(shù)據(jù)測(cè)試結(jié)果分析,測(cè)試過(guò)程中遇到的主要問(wèn)題及采取的解決措施;</

23、p><p><b>  調(diào)試與測(cè)試:</b></p><p>  在測(cè)試程序中遇到的問(wèn)題1:當(dāng)關(guān)閉程序后再運(yùn)行程序并且錄入新的信息,然后去查詢以前的信息時(shí),發(fā)現(xiàn)以前的信息不存在了。</p><p>  原因:在錄入函數(shù)中數(shù)據(jù)寫(xiě)入文件的方式是“wb”,”wb”將數(shù)據(jù)寫(xiě)入文件的特點(diǎn)是從文件的開(kāi)頭開(kāi)始寫(xiě)的,當(dāng)下一次運(yùn)行程序并錄入新的數(shù)據(jù)時(shí)會(huì)將原有的信息覆

24、蓋。</p><p>  解決方法:在錄入函數(shù)中將數(shù)據(jù)寫(xiě)入文件的方式改”a+”,因?yàn)椤盿+”的特點(diǎn)是從文件的末尾開(kāi)始寫(xiě)入新的數(shù)據(jù)的,不會(huì)覆蓋以前的數(shù)據(jù)。</p><p>  問(wèn)題2:實(shí)現(xiàn)刪除功能時(shí)是將要?jiǎng)h除的信息用空字符串覆蓋掉,實(shí)質(zhì)上計(jì)算機(jī)為原有數(shù)據(jù)分配的內(nèi)存空間還存在,這會(huì)導(dǎo)致內(nèi)存的浪費(fèi)。</p><p>  解決方法:暫且還沒(méi)有找到解決的方法。</p&g

25、t;<p><b>  設(shè)計(jì)心得與總結(jié)</b></p><p><b>  心得與總結(jié)</b></p><p>  進(jìn)入大學(xué)已有一年了,這次的c語(yǔ)言課程設(shè)計(jì)第一次讓我在大學(xué)里體驗(yàn)到了疲勞與充實(shí)和為了做好一件事的那種激情與奮斗!</p><p>  在這學(xué)期剛開(kāi)始接觸c語(yǔ)言的時(shí)候感覺(jué)這門(mén)課程很難學(xué),后來(lái)還是堅(jiān)持

26、下來(lái)去認(rèn)真學(xué)并堅(jiān)持經(jīng)常敲代碼。因?yàn)檫@幾個(gè)月堅(jiān)持學(xué)c使我有了一定的自學(xué)能力,我也體會(huì)到了不為考試而學(xué)習(xí)的那種輕松、愉快的感覺(jué)。</p><p>  在本次課程設(shè)計(jì)中我學(xué)到了很多平時(shí)沒(méi)有學(xué)到的知識(shí)并加強(qiáng)和鞏固了我的c語(yǔ)言基礎(chǔ)。為了能夠獨(dú)立完成課程設(shè)計(jì),我在實(shí)習(xí)周的前的半個(gè)月時(shí)間重點(diǎn)學(xué)習(xí)了文件和結(jié)構(gòu)體的有關(guān)內(nèi)容。經(jīng)歷了這次課程設(shè)計(jì),我對(duì)文件方面的內(nèi)容有了進(jìn)一步的了解。在做這次課程設(shè)計(jì)的時(shí)候,我發(fā)現(xiàn)我的基礎(chǔ)知識(shí)掌握的還不

27、夠牢固,平時(shí)所敲得代碼量還遠(yuǎn)遠(yuǎn)不夠。這次的課設(shè)讓我知道了該如何學(xué)習(xí)其它的編程語(yǔ)言,在平時(shí)的學(xué)習(xí)中要成多問(wèn)、多看、多敲、多想的習(xí)慣。</p><p>  在本次課設(shè)中我遇到了一些問(wèn)題并請(qǐng)教了老師和學(xué)長(zhǎng)及同學(xué),很感謝他們對(duì)我的幫助。通過(guò)和羅老師以及張孝勇學(xué)長(zhǎng)的聊天,我知道了在寫(xiě)程序時(shí)要有一個(gè)良好的邏輯思維,要想清楚如何去解決一個(gè)問(wèn)題并理清思路,在當(dāng)自己的程序完成之后要仔細(xì)的去找程序中存在的不足并完善,要清楚自己程序中

28、每一個(gè)語(yǔ)句的作用。</p><p>  在本次課設(shè)中當(dāng)我完成自己的答辯后,我積極去幫其他同學(xué)解決問(wèn)題。在幫他們修改程序雖然花去了我很多時(shí)間和精力,同時(shí)我也收獲了很多。幫助別人真的是一件很快樂(lè)的事情,并且在幫助人的過(guò)程中也會(huì)有意想不到的收獲。在幫同學(xué)看程序時(shí),我發(fā)現(xiàn)很多代碼寫(xiě)的很混亂,給人的第一感覺(jué)就是不想看這個(gè)程序,有些代碼格式也不是很規(guī)范,讓人看著很不舒服。我發(fā)現(xiàn)學(xué)會(huì)去敲非常規(guī)范的代碼很重要;在寫(xiě)程序時(shí)注釋是非

29、常重要的,這也是為了自己和別人能快速的去讀懂自己的程序;學(xué)習(xí)編程語(yǔ)言最重要的一個(gè)基礎(chǔ)就是要學(xué)會(huì)如何看懂一個(gè)程序,在這方面我還欠佳。</p><p>  經(jīng)過(guò)幾個(gè)月的c語(yǔ)言學(xué)習(xí)和這次的c語(yǔ)言課程設(shè)計(jì),我真正體會(huì)到了學(xué)習(xí)的快樂(lè),并且我找到了我以后的發(fā)展方向。</p><p><b>  六、建議</b></p><p>  1、運(yùn)用鏈表和動(dòng)態(tài)內(nèi)存的

30、知識(shí)解決刪除功能的缺陷使程序得到進(jìn)一步的完善。</p><p>  2、隨著以后知識(shí)的積累,要逐步增加此圖書(shū)管理系統(tǒng)的功能。</p><p>  3、要一一找出此系統(tǒng)存在的缺陷,并試著找到好的方法來(lái)彌補(bǔ)缺陷。</p><p>  4、學(xué)習(xí)編程語(yǔ)言的過(guò)程中要多敲代碼。</p><p>  5、要將代碼書(shū)寫(xiě)規(guī)范。</p><p

31、><b>  6、學(xué)會(huì)看懂程序。</b></p><p>  7、在寫(xiě)程序的過(guò)程中要多用注釋。</p><p>  8、在寫(xiě)程序是思路要清晰,要理解每一個(gè)語(yǔ)句,每一個(gè)函數(shù)的功能和作用。</p><p>  9、要多看一些牛人寫(xiě)的代碼。</p><p>  10、在學(xué)習(xí)的過(guò)程要養(yǎng)成多問(wèn),多想的習(xí)慣。</p>

32、;<p>  11、要把英語(yǔ)這個(gè)工具學(xué)好。</p><p><b>  七、源代碼</b></p><p>  # include <stdio.h></p><p>  # include <stdlib.h></p><p>  # include <string.h>

33、;</p><p>  struct book</p><p><b>  {</b></p><p>  char title[20]; /*書(shū)名*/</p><p>  char author_name[20]; /*作者名*/<

34、;/p><p>  char class_num[20]; /*分類號(hào)*/</p><p>  char publisher[20]; /*出版單位*/</p><p>  char publication_data[20]; /*出版時(shí)間*/</p>

35、<p>  char price[10]; /*價(jià)格*/</p><p><b>  }BOOK;</b></p><p>  FILE * fp;</p><p>  void menu();/*列出菜單*/</p><p>  void input_data

36、();/*錄入數(shù)據(jù)*/</p><p>  void update();/*數(shù)據(jù)的修改*/</p><p>  void insert_data();/*數(shù)據(jù)的插入*/</p><p>  void delete();/*數(shù)據(jù)的刪除*/</p><p>  void find_menu();/*圖書(shū)信息查找菜單*/</p>&l

37、t;p>  void find_title();/*圖書(shū)信息查找*/</p><p>  void find_author_name();/*圖書(shū)信息查找*/</p><p>  void input_data()</p><p>  /*用來(lái)實(shí)現(xiàn)對(duì)圖書(shū)信息的錄入*/</p><p><b>  {</b><

38、/p><p>  int key = 1;</p><p>  printf("\n*********************圖書(shū)信息錄入********************\n");</p><p>  if ((fp = fopen("F:\\Books_Management_Systen_BMS.dat", "

39、a+")) == NULL)</p><p><b>  {</b></p><p>  printf("Can not open file!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b>&

40、lt;/p><p>  while (key == 1)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入信息;\n");</p><p>  printf("書(shū)名:");</p><p>  scanf("%s&qu

41、ot;, BOOK.title);</p><p>  fflush(stdin); /*清空緩沖區(qū)*/</p><p>  printf("作者名:");</p><p>  scanf("%s", BOOK.author_name);</p><p>  f

42、flush(stdin);</p><p>  printf("圖書(shū)分類號(hào):");</p><p>  scanf("%s",BOOK.class_num);</p><p>  fflush(stdin);</p><p>  printf("圖書(shū)出版單位:");</p>

43、;<p>  scanf("%s", BOOK.publisher);</p><p>  fflush(stdin);</p><p>  printf("圖書(shū)出版時(shí)間:");</p><p>  scanf("%s", BOOK.publication_data);</p>

44、<p>  fflush(stdin);</p><p>  printf("圖書(shū)價(jià)格:");</p><p>  scanf("%s", BOOK.price);</p><p>  fwrite(&BOOK, sizeof(struct book), 1, fp);</p><p>

45、;  printf("錄入成功!\n");</p><p>  printf("是否繼續(xù)?是的話請(qǐng)按1,否的話請(qǐng)按0退出:");</p><p>  scanf("%d", &key);</p><p><b>  }</b></p><p>  fcl

46、ose(fp);</p><p>  system("pause");</p><p>  /*就是在命令行上輸出一行類似于“Press any key to exit”的字,*/</p><p>  /*等待用戶按一個(gè)鍵,然后返回。*/</p><p><b>  return;</b&g

47、t;</p><p><b>  }</b></p><p>  void update() /*用來(lái)實(shí)現(xiàn)對(duì)圖書(shū)信息的修改*/</p><p><b>  {</b></p><p>  int flag = 0;</p>&l

48、t;p>  int key = 1;</p><p>  char title[20];</p><p>  char new_title[20];</p><p>  char author_name[20];</p><p>  char class_num[20];</p><p>  char publi

49、sher[20];</p><p>  char publication_data[20];</p><p>  char price[10];</p><p>  while (key == 1)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入您要修

50、改信息的圖書(shū)的圖書(shū)名:");</p><p>  scanf("%s", title);</p><p>  fp = fopen("F:\\Books_Management_Systen_BMS.dat", "rb+");</p><p>  while ( (fread(&BOOK,

51、sizeof(struct book), 1, fp)) == 1)</p><p>  /* fread函數(shù)的類型為int型,如果函數(shù)執(zhí)行成功,*/</p><p>  /*則函數(shù)的返回值為形參count的值1,即輸出項(xiàng)的個(gè)數(shù)*/</p><p><b>  {</b></p><p>  if (strcmp(BOO

52、K.title, title) == 0)</p><p><b>  {</b></p><p>  flag = 1; /*標(biāo)記*/</p><p><b>  break;</b></p><p><b>  }</b><

53、/p><p><b>  }</b></p><p>  if(flag==1)</p><p><b>  {</b></p><p>  printf("書(shū)名:");</p><p>  printf("%s\n", BOOK.titl

54、e);</p><p>  printf("作者:");</p><p>  printf("%s\n", BOOK.author_name);</p><p>  printf("圖書(shū)分類號(hào):");</p><p>  printf("%s\n", BOOK.c

55、lass_num);</p><p>  printf("圖書(shū)出版單位:");</p><p>  printf("%s\n", BOOK.publisher);</p><p>  printf("圖書(shū)出版時(shí)間:");</p><p>  printf("%s\n&quo

56、t;, BOOK.publication_data);</p><p>  printf("圖書(shū)價(jià)格:");</p><p>  printf("%s\n", BOOK.price);</p><p>  printf("請(qǐng)輸入新的圖書(shū)信息:\n");</p><p>  print

57、f("書(shū)名:");</p><p>  scanf("%s", new_title);</p><p>  fflush(stdin);</p><p>  printf("\n作者:");</p><p>  scanf("%s", author_name);&

58、lt;/p><p>  fflush(stdin);</p><p>  printf("\n圖書(shū)分類號(hào):");</p><p>  scanf("%s", class_num);</p><p>  fflush(stdin);</p><p>  printf("\n圖

59、書(shū)出版單位:");</p><p>  scanf("%s", publisher);</p><p>  fflush(stdin);</p><p>  printf("\n圖書(shū)出版時(shí)間:");</p><p>  scanf("%s", publication_dat

60、a);</p><p>  fflush(stdin);</p><p>  printf("\n圖書(shū)價(jià)格:");</p><p>  scanf("%s", price);</p><p>  fflush(stdin);</p><p>  fseek(fp, -sizeof

61、(struct book), 1);</p><p>  /* 將文件位置標(biāo)記向后退一個(gè)struct book鎖占的長(zhǎng)度*/</p><p>  strcpy(BOOK.title, new_title);</p><p>  strcpy(BOOK.author_name, author_name);</p><p>  strcpy(BO

62、OK.class_num, class_num);</p><p>  strcpy(BOOK.publisher, publisher);</p><p>  strcpy(BOOK.publication_data, publication_data);</p><p>  strcpy(BOOK.price, price);</p><p&

63、gt;  fwrite(&BOOK, sizeof(struct book), 1, fp);</p><p>  printf("修改成功!\n");</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  else</

64、b></p><p><b>  {</b></p><p>  printf("沒(méi)有此圖書(shū)的信息!\n");</p><p><b>  }</b></p><p>  printf("請(qǐng)確認(rèn)您是否繼續(xù),是的話請(qǐng)輸入1,否的話請(qǐng)輸入0;");</

65、p><p>  scanf("%d", &key);</p><p><b>  }</b></p><p>  system("pause");</p><p><b>  return;</b></p><p><b>

66、;  }</b></p><p>  void insert_data() /*插入圖書(shū)信息*/</p><p><b>  {</b></p><p>  int key = 1;</p><p>  fp = fopen("F:

67、\\Books_Management_Systen_BMS.dat", "a+");</p><p>  while (key == 1)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入圖書(shū)信息:\n");</p><p>  prin

68、tf("書(shū)名:");</p><p>  scanf("%s", BOOK.title);</p><p>  printf("作者:");</p><p>  scanf("%s", BOOK.author_name);</p><p>  printf(&qu

69、ot;圖書(shū)分類號(hào):");</p><p>  scanf("%s", BOOK.class_num);</p><p>  printf("圖書(shū)出版社:");</p><p>  scanf("%s", BOOK.publisher);</p><p>  printf(&

70、quot;圖書(shū)出版時(shí)間:");</p><p>  scanf("%s", BOOK.publication_data);</p><p>  printf("圖書(shū)價(jià)格:");</p><p>  scanf("%s", BOOK.price);</p><p>  fwr

71、ite(&BOOK, sizeof(struct book), 1, fp);</p><p>  printf("插入成功!\n");</p><p>  printf("請(qǐng)確認(rèn)是否繼續(xù),是的話請(qǐng)按1,否的話請(qǐng)按0退出:");</p><p>  scanf("%d", &key);<

72、;/p><p><b>  }</b></p><p>  fclose(fp);</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></

73、p><p>  void delete() /*刪除圖書(shū)信息*/</p><p><b>  {</b></p><p>  int key = 1;</p><p>  int flag = 0;</p><p>  char title[20];<

74、/p><p>  while (key == 1)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入您要?jiǎng)h除圖書(shū)信息的圖書(shū)名:");</p><p>  scanf("%s", title);</p><p>  fp = fo

75、pen("F:\\Books_Management_Systen_BMS.dat", "rb+");</p><p>  while ( (fread(&BOOK, sizeof(struct book), 1, fp)) == 1)</p><p>  /* fread函數(shù)的類型為int型,如果函數(shù)執(zhí)行成功,*/</p>&l

76、t;p>  /*則函數(shù)的返回值為形參count的值1,即輸出項(xiàng)的個(gè)數(shù)*/</p><p><b>  {</b></p><p>  if (strcmp(title, BOOK.title) == 0)</p><p><b>  {</b></p><p><b>  flag

77、= 1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (flag == 1)</p><p><b>  {&l

78、t;/b></p><p>  fseek(fp, -sizeof(struct book), 1);</p><p>  /* 將文件位置標(biāo)記向后退一個(gè)struct book鎖占的長(zhǎng)度*/</p><p>  strcpy(BOOK.title, "");</p><p>  strcpy(BOOK.author_

79、name, "");</p><p>  strcpy(BOOK.class_num, "");</p><p>  strcpy(BOOK.publisher, "");</p><p>  strcpy(BOOK.publication_data, "");</p>&

80、lt;p>  strcpy(BOOK.price, "");</p><p>  fwrite(&BOOK, sizeof(struct book), 1, fp);</p><p>  printf("刪除成功!\n");</p><p><b>  }</b></p>&l

81、t;p><b>  else</b></p><p>  printf("沒(méi)有此圖書(shū)的信息!\n");</p><p>  fclose(fp);</p><p>  printf("請(qǐng)問(wèn)是否繼續(xù),是的話輸入1,否的話輸入0:");</p><p>  scanf("

82、;%d", &key);</p><p><b>  }</b></p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><

83、;p>  void find_title() /*根據(jù)書(shū)名查找圖書(shū)信息*/</p><p><b>  {</b></p><p>  int flag = 0;</p><p>  int key = 1;</p><p>  char title[20];</p

84、><p>  while (key == 1)</p><p><b>  {</b></p><p>  fp = fopen("F:\\Books_Management_Systen_BMS.dat", "rb");</p><p>  printf("書(shū)名:"

85、);</p><p>  scanf("%s", title);</p><p>  while ( (fread(&BOOK, sizeof(struct book), 1, fp)) == 1)</p><p>  /* fread函數(shù)的類型為int型,如果函數(shù)執(zhí)行成功,*/</p><p>  /*則函數(shù)的返

86、回值為形參count的值1,即輸出項(xiàng)的個(gè)數(shù)*/</p><p><b>  {</b></p><p>  if (strcmp(title, BOOK.title) == 0)</p><p><b>  {</b></p><p><b>  flag = 1;</b>&l

87、t;/p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (flag == 1)</p><p><b>  {</b></p&g

88、t;<p>  printf("書(shū)名:");</p><p>  printf("%s\n", BOOK.title);</p><p>  printf("作者:");</p><p>  printf("%s\n", BOOK.author_name);</p&g

89、t;<p>  printf("圖書(shū)分類號(hào):");</p><p>  printf("%s\n", BOOK.class_num);</p><p>  printf("圖書(shū)出版單位:");</p><p>  printf("%s\n", BOOK.publisher)

90、;</p><p>  printf("圖書(shū)出版時(shí)間:");</p><p>  printf("%s\n", BOOK.publication_data);</p><p>  printf("圖書(shū)價(jià)格:");</p><p>  printf("%s\n",

91、BOOK.price);</p><p><b>  }</b></p><p>  else if (flag == 0)</p><p><b>  {</b></p><p>  printf("沒(méi)有此圖書(shū)的信息!\n");</p><p><

92、b>  }</b></p><p>  fclose(fp);</p><p>  printf("請(qǐng)問(wèn)是否繼續(xù),是的話請(qǐng)輸入1,否的話輸入0:");</p><p>  scanf("%d", &key);</p><p><b>  }</b><

93、/p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  void find_author_name() /*根據(jù)作者名查找圖書(shū)信息*/<

94、;/p><p><b>  {</b></p><p>  int flag = 0;</p><p>  int key = 1;</p><p>  char author_name[20];</p><p>  while (key == 1)</p><p><b

95、>  {</b></p><p>  fp = fopen("F:\\Books_Management_Systen_BMS.dat", "rb");</p><p>  printf("作者:");</p><p>  scanf("%s", author_name)

96、;</p><p>  while ( (fread(&BOOK, sizeof(struct book), 1, fp)) == 1)</p><p>  /* fread函數(shù)的類型為int型,如果函數(shù)執(zhí)行成功,*/</p><p>  /*則函數(shù)的返回值為形參count的值1,即輸出項(xiàng)的個(gè)數(shù)*/</p><p><b>

97、  {</b></p><p>  if (strcmp( author_name, BOOK.author_name) == 0)</p><p><b>  {</b></p><p><b>  flag = 1;</b></p><p><b>  break;<

98、/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (flag == 1)</p><p><b>  {</b></p><p>  printf("書(shū)名:");&

99、lt;/p><p>  printf("%s\n", BOOK.title);</p><p>  printf("作者:");</p><p>  printf("%s\n", BOOK.author_name);</p><p>  printf("圖書(shū)分類號(hào):"

100、);</p><p>  printf("%s\n", BOOK.class_num);</p><p>  printf("圖書(shū)出版單位:");</p><p>  printf("%s\n", BOOK.publisher);</p><p>  printf("圖書(shū)出

101、版時(shí)間:");</p><p>  printf("%s\n", BOOK.publication_data);</p><p>  printf("圖書(shū)價(jià)格:strcmp(title, BOOK.title) == 0");</p><p>  printf("%s\n", BOOK.price

102、);</p><p><b>  }</b></p><p>  else if (flag == 0)</p><p><b>  {</b></p><p>  printf("沒(méi)有此圖書(shū)的信息!\n");</p><p><b>  }&l

103、t;/b></p><p>  fclose(fp);</p><p>  printf("請(qǐng)問(wèn)是否繼續(xù),是的話請(qǐng)輸入1,否的話輸入0:");</p><p>  scanf("%d", &key);</p><p><b>  }</b></p>&l

104、t;p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  void find_menu() /*圖書(shū)查詢信息菜單*/</p><p&

105、gt;<b>  {</b></p><p><b>  char key;</b></p><p>  while (key != '3')</p><p><b>  {</b></p><p>  system("cls");</

106、p><p>  printf("\n");fflush(stdin);</p><p>  printf("\n");</p><p>  printf("|*******************圖書(shū)信息查詢**********************\n\n");</p><p>  

107、printf("|1.按書(shū)名查找:\n");</p><p>  printf("|2.按作者名查找:\n");</p><p>  printf("|3.退出圖書(shū)信息查詢:\n");</p><p>  printf("|\n");</p><p>  prin

108、tf("|*********************謝謝使用************************\n\n");</p><p>  key = getchar();</p><p>  switch (key)</p><p><b>  {</b></p><p><b>  

109、case '1':</b></p><p>  find_title();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  find_author_name();</p&g

110、t;<p><b>  break;</b></p><p><b>  case '3':</b></p><p>  system("pause");</p><p><b>  break;</b></p><p><

111、;b>  default:</b></p><p>  printf("enter data error!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&l

112、t;/p><p>  void menu() /*主菜單*/</p><p><b>  {</b></p><p><b>  char key;</b></p><p>  while (key != '0')</p><p

113、><b>  {</b></p><p>  system("cls");</p><p>  printf("\n");</p><p>  printf("\n");</p><p>  printf("|****************歡迎

114、使用圖書(shū)管理系統(tǒng)*****************\n\n");</p><p>  printf("|1.圖書(shū)信息錄入:\n");</p><p>  printf("|2.圖書(shū)信息修改:\n");</p><p>  printf("|3.圖書(shū)信息插入;\n");</p><

115、;p>  printf("|4.圖書(shū)信息刪除:\n");</p><p>  printf("|5.圖書(shū)查找:\n");</p><p>  printf("|0.退出系統(tǒng):\n");</p><p>  printf("|\n");</p><p>  p

116、rintf("|*******感謝對(duì)湖工計(jì)算機(jī)軟件開(kāi)發(fā)實(shí)驗(yàn)室的支持**********\n\n");</p><p>  key = getchar();</p><p>  switch (key)</p><p><b>  {</b></p><p><b>  case '1

117、':</b></p><p>  input_data();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p><b>  update();</b></p>

118、<p><b>  break;</b></p><p><b>  case '3':</b></p><p>  insert_data();</p><p><b>  break;</b></p><p><b>  case &

119、#39;4':</b></p><p><b>  delete();</b></p><p><b>  break;</b></p><p><b>  case '5':</b></p><p>  find_menu();</p

120、><p><b>  break;</b></p><p><b>  case '0':</b></p><p><b>  break;</b></p><p><b>  default:</b></p><p>

121、  printf("enter data error!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int main()</p><

122、p><b>  {</b></p><p><b>  menu();</b></p><p>  printf("退出系統(tǒng)\n");</p><p><b>  return 0;</b></p><p><b>  }</b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論