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>  摘 要 書籍是人類不可缺少的精神食糧,圖書管理系統(tǒng)是一些單位不可缺少的部分,尤其是對一些學(xué)校來說尤為的重要。所以圖書管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┲刈龅男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)的人工的方式管理圖書、期刊、試卷合訂本等,這種管理方式存在著諸多的缺點(diǎn),如:效率低,保密性差,另外時(shí)間長了,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來不少的困難。隨著圖書館規(guī)模的不斷擴(kuò)大,圖書數(shù)量也相應(yīng)的增加,有關(guān)

2、圖書的各種信息量也成倍增加,面對著龐大的信息量,傳統(tǒng)的人工方式管理會(huì)導(dǎo)致圖書館管理上的混亂,人力與物力過多浪費(fèi),圖書館信息管理費(fèi)用的增加,從而使圖書館的負(fù)擔(dān)過重,影響整個(gè)圖書館的運(yùn)作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實(shí)用的圖書管理系統(tǒng),對圖書資料進(jìn)行集中統(tǒng)一的管理。本論文主要是針對圖書信息管理系統(tǒng)的研究,介紹的是一個(gè)典型的數(shù)據(jù)庫應(yīng)用系統(tǒng),主要涉及數(shù)據(jù)的讀寫和數(shù)據(jù)的傳遞,利用Visual C++ 6.0工具,采用數(shù)據(jù)結(jié)構(gòu)語言

3、進(jìn)行開發(fā),介紹了系統(tǒng)的開發(fā)目的、系統(tǒng)分析、系統(tǒng)結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)等。系統(tǒng)的建立將支持圖書管理人員對各類信息進(jìn)行快捷、準(zhǔn)確、方便的查詢;支持管理人員</p><p>  關(guān)鍵詞 Visual C++ 6.0; 圖書管理; 數(shù)據(jù)結(jié)構(gòu)</p><p><b>  1 緒論</b></p><p>  當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信

4、息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。 尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計(jì)的。 數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書館采取手工方式對圖書借

5、閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對它比較清楚,時(shí)間一長,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對很長時(shí)間以前的圖書進(jìn)行更改就更加困難了。</p><p>  基于這此問題,有必要建立一個(gè)圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管

6、理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。</p><p><b>  2系統(tǒng)功能介紹</b></p><p><b>  2.1 系統(tǒng)設(shè)計(jì)</b></p><p>  本次設(shè)計(jì)的圖書信息管理系統(tǒng)采用數(shù)據(jù)結(jié)構(gòu)語言模式,通過內(nèi)部網(wǎng)絡(luò)處理和信息交換,開發(fā)結(jié)構(gòu)、解決數(shù)據(jù)共享問題。主要用于

7、對圖書館日常工作的管理,主要任務(wù)是用計(jì)算機(jī)圖書各種信息進(jìn)行日常的管理,如錄入、列表、查詢、借閱、歸還圖書的管理等。本系統(tǒng)實(shí)現(xiàn)了圖書館的信息自動(dòng)化管理,完成了圖書管理系統(tǒng)的基本功能,該系統(tǒng)主要包括管理員子系統(tǒng)和書籍管理子系統(tǒng)退出子系統(tǒng)兩個(gè)部分。其書籍管理子系統(tǒng)的主要功能是用于書籍信息的管理,如新書的入庫、圖書查詢、借閱圖書、歸還圖書等。</p><p>  2.2 系統(tǒng)流程及模塊功能</p><

8、;p>  系統(tǒng)模塊功能結(jié)構(gòu)分析圖如圖2-1所示</p><p>  圖2-1 系統(tǒng)模塊功能結(jié)構(gòu)分析圖</p><p>  2.3 模塊功能介紹</p><p>  本系統(tǒng)是圖書管理系統(tǒng),本系統(tǒng)啟動(dòng)后需要進(jìn)入主界面,在這個(gè)界面,我們可以選擇所需要的功能模塊來實(shí)現(xiàn)所要的執(zhí)行功能。</p><p>  錄入圖書功能:圖書信息錄入到數(shù)據(jù)庫當(dāng)中

