![圖書借閱管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/4c6b723e-f25e-40eb-95ea-61e8b54b1612/4c6b723e-f25e-40eb-95ea-61e8b54b16121.gif)
![圖書借閱管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/4c6b723e-f25e-40eb-95ea-61e8b54b1612/4c6b723e-f25e-40eb-95ea-61e8b54b16122.gif)
![圖書借閱管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/4c6b723e-f25e-40eb-95ea-61e8b54b1612/4c6b723e-f25e-40eb-95ea-61e8b54b16123.gif)
![圖書借閱管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/4c6b723e-f25e-40eb-95ea-61e8b54b1612/4c6b723e-f25e-40eb-95ea-61e8b54b16124.gif)
![圖書借閱管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/4c6b723e-f25e-40eb-95ea-61e8b54b1612/4c6b723e-f25e-40eb-95ea-61e8b54b16125.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河南城建學(xué)院課程設(shè)計報告書專 業(yè):計算機信息管理與信息系統(tǒng) 課程設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目:圖書借閱管理系統(tǒng)班級:信管二班設(shè)計者學(xué)號:083215203設(shè)計者姓名:耿曉業(yè) 同組人員:劉利指導(dǎo)老師:張延紅 完成時|0j: 2016年6月10日摘要隨著信息技術(shù)的迅猛發(fā)展,信息化已經(jīng)滲透到社會生活的各個領(lǐng)域和各個層面, 并日益成為提高效率,消除差錯,節(jié)約成本的有效途徑。20世紀60年代以來,在微 電子技術(shù)和通信技術(shù)迅速發(fā)展的推動下,圖書館圖書借閱管理也充分利用軟件來進行 管理,其目標是借助先進的信息處理技術(shù)和計算機網(wǎng)絡(luò)技術(shù)來提高圖書管理的效率和 質(zhì)量,將管理與辦公活動納入到自動化,現(xiàn)代化的軌道中
2、。各大中小學(xué)圖書館中傳統(tǒng)的圖書借閱管理模式也越來越不能滿足現(xiàn)代教育發(fā)展 的需要。對于一個有著成百上千的學(xué)生的學(xué)校來說,用手工管理數(shù)以千計圖書的借閱 以及歸還,是一項非常繁瑣的工作,而相應(yīng)的階段性盤點圖書、圖書查詢等,其工作 量都讓人望而生畏,而且還極易出錯。所以我們提出了開發(fā)圖書館圖書借閱管理系統(tǒng), 采取會員制的方式進行會員管理,包括增加會員,查詢會員,刪除會員,會員借書信 息等。另外采取圖書流通借還管理,對圖書查詢借閱,增加圖書,刪除圖書等功能進 行統(tǒng)一管理,為各大中小學(xué)實現(xiàn)圖書館信息化管理提供有效工具。本系統(tǒng)采用數(shù)據(jù)結(jié) 構(gòu),C+程序設(shè)計語言,系統(tǒng)開發(fā)平臺為Windows XP,使用Visu
3、al C+6. 0進行程序 設(shè)計開發(fā),本系統(tǒng)是各大中小學(xué)實現(xiàn)圖書館信息化管理的有效工具,同時本系統(tǒng)中采 用的新技術(shù)可作為其他信息系統(tǒng)構(gòu)建時的參考。關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);算法設(shè)計;C+程序設(shè)計語言;目錄1第一章開發(fā)環(huán)境和開發(fā)工具31.1 C+簡介312 J 1 31.3 開發(fā)環(huán)境4第二章算法思想2. 1系統(tǒng)需求分析51.1 .1會員管理功能.51.2 . 2圖書管理功能.61.3 系統(tǒng)總體設(shè)計61.3.1 系統(tǒng)設(shè)計目標.61.3.2 開發(fā)設(shè)計思想.72. 2 3系統(tǒng)功能模塊設(shè)計.723 11第三章算法實現(xiàn)1231 1232 133.3各模塊之間的調(diào)用關(guān)系1434 14第四章測試與分析324.2測試結(jié)
4、果分析3237總 結(jié)36心得體會38參考文獻18第一章開發(fā)環(huán)境和開發(fā)工具1.1 C+簡介C+是一種面向?qū)ο蟮拈_發(fā)語言,是一種使用非常廣泛的計算機編程語言。 他是在c語言的基礎(chǔ)上開發(fā)的一種面向?qū)ο缶幊陶Z言,應(yīng)用廣泛。C+支持靜態(tài) 數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計語言,支持過程化程序設(shè)計、 數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計、制作圖標等等泛型程序設(shè)計等多種程序設(shè)計風(fēng)格。 語言靈活,運算符的數(shù)據(jù)結(jié)構(gòu)豐富、具有結(jié)構(gòu)化控制語句、程序執(zhí)行效率高,而 且同時具有高級語言與匯編語言的優(yōu)點,與其它語言相比,可以直接訪問物理 地址,與匯編語言相比乂具有良好的可讀性和可移植性。其編程領(lǐng)域眾廣,常用 于系統(tǒng)開發(fā)
5、,引擎開發(fā)等應(yīng)用領(lǐng)域,是至今為止最受廣大程序員受用的最強大編 程語言之一,且支持封裝、繼承、多態(tài)等特性!1.2 開發(fā)背景隨著科學(xué)技術(shù)的不斷發(fā)展,計算機科學(xué)日漸成熟,計算機知識的普及使更多用 戶懂得利用計算機為自己的工作,生活提供方便。計算機其強大的功能已為人們所深 刻認識,它己進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。采用計算機進行 信息化管理已成為衡量高校圖書管理科學(xué)化和現(xiàn)代化的重要標志,而圖書館圖書借閱 管理的全面自動化、信息化則是其中重要的組成部分。本系統(tǒng)是以建立一個以通過計算機數(shù)據(jù)管理圖書借閱系統(tǒng)為目的,以用戶瀏覽 圖書信息的網(wǎng)站系統(tǒng)。本系統(tǒng)具有靈活、方便、快捷、界面友好等優(yōu)點,
6、更加方便 的在線了解圖書信息,以及借閱圖書。本系統(tǒng)研究的課題主要意義是通過完成這個 圖書管理系統(tǒng),方便管理者的管理以及用戶所需要查詢的書籍,使大家在盡可能短 的時間內(nèi)完成對所需要圖書的借閱。大大的方便了用戶的需求在很大程度上提升了 高校的教學(xué)水平。因此,本文所研究的圖書館借閱管理信息系統(tǒng)具有一定的使用價 值和現(xiàn)實意義。1.3 開發(fā)環(huán)境軟件平臺是信息系統(tǒng)開發(fā)和運行所需的集成軟件環(huán)境,設(shè)計和選擇高效、實用、 方便、功能齊全的軟件平臺,對信息系統(tǒng)的開發(fā)具有十分重要的意義。在結(jié)合實際開 發(fā)的需要并充分考慮各種軟件平臺的性能及適用范圍和對軟件平臺的使用能力,本系 統(tǒng)的軟件平臺選擇如下:(1)操作系統(tǒng)操作
7、系統(tǒng)是計算機系統(tǒng)中最重要的系統(tǒng)軟件,目前在微機上使用的桌面操作系 統(tǒng)有Windows 95/98/2000/me/xp/2003server等,可運行于前面所列舉的各種操作系統(tǒng), 但建議使用Windows 2000以上系統(tǒng)。本系統(tǒng)在Windows XP操作系統(tǒng)下進行開發(fā)。(2)支撐軟件支撐軟件是協(xié)助人們開發(fā)和維護軟件的工具和環(huán)境軟件,包括編輯程序,數(shù)據(jù)庫 系統(tǒng),集成開發(fā)環(huán)境等,本系統(tǒng)的支撐軟件如下:系統(tǒng)運行環(huán)境:visual C+6. 0系統(tǒng)編程語言:C/C+程序設(shè)計語言第二章算法思想隨著計算機技術(shù)的飛速發(fā)展,采用計算機進行信息化管理已成為衡量高校圖書管 理科學(xué)化和現(xiàn)代化的重要標志。為了減少工
8、作人員的工作量,提高各個環(huán)節(jié)的工作效 率,優(yōu)化人師生的學(xué)習(xí)環(huán)境,我們需要研究一個高效快捷的圖書借閱管理系統(tǒng)。本系統(tǒng)是以建立一個以通過計算機數(shù)據(jù)管理圖書借閱系統(tǒng)為目的,以用戶瀏覽圖 書信息的系統(tǒng)。該系統(tǒng)的功能強大,其具有良好的界面,操作方便靈活、簡潔高效。 具有良好的健壯性,以會員制為主要借還書手段,各種功能設(shè)置方便圖書管圖書借閱 管理。2.1 系統(tǒng)需求分析1 .1.1會員管理功能(1)添加會員:輸入會員編號、會員姓名,進行會員添加,添加成功顯示添加 完畢。此功能可連續(xù)添加。新用戶經(jīng)注冊方可登錄系統(tǒng)并使用讀者服務(wù)功能。(2)查詢會員:輸入查詢的會員編號,如果存在該會員,則會顯示該會員信息, 包括
9、會員編號,會員姓名,已借出的圖書數(shù)為幾本;如果查詢的會員編號不存在,則 顯示沒找到指定會員。(3)刪除會員:請輸入要刪除的會員的編號,如果輸入的會員編號不存在,則 顯示沒有找到要刪除的會員編號。系統(tǒng)會提示你還有會員要刪除嗎?輸入Y,則可以 繼續(xù)輸入想要刪除的會員編號,并進行刪除,如果不想在進行刪除的話,可以選擇N, 進行刪除會員結(jié)束操作,退回主界面。(4)載入數(shù)據(jù):實現(xiàn)數(shù)據(jù)載入功能。(5)保存功能:能將記錄保存在任何自定義的文件中。(6)退出程序:如果想要退出程序,系統(tǒng)會提示警告:程序結(jié)束后未存儲的數(shù) 據(jù)將消失確定要退出嗎?(Y/N),選擇y,則直接退出程序。2 . 1.2圖書管理功能(1)增
10、加圖書:增加新的圖書資料,同時需檢查新書的圖書編號是否已存在于 原圖書資料中,若已存在則顯示這類書已有庫存,可輸入圖書的入庫量進行添加圖書 操作;如果該類圖書為第一次進行添加,則應(yīng)該輸入該圖書的圖書編號,圖書的名稱, 以及圖書的入庫量,輸入完畢則圖書添加完畢,可繼續(xù)選擇是否繼續(xù)添加。(2)查詢圖書:查詢圖書時需要輸入查詢的圖書編號,如果該圖書存在則會顯 示該圖書的圖書編號,圖書名稱,該圖書的庫存量以及圖書的借出量。其中圖書的庫 存量以及圖書的借出量均可以累加。如果該圖書已經(jīng)被借出,則查詢結(jié)果顯示圖書庫 存量以及圖書的借出量。(3)刪除圖書:通過圖書編號查詢該圖書資料,若該編號存在,允許刪除,否
11、 則提示沒有找到你所要的圖書。刪除對象包括該圖書資料以及“圖書狀態(tài)”和“借閱 人”中與此書相關(guān)的所有記錄。一旦進行刪除成功,則所有該圖書信息都將不存在。(4)借書處理:如果需要進行借書操作,則必須保證該借書者已經(jīng)進行過會員 注冊,借書操作需要輸入要借出的書號,以及會員編號,如果會員編號輸入錯誤,則 顯示會員編號輸入錯誤,外借失敗;如果輸入要借出的書號進行借書操作,則系統(tǒng)會 顯示該編號圖書的現(xiàn)有庫存量,如果沒有查詢到該圖書的編號則顯示沒有找到要借出 的圖書,如果借出成功,顯示外借成功。(5)還書處理:如果需要進行還書操作,則必須保證該借書者是會員,還書操 作需要輸入要借出的書號,以及會員編號,如
12、果會員編號輸入錯誤,則顯示會員編號 輸入錯誤,還書失敗;如果輸入要借出的書號進行借書操作,則系統(tǒng)會顯示該編號圖 書的現(xiàn)有庫存量,如果沒有查詢到該圖書的編號則顯示沒有找到要借出的圖書,如果 還書成功,而顯示歸還成功。2.2 系統(tǒng)總體設(shè)計2.2.1 系統(tǒng)設(shè)計目標本文研究開發(fā)的圖書借閱管理系統(tǒng)用于支持高校完成圖書館圖書借閱工作,有如 下三個方面的目標:支持圖書館實現(xiàn)規(guī)范化的管理。支持圖書館高效率完成圖書館增加圖書以及會員借還書管理的日常業(yè)務(wù),包括 圖書借閱管理系統(tǒng)的兩大功能:(1)圖書管理(增加圖書、查詢圖書、刪除圖書、圖書借閱、還書)(2)會員管理(增加會員、查詢會員、刪除會員、借書信息)支持圖書
13、館實現(xiàn)無紙化辦公,方便快捷,提高圖書館的管理效率,便利師生進入圖書館 進行學(xué)習(xí)。2. 2. 2開發(fā)設(shè)計思想基于以上系統(tǒng)設(shè)計目標,本文在圖書館圖書借閱管理系統(tǒng)時遵循了以下開發(fā)設(shè) 計思想: 采用現(xiàn)有的軟硬件環(huán)境及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用現(xiàn)有資 源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。 盡量達到操作過程中的直觀、方便、實用、安全等要求。 系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,乂便于未 參與開發(fā)的技術(shù)維護人員補充、維護。系統(tǒng)應(yīng)具備數(shù)據(jù)維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、刪除、修改、 備份等操作。2. 2. 3系統(tǒng)功能模塊設(shè)計本系統(tǒng)開發(fā)的意圖是借由網(wǎng)絡(luò)化的管理減
14、輕圖書館工作人員的工作量,全面提高 圖書館的管理效率及服務(wù)質(zhì)量。實現(xiàn)兩方面的功能,這兩個方面分別是圖書管理和會 員管理。(1)圖書管理(增加圖書、查詢圖書、刪除圖書、圖書借閱、還書);(2)會員管理(增加會員、查詢會員、刪除會員、借書信息)。圖書借閱管理系統(tǒng)主要包括以下功能模塊,如圖所示。增加圖書1HH帚加z :,L-系統(tǒng)功能模塊圖進入系統(tǒng)后需要先進行會員注冊,才可以進行圖書管理和會員管理。如圖221進行進入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在操作之前先要進行增加圖書。如圖222圖222如果會員注冊完畢,新書添加完畢,讀者可以進行借書操作。如圖223圖223查詢圖書操作。如圖224圖224
15、刪除會員操作。如圖225圖2252.3算法思想描述本項目的實質(zhì)是完成對學(xué)生成績信息的建立、查找、插入、修改、刪除等功能, 可以首先定義項目的數(shù)據(jù)結(jié)構(gòu),然后將每個功能寫成一個函數(shù)來完成對數(shù)據(jù)的操作, 最后完成主函數(shù)以驗證各個函數(shù)功能并得出運行結(jié)果。該程序的由多種函數(shù)實現(xiàn),每個函數(shù)具有不同的功能,主要有主菜單函數(shù),插入 功能子菜單函數(shù),查找功能子菜單函數(shù),會員信息錄入函數(shù),顯示函數(shù),排序函數(shù), 插入函數(shù)以及查找函數(shù)。在每個區(qū)域中會調(diào)用不同的函數(shù)來實現(xiàn)主要的功能比如,在 新增功能里調(diào)用子菜單函數(shù);在顯示信息時調(diào)用排序函數(shù)先對需要輸出的信息進行排 序,然后再輸出;在查找功能里會調(diào)用查找函數(shù)來進行查找。
16、而最主要的函數(shù)有添加圖書:考慮到圖書的信息較多,所以用結(jié)構(gòu)體對其定義。 乂考慮到圖書量大,所以添加后要保存到文件中去。圖書查詢:用所學(xué)過的順序查找 法來寫。刪除圖書:把保存到文件中的內(nèi)容寫到鏈表中去,用鏈表刪除結(jié)點的方法來 刪除圖書。我們所學(xué)過的指針這時正好用上。最后把各函數(shù)同主函數(shù)相連,用主函數(shù) 調(diào)用它們,主要函數(shù)如下:插入函數(shù),它用插入排序來實現(xiàn);2查找函數(shù),用順序查找法;刪除函數(shù),用鏈表刪除結(jié)點的方法第三章算法實現(xiàn)3.1 數(shù)據(jù)結(jié)構(gòu)要完成這個題目,主要是建立解決圖書和會員的信息的存儲,解決的方法是建 立兩個帶頭結(jié)點的單鏈表,分別用于存儲圖書和會員。解決了這個問題后就是如何建 立這兩個鏈表的
17、聯(lián)系了,解決的方法是在圖書結(jié)點中設(shè)一個借書人編號,在會員結(jié)點 中設(shè)一個數(shù)組用于存會員借的書。解決了這兩個問題,剩下的工作就簡單了。只需按 鏈表的操作就可以了。以會員管理為例,本項目的數(shù)據(jù)是一組會員的借閱信息,每條學(xué)生的借閱信息由 會員編號、會員姓名和組成,這組會員的借閱信息具有相同特性,屬于同一數(shù)據(jù)對象, 相鄰數(shù)據(jù)元素之間存在序偶關(guān)系。由此可以看出,這些數(shù)據(jù)具有線性表中數(shù)據(jù)元素的 性質(zhì),所以該系統(tǒng)的數(shù)據(jù)采用線性表來存儲。順序表是線性表的順序存儲結(jié)構(gòu),是指用一組連續(xù)的內(nèi)存單元依次存放線性表的 數(shù)據(jù)元素。在順序存儲結(jié)構(gòu)下,邏輯關(guān)系相鄰的兩個元素在物理位置上也相鄰,這是 順序表的特點。本項目可以采用
18、順序表的線性表順序存儲結(jié)構(gòu)。若一個數(shù)據(jù)元素僅占一個存儲單元,第i個數(shù)據(jù)元素的地址為Loc (ai) =loc (al) + (i-l)假設(shè)線性表中每個元素占用k個存儲單元,那么在順序表中,線性表的第i個元 素的存儲位置與第1個元素的存儲位置的關(guān)系是Loc (ai)=loc (al) + (i-l)*k這里L(fēng)oc (ai)是第i個元素的存儲位置,loc (al)是第1個元素的存儲位置,也 稱為線性表的基址。顯然,順序表便于進行隨機訪問,故線性表的順序存儲結(jié)構(gòu)是一 種隨機存儲結(jié)構(gòu)。順序表適宜于做查找這樣的靜態(tài)操作;順序存儲的優(yōu)點是存儲密度大,存儲空間 利用率高。缺點是插入或刪除元素時不方便。由于C
19、語言的數(shù)組類型也有隨機存儲 的特點,一維數(shù)組的機內(nèi)表示就是順序結(jié)構(gòu)。因此,可用C語言的一維數(shù)組實現(xiàn)線性 表的順序存儲。數(shù)組實現(xiàn)線性表的順序存儲的優(yōu)點是可以隨機存取表中任一元素 0(1),存儲空間使用緊湊;缺點是在插入,刪除某一元素時,需要移動大量元素0(n),預(yù)先分配空間需按 最大空間分配,利用不充分,表容量難以擴充。用結(jié)構(gòu)體類型定義每個會員數(shù)據(jù),故該數(shù)組中的每個數(shù)據(jù)的結(jié)構(gòu)可描述為:typedef struct Member Inf 0/會員結(jié)構(gòu)(long m_Code; /會員編號char m_Name20; 會員名字int l_Codes6; /己借書的編號,最多5Member Info*
20、 nextmember; 下一會員MemberInfo;3.2 程序模塊頭文件及散列定義關(guān)鍵字#iiiclude#iiiclude#iiiclude#define NULL 0定義圖書結(jié)構(gòu)類型typedef stiuct Booklnfb /圖書結(jié)構(gòu)(mtb_Code;圖書編號char b_Name20; /名稱int b_Total; /總數(shù)mtb_Out;/借出數(shù)Bookliifo* nextbook; /下一類圖書JBooklnfb;3.3 各模塊之間的調(diào)用關(guān)系模塊內(nèi)部的具體算法,包括輸入、處理和輸出,相當(dāng)于C+語言的過程或函數(shù)設(shè) 計。整體算法描述:建立一個結(jié)構(gòu)來存放學(xué)生信息,再將這個結(jié)
21、構(gòu)存放在文件中,按 要求通過調(diào)用各個函數(shù)對文件內(nèi)的數(shù)據(jù)進行操縱及處理。各個分函數(shù)算法描述:由主函數(shù)調(diào)用建立一個新的文件用于存儲圖書以及會員記錄。3.4 源程序代碼#mclude#mclude#mcludedefine NULL 0typedef stmct Booklnfb /圖書結(jié)構(gòu)mt b_Code;圖書編號char b_Name20; /名稱int b_Total; /總數(shù)mt b_Out;/借出數(shù)Bookliifo* nextbook; 下一類圖書JBooklnfb;typedef struct Memberlnfb/會員結(jié)構(gòu)(long m_Code; /會員編號char m_Name
22、20; 會員名字int l_Codes6; /己借書的編號,最多5Memberlnfb* nextmembei; /下一會員JMembeiliifo;typedef struct System/管理系統(tǒng)結(jié)構(gòu)(Bookliifb* BI;Memberlnfb* MI;int BookTotal; /圖書類庫存量int MumbuiTota; /會員數(shù)量 System;System* IiutSystem();/ 系統(tǒng)初始化void AddBook( System*);/增加圖書Bookliifo* SearchBook(System*.int);查詢圖書信息void DelBook(System
23、*);/刪除圖書void BrrowBook(System*);/借書處理void Tu】nBackBook(System*);還書處理void AddMumbeRSystem*);/添加會員void DulMember(System*);/刪除會員Memberliifb* SearchMembei(System*,int);/查詢會員信息 void StoieData(System*); 定義一個空的數(shù)據(jù)存儲(系統(tǒng)) void LoadData(System*); 加載所有數(shù)據(jù) void ExitSystemQ; 退出程序 void mainQ System* S=IiiitSystemQ;
24、int sei;docoutHntttt |書借閱管理系統(tǒng)主界面”vendl;coutvv”tttX派y endl;coutvtttXL增加圖書.支endl;coutvtttX2.查詢圖書.支endl;coutvtttX3.刪除圖書.支endl;coutvtttX4.借書處理.支endl;coutvtttX5.還書處理.支endl;coutvtttX6.添加會員.支endl;coutvtttX7.刪除會員.支endl;coutvtttX8.查詢會員.支endl;coutvtttX9.載入數(shù)據(jù).支endl;coutvtttX10.保存數(shù)據(jù).cout=l&selBI=(BookInfo*)mall
25、oc(sizeof(BookInfb); /圖書信息初始化,sizeof是 C/C+中的一個操作 符(operator),簡單的說其作用就是返回一個對象或者類型所占的內(nèi)存字節(jié)數(shù)S-BookTotal=0; 圖書數(shù)量初始為0S-BI-nextbook=NULL; 下一類圖書信息初始為空S-MI=(MemburInfb*)nKdloc(sizeof(MeniberInfo); /初始化會員信息S-MemberTota=0;圖書總數(shù)初始為0S-MI-nextmember=NULL; /下一個會員信息初始為空return S;void AddBook(System* S) 添加圖書模塊(int Tem
26、pcode; 圖書編號char sei;/查詢該圖書編號是否已存在Bookhifo* p=S-BI; /p 指向圖書結(jié)構(gòu)Bookliifo* t; 添加的圖書庫存沒有Bookliifo* m; 添加的圖書庫存己有int num; 入庫量docoutvv”輸入圖書編號:cinTempcode;if(m=SeatchBook(S,Tempcode) 圖書編號庫存已有 coutvv這類書已有庫存An輸入圖書的入庫量:Wendi;cinnum;m-b_TotaR=num; /*圖書數(shù)量累加。m-b_Total間接引用運算符,表達式 m-b_Total引用了指針m指向的結(jié)構(gòu)體的成員b_TotaL */e
27、lset=(BookInfo*)malloc(sizeof(BooklHfo); 在圖書信息中定義一個t的內(nèi)存空間 t-b_Code=Tempcode; /*添力口的圖書編號與庫存已有。間接引用運算符,表達式tb_Code引用了指針t指向的結(jié)構(gòu)體的成員b.Codeo */coutvv”輸入圖書的名稱:cint-b_Naiiie;coutvv”輸入圖書的入庫量:cint-b_Total;t-b_Out=0; 圖書借出量為0 t-nextbook=p-nextbook;p-nextbook=t;SBookTo血+; 圖書總數(shù)coutvv11 添加完畢! y Vendl;coutvv”還要添加嗎?(
28、Y/N)”; 是否繼續(xù)添加 cinsel;if(sel=,n*| sel=N)coutvv”結(jié)束添加 Hendl;return;while(l);Bookhifo* SearcliBook(System* Sjnt code)查詢圖書(Bookliifb* bi=S-BI-nextbook; 下一本圖書int bookcode; 圖書編號if(code=-l)coutvv”請輸入要查詢的圖書編號: cinbookcode; 輸入圖書編號else bookcode=code;while(bi&bib_Code!=bookcode)bi=bi-nextbook; 判斷輸入圖書編號于庫存中的某個編號
29、 是否相等if(code=-l)if(山1)如果庫存中沒有此編號coutvv”沒找到你所要的圖書jvveiidl;else/庫存中有此編號,顯示信息coutw“圖書編號為:vbi-b_Codeb_Name endl;coutw“圖書庫存量為: v b_Tota b_Outvendl;renirn bi;void DelBook(System* S)刪除圖書(Bookliifo* bi; 定義一個 biBookliifo*pl=S-BI;定義一個系統(tǒng)中指向圖書管理的plMembeilnfb* memi; 會員結(jié)構(gòu)中定義一個memichar sei;int tempcode; 輸入的圖書編號nit
30、 i;dopl=S-BI;間接引用運算符,表達式S-BI引用了指針s指向的結(jié)構(gòu)體的成員BE bi=pl-nextbook; 下一本圖書21menii=S-MI-nextinember; 下一個會員coutw”請輸入要刪除的圖書的編號之cintempcode;輸入要刪除的圖書編號while(bi)if(歷Ab_Code=tempcode)圖書存在直接刪除coutw”刪除圖書成功V nextbook;if(bi=O)圖書編號不存在coutw”沒有找到要刪除的圖書v nextbook=bi-nextbook;S-BookTotal-;while(menu)for(i=l ;iLCodes0;i-H-
31、)(if(meiiii-LCodesi=tempcode)bieak;if(il_Codes0)(fdi(;iLCodes0;i-H-)memi-LCodesi=meiiii-l_Codesi+l;menii-l_Codes0;meini=meiiu-nextmember;fiee(bi);)coutvv”還有圖書要刪除嗎?(Y/N)“;cinsel;if(sel=rN, 11 sel=,n,)coutvv”刪除圖書結(jié)束endl;return;wlule(l);void BnowBook(System* S) 借書(Bookliifb* bi=S-BI-nextbook;Bookliifb*
32、p;char sei;int memcode;Memberlnfb* mp;int tempcode;docoutvv”輸入要借出的書號:;cintempcode;p=SeaicliBook(S,tempcode);if(!p)coutvv”沒有找到要借出的圖書.”BI-nextbook;Bookliifb* p;Memberliifb* mp;mt membercode;mt tempcode;mti;char sei;do(coutvv輸入歸還書號:cintempcode;p=SearcliBook(S.tempcode);】fCP)(coutvv書號輸入錯誤.vvendl;)else(c
33、outvv此書的現(xiàn)存量為v(p-b_Total-p-b_Out)v Vendl;coutvv請輸入會員編號:cinmembercode;if(!(mp=SeaicliMember(S4iiembercode)coutvv”會員編號輸入錯誤,歸還失敗Vendl; else(p-b_Out;fbr(i=l ;iLC odes 0 ;i+) if(mp-LCodesi=tempcode)break;while(il_Codes0)(mp-LCodesi=mp-l_Codesi+l;i+;mp-l_Codes0-;coutH歸還成功. endl;)coutvv”還有要歸還的圖書嗎?(Y/N)”;cin
34、sel;if(sel=rN, 11 sel=,n*) coutM歸還結(jié)束.MI;Memberhifb* t;do(coutvv輸入會員編號:cinTempcode;t=(MembeiIiifb*)malloc(sizeof(MembeiIiifo);t-nvC ode=Tempcode;coutvv”輸入會員姓名:cint-m_Name;t-l_Codes0=0;t-nextmember=p-nextmember;p-nextmembei-t;S-MemberTota-H-;cout”添加完畢! ”MI-nextmember;mt membercode;mt i;if(code=-l)cout
35、vv”請輸入要查詢的會員編號:”; cinmembercode;else membercode=code;while(bi&bi-m_Code?=membercode)bi=bi-nextmember;if(code=-l)coutvv沒找到指定會員.V Vendl;elsecoutvv”會員編號為:m_Codeendl;coutvv” 名稱 9 :Hbi-m_Nameendl;coutvv” 己借的圖書有:l_Codes0本.Hendl;fbr(i=l ;iLCodes0;i+) coutbi-l_Codesi, coutendl;return bi;void DelMember(Syste
36、m* S) 刪除會員Memberlnfb* bi;Memberlnfb* pl;Bookliifb* book;char sei;mt i;mt tempcode;dobi=S-MI-nextmember;pl=S-MI;coutvv”請輸入要刪除的會員的編號:cintempcode;while(bi)if(bi-m_Code=tempcode)break;pl=bi;bi=bi-nextmember;if(!bi)coutvv“沒有找到要刪除的會員編號elsepl-nextmember=bi-nextmembei-;S-MemberTota-;fbr(i=l ;iLCodes0;i+) if
37、(!(book=SearchBook(S,bi-LCodesi)coutw刪除會員出錯! b_Out;book-b_Total;free(bi);coutvv”還有會員要刪除嗎?(Y/N)”;ciiisel;if(sel=fN|sel=,n,)coutvv”刪除會員結(jié)束y Vendl;retuni;while(l);void StoieData(System* S)保存數(shù)據(jù)FILE* fp;Bookliifo* bi=S-BI-nextbook;if(!(fp=fopen(nBookSysH;,wbH)coutw”打開文件 BookSys 失敗!”endl;exit(O);fvvrite(&(
38、S-BookTotal),sizeof(mt), 1 ,fp);while(bi)fwTite(bi,sizeof(BookIiifd), 1 ,fp);bi=bi-nextbook;Memberlnfb * ini=S-MI-nextmember;fvvnte(&(S-MemberTota),sizeof(mt), 1 ,fp); while(ini)fwrite(mi,sizeof(MembeiInfb), 1 ,fp);nn=ini-nextmember;fclose(fp);void LoadData(System* S)載入數(shù)據(jù)FILE* fp;if(!(fp=fopenC,Book
39、Sys,7,rbM)coutw”打開文件 BookSys 失敗”BI;Bookliifb* tempbi;fread(&(S-BookTotal),sizeof(mt), 1 ,fp);foi(int i= 1 ;iBookTotal;i+)tempbi=(BookIiifb*)malloc(sizeof(BookInfb);fiead(tempbi,sizeof(BookIiifb), 1 ,fp);bi-nextbook=tempbi;bi=tempbi;bi-nextbook=NULL;Memberlnfb* ini=S-MI;Memberlnfb* tempnii;fread(&(S-
40、MembeiTota),sizeof(mt), 1 ,fp);for(i= 1 ;iMemberTota;i+)tempnu=(MembeiIiifd*)malloc(sizeof(MembeiIiifb);fiead(tempnu,sizeof(MemberIiifb), 1 ,fp);nii-nextmember=tempnii;nn=tempini;nii-nextmember=NULL;fclose(fp);id Exit System。退出程序char select;coutvv”警告:程序結(jié)束后未存儲的數(shù)據(jù)將消失.yVendl;coutvv”確定要退出嗎?ciiiselect;if
41、(select=y|select=rY,)exit(O);/退出if(select=ln,|select=,Nf)retuni;第四章測試與分析4.1 測試數(shù)據(jù)選擇功能測試:1.增加圖書.2.查詢圖書.3.刪除圖書.4.借書處理.5.還書處理.6. 添加會員.7.刪除會員.8.查詢會員.9.載入數(shù)據(jù).10.保存數(shù)據(jù).11.退出程序。4.2 測試結(jié)果分析圖書管理系統(tǒng)主界面:包含該系統(tǒng)所有功能提示,如圖4. 2.1所示朱H綾案及8圖 4.2.138增加圖書操作界面:如果該類圖書為第一次進行添加,則應(yīng)該輸入該圖書的圖書編號,圖書的名稱,以及圖書的入庫量為多少,輸入完畢則圖書添加完畢;若已存在則顯示這
42、類書已有庫存,可輸入圖書的入庫量進行添加圖書操作。如圖4. 2. 2所示編ss,grws 圖士蓋圖書圖送入A入人類人加 品管潮之阿匕前5添引名人y3 好 N 2 卞 ?/:!$ ?Dlr據(jù)6 3歲可理理員員如匈亶還漆冊ge;事o 0 i / 12?q567s91r.、結(jié)半圖 4. 2. 2查詢圖書操作界面:查詢圖書時需要輸入查詢的圖書編號,如果該圖書存在則會 顯示該圖書的圖書編號,圖書名稱,該圖書的庫存量以及圖書的借出量。如圖4. 2. 3 所示圖 4.23借書操作界面,保證借書者是會員,并且所借圖書有庫存,借書時需要輸入會員 編號和圖書編號。如果沒有查詢到該圖書的編號則顯示沒有找到要借出的圖
43、書,如果 會員編號輸入錯誤,則顯示會員編號輸入錯誤,外借失??;如圖4.2.4及圖4.2.5所示圖 4.2.444 4 ZX嗎 ar-lfl;1號11a SW? 出任貝 :4盍窩 捧msa *.書45/二MM3 要出譽貝 矍的卷一g不丟珊一,FAHHObugff.exe-號二12311:333誤,外借會質(zhì)圖 4.2.5還書操作界面:如果需要進行還書操作,則必須保證該借書者已經(jīng)進行過會員注 冊,還書操作需要輸入要借出的書號,以及會員編號,如果會員編號輸入錯誤,則顯 示會員編號輸入錯誤,還書失敗。正確則顯示還書成功并顯示圖書信息如圖4.2.6所示圖 4.2.6泉奈奈冬1閏 惜面 界 王冬段 爾 必統(tǒng)
44、系 理張理理員小X 書1.2.3.丸.9.“11米:5-比雙”一一喈半 擇歸的查詢圖書操作界面:查詢圖書時需要輸入查詢的圖書編號,如果該圖書存在則會 顯示該圖書的圖書編號,圖書名稱,該圖書的庫存量以及圖書的借出量。其中圖書的 庫存量以及圖書的借出量均可以累加。如果該圖書已經(jīng)被借出,則查詢結(jié)果顯示圖書 庫存量以及圖書的借出量。如圖4.2.7所示,F;HHDgbugH-. o | 回 |12 要藥 m為: I 簿: / 一11; lIjA/生案案旬的圖書函號:123 123反推蹄勺:11與:2iJiB5.6 7。91H1 米朱奈米奈圖 4.2.7刪除圖書操作界面:通過圖書編號查詢該圖
45、書資料,若該編號存在,允許刪除, 否則提示沒有找到你所要的圖書。刪除對象包括該圖書資料以及“圖書狀態(tài)”和“借 閱人”中與此書相關(guān)的所有記錄。一旦進行刪除成功,則所有該圖書信息都將不存在。 如圖4. 2. 8所示L F:HHDe“g*exc朱朱米一理員員。Eb. 管圖0_一會 耍加滴加雷w1 .2.3.4.S.6.?.8.九1811-米冰米面啜王:3ww 擇-困 除受母書的編號424圖 4.2.8圖書借閱系統(tǒng)的實現(xiàn)與設(shè)計,這個題目相對來說貼近生活,比較容易理解。但 是設(shè)計一個較為完整的程序卻不是這么簡單的。首先我分析了相關(guān)的題目內(nèi)容,并由此而進行了相關(guān)資料和書籍的查詢工作然后 才開始正式進行設(shè)計
46、。一開始不知從何下手但后來分析了一下題目,并結(jié)合這學(xué)期所 學(xué)的知識,再加上相關(guān)提示我決定用指針、鏈表和文件的內(nèi)容來編寫程序。圖書管理 主要就是有一些操作來完成,這些操作包括:新進圖書基本信息的輸入、圖書基本信 息的查詢、對撤消圖書信息的刪除、為借書人辦理注冊、辦理借書手續(xù)(非注冊會員 不能借書)、辦理還書手續(xù)等等。我想這正好用C+的知識來實現(xiàn)函數(shù)。在具體編寫程序時考慮到圖書的相關(guān)操作與會員基本相同,所以實際上只要編寫 前三個函數(shù)。添加圖書:考慮到圖書的信息較多,所以用結(jié)構(gòu)體對其定義。乂考慮到 圖書量大,所以添加后要保存到文件中去。圖書查詢:用所學(xué)過的順序查找法來寫。 刪除圖書:把保存到文件中的內(nèi)容寫到鏈表中去,用鏈表刪除結(jié)點的方法來刪除圖書。 我們所學(xué)過的指
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中英語 Unit 4 Friends forever Period 3 Using language說課稿 外研版必修第一冊
- 二零二五年度新能源技術(shù)研發(fā)履約擔(dān)保協(xié)議書3篇
- 2024-2025學(xué)年新教材高中化學(xué) 專題7 氮與社會可持續(xù)發(fā)展 第2單元 第2課時 硝酸說課稿 蘇教版必修2
- 2023一年級數(shù)學(xué)上冊 5 6~10的認識和加減法第4課時 解決問題1說課稿 新人教版
- 10《父母多愛我》第一課時(說課稿)-部編版道德與法治三年級上冊
- 4 10 的認識和加減法(說課稿)-2024-2025學(xué)年一年級上冊數(shù)學(xué)蘇教版(2024)001
- 2024秋七年級地理上冊 第二章 第一節(jié) 大洲和大洋說課稿 (新版)新人教版
- 2025至2030年中國波紋電線套管數(shù)據(jù)監(jiān)測研究報告
- 二零二五年民間借貸四方協(xié)議規(guī)范文本
- 2025至2030年中國化纖機械配件數(shù)據(jù)監(jiān)測研究報告
- 【蟬媽媽】2024年抖音電商酒水行業(yè)趨勢洞察報告
- 海洋垃圾處理行業(yè)可行性分析報告
- 公共部門績效管理案例分析
- 無人機培訓(xùn)計劃表
- 2024屆高考英語詞匯3500左右
- 2024年-2025年海船船員考試-船舶人員管理考試題及答案
- 2025屆安徽省皖南八校聯(lián)盟高二物理第一學(xué)期期末統(tǒng)考試題含解析
- DB11T 1812-2020 既有玻璃幕墻安全性檢測與鑒定技術(shù)規(guī)程
- 安全開發(fā)流程培訓(xùn)文件課件
- 三年內(nèi)無重大違法記錄聲明
- 第六章-主成分分析法
評論
0/150
提交評論