freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告-圖書管理(已修改)

2025-09-19 02:31 本頁面
 

【正文】 3681bd1c2b9ef87aa40ba80437378615 第 1 頁 共 31 頁 一、 需求分析 1. 書號和借閱證號、庫存量 、出版年份 用整型 表示 ;書名用 20位字符型數(shù)組,著者和借閱者姓名用30 位字符型數(shù)組 表示;圖書價格用浮點型表示。 圖書入庫時輸入圖書的書號、書名、著者、總量等完整信息,清除庫存時輸入圖書書號 , 借閱和歸還時輸入書號和借閱者 證號,姓名等信息 ,并記錄 系統(tǒng)時間為 借書日期。 2. 借書和歸還時顯示圖書的信息。 插入、刪除后 用凹入表顯示以書號建立的 B樹 狀態(tài) 。查看圖書狀態(tài),以表格顯示圖書的基本信息,借閱者名單和預(yù)約者名單。 3. 程序所能達(dá)到的功能 ? 圖書采編入庫 (用 B 樹對書號建立索引 ) ? 清除庫存 ? 圖書 借閱 ? 圖書 歸還 ? 圖書預(yù)約 ? 列出某著者全部著作 名 ? 列出某種書的狀態(tài) (包括圖書基本信息和該書借閱者名單、預(yù)約者名單) ? 每次插入或刪除一個關(guān)鍵字后以 凹入表顯示 B 樹 的狀態(tài) ? 把一次會話過程中的全部人機(jī)對話記錄入一個日志文件中 ? 在程序主界面顯示當(dāng)前系統(tǒng)時間 4. 測試數(shù)據(jù) 入庫書號: 35, 16, 18, 70, 5, 50, 22, 60, 13, 17, 12, 45, 25, 42, 15, 90, 30, 7 然后清除: 45, 90, 50, 22, 42 圖書的其他信息見附錄。 二、 概要設(shè)計 1. 抽象數(shù)據(jù)類型 B 樹定義如下: ADT BTree{ 數(shù)據(jù)對象: D 是具有相同 特性的數(shù)據(jù)元素的集合。各個數(shù)據(jù)元素均含有類型相同,可惟一標(biāo)識數(shù)據(jù)元素的關(guān)鍵字。 數(shù)據(jù)關(guān)系:數(shù)據(jù)元素同屬于一個集合 并且: 一棵 m 階的 B 樹,或為空,或為滿足下列特性的 m叉樹: 樹中每個結(jié)點至多有 m 棵子樹; 若根結(jié)點不是葉子結(jié)點,則至少有兩棵子樹; 除根之外的所有非終端結(jié)點至少有 m/2(取上限)棵子樹; 所有的非終端結(jié)點包含下列信息數(shù)據(jù) : (n,A0,K1,A1,K2,A2,K3,?? ,Kn,An) 其中: Ki( i=1, 2,?? n)為關(guān)鍵字,且 KiKi+1( i=1, 2,?? n1); Ai( i=0,?? n)為指向 子樹根3681bd1c2b9ef87aa40ba80437378615 第 2 頁 共 31 頁 結(jié)點的指針,且指針 Ai1 所指子樹中所有結(jié)點的關(guān)鍵字均小于 Ki( i=1, 2,?? n), An 所指子樹中所有結(jié)點的關(guān)鍵字均大于 Kn, n( m/2(取上限 )1=n=m1)為關(guān)鍵字的個數(shù) 基本操作: SearchBTree(T ,key)。 初始條件: B 樹 T 存在, key 為和關(guān)鍵字類型相同的給定值。 操作結(jié)果:若 T 中存在關(guān)鍵字等于 key的數(shù)據(jù)元素,則返回該元素的值或在表中的位置,否則返回“空”。 InsertBTree(amp。T ,e)。 初始條件: B 樹 T 存在, e 為待插入的數(shù)據(jù)元素。 操作結(jié)果:若 T 中 步存在關(guān)鍵字等于 的數(shù)據(jù)元素,則插入 e 到 T 中。 DeleteBTree(amp。T ,key)。 初始條件: B 樹 T 存在, key 為和關(guān)鍵字類型相同的給定值。 操作結(jié)果:若 T 中存在其關(guān)鍵字等于 key 的數(shù)據(jù)元素,則刪除之 BTreeTraverse(BTree T,Visit) 初始條件: B 樹 T 存在, Visit 是對 T 結(jié)點的函數(shù) 操作結(jié)果:遍歷 B 樹 T,對每個結(jié)點調(diào)用 Visit 函數(shù) ShowBTree( T )。 初始條件: B 樹 T 存在。 操作結(jié)果:以凹入表形式顯示 B 樹 T。 }ADT BTree 2. 抽象數(shù)據(jù)類 型書庫的定義如下: ADT Library{ 數(shù)據(jù)對象: D={ai | ai∈ BookType, i=1, 2, 3,?? n, n=0,其中 每個數(shù)據(jù)元素 ai含有類型相同,可惟一標(biāo)識數(shù)據(jù)元素的關(guān)鍵字 } 數(shù)據(jù)關(guān)系:數(shù)據(jù)元素同屬一個集合 基本操作: InitLibrary(amp。L )。 操作結(jié)果:初始化書庫 L 為空書庫。 InsertBook(amp。L ,B ,result)。 初始條件:書庫 L 已存在, B 為與 L 的數(shù)據(jù)元素類型相同的給定值, result 包含 B 書在書庫中的 位置或應(yīng)該插入的 位置 。 操作結(jié)果: 如果書庫中已存在 B 書,則只將 B 書的庫存量增加,否則插入 B 書到書庫 L 中 。 DeleteBook(amp。L ,amp。B)。 初始條件:書庫 L 存在, B 為與 L 的數(shù)據(jù)元素類型相同的給定值。 操作結(jié)果:如果書庫中存在 B 書,則從書庫中刪除 B 書的信息,并返回 OK,否則返回 ERROR BorrowBook(L ,amp。B ,R)。 初始條件:書庫 L 存在, B 書是書庫中的書并且可被讀者 R 借閱。 操作結(jié)果:借出一本 B 書,登記借閱者信息,改變現(xiàn)存量,記錄結(jié)束日期等信息。 ReturnBook(L ,amp。B ,R)。 初始條件:書庫 L 存在。 操作結(jié)果:若書庫 L中有讀者 R 借閱 B書的記錄,則注銷該記錄,改變 B 書現(xiàn)存量,并返回 OK,書不存在或無該讀者記錄則返回 ERROR。 BespeakBook(L ,amp。B ,R)。 初始條件:書庫 L 存在, B 書是書庫中的書, R 為借閱者。 操作結(jié)果:為讀者 R 預(yù)約 B 書(登記預(yù)約信息)。 3681bd1c2b9ef87aa40ba80437378615 第 3 頁 共 31 頁 ListAuthor(L ,author)。 初始條件:書庫 L 存在, author 和 L 的數(shù)據(jù)元素的某一元素有相同類型 操作結(jié)果:列出書庫中著者 author 的所有著作名。 ShowBookinfo(L ,B )。 初始條件:書庫 L 存在。 操作結(jié)果: 若書庫 L 中存在書 B,則顯示 B 書的狀態(tài)(包括書的信息,借閱者證號,日期等)并返回OK,否則返回 ERROR。 PrintAllBooks(L )。 初始條件:書庫 L 存在 。 操作結(jié)果:打印書庫 L 中所有圖書 的基本信息。 }ADT Library 3. 本程序包含 3 個模塊 主程序模塊,其中主程序為 int main() { 初始化: While(1) { 顯示菜單信息; 讀取用戶選擇,執(zhí)行相應(yīng)操作 。 輸出操作結(jié)果 ; } } B 樹單元模塊 實現(xiàn) B 樹類型 書庫單元模塊 實現(xiàn)書庫類型 各模塊調(diào)用如下: 主程序模塊 書庫單元模塊 B 樹單元模塊 三、 詳細(xì)設(shè)計 1. 主程序中需要的全程量 define OK 1 define ERROR 0 define TRUE 1 define FALSE 0 define OVERFLOW 1 define MAX_NAME_LEN 20 //姓名最大長度 3681bd1c2b9ef87aa40ba80437378615 第 4 頁 共 31 頁 define MAX_BKNAME_LEN 30 //書名最大長度 define MAX_BOOKS 100 //書庫中一個著者最多著作數(shù) define OUT_DATE_PRICE //借書逾期一天的費用 define KEEP_DAYS 90 //圖書出借的期限 define logfile //系統(tǒng)日志文件 define bookinfomationfile D:\\ //圖書信息文件 define borrowerfile D:\\ //借閱者名單文件 define bespeakerfile D:\\ //預(yù)約者名單文件 char *books[MAX_BOOKS]。 //某位著者著作名數(shù)組 char author[MAX_NAME_LEN]。 //著者姓名數(shù)組 int books_counter。 //著者著作計數(shù) typedef int Status。 //定義 Status 為狀態(tài)類型 2. 書庫類型 typedef struct ReaderNode //借閱者 /預(yù)約者 結(jié)點 { int cardnum。 //借閱證號 char rname[MAX_NAME_LEN]。 //借閱者姓名 union{ struct{ tm bordate。 //借書日期 tm retdate。 //還書日期 struct ReaderNode *nextr。 //下一個借閱者指針 }。 struct{ tm bespeakdate。 //預(yù)約日期 struct ReaderNode *nextb。 //下一個預(yù)約者指針 }。 }。 } ReaderNode,*ReaderType。 //讀者類型 typedef struct BookNode //圖書結(jié)點 { int booknum。 //書號 char bookname[MAX_BKNAME_LEN]。 //書名 char writer[MAX_NAME_LEN]。 //著者名 int current, total。 //現(xiàn)存量和總庫存 int publishyear。 //出版年份 float price。 //定價 ReaderType reader。 //讀者鏈表指針 ReaderType bespeaker。 //預(yù)約者鏈表指針 } BookNode,*BookType。 //圖書類型 書庫類型基本操作: void InitLibrary(Library amp。L ) 3681bd1c2b9e
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1