課程設(shè)計(jì)---圖書(shū)管理_第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>  《C語(yǔ)言程序》課程設(shè)計(jì)</p><p><b>  報(bào)告書(shū)</b></p><p>  設(shè)計(jì)題目: 圖書(shū)管理 </p><p>  專業(yè): 電子信息工程 </p><p><b>  目 錄</b></p><p> 

2、 摘 要 ―――――――――――――――――-02</p><p>  第一章 緒論 ――――――――――――――-04</p><p>  第二章 問(wèn)題定義(或系統(tǒng)分析) ―――――----05</p><p>  第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì) ―――――――--06</p><p>  第四章 編碼實(shí)現(xiàn)―――――――-――--―---07&

3、lt;/p><p>  第五章 調(diào)試與測(cè)試 ―――――――――――-11</p><p>  第六章 總結(jié)與心得 ―――――――――――-12</p><p><b>  附錄:</b></p><p>  1源代碼――――――――――――――――--12</p><p>  2參考資料―――――――

4、――――――――--32</p><p><b>  摘 要</b></p><p>  當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)是無(wú)處不在,因此作為二十一世紀(jì)的大學(xué)生來(lái)說(shuō)掌握程序開(kāi)發(fā)技術(shù)是十分重要的.而C語(yǔ)言又是最常見(jiàn)的,功能最強(qiáng)大的一種語(yǔ)言.因此,做好C語(yǔ)言課程設(shè)計(jì)是非常必要的.課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)

5、我們的實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。從拿到題目到完成整個(gè)編輯的幾個(gè)星期里,不僅鞏固了以前學(xué)過(guò)的知識(shí),還可以學(xué)到很多新的東西。</p><p>  我做的圖書(shū)資料管理系統(tǒng),雖然是一個(gè)小程序,但對(duì)我這樣一初學(xué)者來(lái)說(shuō)確實(shí)是一個(gè)很大的困難,以至于好幾節(jié)課程設(shè)計(jì)下來(lái)還是沒(méi)什么太大的進(jìn)展。在圖書(shū)管理系統(tǒng)中,要為每一個(gè)借閱者建立一個(gè)帳戶,并給借閱者發(fā)放借閱卡,帳戶中存儲(chǔ)借閱者的個(gè)人信息,借閱信息,以及預(yù)定信息。持有借閱卡的

6、借閱者可以借閱書(shū)刊,反還書(shū)刊,查詢書(shū)刊信息,預(yù)定書(shū)刊并取消預(yù)定,但這些操作都是通過(guò)圖書(shū)管理員進(jìn)行的,即借閱者不直接與系統(tǒng)交互,而是圖書(shū)管理員充當(dāng)借閱者的代理與系統(tǒng)交互。在借閱書(shū)刊時(shí),需要輸入所借閱的書(shū)刊的名字,書(shū)刊的ISBN/ISSN號(hào),然后輸入借閱者的圖書(shū)卡號(hào)和借閱者名,完成后提交所添表格,系統(tǒng)驗(yàn)證借閱者是否有效,若有效,借閱請(qǐng)求被接受,系統(tǒng)查詢數(shù)據(jù)庫(kù)系統(tǒng),看借閱者所借閱書(shū)刊是否存在,若存在,則借閱者可以借閱書(shū)刊,建立并在系統(tǒng)中存儲(chǔ)借

7、閱記錄。借閱者還書(shū)后,刪除關(guān)于所還書(shū)刊的借閱記錄。如果借閱者所借閱的書(shū)刊已被借出,借閱者還可以預(yù)定該書(shū),一旦借閱者預(yù)定的書(shū)刊可以獲得,就將書(shū)刊直接寄給預(yù)定人。</p><p>  這個(gè)程序主要考察了學(xué)生對(duì)結(jié)構(gòu)體,指針,文件的操作,以及C語(yǔ)言算法的掌握,所以完成此道題目要求較強(qiáng)的設(shè)計(jì)能力,尤其是一種大局意識(shí)。如何調(diào)試程序也非常重要,通過(guò)這個(gè)程序可以學(xué)到以前調(diào)試短程序沒(méi)有的的經(jīng)驗(yàn)。</p><p&

