數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  課程設(shè)計(jì)(大作業(yè))報(bào)告</p><p>  課程名稱: 數(shù)據(jù)結(jié)構(gòu) </p><p>  設(shè)計(jì)題目: 圖書管理系統(tǒng) </p><p>  院 系: 信息技術(shù)學(xué)院 </p><p>  班 級(jí): </p><p>

2、;  設(shè) 計(jì) 者: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  設(shè)計(jì)時(shí)間: 2013/1/7-2013/1/11 </p><p><b>  信息技術(shù)學(xué)院<

3、/b></p><p>  課程設(shè)計(jì)(大作業(yè))任務(wù)書</p><p>  姓 名: 院(系): 信息技術(shù)學(xué)院</p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號(hào): </p><p><b>  任務(wù)起止日期:</b></p><p>  2013/1/7

4、-2013/1/11 </p><p><b>  課程設(shè)計(jì)題目:</b></p><p><b>  圖書管理系統(tǒng)</b></p><p><b>  課程設(shè)計(jì)要求:</b></p><p>  設(shè)計(jì)圖書數(shù)據(jù)結(jié)構(gòu)、讀者數(shù)據(jù)結(jié)構(gòu);</p><p>  2

5、、使用文件系統(tǒng),從文件訪問圖書數(shù)據(jù)和讀者信息;</p><p>  3、功能要求:數(shù)據(jù)錄入、查詢、插入、刪除、排序、打印各種表格。</p><p>  4、界面要求:美觀,大方,容易操作。</p><p><b>  工作計(jì)劃及安排:</b></p><p><b>  工作計(jì)劃::</b><

6、/p><p>  選題:選好設(shè)計(jì)題目。</p><p>  讀題:仔細(xì)閱讀題目,明確設(shè)計(jì)要求與目的。</p><p>  3、分析與設(shè)計(jì):經(jīng)過參考相關(guān)資料,編寫程序代碼。</p><p>  4、檢測:利用C++制作、調(diào)試,并生成文件。</p><p>  5、分析、總結(jié)實(shí)驗(yàn)。</p><p>&l

7、t;b>  工作安排:</b></p><p>  第一階段:查詢相關(guān)知識(shí),搜集相關(guān)資料。</p><p>  第二階段:結(jié)合所獲取的知識(shí)和做搜集的資料,完成程序代碼。</p><p>  第三階段:在相關(guān)軟件上測試,并輸出相應(yīng)結(jié)果。</p><p>  指導(dǎo)教師簽字 </p><

8、p>  年 月 日 </p><p>  課程設(shè)計(jì)(大作業(yè))成績</p><p>  學(xué)號(hào): 姓名: 指導(dǎo)教師:</p><p><b>  課程設(shè)計(jì)題目:</b></p><p><b>  圖書管理系統(tǒng) </b></p>&

9、lt;p><b>  總結(jié):</b></p><p>  這次的實(shí)驗(yàn)還讓我復(fù)習(xí)了數(shù)據(jù)結(jié)構(gòu)的一些知識(shí),如數(shù)組,while語句,switch</p><p>  語句,鏈表,還知道了如何使用system("cls")清屏,還知道了strcmp是用來比較字符串s1和s2大小的,strcpy使用來把字符串s2的值賦給s1的。</p>&

10、lt;p>  這次的實(shí)驗(yàn)增加了我們自己動(dòng)手動(dòng)腦的能力,希望多做一些這樣的實(shí)驗(yàn),很有意義,和現(xiàn)實(shí)生活結(jié)合的程序增加了我的興趣。</p><p><b>  指導(dǎo)教師評(píng)語:</b></p><p><b>  成績:</b></p><p>  填表時(shí)間:指導(dǎo)教師簽名:

11、 </p><p><b>  目錄</b></p><p>  一、設(shè)計(jì)題目與要求2</p><p>  1)問題描述 設(shè)計(jì)一個(gè)小型圖書班級(jí)管理系統(tǒng)。</p><p><b>  2)基本要求2</b></p><p>  3)進(jìn)一步完成內(nèi)容2<

12、;/p><p><b>  二、概要設(shè)計(jì)2</b></p><p><b>  三、算法設(shè)計(jì)3</b></p><p><b>  四、源代碼4</b></p><p>  五、運(yùn)行結(jié)果和調(diào)試分析15</p><p>  1)圖書信息初始化15&l

