圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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>  軟件設(shè)計(jì)報(bào)告</b></p><p>  題 目:圖 書(shū) 館 管 理 系 統(tǒng)</p><p><b>  三、需求分析</b></p><p>  可以實(shí)現(xiàn)圖書(shū)館圖書(shū)數(shù)據(jù)的錄入,保存,瀏覽,查找,添加,刪除,修改排序,使圖書(shū)信息一目了然。</p><p><b&

2、gt;  三、課程設(shè)計(jì)目的</b></p><p>  加深對(duì)C語(yǔ)言課程所學(xué)知識(shí)的理解,進(jìn)一步鞏固C語(yǔ)言語(yǔ)法規(guī)則。學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語(yǔ)言程序,從而具備解決綜合性實(shí)際問(wèn)題的能力,使學(xué)生通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試、,寫(xiě)實(shí)驗(yàn)報(bào)告等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計(jì)的方法和步驟,訓(xùn)練靈活運(yùn)用程序設(shè)計(jì)語(yǔ)言進(jìn)行軟件開(kāi)發(fā)的能力,提高分析問(wèn)題和解決問(wèn)題的能力,提高程序設(shè)計(jì)水平,培養(yǎng)必要的工程實(shí)

3、踐動(dòng)手能力。</p><p><b>  四、程序內(nèi)容</b></p><p>  數(shù)據(jù)的錄入 數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)讀寫(xiě) 數(shù)據(jù)添加</p><p>  數(shù)據(jù)刪除 數(shù)據(jù)查詢(xún) 數(shù)據(jù)修改 </p><p&

4、gt;  數(shù)據(jù)排序 數(shù)據(jù)打印</p><p>  五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p><b>  功能模塊的說(shuō)明</b></p><p>  輸入信息模塊:函數(shù)名為input,分為三個(gè)小的模塊,即在程序目錄下創(chuàng)建文件保存數(shù)據(jù)。</p><p> ?、跒g覽模塊:函數(shù)名為scan,分別打印

5、出輸入的:圖書(shū)號(hào),圖書(shū)名,作者,出版社,出版時(shí)間,價(jià)格。</p><p> ?、鄄樵?xún)模塊:函數(shù)名為search,分為兩個(gè)小的模塊,即分別以圖書(shū)號(hào)(search_num)或圖書(shū)名(search_name)查詢(xún)。</p><p>  ④添加信息模塊:函數(shù)名為add,讀出信息,讀入結(jié)構(gòu)體,插入信息后,覆蓋寫(xiě)入源文件。</p><p> ?、輨h除細(xì)細(xì)模塊:函數(shù)名為del,打

6、開(kāi)文件讀出信息至結(jié)構(gòu)體后,先查詢(xún)并確認(rèn),然后跳過(guò)該信息覆蓋寫(xiě)入源文件。</p><p> ?、扌薷男畔⒛K:函數(shù)名為change,通過(guò)strcmp(number,library.book[i].number)檢索出要修改的圖書(shū)號(hào),通過(guò)scanf分別輸入各成員的值,在通過(guò)strcpy將各值覆蓋到原成員的值上,就完成了修改。</p><p> ?、?排序模塊:函數(shù)名為sort,通過(guò)比較pric