8、gt;<b>  【關(guān)鍵字】</b></p><p>  1圖書(shū)管理 2圖書(shū)查找 3圖書(shū)借還 4圖書(shū)的新增與修改</p><p><b>  第一章 緒論</b></p><p><b>  1.1選題背景</b></p><p>  隨著社

9、會(huì)的發(fā)展及知識(shí)經(jīng)濟(jì)時(shí)代的到來(lái),管理信息系統(tǒng)在各行各業(yè)發(fā)揮著越來(lái)越重要的作用。但在高校的圖書(shū)管理中,避免了手工操作而帶來(lái)的一些不必要的問(wèn)題。</p><p><b>  1.2系統(tǒng)目標(biāo)</b></p><p>  本系統(tǒng)的目標(biāo)是將高校圖書(shū)管理工作實(shí)現(xiàn)計(jì)算機(jī)管理,從而大幅度提高工效率,提高實(shí)施管理的準(zhǔn)確性、科學(xué)性;使擔(dān)負(fù)管理的工作人員從繁雜的手工勞作中解脫出來(lái),更好實(shí)施針

10、對(duì)圖書(shū)借閱管理在手工操作遇到的問(wèn)題。</p><p><b>  1.3系統(tǒng)目的</b></p><p>  通過(guò)本項(xiàng)課程設(shè)計(jì),可以培養(yǎng)獨(dú)立思考、 綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識(shí)的能力,能更好的鞏固《C語(yǔ)言程序設(shè)計(jì)》課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計(jì)的基本方法,強(qiáng)化上機(jī)動(dòng)手編程能力,闖過(guò)理論與實(shí)踐相結(jié)合的難關(guān)!更加了解了c語(yǔ)言的好處和其可用性!同時(shí)增加了同學(xué)之間的團(tuán)隊(duì)合作精神

11、!更加也體會(huì)到以后在工作中團(tuán)隊(duì)合作的重要性和必要性!</p><p>  通過(guò)C語(yǔ)言課程設(shè)計(jì),使學(xué)生了解高級(jí)程序設(shè)計(jì)語(yǔ)言的結(jié)構(gòu),掌握基本的程序設(shè)計(jì)過(guò)程和技巧,掌握基本的分析問(wèn)題和利用計(jì)算機(jī)求解問(wèn)題的能力,具備初步的高級(jí)語(yǔ)言程序設(shè)計(jì)能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)和畢業(yè)設(shè)計(jì)打下堅(jiān)實(shí)基礎(chǔ)。</p><p>  第二章 問(wèn)題定義(或系統(tǒng)分析)</p><p>  2.1題

12、目分析 一、目的要求</p><p>  本課程設(shè)計(jì)任務(wù)的目的是要求學(xué)生按照分析、設(shè)計(jì)、編碼、調(diào)試和測(cè)試的軟件開(kāi)發(fā)過(guò)程獨(dú)立完成管理系統(tǒng)設(shè)計(jì),以及C語(yǔ)言算法的掌握,并能最終實(shí)現(xiàn)本系統(tǒng)的功能要求,通過(guò)這個(gè)程序可以學(xué)習(xí)到以前調(diào)試短程序沒(méi)有的的經(jīng)驗(yàn)。</p><p><b>  【題目要求】</b></p><p> ?。?)為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜

13、單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目;</p><p> ?。?)要求以上功能分別用函數(shù)實(shí)現(xiàn)。并要求用C語(yǔ)言的文件操作語(yǔ)句將以上所有結(jié)果保存在文件XX.out。</p><p><b>  【輸入/輸出要求】</b></p><p> ?。?)應(yīng)用程序運(yùn)行后,先顯示一個(gè)菜單,然后用戶根據(jù)需要選擇相應(yīng)的操作

