數據結構圖書管理系統實驗報告_第1頁
數據結構圖書管理系統實驗報告_第2頁
數據結構圖書管理系統實驗報告_第3頁
數據結構圖書管理系統實驗報告_第4頁
數據結構圖書管理系統實驗報告_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、竭誠為您提供優質文檔 /雙擊可除第 1 頁共 15 頁數據結構圖書管理系統實驗報告篇一:數據結構-圖書管理系統實驗報告數據結構課程設計報告課程名稱_題目名稱學生學院專業班級學號學生姓名指導教師20XX年7月8日一、需求分析1.圖書管理系統中圖書管理模塊包括圖書類型定義:書號、現存量、總存量,出版時間為整型,定價為浮點型,書 名、著者名為字符型,借閱指針、預約指針為讀者類型;讀 者類型定義:證號為整型、姓名為字符型,另外借閱類型和預約類型組合成其中的共用體類型。b樹(2-3樹)類型定義:關鍵字個數和關鍵字數組為整型、另外還有指向雙親的 指針、指向子樹的指針、記錄單元指針;b樹查找結果類型定義:節

2、點指針、關鍵字序號和查找標志變量為整型。2.演示程序以用戶和計算機的對話方式進行,在計算機 終端上顯示“提示信息”之后,由用戶在鍵盤上輸入演示程 序中規定的運算命令,相應的輸入數據和運算結果顯示在后面。該演示系統,沒有使用文件,全部數據放在內存存放。 四項基本業務都以書號為關鍵字進行的,采用了b樹(2-3樹)對書號建立索引,以提高效率。3.圖書管理系統實現功能:1采編入庫:新書購入,將書號、書名、著者、冊數、 出版時間添加入圖書賬目中去,如果這種書在帳中已有,貝U只將總庫存量增加,每新增一個書號則以凹入表的形式顯示b樹現狀。2清除庫存:實現某本書的全部信息刪除操作,每清除一個書號則已以凹入表的

3、形式顯示b樹現狀。3圖書借閱:如果書的庫存量大于零時則執行出借,登 記借閱者的圖書證號和姓名,系統自動抓取當前借閱時間和 計算歸還時間。4圖書預約:如果某書庫存為零,則記錄預約者姓名和 證號,系統自動抓取當前預約時間和取書時間。5圖書歸還:注銷借閱者信息,并改變該書的現存量。第 2 頁共 15 頁6作者專區:輸入作者名字,系統將查找相應作者全部著作并顯示出來。7圖書信息:可以根據書號查閱此書基本信息、借閱信息和預約信息,亦可以查找全部圖書基本信息。二、概要設計1.抽象數據類型b樹定義:ADTbTree數據對象:D是具有相同特性的數據元素的集合。各個數據元素均含有類型相同,可惟一標識數據元素的關

4、鍵字。數據關系:數據元素同屬于一個集合并且:一棵m階的b樹,或為空,或為滿足下列特性的m叉樹:樹中每個結點至多有m棵子樹;若根結點不是葉子結點,則至少有兩棵子樹;除根之外的所有非終端結點至少有m/2(取上限)棵子樹;所有的非終端結點包含下列信息數據:(n,A0,K1,A1,K2,A2,K3,?,Kn,An)其中:Ki(i=1,2,?n)為關鍵字,且Ki n),An所指子樹中所有結點的關鍵字均大于Kn, n( m/2(取上限)-1基本操作:searchbTree(T,key);初始條件:b樹T存在,key為和關鍵字類型相同的給第 3 頁共 15 頁第4頁共 15 頁定值操作結果:若T中存在關鍵字

5、等于key的數據元素,則 返回該元素的值或在表中的位置,否則返回“空”。lnsert(T,i,k,p,recptr)初始條件:b樹q和p存在,i、k是指定變量,recptr指針有效操作結果:將k和ap分別插入到q-keyi+1和q-ptri+1,并插入關鍵字為k的記錄recptrInsertbTree(初始條件:b樹T存在,e為待插入的數據元素。操作結果:若T中步存在關鍵字等于e.key的數據元素,則插入e到T中。DeletebTree(初始條件:b樹T存在,key為和關鍵字類型相同的給 定值。操作結果:若T中存在其關鍵字等于key的數據元素,則刪除之bTreeTraverse(bTreeT,

6、Visit)初始條件:b樹T存在,Visit是對T結點的函數操作結果:遍歷b樹T,對每個結點調用Visit函數showbTree(T);初始條件:b樹T存在。操作結果:以凹入表形式顯示b樹T。ADTbTree第5頁共 15 頁2.系統時間類型定義:ADTTime數據對象:D=Tm是各種整型類型的系統時間格式定義數據關系:數據元素同屬一個集合基本操作:getDate(tm操作結果:初始化書庫L為空書庫。lnsertbook(初始條件:書庫L和b已存在,result包含b書在書庫 中的位置或應該插入的位置。操作結果:如果書庫中已存在b書,則只將b書的庫存量增加,否則插入b書到書庫L中。Delete

7、book(初始條件:書庫L和b存在。操作結果:如果書庫中存在b書,則從書庫中刪除b書的信息,并返回oK,否則返回eRRoRborrowbook(L,初始條件: 書庫L存在,b書是書庫中的書并且可被讀者R借閱。操作結果: 借出一本b書,記錄信息。Returnbook(L,第6頁共 15 頁初始條件:書庫L存在 操作結果:若書庫L中有讀者R借閱b書的記錄,則注 銷該記錄,改變b書現存量,并返回oK,書不存在或無該讀 者記錄則返回eRRoRbespeakbook(L,初始條件:書庫L存在,b書是書庫中的書,R為借閱 者。操作結果:為讀者R預約b書。ListAuthor(L,author);初始條件:

8、書庫L存在,author為指定作者姓名操作結果:顯示author的所有著作。showbookinfo(L,b);初始條件:書L存在。操作結果:若書庫L中存在書b,則顯示b書基本信息并返回oK,否則返回eRRoR printAllbooks(L);初始條件:書庫L存在。操作結果:顯示所有圖書基本信息。ADTbTree3.主程序intmain()系統界面;初始化;第7頁共 15 頁for(;)第8頁共 15 頁顯示菜單信息;接受命令;處理命令;輸出結果;|4.本程序有四個調用模塊主程序模塊圖書管理模塊b樹單元模塊系統時間模塊三、詳細設計抽象數據類型b樹算法詳解定義*”typedefbook no

9、deRecord;/記錄指針為圖書結點類型typedefstructbTnodeintkeynum;/結點關鍵字個數/*抽象數據類型b-樹存儲第9頁共 15 頁structbTnode*parent;指向雙親指針intkeym+1;/(:數據結構圖書管理系統實驗報告)關鍵字數組,0號單元未用structbTnode*ptrm+1; 指向子樹指針Record*recptrm+1;記錄指針,0號單元未用bTnode,*bTree;/b樹節點類型和b樹類型typedefstructbTnode*pt;/指向找到的結點或應該插入的結點inti;/1.m,在結點中關鍵字序號inttag;/1表示查找成功,0表示查找失敗Result;/b樹查找結果類型/*/*b-樹操作定義*/i ntsearch(bTreep,intk)/*在b樹p中查找關鍵字k的位置i,使得p-nodei.keynodei+1.key*/Resul

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論