7、e的大小排序,用for循環(huán)將小的放在前面。</p><p> ?、?main函數(shù):調(diào)用以上各功能模塊,實(shí)現(xiàn)程序功能。</p><p>  六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p> ?、僬{(diào)試情況:經(jīng)過(guò)若干次調(diào)試,程序已基本達(dá)到設(shè)計(jì)功能要求。</p><p> ?、谠O(shè)計(jì)技巧:通過(guò)數(shù)組及字符串的比較實(shí)現(xiàn)函數(shù)功能。</p><

8、;p>  ③心得體會(huì):通過(guò)這次課程設(shè)計(jì),我對(duì)C語(yǔ)言有了更深刻的了解,增強(qiáng)了程序的編寫(xiě)能力,鞏固了專(zhuān)業(yè)知識(shí),對(duì)程序的模塊化觀(guān)念也又模糊逐漸變的清晰了。在程序的運(yùn)行與調(diào)試過(guò)程中出現(xiàn)了很多錯(cuò)誤,通過(guò)反復(fù)地復(fù)習(xí)課本上的相關(guān)知識(shí),不停地修改與調(diào)試,我終于完成了這段程序。在調(diào)試過(guò)程中,我認(rèn)識(shí)到了C語(yǔ)言的靈活性與嚴(yán)謹(jǐn)性,同一個(gè)功能可以由不同的語(yǔ)句來(lái)實(shí)現(xiàn),但編寫(xiě)程序時(shí)要特別注意細(xì)節(jié)方面的問(wèn)題,因?yàn)橐粋€(gè)小小的疏忽就能導(dǎo)致整個(gè)程序不能運(yùn)行。當(dāng)然我也認(rèn)

9、識(shí)到了自己的薄弱之處,如對(duì)鏈表相關(guān)知識(shí)的欠缺,文件運(yùn)用的不熟練,在以后的學(xué)習(xí)中我要集中精力,爭(zhēng)取把知識(shí)學(xué)得更扎實(shí)、更全面。</p><p>  ④不足及改進(jìn):沒(méi)有用到指針及鏈表,是本程序最大的不足,程序也存在其他缺點(diǎn),比如排序是不能按字符進(jìn)行排序,是功能有局限性;使用數(shù)組使程序結(jié)構(gòu)簡(jiǎn)單,可用性不強(qiáng)。以后應(yīng)對(duì)程序進(jìn)行改進(jìn),比如部分功能用鏈表實(shí)現(xiàn),改進(jìn)排序方案等。</p><p><b&

10、gt;  八、附錄:源代碼</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  typedef struct </p><p&g

11、t;<b>  {</b></p><p>  char number[10]; /*圖書(shū)號(hào)*/</p><p>  char name[20]; /*書(shū)名*/</p><p>  char writer[20]; /*作者*/</p><p>  char pu

12、blish[50]; /*出版社*/</p><p>  char time[20]; /*出版時(shí)間*/</p><p>  float price; /*價(jià)格*/</p><p>  }mbook; /*圖書(shū)類(lèi)型標(biāo)識(shí)符*/</p><p&

13、gt;  typedef struct </p><p><b>  {</b></p><p>  int count; /*數(shù)量統(tǒng)計(jì)*/</p><p>  mbook book[100]; </p><p>  }mlibrary;

14、 </p><p>  mlibrary library;</p><p>  void save()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("library.

15、txt","w"))==NULL)</p><p><b>  {</b></p><p>  printf("\n不能保存圖書(shū)信息\n");</p><p><b>  return;</b></p><p><b>  }</b&

16、gt;</p><p>  fwrite(&library.count,sizeof(int),1,fp);</p><p>  fwrite(library.book,sizeof(library.book[0]),library.count,fp);</p><p><b>  }</b></p><p> 

17、 void input() /*輸入模塊*/</p><p><b>  { </b></p><p><b>  int y=1;</b></p><p>  system("cls");</p><p><b>  while(y)

18、</b></p><p><b>  { </b></p><p>  printf("\t請(qǐng)輸入您的書(shū)籍的書(shū)號(hào):");</p><p>  scanf("%s",library.book[library.count].number);</p><p>  printf

19、("\t請(qǐng)輸入書(shū)名:");</p><p>  scanf("%s",library.book[library.count].name);</p><p>  printf("\t請(qǐng)輸入作者名:");</p><p>  scanf("%s",library.book[library.c

20、ount].writer);</p><p>  printf("\t請(qǐng)輸入出版社:");</p><p>  scanf("%s",library.book[library.count].publish);</p><p>  printf("\t請(qǐng)輸入出版時(shí)間:");</p><p&

21、gt;  scanf("%s",library.book[library.count].time);</p><p>  printf("\t請(qǐng)輸入該書(shū)的價(jià)格:");</p><p>  fflush(stdin);</p><p>  scanf("%f",&library.book[librar

22、y.count].price);</p><p>  library.count++;</p><p>  printf("\n是否繼續(xù)錄入(1.繼續(xù);0,退出錄入):");</p><p>  fflush(stdin);</p><p>  scanf("%d",&y);</p>

23、<p><b>  if (y!=1)</b></p><p><b>  {</b></p><p><b>  y=0;</b></p><p><b>  break;</b></p><p><b>  }</b>

24、;</p><p><b>  }</b></p><p><b>  save();</b></p><p><b>  }</b></p><p>  void scan() /*輸出模塊*/</p><p>