9、(主要包括圖書的編號、書名、作者、出版社、出版日期、圖書簡介、圖書類別等);</p><p>  B)列表圖書功能:把數(shù)據(jù)庫當(dāng)中圖書的錄入信息的圖書先列舉出來,再對其進(jìn)行保存;</p><p>  C)查詢圖書功能:方便管理工作人員對圖書信息的了解,主要按照圖書的編號和書名進(jìn)行瀏覽圖書信息;</p><p>  D)借閱圖書功能:主要的是對圖書館中已被借閱的書進(jìn)行信

10、息存儲(chǔ);</p><p>  E)歸還圖書功能:該模塊實(shí)現(xiàn)對圖書館中已被歸還的書進(jìn)行信息存儲(chǔ);</p><p>  3 系統(tǒng)各模塊功能實(shí)現(xiàn)</p><p><b>  3.1 添加圖書</b></p><p>  該模塊主要實(shí)現(xiàn)對新入庫的圖書進(jìn)行信息錄入,錄入信息包括:圖書編號、名稱、狀態(tài)、借閱次數(shù)等。</p&g

11、t;<p>  運(yùn)行界面如圖2所示,運(yùn)行成功提示如圖 :</p><p><b>  圖3-1 添加圖書</b></p><p><b>  3.2 列表圖書</b></p><p>  該模塊主要實(shí)現(xiàn)對所有登記的圖書進(jìn)行信息列表。</p><p>  運(yùn)行界面如圖3.2所示,運(yùn)行成

12、功提示如圖:</p><p><b>  圖3-2 列表圖書</b></p><p><b>  3.3 查詢圖書</b></p><p>  該模塊實(shí)現(xiàn)對圖書的信息查詢功能,查詢方式包括:“按名查找”、“按類型查找”。</p><p>  運(yùn)行界面如圖3-3-1、圖3-3-2所示,運(yùn)行成功提示如

13、圖:</p><p>  圖3-3-1 按名查詢</p><p>  圖3-3-2 按類型查詢</p><p><b>  3.4 借閱圖書</b></p><p>  該模塊實(shí)現(xiàn)對所登記圖書的借閱情況統(tǒng)計(jì)。</p><p>  運(yùn)行界面如圖3-4所示,運(yùn)行成功提示如圖:</p>

14、<p><b>  圖3-4 借閱圖書</b></p><p><b>  3.5 歸還圖書</b></p><p>  該模塊實(shí)現(xiàn)對所借閱圖書歸還情況的統(tǒng)計(jì)。</p><p>  運(yùn)行界面如圖3-5所示,運(yùn)行成功提示如圖:</p><p><b>  圖3-5 歸還圖書<

15、;/b></p><p><b>  3.6 總體運(yùn)行</b></p><p>  運(yùn)行界面如圖3-6所示,運(yùn)行成功提示如圖:</p><p><b>  圖3-6 總體運(yùn)行</b></p><p><b>  4 程序源代碼</b></p><p&

16、gt;<b>  源代碼如下:</b></p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #define BORROWED 1</

17、p><p>  #define NOBORROW 0</p><p>  /* 定義圖書結(jié)構(gòu) */</p><p>  struct Book{ </p><p>  int _id;// 編號,唯一</p><p>  char _name[32];// 圖書的名稱,不唯一</p><p> 

18、 int _type;//型,不唯一</p><p>  int _status;// 圖書的狀態(tài),借出/沒有借出</p><p>  int _count;// 圖書借出的次數(shù)</p><p>  struct Book* _next;// 下一本書</p><p>  struct Book* _prev;// 上一本書</p&g

19、t;<p>  };/* 定義圖書類型 */</p><p>  typedef struct Book Book;</p><p>  /* 操作的目錄提示 */</p><p>  char book_menu[][32] ={ "add books", "list books", "search

20、books", "borrow books", "return books", "exit",""};</p><p>  /* 操作的目錄提示1 */</p><p>  char book_menu_sub[][32] ={"按名查找", "s按類型查找",

21、 ""};</p><p>  /* 添加圖書類型,用戶信息顯示 */</p><p>  char book_types[][32] ={ "類型0", "類型1", "類型2", ""};</p><p>  /* 添加圖書狀態(tài),用戶信息顯示 */</p&g