14、項(xiàng)目。進(jìn)入每個(gè)操作后,根據(jù)程序的提示輸入相應(yīng)的信息;</p><p>  (2)要求用戶輸入數(shù)據(jù)時(shí),要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。菜單中的每一個(gè)選項(xiàng)都對(duì)應(yīng)一個(gè)子程序,子程序的算法幾乎囊獲了所有C語(yǔ)言學(xué)過(guò)的技巧。</p><p>  目前社會(huì)管理系統(tǒng)發(fā)展飛快,教務(wù)管理信息系統(tǒng)也是有了很大的發(fā)展。本系統(tǒng)完全獨(dú)立開(kāi)發(fā),力求使系統(tǒng)功能簡(jiǎn)明,但功能全易操作。它適應(yīng)

15、了時(shí)代發(fā)展,適應(yīng)了我國(guó)教育深化改革、全面實(shí)施素質(zhì)教育的需要;從技術(shù)角度分析,這項(xiàng)開(kāi)發(fā)工作所涉及的專業(yè)技術(shù)如下:操作系統(tǒng)采用Windows 2000以上的版本;在數(shù)據(jù)管理系統(tǒng)上,我們可采用了Microsoft Office Access,開(kāi)發(fā)工具選用Microsoft Visual Basic .NET2003;從經(jīng)濟(jì)角度分析, 采用計(jì)算機(jī)管理不但可以提高工作效率,而且還可以節(jié)省人力、物力、財(cái)力,降低了人工處理產(chǎn)生的錯(cuò)誤</p>

16、;<p>  第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)</p><p>  圖書(shū)數(shù)據(jù):書(shū)號(hào),書(shū)名,作者,出版時(shí)間,價(jià)格,冊(cè)數(shù),頁(yè)數(shù)</p><p>  借書(shū)人信息:姓名,單位,所借書(shū)目,借閱時(shí)間等</p><p>  1.借書(shū)模塊:輸入書(shū)名</p><p><b>  編號(hào)</b></p><p>

17、;  借書(shū)證號(hào)(如書(shū)庫(kù)中有書(shū)并且冊(cè)數(shù)大于0,則進(jìn)行借書(shū),借書(shū)日期由系統(tǒng)時(shí)間提供)</p><p>  2.還書(shū)模塊:登記借書(shū)證號(hào)</p><p><b>  進(jìn)行還書(shū)操作</b></p><p><b>  同時(shí)提供有無(wú)超時(shí)</b></p><p><b>  有則給予罰款處理。</

18、b></p><p>  3.圖書(shū)管理:對(duì)書(shū)庫(kù)中書(shū)進(jìn)行管理</p><p><b>  新書(shū)入庫(kù)</b></p><p><b>  舊書(shū)刪除</b></p><p>  對(duì)庫(kù)存量進(jìn)行統(tǒng)計(jì)和查詢</p><p>  4.查詢模塊:對(duì)書(shū)庫(kù)中書(shū)進(jìn)行查詢</p>

19、<p><b>  根據(jù)書(shū)名進(jìn)行查詢</b></p><p><b>  根據(jù)書(shū)號(hào)進(jìn)行查詢</b></p><p><b>  根據(jù)出版社進(jìn)行查詢</b></p><p><b>  對(duì)借閱書(shū)進(jìn)行查詢</b></p><p>  對(duì)一段時(shí)間或某

20、書(shū)進(jìn)行查詢和統(tǒng)計(jì)</p><p><b>  第四章 編碼實(shí)現(xiàn)</b></p><p>  增加圖書(shū)功能,id自動(dòng)排號(hào) </p><p>  根據(jù)圖書(shū)類型和圖書(shū)狀態(tài),顯示用戶信息</p><p>  int add_books(Book* head, Book* book_for_add){  &

21、#160; Book* p = head;    if (!p)        return -1;    while (p->_next)    {        p = p->_nex

22、t;    };    p->_next = book_for_add;    book_for_add->_id = p->_id+1;    book_for_add->_prev = p;    book_for_add->_next = NU

