![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書管理系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/15/bf814743-e880-4cdc-a25f-58f0693ed42b/bf814743-e880-4cdc-a25f-58f0693ed42b1.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書管理系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/15/bf814743-e880-4cdc-a25f-58f0693ed42b/bf814743-e880-4cdc-a25f-58f0693ed42b2.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書管理系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/15/bf814743-e880-4cdc-a25f-58f0693ed42b/bf814743-e880-4cdc-a25f-58f0693ed42b3.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書管理系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/15/bf814743-e880-4cdc-a25f-58f0693ed42b/bf814743-e880-4cdc-a25f-58f0693ed42b4.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書管理系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/15/bf814743-e880-4cdc-a25f-58f0693ed42b/bf814743-e880-4cdc-a25f-58f0693ed42b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.課程設(shè)計(jì)報(bào)告課設(shè)課題:課程設(shè)計(jì)圖書管理系統(tǒng)學(xué)院:電子信息學(xué)院專業(yè):網(wǎng)絡(luò)工程姓名:班級學(xué)號: BX1213 指導(dǎo)教師:艷報(bào)告日期: 2013.12.12 . v.目錄一、需求分析11.1 系統(tǒng)開發(fā)背景和意義11.2 設(shè)計(jì)題目與要求1二、總體結(jié)構(gòu)設(shè)計(jì)1三、各子模塊設(shè)計(jì)13.1 初始化圖書信息13.2 系統(tǒng)主界面13.3 采編入庫13.4 輸入讀者信息13.5 借閱圖書13.6 歸還圖書13.7 查詢圖書信息13.8 查詢讀者信息1四、程序設(shè)計(jì)調(diào)試情況分析1五、測試結(jié)果15.1 歡迎界面15.2 初始化圖書信息15.3 系統(tǒng)主界面15.4 采編入庫15.5 輸入讀者信息15.6 借閱圖書15.7
2、歸還圖書15.8 查詢圖書信息15.9 查詢讀者信息15.10 保存文件,退出1六、總結(jié)1七、參考文獻(xiàn)1八、附錄(源代碼)1. v.一、需求分析1.1 系統(tǒng)開發(fā)背景和意義圖書管理作為計(jì)算機(jī)應(yīng)用的一個(gè)分支,有著手工管理無法比擬的優(yōu)點(diǎn),如檢索迅速、查找方便、可靠性高、存儲量大、性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極提高圖書管理的效率。因此,開發(fā)一套能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄蔚膱D書管理系統(tǒng),將是非常必要的,也是十分及時(shí)的。圖書管理系統(tǒng)需要滿足來自圖書館工作人員、普通用戶和借閱者三方面人員的需求。圖書館工作人員對圖書借閱者的借閱及還書要求進(jìn)行操作,同時(shí)還可通過圖書編號等查詢相應(yīng)的借閱情況
3、;普通用戶的需查詢圖書館所存的圖書的相關(guān)情況;圖書借閱者的需查看自己的相關(guān)信息及查詢自己的借閱情況。1.2 設(shè)計(jì)題目與要求【問題描述】設(shè)計(jì)一個(gè)計(jì)算機(jī)管理系統(tǒng)完成圖書管理基本業(yè)務(wù)?!净疽蟆?)每種書的登記容包括書號、書名、著作者、現(xiàn)存量和庫存量;2)對書號建立索引表(線性表)以提高查找效率;3)系統(tǒng)主要功能如下:*采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加;*借閱:如果一種書的現(xiàn)存量大于0,則借出一本,登記借閱者的書證號和歸還期限,改變現(xiàn)存量;*歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。二、總體結(jié)構(gòu)設(shè)計(jì)有八個(gè)模塊1)圖書初始化輸入圖書的一些信息,編
4、號、作者、書名、數(shù)量,使有一定的庫存。2)新書入庫新書采編入庫,輸入編號后如果有次數(shù)只需輸入數(shù)量,沒有則繼續(xù)輸入書名、作者、數(shù)量。3)添加讀者信息讀者信息初始化,輸入讀書證號和,只有輸入書證號和才能進(jìn)行借書還書4)借書模塊讀者輸入讀書證號,證號存在輸入要借的圖書編號,不能借同一本書,如果借書數(shù)量以達(dá)到最大也不能借書。5)還書模塊歸還已借的圖書,要先輸入讀者書證號,書證號存在繼續(xù)輸入要還的圖書編號,圖書編號存在并且借來此書,歸還成功。6)查詢圖書信息7)查詢讀者信息可查詢讀者書證號,借了幾本書,都是什么書和還書日期,還可以借幾本書。8)退出退出讀書管理系統(tǒng)并保存讀者和圖書信息。圖書管理系統(tǒng)查詢操
5、作模塊讀者管理模塊借閱操作模塊圖書管理模塊理退出圖書信息查詢讀者信息查詢還書系統(tǒng)借書系統(tǒng)輸入讀者信息采編入庫初始化圖書信息圖2-1 主控模塊三、各子模塊設(shè)計(jì)3.1 初始化圖書信息進(jìn)入系統(tǒng)后首先進(jìn)行圖書初始化,輸入圖書的信息。開始輸入圖書編號、名稱、作者和圖書數(shù)量進(jìn)入系統(tǒng)圖3-1 初始化圖書信息流程圖3.2 系統(tǒng)主界面初始化之后,進(jìn)入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息。開始輸入功能所對應(yīng)的數(shù)字輸入的數(shù)字小于0大于6否錯(cuò)誤!請重新輸入是執(zhí)行所選功能圖3-2 系統(tǒng)主界面流程圖3.3 采編入庫選擇采編入庫的功能后,先輸入圖書編號判斷是否存在,若存在,則在原有記錄上加上添加
6、的圖書數(shù)量;若不存在,則加入新的記錄。錄入圖書信息判斷是否有此圖書是在原有的紀(jì)錄上加上現(xiàn)有的圖書數(shù)量否向系統(tǒng)中加入新紀(jì)錄圖3-3 采編入庫流程圖3.4 輸入讀者信息選擇讀者登記后,輸入讀者編號跟。開始輸入讀者信息:讀者書證號、姓名結(jié)束圖3-4 輸入讀者信息流程圖3.5 借閱圖書選擇借閱圖書功能后,輸入讀者證號,判斷該讀者是否存在,若存在則輸入借閱圖書的編號,判斷該圖書編號是否存在,若存在,則判斷讀者借閱的圖書數(shù)量是否滿了和是否借閱了相同的書籍,判斷成功后,則輸入歸還該圖書的日期,該圖書現(xiàn)有量減一,借閱成功;若讀者不存在則返回。輸入讀者書證號判斷讀者是否存在否輸出次讀者編號不存在!按任意鍵返回是
7、輸入要借的圖書編號判斷圖書編號是否存在否輸出此圖書編號不存在!按任意鍵返回是看是否還有此圖書否輸出此書已借完,按任意鍵返回是看讀者的借書數(shù)目是否滿了是輸出借書數(shù)目已滿不能借書,按任意鍵返回否看讀者是否借了相同的書是輸出同一讀者不能借相同的兩本書否輸入歸還圖書的日期圖書現(xiàn)有數(shù)量減1輸出讀者結(jié)束成功,按任意鍵返回結(jié)束圖3-5 借閱圖書流程圖3.6 歸還圖書實(shí)現(xiàn)歸還圖書功能時(shí),首先輸入讀者編號,并判斷是否存在,若不存在就按任意鍵返回,;若存在輸入歸還的圖書編號并判斷是否存在,若歸還圖書編號不存在,則返回。存在后,將讀者借閱該圖書的信息清空,該圖書的現(xiàn)有量加一。最后按任意鍵返回輸入要還書的讀者編號判斷
8、讀者編號是否存在否輸出讀者編號不存在按任意鍵返回是輸入讀者還書編號判斷圖書編號是否存在否輸出此圖書編號不存在按任意鍵返回是此圖書編號和還書日期等于0現(xiàn)有圖書數(shù)量加1輸出讀者還書完畢,按任意鍵返回結(jié)束圖3-6 歸還圖書流程圖3.7 查詢圖書信息查詢圖書信息時(shí),輸入圖書的編號,判斷是否存在。不存在則返回;存在則輸出圖書的編號,書名,作者,現(xiàn)有量,跟庫存量。判斷圖書信息是否為空是輸出此圖書編號不存在按任意鍵返回否輸出圖書信息:編號、名稱、作者、現(xiàn)有和庫存結(jié)束圖3-7 查詢圖書信息流程圖3.8 查詢讀者信息查詢讀者信息時(shí),首先判斷讀者的編號是否存在,不存在就按任意鍵返回。若存在,則輸出讀者的證號,和借
9、閱的圖書編碼及其還書日期。判斷讀者信息是否為空是輸出此讀者編號不存在按任意鍵返回否輸出讀者書證號、姓名、圖書編碼和還書日期輸出讀者信息打印完畢結(jié)束圖3-8 查詢讀者信息流程圖四、程序設(shè)計(jì)調(diào)試情況分析在整個(gè)課程設(shè)計(jì)中,我們遇到了許多的問題。有些問題吧,我們在苦思冥想的時(shí)候,突然我們的編譯器顯示出了正確的結(jié)果,當(dāng)我們欣喜若狂的在運(yùn)行下一次的時(shí)候又會出現(xiàn)相同的問題,在借閱的過程中,在一個(gè)讀者借閱了兩本書以上的時(shí)候,上一本書的歸還日期上還有下一本書上的編號,最后一本書輸出的才是正確的結(jié)果。下圖是借閱了兩本書的截圖:圖4-1看到這里我們也知道是第一本書的還書日期的地址空間跟第二本書的編號連接在了一起導(dǎo)致
10、輸出的時(shí)候一直到第二本書編號的的字符串后面的/0結(jié)束。最后發(fā)現(xiàn)是我們在定義還書日期這個(gè)字符串的時(shí)候開辟的空間太小。我們把char limit_date8;改為char limit_date10就好了。圖4-2五、測試結(jié)果5.1 歡迎界面程序運(yùn)行顯示“歡迎使用圖書管理系統(tǒng)”,按任意鍵進(jìn)入到主菜單如圖5-1所示。圖5-1 歡迎界面5.2 初始化圖書信息在沒有文件的時(shí)候會進(jìn)入到初始化界面,需要輸入一本圖書的相關(guān)信息,如圖5-2所示。圖5-2 初始化圖書信息5.3 系統(tǒng)主界面接著進(jìn)入的系統(tǒng)的主菜單,如圖5-3所示。圖5-3 系統(tǒng)主界面5.4 采編入庫實(shí)現(xiàn)采編入庫功能按照系統(tǒng)提示輸入信息。如圖5-4。如
11、果該圖書已存在,則直接輸入圖書的數(shù)量如圖5-5所示。圖5-4 采編入庫(書不存在)圖5-5 采編入庫(書已存在)5.5 輸入讀者信息按照要求輸入讀者信息,如圖5-6所示。圖5-6 輸入讀者信息5.6 借閱圖書按照要求先輸入讀者證號,在輸入借閱的圖書編號如圖5-7所示。如果讀者已經(jīng)借閱了一本書之后不能借閱同一本圖書如圖5-8所示。圖5-7 借閱圖書圖5-8 同一個(gè)讀者不能借閱同一本圖書5.7 歸還圖書歸還圖書的要求按著圖5-9輸入即可。圖5-9 歸還圖書5.8 查詢圖書信息圖5-10 是沒有借閱之前的圖書的相關(guān)信息,圖5-11是讀者借閱了圖書之后的信息,只改變了現(xiàn)有量。圖5-10 借閱登記后圖5
12、-11 歸還圖書后5.9 查詢讀者信息查詢讀者的信息時(shí),會輸出相關(guān)借閱的圖書編號以及還書日期如圖5-12,5-13所示。圖5-12 查詢讀者信息(一)圖5-13 查詢讀者信息(二)5.10 保存文件,退出在系統(tǒng)的主菜單后,按0 功能保存并退出系統(tǒng)。圖5-14 文件保存六、總結(jié)個(gè)人覺得課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程. 在生活中可以說得是無處不在。因此作為新世紀(jì)的大學(xué)來說能夠分析,并解決程序中出現(xiàn)的問題是十分重要的。課程設(shè)計(jì)就能體現(xiàn)到這一方面。能夠?qū)⒛闼鶎W(xué)到的理論跟實(shí)際結(jié)合在一起。通過本次課程設(shè)計(jì)
13、感慨良多。從課堂上聽到的到課后應(yīng)用到的根本就不是一回事。課堂上,老師在上面說,自己在下面聽,到也能聽懂。可是到了應(yīng)用上,自己倒也是知道要用到哪方面的容,但是偏偏不知道從何處下手;好不容易寫好的一小段代碼,還要跟其他功能不相沖突,這又需要我們自己去想辦法去兼容好他們。通過本次課程設(shè)計(jì)試我懂得理論要跟實(shí)踐相結(jié)合。正所謂“臺上十分鐘,臺下十年功”,別人在臺上表演了十分鐘,你覺得很容易,可那里知道別人在下面做的努力呢。同樣的,我們在課堂上聽老師講確實(shí)覺得是那么回事,但是真正做下去,也只有自己知道是何種滋味。理論始終是理論,不能都熟練應(yīng)用自己所學(xué)到的知識,到頭來也是一場空。在這次的課程設(shè)計(jì)過程中,我們也
14、遇到了不能解決的難題,比如說在讀者查詢的時(shí)候,第二個(gè)讀者始終會覆蓋第一個(gè)讀者的數(shù)據(jù)。我們始終沒有搞明白問題的所在,只知道不是在輸出讀者信息的問題,應(yīng)該是添加讀者過程中指針始終指在第一個(gè)地址,沒有移動。我們按照查詢圖書的函數(shù)重新編寫了一次還是同樣問題。一直到答辯前一天晚上還沒有解決,之后只能放棄。還有在最開始的時(shí)候我們的程序功能并沒有清屏功能,整個(gè)界面看起來并不是那么整潔。于是我用用getch();system(“cls”);來進(jìn)行清屏,最后會出先一個(gè)小問題,在我們查詢了一些資料后,又再次基礎(chǔ)上加上了goto end;這個(gè)函數(shù)來加以完善。這次課程設(shè)計(jì),我們也遇到了很多問題,比如說,我們再輸入第二
15、個(gè)讀者的信息后會覆蓋第一個(gè)讀者的信息,想了半天沒有弄懂是哪里錯(cuò)了,最后才看出來我們定義的結(jié)構(gòu)體指針沒有移動,導(dǎo)致我們輸入的讀者信息一直存放在同一個(gè)地址中。也有些不懂需要在網(wǎng)上查詢的代碼,組員之間相互配合,不懂就詢問其他同學(xué)或者查詢資料亦或者自己去弄懂問題的根結(jié),團(tuán)結(jié)協(xié)作的精神在這次課程設(shè)計(jì)中表現(xiàn)的淋漓盡致。我們不僅將以前的知識復(fù)習(xí)一遍;同時(shí)也弄懂了一些平常自己似懂非懂的;最后同學(xué)之間的友誼也慢慢變的深厚起來小組分工:澤銘:采編入庫、查詢圖書信息、查詢讀者信息黃響:添加讀者、借閱圖書、歸還圖書七、參考文獻(xiàn)1 嚴(yán)蔚敏吳偉民編著數(shù)據(jù)結(jié)構(gòu)清華大學(xué),20002 黃國瑜葉乃菁編著數(shù)據(jù)結(jié)構(gòu)清華大學(xué),2001
16、 3 胡學(xué)鋼編著數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)清華大學(xué),19994 王士元編著數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫系統(tǒng)南開大學(xué),20005 強(qiáng)根主編數(shù)據(jù)結(jié)構(gòu)(C+描述)中國水利水電, 20016 正宏編著數(shù)據(jù)結(jié)構(gòu)中國鐵道,20027 胡學(xué)鋼編著數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)清華大學(xué),19998 殷人昆徐孝凱編著數(shù)據(jù)結(jié)構(gòu)習(xí)題解析清華大學(xué),20029 春葆編著數(shù)據(jù)結(jié)構(gòu)習(xí)題與解析清華大學(xué),200110 咨訊教育小組編著數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)版中國鐵道,2002八、附錄(源代碼)*include<stdio.h>*include <string.h>*include <stdlib.h>*include<
17、conio.h>*define Max 4 typedef struct bookchar book_num10;char book_name20;char book_writer10;int book_xy;int book_kc;int n;struct book *next;BK;typedef struct borrowchar borrow_book_num10;char limit_date10;BO;typedef struct readerchar reader_num10;char reader_name10;int right;int m;BO borrowMax;s
18、truct reader *next;RD;BK *h_book;RD *h_reader;int n=0;int m=0;void Login(); int Menu(); void Init(); void Menu_select(); void Insert_New_Book(); void add_reader();void Print_reader(); void Print_book(); void Borrow_Book(); void Return_Book(); void Save(); void Save_Book(); void Save_Reader(); void L
19、oad();void Load_Reader(); void Load_Book();void Login()system("cls");printf("nnntt*n");printf("nnntt* 歡迎使用圖書管理系統(tǒng) *n");printf("nnntt*n");printf("nnntt 按任意鍵進(jìn)入系統(tǒng).");getch(); system("cls");int Menu() /*主菜單*/ int dm;printf("ntt圖書管理系統(tǒng)主菜單n&qu
20、ot;);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("請選擇相應(yīng)的代碼:"
21、;); for(;) scanf("%d",&dm); /dm輸入的數(shù)字if(dm<0|dm>6)printf("n錯(cuò)誤!請重新輸入:");else break;return dm; void Menu_select()/*主菜單選擇函數(shù)*/for(;) switch(Menu() /*功能選擇*/ case 0: system("cls"); Save();printf("nnt文件保存成功!n"); printf("nnt歡迎下次使用本系統(tǒng)!n"); getch(); e
22、xit(0);case 1: Insert_New_Book();break; case 2: add_reader();break;case 3: Borrow_Book();break;case 4: Return_Book();break;case 5: Print_book();break;case 6: Print_reader();break;default:printf("n錯(cuò)誤!");exit(0);void Init() /*初始化*/BK *p0;printf("n圖書初始化開始,請輸入圖書信息.n包括編號.書名.數(shù)量.n");p0=
23、(BK*)malloc(sizeof(BK);h_book=p0;printf("n請輸入圖書信息:n");printf("圖書編號:"); /*輸入圖書編號(唯一)*/scanf("%s",p0->book_num);printf("圖書名稱:"); /*輸入圖書名稱*/scanf("%s",p0->book_name);printf("圖書作者:"); /*輸入圖書作者*/scanf("%s",p0->book_writer);pri
24、ntf("圖書數(shù)量:"); /*輸入圖書數(shù)量*/scanf("%d",&p0->book_kc);p0->book_xy=p0->book_kc; /*開始時(shí)圖書現(xiàn)有量和庫存量相等*/p0->next=NULL;p0->n=+n;printf("n圖書信息初始化完畢!按任意鍵繼續(xù)下一步操作.n");getch();system("cls");void Insert_New_Book()/*新書入庫*/BK *p,*p0,*p1; p=p1=h_book;printf("
25、;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) /*此處分兩種情況,若
26、圖書編號存在,則直接進(jìn)庫,只須輸入書的數(shù)量*/printf("n此編號圖書已存在!直接入庫!n"); printf("圖書數(shù)量:"); scanf("%d",&p0->book_kc); p1->book_kc+=p0->book_kc; p1->book_xy+=p0->book_kc;else/*若不存在,則需要輸入其他的信息,然后在進(jìn)行插入操作*/printf("圖書名稱:");scanf("%s",p0->book_name);printf(&
27、quot;圖書作者:");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-&
28、gt;book_xy=p0->book_kc; p0->n=+n; printf("n新書入庫完畢!按任意鍵繼續(xù)下一步操作.n");getch();system("cls");void add_reader()/*添加讀者*/ RD *p0; int i; printf("n讀者初始化開始,請輸入讀者信息.n包括書證號.n");p0=(RD*)malloc(sizeof(RD); /*申請新結(jié)點(diǎn)存儲空間*/h_reader=p0;printf("n請輸入讀者的信息:n"); printf("讀
29、者書證號:"); scanf("%s",p0->reader_num); printf("讀者:"); scanf("%s",p0->reader_name); p0->right=0; for(i=0;i<Max;i+) strcpy(p0->borrowi.borrow_book_num,"0"); /*所借圖書直接置為(即沒有借書)*/strcpy(p0->borrowi.limit_date,"0"); p0->next=NULL;p0
30、->m=+m;printf("n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操作.n"); getch();system("cls");void Borrow_Book() /*借書模塊*/BK *p0; RD *p1;char bo_num10,rea_num10,lim_date8;int i;p0=h_book; p1=h_reader;printf("n借書模塊.n");printf("n請輸入借書的讀者書證號:"); scanf("%s",rea_num);while(p1->n
31、ext!=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");goto END; printf("n請輸入你要借的書的編號:"); scanf("%s",bo_num);while(strcmp(bo_num,p0->book_num)!=0&&
32、;p0->next!=NULL) p0=p0->next;if(p0->next=NULL&&strcmp(bo_num,p0->book_num)!=0) printf("n此圖書編號不存在!按任意鍵返回.n");goto END;else if(p0->book_xy<=0) printf("n抱歉,此書已借完!請等待新書的到來!n按任意鍵返回.");goto END; else if(p1->right>Max|p1->right=Max) printf("n不好意思,
33、借書數(shù)目已滿!不能借書!n按任意鍵返回.");goto END;else if(strcmp(p1->borrow0.borrow_book_num,"0")!=0) for(i=0;i<Max;i+) if(strcmp(p1->borrowi.borrow_book_num,bo_num)=0)printf("n抱歉!同一個(gè)讀者不能同借兩本相同的書!n按任意鍵返回.");goto END;else if(strcmp(p1->borrowi.borrow_book_num,"0")=0) prin
34、tf("n請輸入你要?dú)w還圖書的日期:"); scanf("%s",lim_date); strcpy(p1->borrowp1->right+.borrow_book_num,bo_num); strcpy(p1->borrowp1->right-1.limit_date,lim_date); p0->book_xy-; printf("n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作.",p1->reader_num); goto END; else printf("n請輸入你要?dú)w還圖書的日
35、期:"); scanf("%s",lim_date);strcpy(p1->borrowp1->right+.borrow_book_num,bo_num); strcpy(p1->borrowp1->right-1.limit_date ,lim_date ); p0->book_xy-;p0->book_kc-;printf("n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作.",p1->reader_num);goto END; END:getch(); system("cls")
36、; void Return_Book() /*還書模塊*/BK *p; RD *q;int i,j,find=0;char return_book_num10,return_reader_num10;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)!
37、=0) q=q->next;if(q->next=NULL&&strcmp(return_reader_num,q->reader_num)!=0)find=2;printf("n此讀者編號不存在!按任意鍵返回.n");goto end;printf("n請輸入讀者還書的編號:");scanf("%s",return_book_num);while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)p=p->n
38、ext;if(p->next=NULL&&strcmp(return_book_num,p->book_num)!=0)find=2;printf("n錯(cuò)誤!此圖書編號不存在!按任意鍵返回.n");goto end; for(i=0;i<Max;i+)if(strcmp(return_book_num,q->borrowi.borrow_book_num)=0) /*如果此讀者借了此書*/find=1; for(j=i;j<Max-1;j+) strcpy(q->borrowj.borrow_book_num,q->
39、borrowj+1.borrow_book_num); strcpy(q->borrowj.limit_date,q->borrowj+1.limit_date); strcpy(q->borrowMax-1.borrow_book_num,"0");strcpy(q->borrowMax-1.limit_date,"0"); p->book_xy+; q->right-; printf("n編號%s的讀者還書完畢!按任意鍵繼續(xù)下步操作.",return_reader_num); goto end;
40、 if(find=0) printf("n錯(cuò)誤!此讀者未借此書!按任意鍵返回.n"); end: getch(); system("cls"); void Print_book() /*查詢圖書信息*/BK *p;int i;char e10; p=h_book;printf("輸入查詢的圖書編號:");scanf("%s", e);for(i=0;i<n;i+)if(strcmp(p->book_num,e)=0)printf("n圖書信息如下:nn");printf("
41、圖書編號t圖書名稱t圖書作者t現(xiàn)有t庫存n");printf("%stt%stt%stt%dt%dn",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);break;elsep=p->next;printf("n圖書信息打印完畢!按任意鍵繼續(xù)下一步操作.");getch();system("cls");void Print_reader() /*查詢讀者信息*/RD *p;int i, j;char e10;p=h
42、_reader;printf("輸入查詢的讀者編號:");scanf("%s", e);for(j=0;j<m;j+)if(strcmp(p->reader_num,e)=0)printf("n讀者信息如下:nn");printf("讀者書證號t讀者n"); printf("%stt%s",p->reader_num,p->reader_name);for(i=0;i<Max;i+)printf("n");printf("圖書編號&qu
43、ot;,i+1); printf("t還書日期",i+1); printf("n");printf("t%s",p->borrowi.borrow_book_num);printf("tt%s",p->borrowi.limit_date); printf("n");break;elsep=p->next;printf("n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作.");getch();system("cls");void Save() /*保存信息*/Save_Reader();Save_Book();void Save_Reader() /*保存讀者信息*/FILE *fp_reader; RD *p,*p0;p=h_reader;if(fp_reader=fopen("Reader.txt","wb")=NULL) /*創(chuàng)建文件,進(jìn)行保存*/printf("n文件保存失敗!n請重新啟動本系統(tǒng).n");exit(0);while(p!=NULL) if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /*將鏈表中的信息寫入文件中*/pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)吧網(wǎng)絡(luò)方案
- 溝通技巧在匯報(bào)中的應(yīng)用實(shí)踐
- 現(xiàn)代企業(yè)管理中的教育技術(shù)應(yīng)用
- 現(xiàn)代企業(yè)供應(yīng)鏈管理與優(yōu)化
- 生態(tài)城市規(guī)劃中的生態(tài)環(huán)境教育
- 國慶節(jié)的班隊(duì)活動方案
- 生命教育在職業(yè)教育中的價(jià)值與挑戰(zhàn)
- 國家公祭日動計(jì)方案
- Unit 1 School life Reading B 說課稿 -2024-2025學(xué)年高一上學(xué)期英語上外版(2020)必修第一冊
- 2023六年級英語上冊 Review Module Unit 1說課稿 外研版(三起)
- 實(shí)驗(yàn)動物飼養(yǎng)人員崗位競聘演講范文匯報(bào)報(bào)告范文
- 商業(yè)地產(chǎn)市場競品樓盤市場調(diào)研表格
- 社會治安視頻監(jiān)控系統(tǒng)項(xiàng)目技術(shù)及設(shè)計(jì)方案
- GB/T 709-2019熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- FZ/T 54007-2019錦綸6彈力絲
- DB11-T 291-2022日光溫室建造規(guī)范
- 2021-2022學(xué)年山東省淄博市高二(下)期末英語試卷(附答案詳解)
- 北師大版高中數(shù)學(xué)選修4-6初等數(shù)論初步全套課件
- 外貿(mào)業(yè)務(wù)員面試試卷
- 紀(jì)檢知識答題測試題及答案
- 創(chuàng)傷急救-止血、包扎課件
評論
0/150
提交評論