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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-圖書管理(參考版)

2024-09-12 02:31本頁面
  

【正文】 預(yù)約書號 25, 70 顯示如下: 3681bd1c2b9ef87aa40ba80437378615 第 26 頁 共 31 頁 (7) 返回主菜單選擇操作 7 查看圖書狀態(tài),分別查看剛借閱的書號 25 和剛預(yù)約的書號 70,顯示如下: 3681bd1c2b9ef87aa40ba80437378615 第 27 頁 共 31 頁 3681bd1c2b9ef87aa40ba80437378615 第 28 頁 共 31 頁 (8) 返回主菜單,選擇操作 4 圖書歸還,歸還圖書 33(借閱者 6587— 不存在)和剛才借的圖書 25,然后再查看圖書 25 的狀態(tài)可以發(fā)現(xiàn) 6587 已不在借書名單上 (還書成功 ) (9) 3681bd1c2b9ef87aa40ba80437378615 第 29 頁 共 31 頁 (10) 返回主菜單,選擇操作 6 查看某著者著作名,分別查看著者魯迅、譚浩強(qiáng)和潘福凱,結(jié)果如下: 3681bd1c2b9ef87aa40ba80437378615 第 30 頁 共 31 頁 (11) 按 M 返回主菜單,選擇操作 8 遍歷書庫,結(jié)果如下: (12) 返回主菜單,選擇 9 退出系統(tǒng): 按 Y 退出系統(tǒng)。選擇 2 清除庫存,分別清除 45, 90, 50, 22, 42, 66( 66不存在)。圖書信息為: 35 燈下漫筆 魯迅 39 39 1997 16 BASIC 語言 譚浩強(qiáng) 38 38 1980 18 C 程序設(shè)計(jì) 譚浩強(qiáng) 40 40 2020 70 阿 Q 正傳 魯迅 28 28 1984 5 計(jì)算機(jī)組成原理 白中英 56 56 2020 50 意志力訓(xùn)練手冊 美然后返回主菜單,用戶可以方便進(jìn)行其他如查看圖書狀 態(tài)等操作。 (13) 操作 18 每步操作結(jié)束后提示“ **操作 完成,按 M 鍵返回主菜單,按其他任意鍵繼續(xù) ....”。 (11) 選擇 8 遍歷書庫后,顯示書庫中所有圖書信息。 (8) 選擇 5 圖書預(yù)約后,提示輸入 書號,如該書存在則顯示該書,提示輸入預(yù)約證號和姓名,判斷若能 預(yù)約則提示預(yù)約成功,否則提示無法預(yù)約;若該書不存在則提示該書不存在 (9) 選擇 6 列出某著者著作名后,提示輸入著者名字,然后打印查找到的該著者著作名,如無則提示無 該著者著作。 (6) 選擇 3 圖書出借后,提示輸入書號 , 如該書存在 則顯示該書,提示輸入借閱證號和借閱者姓名,判 3681bd1c2b9ef87aa40ba80437378615 第 16 頁 共 31 頁 斷如果能借閱則輸出借閱成功,否則輸出不能借閱;如無該書則提示不存在該書。 (5) 選擇 2 清除庫存后,提示輸入刪除書號,如果存在該書則提示是否確認(rèn)刪除,如無該書則提示不存 在。 (5) 測試時要注意測試的完備性 (6) 編碼時要形成一種自己的風(fēng)格,同時要注意這種風(fēng)格應(yīng)該是大眾所接受的,要保持程序的可讀性。 (3) 本次 設(shè)計(jì) 實(shí)在被 B 樹的指針折磨透了,我深深的體會到:編碼時必須對程序的算法了如 指掌,對可能出現(xiàn)的每一種情況都處理周到, 不然 對于復(fù)雜 的(像 B 樹的刪除)函數(shù)將 會無所適從。 (1) 按照指導(dǎo)書給出的實(shí)習(xí)報(bào)告規(guī)范的步驟,先進(jìn)行需求分析、概要設(shè)計(jì),再進(jìn)行詳細(xì)設(shè)計(jì), 能使實(shí)際問題從抽象到具體, 能從整體上把握程序的功能方向。 (5) BorrowBook、 ReturnBook、 BespeakBook除了需要 SearchBTree,還與該書借閱或預(yù)約者人數(shù)成正比。為此本次 設(shè)計(jì) 可 分為 B 樹、書庫、圖書三個抽象類型 , 因?yàn)榻钑?、還書、預(yù)約等操作與書庫 L 無直接關(guān)系 (借書 預(yù)約 前已搜索書庫 ),只與圖書 b 直接現(xiàn)相關(guān) ;也可以把搜索 B 樹也集成到入庫、借書等操作里面,不過這樣對數(shù)據(jù)封裝不夠好。 (6) 為了實(shí)現(xiàn)數(shù)據(jù)的封裝,入庫、借書、還書等操作未包括讀入圖書信息、讀者信息等,而是在主函數(shù)中先讀入信息,再調(diào)用入庫、借書等操作。 (4) 圖書結(jié)點(diǎn)中的借閱者和預(yù)約者指針初始化時未置空,導(dǎo)致后面借書 、預(yù)約 無法進(jìn)行。 (3) B 樹的結(jié)點(diǎn)分裂或合并后,未及時刷新節(jié)點(diǎn)指向父節(jié)點(diǎn)的指針導(dǎo)致出錯,調(diào)試了很久。 (1) 在 B 樹的插入和刪除時,指針 沒有移動完整 ,導(dǎo)致出錯 。 } fclose(logfp)。 fprintf(logfp,date)。 char opera[][20] = {進(jìn)入系統(tǒng) ,入庫 ,清除 ,查看圖書 ,借閱 ,歸還 ,預(yù)約 , 列出著者 ,退出系統(tǒng) ,打印所有圖書信息 }。 } void RecordLogs(int op, BookType B = NULL,ReaderType R = NULL,int succ = 1) //op 不同的值對應(yīng)不同的操作。 if( ) return TRUE。 if( ) return TRUE。 { if( ) return TRUE。 = ( + day) % 30。date2,tm date1, int day) //把 date1 的日期加 day 天后賦給 date2 { = + (day/30 + ) / 12。 case 0: 測試模式,從文件讀入數(shù)據(jù),進(jìn)行借書,還書,預(yù)約等模擬。 //顯示 booknum 書的信息 case 8: PrintAllBooks(L)。 。 case 7: scanf(amp。author)。R)。booknum)。//讀入還書書號和還書者證號 判斷是否 逾期,給出提示信息 ReturnBook(L, booknum,cardnum)。booknum,amp。 //讀入借閱者信息 if(CanBorrow()) BorrowBook(L,B,R)。 scanf(amp。 記錄日志; case 3: scanf(amp。booknum)。 InsertBook(L, B, res)。Bprice)。Bcurrent,amp。Bbookname,amp。 switch(cmd) { case 1: scanf(amp。 //記錄日志 進(jìn)入系統(tǒng) 顯示歡迎界面 InitLibrary(L)。i++) //遞歸顯示子樹結(jié)點(diǎn)關(guān)鍵字 ShowBTree(Tptr[i],x+7)。 for(i = 0 。i = Tkeynum。)。i++) putchar(39。 for(i = 0。 i++) //遞歸遍歷子樹結(jié)點(diǎn) if(Tptr[i]) BTreeTraverse(Tptr[i],Visit)。 for(i = 0 。 } void BTreeTraverse(BTree T,void ( *Visit)(BTree p)) //遍歷 B 樹 T,對每個結(jié)點(diǎn)調(diào)用 Visit 函數(shù) { if(!T) return 。 } else if(qkeynum = m/2) finished = TRUE。 free(q)。 Tkeynum ==0 ) //若被刪結(jié)點(diǎn)的父節(jié)點(diǎn)是根 T 且 T 的關(guān)鍵字個數(shù)為 0 { T = Tptr[0]。 //檢查雙親 if(q == T amp。 //若 q 的相鄰兄弟結(jié)點(diǎn)關(guān)鍵字大于 (m1)/2,則從該 //兄弟結(jié)點(diǎn)上移一個最大(或最?。╆P(guān)鍵字到 //父節(jié)點(diǎn),從父節(jié)點(diǎn)借一關(guān)鍵字到 q else{ //若 q 相鄰兄弟關(guān)鍵字個數(shù)均等于┌ m /2┑ 1 Combine(q)。 //刪除完成 if(qkeynum == 0 ) T = NULL。 //若 q 的子樹不空, (非底層結(jié)點(diǎn) ) //則以其后繼代之,且令 q 指向后繼所在結(jié)點(diǎn) Del(q,i)。 //q 指向待刪結(jié)點(diǎn) i = 。 //在 T 中查找關(guān)鍵字 k if( == 0 ) return ERROR。 finished = FALSE,i = 1。 } StatusDeleteBTree(BTree amp。 //根節(jié)點(diǎn)已分裂為 *q 和 *ap 兩個結(jié)點(diǎn) } } if (finished == OVERFLOW) //根結(jié)點(diǎn)已分裂為結(jié)點(diǎn) *q 和 *ap NewRoot(T, q, k, ap,rec)。 i = Search(q, k)。 rec = qrec[(m+1)/2]。 //插入完成 else{ Split(q, (m+1)/2, ap)。 //T 是空樹,生成僅含關(guān)鍵字 K 的根結(jié)點(diǎn) *T else{ while (!finished) { Insert(q, i, k, ap,rec)。 finished = FALSE。 //查找不成功,返回 k 的插入位置信息 } Status InsertBTree(BTree amp。 } } if(found) return {p, i, 1}。 else{ //未找到,則查找下一層 q = p。amp。 !found) { i = Search(p, k)。 3681bd1c2b9ef87aa40ba80437378615 第 9 頁 共 31 頁 while(p amp。 { p = T, q = NULL。T,KeyType k) //在 m 階 B 樹 T 上刪除關(guān)鍵字 k 及其對應(yīng)記錄,并返回 OK //如 T 上不存在關(guān)鍵字 k,則返回 ERROR void BTreeTraverse(BTree T,void (*Vi
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1