23、LL;    book_for_add->_count = 0;    book_for_add->_status = 0;    return 0;};查找書(shū)名稱,返回查找到的數(shù)量,書(shū)名可能有重復(fù)的,一本書(shū)可能也有很多本,但是ID卻是唯一的 int search_books_by_name(Book* book_head,

24、 char* name){    int count = 0;    Book* p = book_hea</p><p>  Book* borrow_books(Book* book_head, int id){    Book* p = book_head;    while

25、(p)    {        if (p->_id == id)            break;        p = p->_nex

26、t;    }    if (!p)/* 不存在 */        return NULL; 還書(shū),正常歸還就返回該書(shū)的指針,否則就返回NULL</p><p>  還書(shū)要登記 Book* return_books(Book* book_head, int id){&

27、#160;   Book* p = book_head;    while (p)    {        if (p->_id == id && p->_status != 0)      &

28、#160; {            p->_status = 0; </p><p><b>  第五章 調(diào)試與測(cè)試</b></p><p><b>  運(yùn)行的結(jié)果說(shuō)明:</b></p><p>  在V

29、isual C++ 6.0</p><p>  在此環(huán)境下運(yùn)行比較好,其界面十分友好并且能正常運(yùn)行。</p><p><b>  第六章 總結(jié)與心得</b></p><p>  首先我覺(jué)得,用到的程序段不必太高級(jí),因?yàn)樘煜率陆杂懈叩椭?,決定優(yōu)劣的不是集體中的某部分的強(qiáng)弱,起決定作用的是組合內(nèi)各元素的和諧,要能在一個(gè)集體中各盡其用,每個(gè)人都能發(fā)

30、揮自己的長(zhǎng)處,避免自己的短處,那么這個(gè)集體的組合能量是最優(yōu)的。選擇什么等級(jí)的C語(yǔ)言就是關(guān)鍵,最后我決定運(yùn)用文件,我的理解是;必須建立一個(gè)文件,它能夠保存新的錄入文擋,又能在提示語(yǔ)的要求下讀出文檔。</p><p>  然而,這只是萬(wàn)里長(zhǎng)征的第一步,后面的路還很長(zhǎng),困難還有很多,可是我能成功的編譯一個(gè)程序,能夠在思路卡殼的情況下,繼續(xù)前進(jìn),我在此很感謝給予我耐心解答的老師和同學(xué),是他們?yōu)槲倚〕绦虻某晒ζ鸬搅岁P(guān)鍵性的

31、作用,那么多個(gè)日夜,如此多的困難,同學(xué)們勤懇塌實(shí),從開(kāi)始到結(jié)束,始終熱情高漲,我感謝這種氛圍,感謝學(xué)校提供的良好條件。</p><p>  在課程設(shè)計(jì)過(guò)程中,我學(xué)到了很多人生哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)踐計(jì)劃,并掌握了在執(zhí)行過(guò)程中</p><p><b>  附錄 </b></p><p><b>  源代碼</b&

32、gt;</p><p>  漢字菜單的編寫可參照以下代碼:</p><p>  #include "stdio.h"</p><p><b>  . main()</b></p><p>  { char c;</p><p><b>  int i;</b&

33、gt;</p><p><b>  do</b></p><p><b>  {</b></p><p><b>  clrscr();</b></p><p>  for(i=0;i<80;i++)</p><p>  printf("

34、*");</p><p>  printf("\t 1: add books\n");</p><p>  printf("\t 2: list books\n");</p><p>  printf("\t 3: sreach books\n");</p><p>  p

35、rintf("\t 4: borrow books\n");</p><p>  printf("\t 5: return books\n");</p><p>  printf(“\t6: exit\n”)</p><p>  printf("\t請(qǐng)選擇輸入選項(xiàng)[1\\2\\3\\4\\5\\6]:\n"

36、);</p><p><b>  do</b></p><p><b>  {</b></p><p>  c=getchar();</p><p>  }while(c!='1'&&c!='2'&&c!='3'&

37、;&c!='4'&&c!='5'&&!=’6’);</p><p>  getchar();</p><p><b>  switch(c)</b></p><p>  { case '1': input(); break;</p><

38、p>  case '2': del(); break;</p><p>  case '3': find(); break;</p><p>  case '4': arrange(); break;</p><p>  case ‘5’: right(); break;</p><

39、;p>  case '6': exit(0);</p><p><b>  }</b></p><p>  printf(" 按任意鍵返回主菜單:\n");</p><p>  getchar();</p><p><b>  clrscr();</b>&l

40、t;/p><p>  }while(1);</p><p><b>  }</b></p><p>  #include <stdio.h>#include <stdlib.h>#include <string.h>#define BORROWED     1#d