13、t;/p><p>  2)圖書信息錄入16</p><p>  3)圖書信息瀏覽17</p><p>  4)圖書信息查詢17</p><p>  5)圖書信息刪除18</p><p>  6)圖書信息修改18</p><p><b>  六、總結(jié)體會(huì)18</b>&

14、lt;/p><p><b>  一、設(shè)計(jì)題目與要求</b></p><p>  1)問題描述 設(shè)計(jì)一個(gè)小型圖書班級(jí)管理系統(tǒng)。2)基本要求</p><p>  1、設(shè)計(jì)圖書數(shù)據(jù)結(jié)構(gòu)、讀者數(shù)據(jù)結(jié)構(gòu);</p><p>  2、使用文件系統(tǒng),從文件訪問圖書數(shù)據(jù)和讀者信息;</p><p>  3、功

15、能要求:數(shù)據(jù)錄入、查詢、插入、刪除、排序、打印各種表格。</p><p>  4、界面要求:美觀,大方,容易操作。</p><p><b>  3)進(jìn)一步完成內(nèi)容</b></p><p>  系統(tǒng)功能的進(jìn)一步完善;</p><p><b>  索引表采用樹表。</b></p><

16、p><b>  設(shè)計(jì)內(nèi)容</b></p><p><b>  程序流程圖</b></p><p><b>  源程序</b></p><p>  軟件測試報(bào)告(包括所用到的數(shù)據(jù)及結(jié)果)</p><p><b>  二、概要設(shè)計(jì)</b></p&g

17、t;<p>  1、圖書數(shù)據(jù)包含的字段為:</p><p>  ISBN,書名,作者,出版社,出版日期,價(jià)格,版次</p><p><b>  2、讀者數(shù)據(jù)為:</b></p><p>  學(xué)號(hào),姓名,性別,年齡,家庭住址,聯(lián)系電話,政治面貌,專業(yè)</p><p>  3、根據(jù)軟件功能設(shè)計(jì)其他的數(shù)據(jù)結(jié)構(gòu);&

18、lt;/p><p><b>  4、功能算法</b></p><p><b>  5、自行設(shè)計(jì)</b></p><p><b>  界面設(shè)計(jì)</b></p><p><b>  自行設(shè)計(jì)</b></p><p><b>  三

19、、算法設(shè)計(jì)</b></p><p>  進(jìn)入系統(tǒng)后首先進(jìn)行圖書初始化,輸入圖書的信息。</p><p>  初始化之后,進(jìn)入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息。</p><p><b>  1)采編入庫</b></p><p><b>  是</b><

20、/p><p><b>  否</b></p><p><b>  四、源代碼</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string

21、.h></p><p>  typedef struct {</p><p>  char number[10];//書號(hào)</p><p>  char name[20];//書名</p><p>  char author[20];//作者</p><p>  char publish[50];//出版社<

22、;/p><p>  char time[20];//出版時(shí)間</p><p>  float price;</p><p><b>  }mbook;</b></p><p>  typedef struct {</p><p>  int count;//書的本數(shù)</p><p&

23、gt;  mbook book[100];//最大可有100本書</p><p>  }mlibrary;</p><p>  mlibrary library;</p><p>  void save()//保存圖書信息。</p><p><b>  {</b></p><p><b>

24、;  FILE *fp;</b></p><p>  if((fp=fopen("library.doc","w"))==NULL)</p><p><b>  {</b></p><p>  printf("\n不能保存圖書信息\n");</p><p

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

26、nt,fp);</p><p><b>  }</b></p><p>  void putin() /*定義錄入函數(shù)*/</p><p><b>  { </b></p><p><b>  int y=1;</b></p><p>  sy

27、stem("cls");</p><p><b>  while(y)</b></p><p><b>  { </b></p><p>  printf("\t請(qǐng)輸入您的書籍的書號(hào):");</p><p>  scanf("%s",lib

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

29、/p><p>  scanf("%s",library.book[library.count].author);</p><p>  printf("\t請(qǐng)輸入出版社:");</p><p>  scanf("%s",library.book[library.count].publish);</p>

30、<p>  printf("\t請(qǐng)輸入出版時(shí)間:");</p><p>  scanf("%s",library.book[library.count].time);</p><p>  printf("\t請(qǐng)輸入該書的價(jià)格:");</p><p>  fflush(stdin);</p

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

32、</p><p>  scanf("%d",&y);</p><p><b>  if (y!=1)</b></p><p><b>  {</b></p><p><b>  y=0;</b></p><p><b&g

33、t;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  save();</b></p><p><b>  }</b></p><p> 

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

35、;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].author,library.book[i].publi

36、sh,library.book[i].time,library.book[i].price);</p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  getchar();</p><p><b>  }</b></p><p