22、t;<p>  char book_status[][32] ={ "未借出", "借出", ""};</p><p>  /* 增加圖書,id自動(dòng)排號 */</p><p>  int add_books(Book* head, Book* book_for_add)</p><p><

23、;b>  {</b></p><p>  Book* p = head; </p><p><b>  if (!p)</b></p><p>  return -1;</p><p>  while (p->_next)</p><p><b>  { <

24、/b></p><p>  p = p->_next;</p><p><b>  }</b></p><p>  p->_next = book_for_add;</p><p>  book_for_add->_id = p->_id+1;</p><p>  b

25、ook_for_add->_prev = p;</p><p>  book_for_add->_next = NULL;</p><p>  book_for_add->_count = 0;</p><p>  book_for_add->_status = 0;</p><p><b>  return

26、 0;</b></p><p><b>  }</b></p><p>  /* 建立圖書管理鏈表 */</p><p>  Book* create_list(Book* book_head)</p><p><b>  {</b></p><p>  if (

27、book_head)</p><p><b>  {</b></p><p>  book_head->_prev = book_head;</p><p>  book_head->_next = NULL;</p><p>  book_head->_id = 1;</p><p

28、>  book_head->_count = 0;</p><p>  book_head->_status = 0; </p><p><b>  }</b></p><p>  return book_head;</p><p>  }/* 釋放鏈表 */</p><p> 

29、 void free_list(Book* book_head)</p><p><b>  {</b></p><p>  Book *p, *p1; </p><p>  p = book_head;</p><p><b>  while(p)</b></p><p>

30、<b>  {</b></p><p>  p1 = p->_next;</p><p><b>  free(p);</b></p><p><b>  p = p1; </b></p><p><b>  }</b></p><

31、;p>  } /* 打印圖書信息 */</p><p>  void print_book(Book* book)</p><p>  { printf("id:%d, name:%s, type:%s, status:%s, times:%d \n",book->_id, book->_name, book_types[book->_type]

32、, book_status[book->_status], book->_count);}</p><p>  /* 列出所有登記的圖書 */</p><p>  void list_books(Book* book_head)</p><p><b>  {</b></p><p>  Book* p =

33、book_head;</p><p><b>  while (p)</b></p><p><b>  {</b></p><p>  print_book(p);</p><p>  p = p->_next;</p><p><b>  }</b&

34、gt;</p><p>  }/* 借書,返回該書的指針,否則就返回NULL,可能不存在圖書,或者已經(jīng)被借走了 */</p><p>  Book* borrow_books(Book* book_head, int id)</p><p><b>  {</b></p><p>  Book* p = book_hea

35、d; </p><p><b>  while (p)</b></p><p><b>  { </b></p><p>  if (p->_id == id) break;</p><p>  p = p->_next;</p><p><b>  }

36、</b></p><p>  if (!p)/* 不存在 */</p><p>  return NULL;</p><p>  if (p->_status != 0) /* 已經(jīng)被借走 */</p><p>  return NULL;</p><p>  p->_status = 1; /

37、* 借書登記 */</p><p>  p->_count++;/* 被借閱次數(shù)+1 */</p><p><b>  return p;</b></p><p>  }/* 查找書名稱,返回查找到的數(shù)量,書名可能有重復(fù)的,一本書可能也有很多本,但是ID卻是唯一的 */</p><p>  int search_b