41、efine NOBORROW     0/* 定義圖書(shū)結(jié)構(gòu) */struct Book{    int   _id;           </p><p>  // 編號(hào),唯一  &#

42、160; char _name[32];   </p><p>  // 圖書(shū)的名稱,不唯一    int   _type;        </p><p>  // 圖書(shū)的類型,不唯一    int

43、0;  _status;       </p><p>  // 圖書(shū)的狀態(tài),借出/沒(méi)有借出    int   _count;       </p><p>  // 圖書(shū)借出的次數(shù)

44、60;   struct Book* _next;</p><p>  // 下一本書(shū)    struct Book* _prev;</p><p>  // 上一本書(shū)};/* 定義圖書(shū)類型 */typedef struct Book Book;/* 操作的目錄提示 */char book_menu[][32] ={&#

45、160;   "add books",    "list books",    "search books",    "borrow books",    "return books",&#

46、160;   "exit",    "",};/* 操作的目錄提示1 */char book_menu_sub[][32] ={    "search books by name",    "search books by type",

47、    "",};/* 添加圖書(shū)類型,用戶信息顯示 */char book_types[][32] ={    "type0",    "type1",    "type2",    &qu

48、ot;",};/* 添加圖書(shū)狀態(tài),用戶信息顯示 */char book_status[][32] ={    "noborrow",    "borrowed",    </p><p>  /* 已經(jīng)被借走 */    

49、;    return NULL;    p->_status = 1;</p><p>  /* 借書(shū)登記 */    p->_count++;    </p><p>  /* 被借閱次數(shù)+1 */    r

50、eturn p;}/* 查找書(shū)名稱,返回查找到的數(shù)量,書(shū)名可能有重復(fù)的,一本書(shū)可能也有很多本,但是ID卻是唯一的 */int search_books_by_name(Book* book_head, char* name){    int count = 0;    Book* p = book_head;    while (p

51、)    {        if (strcmp(p->_name, name) == 0)        {            print_

52、book(p);            ++count;        }        p = p->_next;    } &#

53、160;  return count;}/* 查找書(shū)類型,返回查找到的數(shù)量,一個(gè)類型會(huì)有很多書(shū) */int search_books_by_type(Book* book_head, int type){    int count = 0;    Book* p = book_head;    while </p&g

54、t;<p>  /* 還書(shū)登記 */            break;        }        p = p->_next;  

55、60; }    return p;}/* 打印操作選項(xiàng) */void print_menu(char menus[][32]){    int no = 0;    printf("\nPLEASE SELECT ID LIKE 1 or 2 ..\n");    while

56、(strlen(menus[no]))    {        printf("%d   \t%s\n", no+1, menus[no]);        ++no;    } 

57、   printf("OPTION(");    while (no)    {        printf("/%d", no--);    }    printf("

58、):");}/* 主函數(shù) */int main(void){    char key = 0;    char ss[128];    int loop = 1;    Book firs</p><p><b>  } </b></p&g

59、t;<p><b>  參考資料</b></p><p>  《C程序設(shè)計(jì)語(yǔ)言》 機(jī)械工業(yè)出版社</p><p>  《程序設(shè)計(jì)實(shí)踐》 機(jī)械工業(yè)出版社</p><p>  《C程序設(shè)計(jì)》 清華大學(xué)出版社</p><p>  《C專家編程》 人

溫馨提示

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