37、>  void search_by_name() /*定義按書名查詢*/</p><p><b>  { </b></p><p>  char s2[20]; </p><p>  int flag=1;</p><p>  printf("\n請(qǐng)輸入要查詢的書名: ")

38、;</p><p>  fflush(stdin);</p><p>  scanf("%s",s2);</p><p>  printf("圖書號(hào)\t圖書名\t作者名\t出版社\t出版日期\t圖書價(jià)格\n");</p><p>  for(int i=0;i<library.count;i++

39、)</p><p>  if(strcmp(s2,library.book[i].name)==0)</p><p><b>  { </b></p><p><b>  flag=0;</b></p><p>  printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n&

40、quot;,library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);</p><p><b>  } </b></p><p><b>  if

41、(flag)</b></p><p><b>  {</b></p><p>  printf("cannot found!");</p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  g

42、etchar();</p><p><b>  }</b></p><p>  void search_by_author() /*定義按作者名查詢*/</p><p><b>  { </b></p><p>  char s3[20];</p><p&g

43、t;  int flag=1;</p><p>  printf("請(qǐng)輸入要查詢的書的作者: ");</p><p>  fflush(stdin);</p><p>  scanf("%s",s3);</p><p>  printf("圖書號(hào)\t圖書名\t作者名\t出版社\t出版日期\t圖

44、書價(jià)格\n");</p><p>  for(int i=0;i<library.count;i++ )</p><p>  if(strcmp(s3,library.book[i].author)==0)</p><p><b>  { </b></p><p><b>  flag=0;&

45、lt;/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].author,library.book[i].publish,library.book[i].time,library.book[i].price);</p

46、><p><b>  } </b></p><p><b>  if (flag)</b></p><p><b>  {</b></p><p>  printf("cannot found!");</p><p><b> 

47、 }</b></p><p>  fflush(stdin);</p><p>  getchar();</p><p><b>  }</b></p><p>  void search() /*定義查詢函數(shù)*/</p><p><b>  { </b

48、></p><p><b>  int a;</b></p><p>  system("cls"); /*進(jìn)行清屏*/</p><p>  printf("開始查詢\n");</p><p>  printf("\t\t**************

49、****************\n");</p><p>  printf("\t\t\t1---------------通過書名查找\n");</p><p>  printf("\t\t\t2---------------通過作者查找\n");</p><p>  printf("\t\t\t0---

50、------------退出\n");</p><p>  printf("\t\t******************************\n") ;</p><p>  printf("\t\t請(qǐng)選擇你想要的查詢方式:");</p><p>  fflush(stdin);</p><p&

51、gt;  scanf("%d",&a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  search_by_name();<

52、;/p><p>  break; </p><p><b>  case 2:</b></p><p>  search_by_author();</p><p><b>  break;</b></p><p><b>  case 0:</b>

53、</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void del() /*定義刪除函數(shù)*/</p><p>&l

54、t;b>  { </b></p><p>  char number[10];</p><p>  system("cls"); /*清屏*/</p><p>  printf("\n :");</p><p>  fflush(stdin);</p&g

55、t;<p>  scanf("%s",number);</p><p><b>  int i;</b></p><p>  for (i=0;i<library.count;i++)</p><p><b>  {</b></p><p>  if(strc

56、mp(number,library.book[i].number)==0)break;</p><p><b>  }</b></p><p>  if (i!=library.count)</p><p><b>  {</b></p><p>  for(;i<library.count

57、-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);</p><

58、p>  strcpy(library.book[i].publish,library.book[i+1].publish);</p><p>  strcpy(library.book[i].author,library.book[i+1].author);</p><p>  strcpy(library.book[i].time,library.book[i+1].time);&

59、lt;/p><p>  library.book[i].price=library.book[i+1].price;</p><p><b>  }</b></p><p>  library.count--;</p><p><b>  }</b></p><p><b&

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

61、;<b>  }</b></p><p>  void update()//修改圖書信息</p><p><b>  {</b></p><p>  char number[10];</p><p>  system("cls"); /*清屏*/</p

62、><p>  printf("\n 請(qǐng)輸入你要?jiǎng)h除的書的編號(hào):");</p><p>  fflush(stdin);</p><p>  scanf("%s",number);</p><p><b>  int i;</b></p><p>  for

63、(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>  printf("圖書號(hào)

64、\t圖書名\t作者名\t出版社\t出版日期\t圖書價(jià)格\n");</p><p>  printf("%s\t%s\t%s\t%s\t%s\t%\t6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time

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

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

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

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

69、book.time);</p><p>  printf("\t請(qǐng)輸入該書的價(jià)格:");</p><p>  fflush(stdin);</p><p>  scanf("%f",&book.price);</p><p>  strcpy(library.book[i].name,book.

70、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].author,book.author);</p>&l

71、t;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><p><

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

73、void main()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("library.doc","r"))==NULL)</p><p><b>  {

74、</b></p><p>  printf("\n不能打開圖書信息庫\n");</p><p>  fp=fopen("library.doc","w+");</p><p>  printf("\n初始化圖書信息庫,初始化之后要重啟程序\n");</p>&l

75、t;p>  library.count=0;</p><p>  fwrite(&library.count,sizeof(int),1,fp);</p><p>  fclose(fp);</p><p><b>  return;</b></p><p><b>  }</b>&l