38、ooks_by_name(Book* book_head, char* name)</p><p><b>  {</b></p><p>  int count = 0;</p><p>  Book* p = book_head;</p><p><b>  while (p)</b></

39、p><p><b>  {</b></p><p>  if (strcmp(p->_name, name) == 0)</p><p><b>  {</b></p><p>  print_book(p);</p><p><b>  ++count;<

40、/b></p><p><b>  }</b></p><p>  p = p->_next;</p><p><b>  }</b></p><p>  return count;</p><p>  }/* 查找書類型,返回查找到的數(shù)量,一個(gè)類型會(huì)有很多書 *

41、/</p><p>  int search_books_by_type(Book* book_head, int type)</p><p><b>  { </b></p><p>  int count = 0; </p><p>  Book* p = book_head;</p><p&

42、gt;<b>  while (p)</b></p><p><b>  { </b></p><p>  if (p->_type == type)</p><p><b>  { </b></p><p>  print_book(p); </p>&l

43、t;p><b>  ++count; </b></p><p><b>  }</b></p><p>  p = p->_next;</p><p><b>  }</b></p><p>  return count;</p><p> 

44、 }/* 還書,正常歸還就返回該書的指針,否則就返回NULL */</p><p>  Book* return_books(Book* book_head, int id)</p><p><b>  {</b></p><p>  Book* p = book_head; </p><p><b>  wh

45、ile (p)</b></p><p><b>  { </b></p><p>  if (p->_id == id && p->_status != 0) </p><p><b>  {</b></p><p>  p->_status = 0;

46、/* 還書登記 */</p><p><b>  break;</b></p><p><b>  }</b></p><p>  p = p->_next;</p><p><b>  }</b></p><p><b>  retur

47、n p;</b></p><p>  }/* 打印操作選項(xiàng) */</p><p>  void print_menu(char menus[][32])</p><p><b>  {</b></p><p>  int no = 0; </p><p>  printf("

48、\nPLEASE SELECT ID LIKE 1 or 2 ..\n");</p><p>  while (strlen(menus[no]))</p><p><b>  {</b></p><p>  printf("%d \t%s\n", no+1, menus[no]); ++no;</p>

49、<p><b>  }</b></p><p>  printf("OPTION(");</p><p>  while (no)</p><p><b>  {</b></p><p>  printf("/%d", no--);</p&

50、gt;<p><b>  }</b></p><p>  printf("):");</p><p><b>  }</b></p><p><b>  /* 主函數(shù) */</b></p><p>  int main(void)</p&

51、gt;<p><b>  {</b></p><p>  char key = 0; char ss[128]; int loop = 1; Book first_book, *pBooks, *pTmp; strcpy(first_book._name, "nihao");first_book._type = 0;pBooks = create_list(

52、&first_book);</p><p>  while (loop)</p><p><b>  {</b></p><p>  print_menu(book_menu);</p><p><b>  gets(ss);</b></p><p>  key =

53、ss[0] - 48;</p><p>  if(key < 0 || key > 6)</p><p>  printf("Error input !\n");</p><p>  else printf("INPUT:%d\n", key);</p><p>  switch (key)

54、</p><p><b>  {</b></p><p>  case 1: // add books</p><p>  pTmp = (Book*)malloc(sizeof(Book));</p><p><b>  if(pTmp)</b></p><p><b

55、>  { </b></p><p>  printf("Add_Book input name:");</p><p><b>  gets(ss);</b></p><p>  strncpy(pTmp->_name, ss, 31);</p><p>  print_men

56、u(book_types);</p><p><b>  gets(ss);</b></p><p>  key = ss[0] - 48;</p><p>  if(key <= 0 || key > (sizeof(book_types)/32) )</p><p><b>  key = 1;

57、</b></p><p>  pTmp->_type = key - 1;</p><p>  add_books(pBooks, pTmp);</p><p><b>  }break;</b></p><p>  case 2: // list books</p><p> 

58、 list_books(pBooks);</p><p><b>  break;</b></p><p>  case 3: // search books</p><p>  print_menu(book_menu_sub);</p><p><b>  gets(ss);</b></p

59、><p>  key = ss[0] - 48;</p><p>  printf("INPUT:%d\n", key);</p><p>  switch (key)</p><p><b>  {</b></p><p>  case 1: // search books by

60、 name</p><p>  printf("input book name:");</p><p><b>  gets(ss);</b></p><p>  key = search_books_by_name(pBooks, ss);</p><p>  if(key == 0)</p&

61、gt;<p>  printf("no found!\n");</p><p>  case 2: // search books by type</p><p>  print_menu(book_types);</p><p><b>  gets(ss);</b></p><p>

62、  key = ss[0] - 48;</p><p>  key = search_books_by_type(pBooks, key-1);</p><p>  if(key == 0)</p><p>  printf("no found!\n");</p><p>  default: break;</p&

63、gt;<p><b>  }break;</b></p><p>  case 4: // borrow books</p><p>  printf("Borrow books, input book id:");</p><p><b>  gets(ss);</b></p>

64、;<p>  key = atoi(ss);</p><p>  pTmp = borrow_books(pBooks, key);</p><p>  if (!pTmp)</p><p>  printf("borrow books failed: %d\n", key);</p><p><b&g

65、t;  else</b></p><p>  { printf("borrow books successful!\n");</p><p>  print_book(pTmp);</p><p><b>  }break;</b></p><p>  case 5: // return

66、books</p><p>  printf("Return books, input book id:");</p><p><b>  gets(ss);</b></p><p>  key = atoi(ss);</p><p>  pTmp = return_books(pBooks, key

67、);</p><p>  if (!pTmp)</p><p>  printf("return books failed: %d\n", key);</p><p><b>  else</b></p><p><b>  {</b></p><p> 

68、 printf("return books successful!\n");</p><p>  print_book(pTmp);</p><p><b>  }break;</b></p><p>  case 6: // exit</p><p><b>  loop = 0;<

69、/b></p><p><b>  break;</b></p><p>  default: break;</p><p><b>  }</b></p><p>  printf("--pause--");</p><p>  gets(ss);

70、}</p><p>  free_list(pBooks);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  5 結(jié)論</b></p><p>  不知不覺數(shù)據(jù)結(jié)構(gòu)課結(jié)束了,通過

71、此次課程設(shè)計(jì),我深刻的了解了有關(guān)數(shù)據(jù)結(jié)構(gòu)的一些操作和編程。同時(shí)也對數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)目的也有所感悟。進(jìn)一步熟悉了數(shù)據(jù)結(jié)構(gòu)語言的結(jié)構(gòu)和使用方法,另外同時(shí)也學(xué)到了有關(guān)數(shù)據(jù)結(jié)構(gòu)以外的很多的知識(shí),達(dá)到了能獨(dú)立處理閱讀、編制和調(diào)試一定規(guī)模的數(shù)據(jù)結(jié)構(gòu)語言程序的水平。</p><p>  此次課程設(shè)計(jì)的課題是圖書信息管理系統(tǒng),這需進(jìn)行程序設(shè)計(jì)方法和技能的基本知識(shí),鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過實(shí)際動(dòng)手能