25、<b>  {</b></p><p><b>  int i;</b></p><p>  system("cls");</p><p>  printf("圖書(shū)號(hào)\t圖書(shū)名\t作者名\t出版社\t出版日期\t圖書(shū)價(jià)格\n");</p><p>  for

26、(i=0;i<library.count;i++)</p><p><b>  {</b></p><p>  printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].writer,library.book

27、[i].publish,library.book[i].time,library.book[i].price);</p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  getchar();</p><p><b>  }</b></p&g

28、t;<p>  void search() /*查詢(xún)模塊*/</p><p><b>  { </b></p><p><b>  int a;</b></p><p>  system("cls"); </p><p>

29、;  printf("\t\t****************************\n");</p><p>  printf("\t\t請(qǐng)輸入查詢(xún)方式\n");</p><p>  printf("\t\t1------------按書(shū)名查詢(xún)\n");</p><p>  printf("\

30、t\t2------------按書(shū)號(hào)查詢(xún)\n");</p><p>  printf("\t\t0------------退出\n");</p><p>  printf("\t\t****************************\n");</p><p>  scanf("%d",&a

31、mp;a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  search_name();</p><p>  break;

32、 </p><p><b>  case 2:</b></p><p>  search_num();</p><p><b>  break;</b></p><p><b>  case 0:</b></p><p><b>  retur

33、n;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int add() /*添加模塊*/</p><p><b>  {</b></p><p

34、>  int sum=0;</p><p><b>  char a;</b></p><p>  while(a=='y'||a=='Y')</p><p><b>  {</b></p><p>  printf("要添加本新書(shū)嗎?y/n\n&qu

35、ot;);</p><p>  scanf("%c",&a);</p><p>  if(a=='n'||a=='N')</p><p><b>  break;</b></p><p><b>  else </b></p>

36、<p>  if(a=='y'||a=='Y')</p><p><b>  {</b></p><p>  library.count++;</p><p><b>  }</b></p><p><b>  else</b><

37、;/p><p>  printf("\n輸入不正確,請(qǐng)重新輸入\n");</p><p><b>  }</b></p><p>  printf("\n新書(shū)信息:\n");</p><p><b>  scan();</b></p><p&g

38、t;<b>  input();</b></p><p>  return sum; </p><p><b>  } </b></p><p>  void del() /*刪除模塊*/</p><p><b>  { </

39、b></p><p><b>  int i;</b></p><p>  char number[10];</p><p>  system("cls"); </p><p>  printf("\n請(qǐng)輸入要?jiǎng)h除的圖書(shū)號(hào):");</p><p>  

40、fflush(stdin);</p><p>  scanf("%s",number);</p><p>  for (i=0;i<library.count;i++)</p><p><b>  {</b></p><p>  if(strcmp(number,library.book[i].

41、number)==0)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if (i!=library.count)</p><p><b>  {</b></p><p>  for(;i&

42、lt;library.count-1;i++)</p><p><b>  {</b></p><p>  strcpy(library.book[i].name,library.book[i+1].name);</p><p>  strcpy(library.book[i].number,library.book[i+1].number);

43、</p><p>  strcpy(library.book[i].publish,library.book[i+1].publish);</p><p>  strcpy(library.book[i].writer,library.book[i+1].writer);</p><p>  strcpy(library.book[i].time,library.b

44、ook[i+1].time);</p><p>  library.book[i].price=library.book[i+1].price;</p><p><b>  }</b></p><p>  library.count--;</p><p><b>  }</b></p>

45、<p><b>  else</b></p><p>  printf("\n cannot found!\n");</p><p><b>  save();</b></p><p>  fflush(stdin);</p><p>  getchar();<

46、/p><p><b>  }</b></p><p>  void change() /*修改模塊*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p> 

47、 char number[10];</p><p>  system("cls");</p><p>  printf("\n請(qǐng)輸入要修改的圖書(shū)號(hào):");</p><p>  fflush(stdin);</p><p>  scanf("%s",number);</p>

48、<p>  for (i=0;i<library.count;i++)</p><p><b>  {</b></p><p>  if(strcmp(number,library.book[i].number)==0)</p><p><b>  {</b></p><p> 

49、 printf("圖書(shū)號(hào)\t圖書(shū)名\t作者名\t出版社\t出版日期\t圖書(shū)價(jià)格\n");</p><p>  printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].writer,library.book[i].publish,libra

50、ry.book[i].time,library.book[i].price);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (i!=library.count)<

51、;/p><p><b>  {</b></p><p>  mbook book;</p><p>  printf("\n\t\t請(qǐng)輸入修改后此圖書(shū)的信息\n");</p><p>  printf("\t請(qǐng)輸入圖書(shū)號(hào):");</p><p>  scanf(

52、"%s",book.number);</p><p>  printf("\t請(qǐng)輸入圖書(shū)名:");</p><p>  scanf("%s",book.name);</p><p>  printf("\t請(qǐng)輸入作者名:");</p><p>  scanf(&q

53、uot;%s",book.writer);</p><p>  printf("\t請(qǐng)輸入出版社:");</p><p>  scanf("%s",book.publish);</p><p>  printf("\t請(qǐng)輸入出版時(shí)間:");</p><p>  scanf(

54、"%s",book.time);</p><p>  printf("\t請(qǐng)輸入該書(shū)的價(jià)格:");</p><p>  fflush(stdin);</p><p>  scanf("%f",&book.price);</p><p>  strcpy(library.boo

55、k[i].name,book.name);</p><p>  strcpy(library.book[i].number,book.number);</p><p>  strcpy(library.book[i].publish,book.publish);</p><p>  strcpy(library.book[i].writer,book.writer)

56、;</p><p>  strcpy(library.book[i].time,book.time);</p><p>  library.book[i].price=book.price;</p><p><b>  save();</b></p><p><b>  }</b></p>

57、;<p><b>  else</b></p><p>  printf("\n cannot found!\n");</p><p>  fflush(stdin);</p><p>  getchar();</p><p><b>  }</b></p&g

58、t;<p>  void sort() /*排序模塊*/</p><p><b>  {</b></p><p><b>  mbook t;</b></p><p>  int i,j,k;</p><p>  printf(&q

59、uot;\n 圖書(shū)排行\(zhòng)n");</p><p>  printf("圖書(shū)號(hào)\t圖書(shū)名\t作者名\t出版社\t出版日期\t圖書(shū)價(jià)格\n");</p><p>  for(i=0;i<library.count;i++)</p><p><b>  {<

60、/b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<library.count;j++)</p><p>  if(library.book[i].price>library.book[j].price) k=j;</p><p><b>  if

61、(k!=i)</b></p><p><b>  {</b></p><p>  t=library.book[i];</p><p>  library.book[i]=library.book[k];</p><p>  library.book[k]=t;</p><p><

62、;b>  }</b></p><p><b>  }</b></p><p><b>  scan();</b></p><p><b>  }</b></p><p>  void password() /*密碼

63、*/</p><p><b>  {</b></p><p>  char a[10];</p><p><b>  int i;</b></p><p>  printf("\t\t\t****************************\n");</p>&

64、lt;p>  printf("\t\t\t \n");</p><p>  printf("\t\t\t\t請(qǐng)輸入密碼\n");</p><p>  printf("\t\t\t \n");</p>&l

65、t;p>  printf("\t\t\t****************************\n");</p><p>  printf("\t\t\t\t輸入(學(xué)號(hào)):");</p><p>  while(i<=3)</p><p><b>  {</b></p><

66、;p>  scanf("%s",a);</p><p>  if(strcmp(a,"05091043")==0)</p><p><b>  { </b></p><p>  printf("\t\t\t密碼正確\n");</p><p><b&g

67、t;  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\t\t\t密碼錯(cuò)誤,請(qǐng)重新輸入:");</p><p><b>  i++;</b><

68、/p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  int a;</b></p>&

69、lt;p><b>  FILE *fp;</b></p><p>  if((fp=fopen("library.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\n不能打開(kāi)圖書(shū)信息庫(kù)\n");

70、</p><p>  fp=fopen("library.txt","w+");</p><p>  library.count=0;</p><p>  fwrite(&library.count,sizeof(int),1,fp);</p><p>  fclose(fp);</p&g

71、t;<p><b>  return;</b></p><p><b>  }</b></p><p>  fread(&library.count,sizeof(int),1,fp);</p><p>  fread(library.book,sizeof(library.book[0]),libr

72、ary.count,fp);</p><p>  fclose(fp);</p><p>  password();</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\t\t■■■■■■■■■■■

73、■■■■■■■■■■■■■■\n");</p><p>  printf("\t\t┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p>  printf("\t\t┃ 圖書(shū)管理系統(tǒng) ┃\n");</p><p>  printf

74、("\t\t┃ ┃\n");</p><p>  printf("\t\t┃-----------------1:輸入圖書(shū)信息---------------┃\n");</p><p>  printf("\t\t┃

75、 ┃\n");</p><p>  printf("\t\t┃-----------------2:查看圖書(shū)信息---------------┃\n");</p><p>  printf("\t\t┃ ┃\

76、n");</p><p>  printf("\t\t┃-----------------3:查找圖書(shū)-------------------┃\n");</p><p>  printf("\t\t┃ ┃\n");</p><p&g

77、t;  printf("\t\t┃-----------------4:刪除圖書(shū)信息---------------┃\n");</p><p>  printf("\t\t┃ ┃\n");</p><p>  printf("\t\t┃--------

78、---------5:添加圖書(shū)信息---------------┃\n");</p><p>  printf("\t\t┃ ┃\n");</p><p>  printf("\t\t┃-----------------6:修改圖書(shū)信息-------------

79、--┃\n");</p><p>  printf("\t\t┃ ┃\n");</p><p>  printf("\t\t┃-----------------7:圖書(shū)排序-------------------┃\n");</p><

80、;p>  printf("\t\t┃ ┃\n");</p><p>  printf("\t\t┃-----------------0:退出圖書(shū)信息系統(tǒng)-----------┃\n");</p><p>  printf("\t\t┃

81、 ┃\n");</p><p>  printf("\t\t┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");</p><p>  printf("\t\t■■■■■■■■■■■■■■■■■■■■■■■■■\n");</p><p&g

82、t;  fflush(stdin);</p><p>  scanf("%d",&a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p&

83、gt;<p><b>  input();</b></p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  scan();</b></p><p><b> 

84、 break;</b></p><p><b>  case 3:</b></p><p><b>  search();</b></p><p><b>  break;</b></p><p><b>  case 4:</b></p

85、><p><b>  del();</b></p><p><b>  break;</b></p><p><b>  case 5:</b></p><p><b>  add();</b></p><p><b>  b

86、reak;</b></p><p><b>  case 6:</b></p><p><b>  change();</b></p><p><b>  break;</b></p><p><b>  case 7:</b></p&g

87、t;<p><b>  sort();</b></p><p><b>  break;</b></p><p><b>  case 0:</b></p><p>  printf("\n\n退出\n\n");</p><p><b&g

88、t;  break;</b></p><p><b>  default:</b></p><p>  printf("\n序號(hào)不對(duì)\n");</p><p><b>  }</b></p><p>  }while(a!=0);</p><p&g

溫馨提示

  • 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)論