![數(shù)據(jù)結構課程設計報告-圖書管理系統(tǒng)Word版_第1頁](http://file4.renrendoc.com/view/938c21d1e4a9400fe0cd6f12d62520c0/938c21d1e4a9400fe0cd6f12d62520c01.gif)
![數(shù)據(jù)結構課程設計報告-圖書管理系統(tǒng)Word版_第2頁](http://file4.renrendoc.com/view/938c21d1e4a9400fe0cd6f12d62520c0/938c21d1e4a9400fe0cd6f12d62520c02.gif)
![數(shù)據(jù)結構課程設計報告-圖書管理系統(tǒng)Word版_第3頁](http://file4.renrendoc.com/view/938c21d1e4a9400fe0cd6f12d62520c0/938c21d1e4a9400fe0cd6f12d62520c03.gif)
![數(shù)據(jù)結構課程設計報告-圖書管理系統(tǒng)Word版_第4頁](http://file4.renrendoc.com/view/938c21d1e4a9400fe0cd6f12d62520c0/938c21d1e4a9400fe0cd6f12d62520c04.gif)
![數(shù)據(jù)結構課程設計報告-圖書管理系統(tǒng)Word版_第5頁](http://file4.renrendoc.com/view/938c21d1e4a9400fe0cd6f12d62520c0/938c21d1e4a9400fe0cd6f12d62520c05.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
整理為word格式整理為word格式整理為word格式課程設計報告課設課題:課程設計——圖書管理系統(tǒng)學院:電子信息學院專業(yè):網(wǎng)絡工程姓名:班級學號:BX1213指導教師:張艷報告日期:2013.12.12整理為word格式整理為word格式整理為word格式目錄一、需求分析 11.1系統(tǒng)開發(fā)背景和意義 11.2設計題目與要求 1二、總體結構設計 2三、各子模塊設計 33.1初始化圖書信息 33.2系統(tǒng)主界面 33.3采編入庫 43.4輸入讀者信息 43.5借閱圖書 43.6歸還圖書 63.7查詢圖書信息 73.8查詢讀者信息 7四、程序設計調(diào)試情況分析 9五、測試結果 125.1歡迎界面 125.2初始化圖書信息 125.3系統(tǒng)主界面 135.4采編入庫 135.5輸入讀者信息 145.6借閱圖書 155.7歸還圖書 165.8查詢圖書信息 165.9查詢讀者信息 175.10保存文件,退出 18六、總結 19七、參考文獻 20八、附錄(源代碼) 21整理為word格式整理為word格式整理為word格式一、需求分析1.1系統(tǒng)開發(fā)背景和意義圖書管理作為計算機應用的一個分支,有著手工管理無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高圖書管理的效率。因此,開發(fā)一套能夠為用戶提供充足的信息和快捷的查詢手段的圖書管理系統(tǒng),將是非常必要的,也是十分及時的。圖書管理系統(tǒng)需要滿足來自圖書館工作人員、普通用戶和借閱者三方面人員的需求。圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時還可通過圖書編號等查詢相應的借閱情況;普通用戶的需求是查詢圖書館所存的圖書的相關情況;圖書借閱者的需求是查看自己的相關信息及查詢自己的借閱情況。1.2設計題目與要求【問題描述】設計一個計算機管理系統(tǒng)完成圖書管理基本業(yè)務。【基本要求】1) 每種書的登記內(nèi)容包括書號、書名、著作者、現(xiàn)存量和庫存量;2) 對書號建立索引表(線性表)以提高查找效率;3) 系統(tǒng)主要功能如下:*采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加;*借閱:如果一種書的現(xiàn)存量大于0,則借出一本,登記借閱者的書證號和歸還期限,改變現(xiàn)存量;*歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。整理為word格式整理為word格式整理為word格式二、總體結構設計有八個模塊1) 圖書初始化輸入圖書的一些信息,編號、作者、書名、數(shù)量,使有一定的庫存。2) 新書入庫新書采編入庫,輸入編號后如果有次數(shù)只需輸入數(shù)量,沒有則繼續(xù)輸入書名、作者、數(shù)量。3) 添加讀者信息讀者信息初始化,輸入讀書證號和姓名,只有輸入書證號和姓名才能進行借書還書4) 借書模塊讀者輸入讀書證號,證號存在輸入要借的圖書編號,不能借同一本書,如果借書數(shù)量以達到最大也不能借書。5) 還書模塊歸還已借的圖書,要先輸入讀者書證號,書證號存在繼續(xù)輸入要還的圖書編號,圖書編號存在并且借來此書,歸還成功。6) 查詢圖書信息7) 查詢讀者信息可查詢讀者姓名書證號,借了幾本書,都是什么書和還書日期,還可以借幾本書。8) 退出退出讀書管理系統(tǒng)并保存讀者和圖書信息。圖書管理系統(tǒng)圖書管理系統(tǒng)查詢操作模塊讀者管理模塊借閱操作模塊圖書管理模塊查詢操作模塊讀者管理模塊借閱操作模塊圖書管理模塊理退出退出圖書信息查詢讀者信息查詢還書系統(tǒng)借書系統(tǒng)輸入讀者信息采編入庫初始化圖書信息圖書信息查詢讀者信息查詢還書系統(tǒng)借書系統(tǒng)輸入讀者信息采編入庫初始化圖書信息整理為word格式整理為word格式整理為word格式圖2-1主控模塊三、各子模塊設計3.1初始化圖書信息進入系統(tǒng)后首先進行圖書初始化,輸入圖書的信息。開始開始輸入圖書編號、名稱、作者和圖書數(shù)量輸入圖書編號、名稱、作者和圖書數(shù)量進入系統(tǒng)進入系統(tǒng)圖3-1初始化圖書信息流程圖3.2系統(tǒng)主界面初始化之后,進入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息。開始開始輸入功能所對應的數(shù)字輸入功能所對應的數(shù)字輸入的數(shù)字小于0大于6輸入的數(shù)字小于0大于6否錯誤!請重新輸入是錯誤!請重新輸入執(zhí)行所選功能執(zhí)行所選功能整理為word格式整理為word格式整理為word格式圖3-2系統(tǒng)主界面流程圖3.3采編入庫選擇采編入庫的功能后,先輸入圖書編號判斷是否存在,若存在,則在原有記錄上加上添加的圖書數(shù)量;若不存在,則加入新的記錄。錄入圖書信息錄入圖書信息判斷是否有此圖書判斷是否有此圖書 是在原有的紀錄上加上現(xiàn)有的圖書數(shù)量 否在原有的紀錄上加上現(xiàn)有的圖書數(shù)量向系統(tǒng)中加入新紀錄向系統(tǒng)中加入新紀錄圖3-3采編入庫流程圖3.4輸入讀者信息選擇讀者登記后,輸入讀者編號跟姓名。開始開始輸入讀者信息:讀者書證號、姓名輸入讀者信息:讀者書證號、姓名結束結束圖3-4輸入讀者信息流程圖整理為word格式整理為word格式整理為word格式3.5借閱圖書選擇借閱圖書功能后,輸入讀者證號,判斷該讀者是否存在,若存在則輸入借閱圖書的編號,判斷該圖書編號是否存在,若存在,則判斷讀者借閱的圖書數(shù)量是否滿了和是否借閱了相同的書籍,判斷成功后,則輸入歸還該圖書的日期,該圖書現(xiàn)有量減一,借閱成功;若讀者不存在則返回。輸入讀者書證號輸入讀者書證號判斷讀者是否存在判斷讀者是否存在 否輸出次讀者編號不存在!按任意鍵返回 輸出次讀者編號不存在!按任意鍵返回 是輸入要借的圖書編號輸入要借的圖書編號判斷圖書編號是否存在判斷圖書編號是否存在 否輸出此圖書編號不存在!按任意鍵返回輸出此圖書編號不存在!按任意鍵返回 是看是否還有此圖書看是否還有此圖書 否輸出此書已借完,按任意鍵返回 是輸出此書已借完,按任意鍵返回看讀者的借書數(shù)目是否滿了看讀者的借書數(shù)目是否滿了 是整理為word格式整理為word格式整理為word格式輸出借書數(shù)目已滿不能借書,按任意鍵返回 否輸出借書數(shù)目已滿不能借書,按任意鍵返回看讀者是否借了相同的書看讀者是否借了相同的書 是輸出同一讀者不能借相同的兩本書 否輸出同一讀者不能借相同的兩本書輸入歸還圖書的日期輸入歸還圖書的日期圖書現(xiàn)有數(shù)量減1圖書現(xiàn)有數(shù)量減1輸出讀者結束成功,按任意鍵返回輸出讀者結束成功,按任意鍵返回結束結束圖3-5借閱圖書流程圖3.6歸還圖書實現(xiàn)歸還圖書功能時,首先輸入讀者編號,并判斷是否存在,若不存在就按任意鍵返回,;若存在輸入歸還的圖書編號并判斷是否存在,若歸還圖書編號不存在,則返回。存在后,將讀者借閱該圖書的信息清空,該圖書的現(xiàn)有量加一。最后按任意鍵返回輸入要還書的讀者編號輸入要還書的讀者編號判斷讀者編號是否存在 判斷讀者編號是否存在 否整理為word格式整理為word格式整理為word格式輸出讀者編號不存在按任意鍵返回輸出讀者編號不存在按任意鍵返回是輸入讀者還書編號輸入讀者還書編號判斷圖書編號是否存在 判斷圖書編號是否存在否輸出此圖書編號不存在按任意鍵返回輸出此圖書編號不存在按任意鍵返回是此圖書編號和還書日期等于0此圖書編號和還書日期等于0現(xiàn)有圖書數(shù)量加1現(xiàn)有圖書數(shù)量加1輸出讀者還書完畢,按任意鍵返回輸出讀者還書完畢,按任意鍵返回結束結束圖3-6歸還圖書流程圖3.7查詢圖書信息查詢圖書信息時,輸入圖書的編號,判斷是否存在。不存在則返回;存在則輸出圖書的編號,書名,作者,現(xiàn)有量,跟庫存量。判斷圖書信息是否為空判斷圖書信息是否為空整理為word格式整理為word格式整理為word格式 是輸出此圖書編號不存在按任意鍵返回輸出此圖書編號不存在按任意鍵返回否輸出圖書信息:編號、名稱、作者、現(xiàn)有和庫存輸出圖書信息:編號、名稱、作者、現(xiàn)有和庫存結束結束圖3-7查詢圖書信息流程圖3.8查詢讀者信息查詢讀者信息時,首先判斷讀者的編號是否存在,不存在就按任意鍵返回。若存在,則輸出讀者的證號,姓名,和借閱的圖書編碼及其還書日期。判斷讀者信息是否為空判斷讀者信息是否為空是輸出此讀者編號不存在按任意鍵返回否輸出此讀者編號不存在按任意鍵返回輸出讀者書證號、姓名、圖書編碼和還書日期輸出讀者書證號、姓名、圖書編碼和還書日期輸出讀者信息打印完畢輸出讀者信息打印完畢結束結束圖3-8查詢讀者信息流程圖整理為word格式整理為word格式整理為word格式四、程序設計調(diào)試情況分析在整個課程設計中,我們遇到了許多的問題。有些問題吧,我們在苦思冥想的時候,突然我們的編譯器顯示出了正確的結果,當我們欣喜若狂的在運行下一次的時候又會出現(xiàn)相同的問題,在借閱的過程中,在一個讀者借閱了兩本書以上的時候,上一本書的歸還日期上還有下一本書上的編號,最后一本書輸出的才是正確的結果。下圖是借閱了兩本書的截圖:圖4-1看到這里我們也知道是第一本書的還書日期的地址空間跟第二本書的編號連接在了一起導致輸出的時候一直到第二本書編號的的字符串后面的‘/0’結束。最后發(fā)現(xiàn)是我們在定義還書日期這個字符串的時候開辟的空間太小。我們把 charlimit_date[8];改為charlimit_date[10]就好了。整理為word格式整理為word格式整理為word格式圖4-2 整理為word格式整理為word格式整理為word格式五、測試結果5.1歡迎界面程序運行顯示“歡迎使用圖書管理系統(tǒng)”,按任意鍵進入到主菜單如圖5-1所示。圖5-1歡迎界面5.2初始化圖書信息在沒有文件的時候會進入到初始化界面,需要輸入一本圖書的相關信息,如圖5-2所示。圖5-2初始化圖書信息5.3系統(tǒng)主界面接著進入的系統(tǒng)的主菜單,如圖5-3所示。整理為word格式整理為word格式整理為word格式圖5-3系統(tǒng)主界面5.4采編入庫實現(xiàn)采編入庫功能按照系統(tǒng)提示輸入信息。如圖5-4。如果該圖書已存在,則直接輸入圖書的數(shù)量如圖5-5所示。圖5-4采編入庫(書不存在)整理為word格式整理為word格式整理為word格式圖5-5采編入庫(書已存在)5.5輸入讀者信息按照要求輸入讀者信息,如圖5-6所示。圖5-6輸入讀者信息整理為word格式整理為word格式整理為word格式5.6借閱圖書按照要求先輸入讀者證號,在輸入借閱的圖書編號如圖5-7所示。如果讀者已經(jīng)借閱了一本書之后不能借閱同一本圖書如圖5-8所示。圖5-7借閱圖書圖5-8同一個讀者不能借閱同一本圖書整理為word格式整理為word格式整理為word格式5.7歸還圖書歸還圖書的要求按著圖5-9輸入即可。圖5-9歸還圖書5.8查詢圖書信息圖5-10是沒有借閱之前的圖書的相關信息,圖5-11是讀者借閱了圖書之后的信息,只改變了現(xiàn)有量。整理為word格式整理為word格式整理為word格式圖5-10借閱登記后圖5-11歸還圖書后5.9查詢讀者信息查詢讀者的信息時,會輸出相關借閱的圖書編號以及還書日期如圖5-12,5-13所示。整理為word格式整理為word格式整理為word格式圖5-12查詢讀者信息(一)整理為word格式整理為word格式整理為word格式圖5-13查詢讀者信息(二)5.10保存文件,退出在系統(tǒng)的主菜單后,按‘0’功能保存并退出系統(tǒng)。圖5-14文件保存整理為word格式整理為word格式整理為word格式六、總結個人覺得課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.在生活中可以說得是無處不在。因此作為新世紀的大學來說能夠分析,并解決程序中出現(xiàn)的問題是十分重要的。課程設計就能體現(xiàn)到這一方面。能夠將你所學到的理論跟實際結合在一起。通過本次課程設計感慨良多。從課堂上聽到的到課后應用到的根本就不是一回事。課堂上,老師在上面說,自己在下面聽,到也能聽懂??墒堑搅藨蒙?,自己倒也是知道要用到哪方面的內(nèi)容,但是偏偏不知道從何處下手;好不容易寫好的一小段代碼,還要跟其他功能不相沖突,這又需要我們自己去想辦法去兼容好他們。通過本次課程設計試我懂得理論要跟實踐相結合。正所謂“臺上十分鐘,臺下十年功”,別人在臺上表演了十分鐘,你覺得很容易,可那里知道別人在下面做的努力呢。同樣的,我們在課堂上聽老師講確實覺得是那么回事,但是真正做下去,也只有自己知道是何種滋味。理論始終是理論,不能都熟練應用自己所學到的知識,到頭來也是一場空。在這次的課程設計過程中,我們也遇到了不能解決的難題,比如說在讀者查詢的時候,第二個讀者始終會覆蓋第一個讀者的數(shù)據(jù)。我們始終沒有搞明白問題的所在,只知道不是在輸出讀者信息的問題,應該是添加讀者過程中指針始終指在第一個地址,沒有移動。我們按照查詢圖書的函數(shù)重新編寫了一次還是同樣問題。一直到答辯前一天晚上還沒有解決,之后只能放棄。還有在最開始的時候我們的程序功能并沒有清屏功能,整個界面看起來并不是那么整潔。于是我用用getch();system(“cls”);來進行清屏,最后會出先一個小問題,在我們查詢了一些資料后,又再次基礎上加上了gotoend;這個函數(shù)來加以完善。這次課程設計,我們也遇到了很多問題,比如說,我們再輸入第二個讀者的信息后會覆蓋第一個讀者的信息,想了半天沒有弄懂是哪里錯了,最后才看出來我們定義的結構體指針沒有移動,導致我們輸入的讀者信息一直存放在同一個地址中。也有些不懂需要在網(wǎng)上查詢的代碼,組員之間相互配合,不懂就詢問其他同學或者查詢資料亦或者自己去弄懂問題的根結,團結協(xié)作的精神在這次課程設計中表現(xiàn)的淋漓盡致。我們不僅將以前的知識復習一遍;同時也弄懂了一些平常自己似懂非懂的;最后同學之間的友誼也慢慢變的深厚起來小組分工:孫澤銘:采編入庫、查詢圖書信息、查詢讀者信息整理為word格式整理為word格式整理為word格式黃響:添加讀者、借閱圖書、歸還圖書七、參考文獻嚴蔚敏吳偉民編著《數(shù)據(jù)結構》清華大學出版社,2000黃國瑜葉乃菁編著《數(shù)據(jù)結構》清華大學出版社,2001胡學鋼編著《數(shù)據(jù)結構算法設計指導》清華大學出版社,1999王士元編著《數(shù)據(jù)結構與數(shù)據(jù)庫系統(tǒng)》南開大學出版社,2000李強根主編《數(shù)據(jù)結構(C++描述)》中國水利水電出版社,2001楊正宏編著《數(shù)據(jù)結構》中國鐵道出版社,2002胡學鋼編著《數(shù)據(jù)結構算法設計指導》清華大學出版社,1999殷人昆徐孝凱編著《數(shù)據(jù)結構習題解析》清華大學出版社,2002李春葆編著《數(shù)據(jù)結構習題與解析》清華大學出版社,2001[10]咨訊教育小組編著《數(shù)據(jù)結構數(shù)據(jù)結構版》中國鐵道出版社,2002整理為word格式整理為word格式整理為word格式八、附錄(源代碼)#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMax4typedefstructbook{ charbook_num[10]; charbook_name[20]; charbook_writer[10]; intbook_xy; intbook_kc; intn; structbook*next;}BK;typedefstructborrow{ charborrow_book_num[10]; charlimit_date[10]; }BO; typedefstructreader{ charreader_num[10]; charreader_name[10];整理為word格式整理為word格式整理為word格式 intright; intm; BOborrow[Max]; structreader*next;}RD;BK*h_book;RD*h_reader;intn=0;intm=0;voidLogin();intMenu();voidInit();voidMenu_select();voidInsert_New_Book();voidadd_reader();voidPrint_reader();voidPrint_book();voidBorrow_Book();voidReturn_Book();voidSave();voidSave_Book();voidSave_Reader();voidLoad();voidLoad_Reader();voidLoad_Book();voidLogin(){ system("cls"); printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t**歡迎使用圖書管理系統(tǒng)**\n"); printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t按任意鍵進入系統(tǒng)...");整理為word格式整理為word格式整理為word格式 getch(); system("cls");}intMenu()/*主菜單*/{ intdm; printf("\n\t\t圖書管理系統(tǒng)主菜單\n"); printf("=================================================\n"); printf("*\t1采編入庫\n"); printf("*\t2登記讀者\n"); printf("*\t3借閱登記\n"); printf("*\t4還書管理\n"); printf("*\t5查詢圖書信息\n"); printf("*\t6查詢讀者信息\n"); printf("*\t0退出系統(tǒng)\n"); printf("=================================================\n"); printf("請選擇相應的代碼:"); for(;;) { scanf("%d",&dm);//dm輸入的數(shù)字 if(dm<0||dm>6) printf("\n錯誤!請重新輸入:"); else break; } returndm;}voidMenu_select()/*主菜單選擇函數(shù)*/{ for(;;)整理為word格式整理為word格式整理為word格式 { switch(Menu())/*功能選擇*/ { case0: system("cls"); Save(); printf("\n\n\t文件保存成功!\n"); printf("\n\n\t歡迎下次使用本系統(tǒng)!\n"); getch(); exit(0); case1:Insert_New_Book();break; case2:add_reader();break; case3:Borrow_Book();break; case4:Return_Book();break; case5:Print_book();break; case6:Print_reader();break; default:printf("\n錯誤!"); exit(0); } }}voidInit()/*初始化*/{ BK*p0; printf("\n圖書初始化開始,請輸入圖書信息..\n包括編號.書名.數(shù)量..\n"); p0=(BK*)malloc(sizeof(BK)); h_book=p0; printf("\n請輸入圖書信息:\n"); printf("圖書編號:");/*輸入圖書編號(唯一)*/ scanf("%s",p0->book_num); printf("圖書名稱:");/*輸入圖書名稱*/ scanf("%s",p0->book_name);整理為word格式整理為word格式整理為word格式 printf("圖書作者:");/*輸入圖書作者*/ scanf("%s",p0->book_writer); printf("圖書數(shù)量:");/*輸入圖書數(shù)量*/ scanf("%d",&p0->book_kc); p0->book_xy=p0->book_kc;/*開始時圖書現(xiàn)有量和庫存量相等*/ p0->next=NULL; p0->n=++n; printf("\n圖書信息初始化完畢!按任意鍵繼續(xù)下一步操作..\n"); getch(); system("cls");}voidInsert_New_Book()/*新書入庫*/{ BK*p,*p0,*p1; p=p1=h_book; printf("\n新書入庫模塊...\n"); printf("\n請輸入新書信息..\n包括書號.書名.數(shù)量..\n"); p0=(BK*)malloc(sizeof(BK)); printf("圖書編號:"); scanf("%s",p0->book_num); while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL) p1=p1->next; if(strcmp(p0->book_num,p1->book_num)==0)/*此處分兩種情況,若圖書編號存在,則直接進庫,只須輸入書的數(shù)量*/ { printf("\n此編號圖書已存在!!直接入庫!\n"); printf("圖書數(shù)量:"); scanf("%d",&p0->book_kc); 整理為word格式整理為word格式整理為word格式 p1->book_kc+=p0->book_kc; p1->book_xy+=p0->book_kc; } else/*若不存在,則需要輸入其他的信息,然后在進行插入操作*/ { printf("圖書名稱:"); scanf("%s",p0->book_name); printf("圖書作者:"); scanf("%s",p0->book_writer); printf("圖書數(shù)量:"); scanf("%d",&p0->book_kc);//庫存數(shù)量 while(p->next) p=p->next; if(h_book==NULL) h_book=p0;/*此處分兩種情況,鏈表中沒有數(shù)據(jù),head直接指向p0處*/ else p->next=p0;/*此處分兩種情況,鏈表中有數(shù)據(jù),鏈表中最后元素的next指向p0處*/ p0->next=NULL; p0->book_xy=p0->book_kc; p0->n=++n; } printf("\n新書入庫完畢!按任意鍵繼續(xù)下一步操作..\n"); getch(); system("cls");}voidadd_reader()/*添加讀者*/{整理為word格式整理為word格式整理為word格式 RD*p0;inti;printf("\n讀者初始化開始,請輸入讀者信息..\n包括書證號.姓名..\n"); p0=(RD*)malloc(sizeof(RD));/*申請新結點存儲空間*/ h_reader=p0; printf("\n請輸入讀者的信息:\n");printf("讀者書證號:");scanf("%s",p0->reader_num);printf("讀者姓名:"); scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){ strcpy(p0->borrow[i].borrow_book_num,"0");/*所借圖書直接置為(即沒有借書)*/ strcpy(p0->borrow[i].limit_date,"0"); } p0->next=NULL; p0->m=++m; printf("\n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操作..\n"); getch(); system("cls");}voidBorrow_Book()/*借書模塊*/{ BK*p0;RD*p1; charbo_num[10],rea_num[10],lim_date[8]; inti; p0=h_book;p1=h_reader; 整理為word格式整理為word格式整理為word格式 printf("\n借書模塊...\n"); printf("\n請輸入借書的讀者書證號:"); scanf("%s",rea_num); while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0) p1=p1->next; if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0) { printf("\n此讀者編號不存在!按任意鍵返回..\n"); gotoEND; } printf("\n請輸入你要借的書的編號:"); scanf("%s",bo_num); while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) p0=p0->next; if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!=0) { printf("\n此圖書編號不存在!按任意鍵返回..\n"); gotoEND; } elseif(p0->book_xy<=0) { printf("\n抱歉,此書已借完!請等待新書的到來!!\n按任意鍵返回"); gotoEND; } elseif(p1->right>Max||p1->right==Max) { printf("\n不好意思,借書數(shù)目已滿!不能借書!\n按任意鍵返回"); gotoEND; }整理為word格式整理為word格式整理為word格式 elseif(strcmp(p1->borrow[0].borrow_book_num,"0")!=0) { for(i=0;i<Max;i++) { if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0) { printf("\n抱歉!同一個讀者不能同借兩本相同的書!\n按任意鍵返回"); gotoEND; } elseif(strcmp(p1->borrow[i].borrow_book_num,"0")==0) { printf("\n請輸入你要歸還圖書的日期:"); scanf("%s",lim_date); strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date); p0->book_xy--; printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p1->reader_num); gotoEND; } } } else { printf("\n請輸入你要歸還圖書的日期:"); scanf("%s",lim_date);整理為word格式整理為word格式整理為word格式 strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date); p0->book_xy--; p0->book_kc--; printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p1->reader_num); gotoEND; } END:getch();system("cls");}voidReturn_Book()/*還書模塊*/{ BK*p;RD*q; inti,j,find=0; charreturn_book_num[10],return_reader_num[10]; p=h_book;q=h_reader; printf("\n還書模塊...\n"); printf("\n請輸入要還書的讀者編號:"); scanf("%s",return_reader_num); while(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0) q=q->next; if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0) { find=2; printf("\n此讀者編號不存在!按任意鍵返回..\n"); gotoend; }整理為word格式整理為word格式整理為word格式 printf("\n請輸入讀者還書的編號:"); scanf("%s",return_book_num); while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0) p=p->next; if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0) { find=2; printf("\n錯誤!此圖書編號不存在!按任意鍵返回..\n"); gotoend; } for(i=0;i<Max;i++) if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0)/*如果此讀者借了此書*/ { find=1; for(j=i;j<Max-1;j++) { strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num); strcpy(q->borrow[j].limit_date,q->borrow[j+1].limit_date); } strcpy(q->borrow[Max-1].borrow_book_num,"0"); strcpy(q->borrow[Max-1].limit_date,"0"); p->book_xy++; q->right--; printf("\n編號%s的讀者還書完畢!按任意鍵繼續(xù)下步操作..",return_reader_num); 整理為word格式整理為word格式整理為word格式 gotoend; } if(find==0) printf("\n錯誤!此讀者未借此書!按任意鍵返回..\n"); end:getch();system("cls");}voidPrint_book()/*查詢圖書信息*/{ BK*p; inti; chare[10]; p=h_book; printf("輸入查詢的圖書編號:"); scanf("%s",e); for(i=0;i<n;i++) { if(strcmp(p->book_num,e)==0) { printf("\n圖書信息如下:\n\n"); printf("圖書編號\t圖書名稱\t圖書作者\t現(xiàn)有\(zhòng)t庫存\n"); printf("%s\t\t%s\t\t%s\t\t%d\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc); break; } else p=p->next; } printf("\n圖書信息打印完畢!按任意鍵繼續(xù)下一步操作.."); 整理為word格式整理為word格式整理為word格式 getch(); system("cls");}voidPrint_reader()/*查詢讀者信息*/{ RD*p; inti,j; chare[10]; p=h_reader; printf("輸入查詢的讀者編號:"); scanf("%s",e); for(j=0;j<m;j++) { if(strcmp(p->reader_num,e)==0) { printf("\n讀者信息如下:\n\n"); printf("讀者書證號\t讀者姓名\n"); printf("%s\t\t%s",p->reader_num,p->reader_name); for(i=0;i<Max;i++) { printf("\n"); printf("圖書編號",i+1); printf("\t還書日期",i+1); printf("\n"); printf("\t%s",p->borrow[i].borrow_book_num); printf("\t\t%s",p->borrow[i].limit_date); } printf("\n"); break; } 整理為word格式整理為word格式整理為word格式 else p=p->next; } printf("\n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作.."); getch(); system("cls");}voidSave()/*保存信息*/{ Save_Reader(); Save_Book();}voidSave_Reader()/*保存讀者信息*/{ FILE*fp_reader; RD*p,*p0; p=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年貨車從業(yè)資格證答題軟件
- 2024-2025學年四年級語文上冊第二單元明月4走月亮作業(yè)設計北師大版
- 個人前臺自我總結
- 獨家合作協(xié)議范本
- 個人下半年主題計劃書
- 公司年終人力資源工作總結
- 五年級上冊語文教學計劃
- 水電安裝勞務承包合同范本
- 監(jiān)控租賃合同范本
- 臨聘人員勞動合同范本
- 2025年電力鐵塔市場分析現(xiàn)狀
- GB 12158-2024防止靜電事故通用要求
- 2025-2030年中國清真食品行業(yè)運行狀況及投資發(fā)展前景預測報告
- 中國服裝零售行業(yè)發(fā)展環(huán)境、市場運行格局及前景研究報告-智研咨詢(2025版)
- 臨床提高膿毒性休克患者1h集束化措施落實率PDCA品管圈
- 中國工運史知識競答附答案
- 瑞幸咖啡SWOT分析
- DL∕T 1867-2018 電力需求響應信息交換規(guī)范
- 小學生品德發(fā)展水平指標評價體系(小學)
- 水利工程地震應急預案
- 日歷表空白每月打印計劃表
評論
0/150
提交評論