72、力的培養(yǎng),理論知識(shí)的學(xué)習(xí)的關(guān)鍵不在于懂的多少,而在于你對其的實(shí)踐應(yīng)用,一開始的時(shí)候,編出來的程序有很多的問題,尤其是在圖形用戶界面程序上,因此在圖書館查閱了很多的資料,也請教了好幾個(gè)同學(xué)幫忙修改,調(diào)試了好久才能正常的運(yùn)行。</p><p>  這次的綜合課程設(shè)計(jì)讓我對數(shù)據(jù)結(jié)構(gòu)有了更深的認(rèn)識(shí),對各種“使用方法”有了更進(jìn)一步的了解。時(shí)間是短暫的,收獲是豐厚的。隨著時(shí)間的流失,我會(huì)把現(xiàn)在學(xué)到的東西用到以后的學(xué)習(xí)當(dāng)中,我

73、會(huì)為了以后的路程而努力學(xué)習(xí)的,時(shí)刻記住只有付出才有收獲的。只有更好的掌握數(shù)據(jù)結(jié)構(gòu)語言才能順利的把程序編制出來,才能做出更好的程序。同時(shí)在編寫程序的時(shí)候要詳細(xì)的理解每一個(gè)子程序的功能,對沒有細(xì)節(jié)都要做到透明化。對于每一個(gè)問題都要親手的解決。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)及應(yīng)用案例開發(fā) 李剛生 王琰 清華大學(xué)

74、出版社 2009</p><p>  [2] C語言程序設(shè)計(jì) 楊一平 科學(xué)出版社 2006</p><p>  [3] Java 程序參考大全 鹿春江 清華大學(xué)出版社 2006</p><p>  [4] C語言課程設(shè)計(jì) 劉翼 人民郵電出版社 2005</p><p>  [5] 數(shù)據(jù)結(jié)構(gòu)(C語言版) 嚴(yán)蔚

溫馨提示

  • 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

提交評論