76、t;/p><p>  fread(&library.count,sizeof(int),1,fp);</p><p>  fread(library.book,sizeof(library.book[0]),library.count,fp);</p><p>  fclose(fp);</p><p><b>  int a;

77、</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n\t\t\t\t圖書信息管理系統(tǒng)\t\t\t\t\n");<

78、/p><p>  printf("\n\t\t**************************************************\n");</p><p>  printf("\n\n\t\t\t1 ------------------圖書信息錄入\n");</p><p>  printf("\t\t

79、\t2 ------------------圖書信息瀏覽\n");</p><p>  printf("\t\t\t3 ------------------圖書信息查詢\n");</p><p>  printf("\t\t\t4 ------------------圖書信息刪除\n");</p><p>  pri

80、ntf("\t\t\t5 ------------------圖書信息修改\n");</p><p>  printf("\t\t\t0 ------------------退出圖書信息系統(tǒng)\n");</p><p>  printf("\n\n\t\t********************************************

81、******\n");</p><p>  printf("\t\tPlease Enter Choose: ");</p><p>  fflush(stdin);</p><p>  scanf("%d",&a);</p><p><b>  switch(a)&l

82、t;/b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  putin();</b></p><p><b>  break;</b></p><p>&

83、lt;b>  case 2:</b></p><p><b>  lookup();</b></p><p><b>  break;</b></p><p><b>  case 3:</b></p><p><b>  search();<

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

85、<b>  case 5:</b></p><p><b>  update();</b></p><p><b>  break;</b></p><p><b>  case 0:</b></p><p>  printf("\n\n退出\n

86、\n");</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("\n序號(hào)不對(duì)\n");</p><p><b>  }</b></p><p

87、>  }while(a!=0);</p><p><b>  save();</b></p><p><b>  }</b></p><p>  五、運(yùn)行結(jié)果和調(diào)試分析</p><p><b>  1)圖書信息初始化</b></p><p><

88、;b>  圖書信息錄入</b></p><p><b>  3)圖書信息瀏覽</b></p><p><b>  4)圖書信息查詢</b></p><p><b>  5)圖書信息刪除</b></p><p><b>  6)圖書信息修改</b

89、></p><p><b>  六、總結(jié)體會(huì)</b></p><p>  雖然這次的程序是通過上網(wǎng)查出來的,但是通過這次的實(shí)驗(yàn)使我知道了圖書管理系統(tǒng)的流程,知道了一些以前不知道的知識(shí),在運(yùn)行程序時(shí)也遇到了一些問題,借書時(shí)只能借一本書,再借書就不能顯示是借了還是不能借,把最多能借書的數(shù)量改了一下還是不行,最后在每一個(gè)判斷輸出之后都加了goto END借書,就能正常

90、借書了。程序有點(diǎn)長,本來一個(gè)函數(shù)就能完成一個(gè)功能,他用了兩個(gè)函數(shù)就我把自己能改成一個(gè)的改了。借書系統(tǒng)比較復(fù)雜,不容易懂,和同學(xué)交流了一下自己看了看才明白。</p><p>  這次的實(shí)驗(yàn)還讓我復(fù)習(xí)了數(shù)據(jù)結(jié)構(gòu)的一些知識(shí),如數(shù)組,while語句,switch語句,鏈表,還知道了如何使用system("cls")清屏,還知道了strcmp是用來比較字符串s1和s2大小的,strcpy使用來把字符串s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論