




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
沈航北方科技學院沈航北方科技學院 課程設計說明書課程設計說明書 課程名稱課程名稱 c c 語言課程設計語言課程設計 教教 學學 部部 機械工程系機械工程系 專專 業(yè)業(yè) 數(shù)控數(shù)控 班班 級級 B042111B042111 學學 號號 B04211123B04211123 學生姓名學生姓名 田文田文 指導教師指導教師 趙小磊趙小磊 20122012 年年 6 6 月月 鏈表實現(xiàn)圖書信息操作鏈表實現(xiàn)圖書信息操作 田文田文 目錄 摘摘 要要 1 1 1 1 緒論緒論 1 1 2 2 系統(tǒng)分析系統(tǒng)分析 1 1 功能需求 1 數(shù)據(jù)需求 2 性能需求 2 3 3 總體設計總體設計 2 2 功能模塊設計 2 系統(tǒng)設計方案 6 4 4 詳細設計詳細設計 7 7 登錄模塊 7 借書管理模塊 8 還書管理模塊 9 5 5 調(diào)試與測試調(diào)試與測試 1010 調(diào)試 10 測試 11 6 6 結(jié)論結(jié)論 1212 結(jié)束語結(jié)束語 1212 參考文獻參考文獻 1212 附錄附錄 1 1 用戶手冊 用戶手冊 另起一頁 另起一頁 1313 附錄附錄 2 2 源程序 源程序 另起一頁 另起一頁 1515 摘摘 要要 經(jīng)過對程序設計題目的分析可知 整個程序的設計實現(xiàn)大致分為五個模塊 其中每一個模塊對應一個函數(shù) 他們的功能分別是 圖書信息輸入函數(shù) input 借閱圖書函數(shù) borrow 增加刪除圖書函數(shù) adddelet 圖書查詢函數(shù) search 以及歸還圖書信息函數(shù) giveback 在這些函數(shù)當中 這四個函數(shù)的實現(xiàn)嚴格 按照題目的要求 1 圖書信息輸入函數(shù) 主要功能是從鍵盤輸入圖書信息并將其寫入文件中 作為圖書館的書庫 以便對下面的函數(shù)進行運行 此函數(shù)是基礎 2 圖書借閱函數(shù) 主要借閱圖書的功能和錄入學生應該還書的時間 3 圖書歸還函數(shù) 主要實現(xiàn)借閱圖書后 歸還圖書的功能 并把應該還書的時 間和實際還書的時間進行比較過期時輸出學生的信息 也是該程序的的 一個重點 4 增加刪除圖書函數(shù) 實現(xiàn)的功能是實現(xiàn)對圖書的刪除 5 圖書查詢函數(shù) 允許按照圖書編號 書名 作者 出版社進行查詢 并將查 詢信息輸出 6 退出函數(shù) 該函數(shù)主要實現(xiàn)退出運行界面的功能 除上面介紹的功能之外 程序還具有退出功能 可以在程序的一次運行當 中循環(huán)執(zhí)行所有的功能 并根據(jù)需要終止程序的執(zhí)行 每一個圖書記錄都包含 圖書編號 名稱 出版社 作者 現(xiàn)有數(shù)量和總量在程序當 中 將圖書記錄類型定義為結(jié)構(gòu)體類型 并把它寫入 d 中 其他函數(shù)每次對 圖書記錄的訪問 其數(shù)據(jù)來源都是 d 文件 這樣做不但可以保證圖書數(shù)據(jù)的 一致性 而且可以對圖書數(shù)據(jù)進行永久保存 保證每次運行程序都可以采用原 來的數(shù)據(jù) 1 1 緒論緒論 整個程序的設計實現(xiàn)大致分為五個模塊 其中每一個模塊對應一個函數(shù) 他們的功能分別是 圖書信息輸入函數(shù) input 借閱圖書函數(shù) borrow 增加 刪除圖書函數(shù) adddelet 圖書查詢函數(shù) search 以及歸還圖書信息函數(shù) giveback 在這些函數(shù)當中 這四個函數(shù)的實現(xiàn)嚴格按照題目的要求 2 2 系統(tǒng)分析系統(tǒng)分析 功能需求功能需求 設計一個通過鏈表實現(xiàn)對圖書信息進行管理的程序 要求完成以下功能 1 建立一個鏈表 每個結(jié)點應包含以下信息 圖書號 書名及出版社 價 格 ISBN 作者 冊數(shù) 2 將輸入信息按圖書號進行從小到大的排序 3 實現(xiàn)查詢功能 輸入書名 查詢輸出相關(guān)信息 4 實現(xiàn)插入功能 輸入圖書信息并插入有序鏈表中 5 實現(xiàn)刪除功能 輸入書名或書號 可將其信息從鏈表中刪除 6 統(tǒng)計鏈表中圖書總價值 并在屏幕上輸出 7 統(tǒng)計該鏈表中價值超過某一數(shù)目的圖書總數(shù) 并在屏幕上輸出 8 有界面友好易于使用的菜單 數(shù)據(jù)需求數(shù)據(jù)需求 需要向系統(tǒng)輸入圖書號 書名及出版社 價格 ISBN 作者 冊數(shù) 性能需求性能需求 在運行本程序時只要按照正確的操作方法不會出現(xiàn)無法運行的情況 系統(tǒng) 穩(wěn)定性好 安全 可靠 3 3 總體設計總體設計 功能模塊設計功能模塊設計 根據(jù)分析整個系統(tǒng)主要劃分為 4 個功能模塊 分別執(zhí)行要求中的功能 該系統(tǒng)需要有 添加 刪除 查詢 修改 累加 循環(huán)顯示主菜單 保存信息功能 能將會員卡進行注銷 利用顯示函數(shù)將會員卡內(nèi)所有信息顯示 要求有循環(huán)顯示菜單工能 功能模塊圖如圖 1 所 示 1 輸入讀者 輸入相關(guān)讀者信息至內(nèi)存中 2 輸入書籍 輸入書籍號 對已存的書籍信息進行查詢 3 書籍管理模塊 輸入相應代碼 對相關(guān)信息進行查詢 4 退出管理模塊 主菜單中輸入 0 退出系統(tǒng)登錄 圖書管理系統(tǒng) 輸 入 讀 者 輸 入 書 籍 書 籍 管 理 退 出 系 統(tǒng) 登 錄 圖圖 1 1 圖書管理系統(tǒng)流程圖圖書管理系統(tǒng)流程圖 管管理理員員版版圖圖書書管管理理系系統(tǒng)統(tǒng) 新新 書書 入入 庫庫 查查 詢詢 借借 書書 登登 記記 書書 籍籍 數(shù)數(shù) 量量 書書 籍籍 信信 息息 修修 改改 還還 書書 管管 理理 書書 籍籍 信信 息息 查查 詢詢 圖圖 2 2 管理員版圖書管理系統(tǒng)流程圖管理員版圖書管理系統(tǒng)流程圖 退退 出出 查查 詢詢 按按 照照 讀讀 者者 姓姓 名名 查查 詢詢 按按 照照 讀讀 者者 編編 號號 查查 詢詢 按按 照照 圖圖 書書 作作 者者 查查 詢詢 按按 照照 圖圖 書書 名名 查查 詢詢 按按 照照 圖圖 書書 編編 號號 查查 詢詢 圖圖書書查查詢詢系系統(tǒng)統(tǒng)主主界界面面 圖圖 3 3 圖書查詢主界面流程圖圖書查詢主界面流程圖 系統(tǒng)設計方案系統(tǒng)設計方案 設計一個總菜單 1 登錄信息 2 查詢管理 3 書籍管理系統(tǒng) 4 退出系統(tǒng) 基本功能的實現(xiàn)都將體現(xiàn)在這幾個菜單選項中 struct reader next RD BK h book RD h reader void Login 登陸 int Menu 主菜單 void Menu select 主菜單選擇函數(shù) void Init 初始化 void Init reader 初始化讀者 void Init book 初始化圖書 void Insert New Book 新書入庫 int Find 查找菜單 void Find Select 查找菜單選擇函數(shù) void Find Reader 查找讀者信息 void Find Book 查找圖書信息 void Print reader 打印讀者信息 void Print book 打印圖書信息 void Borrow Book 借書函數(shù) void Return Book 還書函數(shù) void Save 保存信息 void Save Reader 保存讀者信息 void Save Book 保存圖書信息 void Load 加載信息 void Load Reader 加載讀者信息 void Load Book 加載圖書信息 void Login 登陸 system cls printf n n n t t t 歡迎登陸本系統(tǒng) n printf n n t t 系統(tǒng)版權(quán)所有 n n n n n n n printf n n n t t 按 任 意 鍵 進 入 系 統(tǒng) getchar system cls int Menu 主菜單 int sn printf n t t 圖書管理系統(tǒng)主菜單 n printf n printf t0 退出系統(tǒng) n printf t1 新書入庫 n printf t2 查詢 n printf t3 借書登記 n printf t4 還書管理 n printf n printf 請選擇相應代碼 4 4 詳細設計詳細設計 登錄模塊登錄模塊 開始 intj 1 m m 1 InsertLinklist Linklist L printf t輸入下一個讀者信息 n printf 內(nèi)存已滿 n exit OVERFLOW 結(jié)束 圖圖 4 4 輸入讀者信息 輸入讀者信息 開始 intj 1 m m 1 InsertLinklist Linklist L printf 內(nèi)存已滿 n exit OVERFLOW 結(jié)束 printf t輸入下一個書籍信息 n 圖圖 5 5 輸入書籍信息 輸入書籍信息 借書管理模塊借書管理模塊 主菜單中輸入讀者和書籍信息后 對已存的書籍進行借閱 程序流程如圖 4 所示 開開始始 讀讀方方式式打打開開文文件件不不成成功功 輸輸入入你你的的學學號號和和要要借借書書的的名名 循循環(huán)環(huán)變變量量 i i0 輸輸出出 borrow success 和和輸輸入入應應還還書書的的日日期期 輸輸入入應應書書日日期期 關(guān)關(guān)閉閉文文件件 結(jié)結(jié)束束 borrow failed return Y N N Y Y N N N N Y Y 圖圖 6 6 借書模塊流程圖借書模塊流程圖 還書管理模塊還書管理模塊 對于已還書籍進行管理 程序流程如圖 4 所示 開開始始 以以讀讀取取方方式式打打開開 文文件件不不成成功功 輸輸入入讀讀者者信信息息 輸輸入入書書籍籍信信息息 循循環(huán)環(huán)變變量量i i i i 1 10 00 00 0 輸輸入入編編號號與與書書庫庫編編號號一一 致致 輸輸出出還還書書成成功功 關(guān)關(guān)閉閉文文件件 結(jié)結(jié)束束 b br re ea ak k r re et tu ur rn n 圖圖 7 7 還書模塊流程圖還書模塊流程圖 5 5 調(diào)試調(diào)試與測試與測試 調(diào)試調(diào)試 調(diào)試是軟件開發(fā)過程中的一個重要環(huán)節(jié) 也是最復雜 對軟件開發(fā)者者來 說也是最艱巨的任務 調(diào)試的任務是及時改正測試過程中發(fā)現(xiàn)的軟件錯誤 具 體地說 調(diào)試過程由兩個步驟組成 它從表示程序中存在錯誤的某跡象開始 首先確定錯誤的準確位置 也就是找出哪個模塊或哪個語句引起的錯誤 然后 仔細研究推斷代碼以確定問題的原因 并設法改正 調(diào)試過程主要是運行編制好的程序 然后遇到錯誤后根據(jù)系統(tǒng)的提示 找 到相關(guān)的問題所在 本系統(tǒng)調(diào)試過程中遇到問題 原因和解決方法如下面介紹 1 程序只能在當前運行時才能實現(xiàn)自動生成書籍信息 而關(guān)閉系統(tǒng) 再次打開添加新讀者又從 0 開始與之前的讀者重復 導致借還信息程序管理混 亂 無法正確運行 原因 在執(zhí)行后系統(tǒng)沒有記錄當前的讀者信息 因為讀者信息自動按 1 2 3 4 依次遞增生成系統(tǒng) 應該記錄最后所生成的讀者信息 在下次運行 程序時系統(tǒng)會接著上次記錄的讀者信息自動依次生成 2 運行完程序一次有錯誤提醒 原因 上次運行程序后沒有關(guān)閉操作界面當點擊編譯時會有一個錯誤提示 解決方法 將上一次運行時的操作界面關(guān)閉 3 設計過程中的想法與程序中的不足 總的來說這個程序大致實現(xiàn)了題目的要求 但是這套程序仍然存在著很多 的問題與不足 比如 程序中主函數(shù)寫的有點繁瑣 有太多的嵌套 不是那么井 然有序 條理清晰 程序注釋也不是很完善 對信息處理功能還有些不足之處 提示信息不明確 還有就是沒能做到模糊查詢 這個系統(tǒng)主要是參照課本手機通訊錄模版編寫的 同時也得到了老師和同 學的一些幫助 我在做系統(tǒng)的過程中也遇到了很多問題 有的是知識不足 有 的是考慮不夠周全 事實證明 只靠自己的知識面還是很窄 獨立處理問題能 力不是很強 以后還要加強對 c 語言的學習 我認為對于 C 語言編寫的程序來說 使用方法大致都是一樣的 所以如果 要改進的話 就是要改進一些算法 盡量把界面編寫清楚 提示信息全面 方便易用 測試測試 軟件測試是軟件生存期中的一個重要階段 是軟件質(zhì)量保證的關(guān)鍵步驟從 用戶的角度來看 普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷 所以 軟件測試應該是 為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程 或者說 軟件測試應該根 據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設計一批測試用例 即 輸入數(shù)據(jù)及其預期的輸出結(jié)果 并利用這些測試用例去運行程序 以發(fā)現(xiàn)程序 錯誤或缺陷 過度測試則會浪費許多寶貴的資源 到測試后期 即使找到了錯 誤 然而付出了過高的代價 測試數(shù)據(jù)過程如下 1 登陸功能測試 輸入數(shù)據(jù) 1 讀者編號 23 讀者姓名 tianwen 書籍編號 01 書名 xyz 作者 xxx 數(shù)量 10 預期結(jié)果 數(shù)據(jù)輸入到系統(tǒng)中 運行結(jié)果 出現(xiàn)圖書管理系統(tǒng)主菜單 說明 登陸功能實現(xiàn) 2 借書功能測試 3 還書功能測試 6 6 結(jié)論結(jié)論 計算機綜合訓練順利完成 任務書中所提出的要求全部實現(xiàn) 可以對會員 信息進行添加 修改 刪除以及按各種信息查找 可將會員本次消費金額累加 到會員卡上 能夠自動生成會員卡號并且將各種信息保存到文本文件中 不過 這個程序還有些不夠完善 例如 在添加新會員時當會員信息全部輸入之后系 統(tǒng)中的全部會員信息自動顯示 這樣非常占用操作界面 使操作不是十分清晰 再一個就是系統(tǒng)無法正確識別身份證號和電話好碼只能靠會員卡管理員的認真 細心才能減少出錯 改進方式 調(diào)用一個可以判斷號碼位數(shù)的函數(shù) 如果輸入 位數(shù)不合法則提出警告重新輸入 結(jié)束語結(jié)束語 在這一個星期的實踐中 通過編寫這個圖書管理系統(tǒng) 我體會到了 c 語言 學習的實用性 將理論和實踐結(jié)合在一起 用先進的計算機工具方便人們的生 活 C 語言程序的編寫首先要從大局考慮 把自己編寫整個程序的思想都寫在 草稿上 這樣有助于自己編寫程序 在編寫時要完善注釋 方便其他人理解程 序 編寫的程序從理論上來說并沒有錯 但一上機就問題不斷 甚至有些課本 上的知識照搬不變 也不能得到正確的結(jié)果 有時一個程序改了一遍又一遍 但就是不能成功 編程顯得枯燥乏味 看似簡單的程序題 在調(diào)試時卻屢屢出 錯 經(jīng)反復的修改后 結(jié)果正確了 這時所有的乏味都顯得那么無力 一切都 是值得的 我認為 開發(fā)一套系統(tǒng) 最重要的是細心 并且思考要全面 結(jié)合實際 充分考慮到客戶的需求和現(xiàn)實意義 不管什么系統(tǒng) 只用運用到實際應用 中 才具有現(xiàn)實意義 所以 c 語言程序的實用性很強 我們以后還要更加 努力認真地學習編程語言 參考文獻參考文獻 附錄附錄 1 1 用戶手冊 用戶手冊 點擊運行 首先出現(xiàn)的是菜單界面 選擇菜單選項進行操作 可進行如圖 8 所示 系統(tǒng)主界面 選擇數(shù)字進入 退出系統(tǒng) 圖圖 8 8 菜單界面菜單界面 選擇 1 進入系統(tǒng) 然后出現(xiàn)功能菜單 圖圖 9 9 登陸功能登陸功能 輸入讀者和書籍 然后出現(xiàn)功能菜單 圖圖 1010 圖書管理系統(tǒng)主菜單圖書管理系統(tǒng)主菜單 附錄附錄 2 2 源程序 源程序 include include include define Max 3 typedef struct book char book num 10 char book name 20 char book writer 10 int book kc int book xy struct book next BK typedef struct borrow char borrow book num 10 char limit date 8 BO typedef struct reader char reader num 10 char reader name 10 int right BO borrow Max struct reader next RD BK h book RD h reader void Login 登陸 int Menu 主菜單 void Menu select 主菜單選擇函數(shù) void Init 初始化 void Init reader 初始化讀者 void Init book 初始化圖書 void Insert New Book 新書入庫 int Find 查找菜單 void Find Select 查找菜單選擇函數(shù) void Find Reader 查找讀者信息 void Find Book 查找圖書信息 void Print reader 打印讀者信息 void Print book 打印圖書信息 void Borrow Book 借書函數(shù) void Return Book 還書函數(shù) void Save 保存信息 void Save Reader 保存讀者信息 void Save Book 保存圖書信息 void Load 加載信息 void Load Reader 加載讀者信息 void Load Book 加載圖書信息 void Login 登陸 system cls printf n n n t t t 歡迎登陸本系統(tǒng) n printf n n t t 系統(tǒng)版權(quán)所有 n n n n n n n printf n n n t t 按 任 意 鍵 進 入 系 統(tǒng) getchar system cls int Menu 主菜單 int sn printf n t t 圖書管理系統(tǒng)主菜單 n printf n printf t0 退出系統(tǒng) n printf t1 新書入庫 n printf t2 查詢 n printf t3 借書登記 n printf t4 還書管理 n printf n printf 請選擇相應代碼 for scanf d fflush stdin if sn4 printf n 錯誤 請重新輸入 else break return sn void Menu select 主菜單選擇函數(shù) for 循環(huán)調(diào)用模式 保證能進行重復操作 switch Menu 功能選擇 case 0 system cls 清楚屏幕先前的顯示內(nèi)容 Save printf n n t 文件保存成功 n printf n n t 歡迎下次使用本系統(tǒng) n getchar exit 0 case 1 Insert New Book break case 2 Find Select break case 3 Borrow Book break case 4 Return Book break default printf n 錯誤 exit 0 void Init 初始化 Init reader Init book void Init reader 初始化讀者信息 RD p0 int i printf n 讀者初始化開始 請輸入讀者信息 n 包括編號 姓名 n p0 RD malloc sizeof RD h reader p0 printf n 請輸入讀者的信息 n printf ReaderNo 輸入讀者編號 唯一 scanf s p0 reader num printf ReaderName 輸入讀者姓名 不唯一 scanf s p0 reader name p0 right 0 for i 0 iborrow i borrow book num 0 所借圖書直接置為 0 即沒有借書 strcpy p0 borrow i limit date 0 p0 next NULL printf n 讀者信息初始化完畢 按任意鍵繼續(xù)下一步操作 n getchar system cls void Init book 初始化圖書信息 BK p0 printf n 圖書初始化開始 請輸入圖書信息 n 包括編號 書名 數(shù)量 n p0 BK malloc sizeof BK h book p0 printf n 請輸入圖書信息 n printf BookNo 輸入圖書編號 唯一 scanf s p0 book num printf BookName 輸入圖書名稱 scanf s p0 book name printf BookWriter 輸入圖書作者 scanf s p0 book writer printf Number 輸入圖書數(shù)量 scanf d p0 book xy p0 book kc 開始時圖書現(xiàn)有量和庫存量相等 p0 next NULL printf n 圖書信息初始化完畢 按任意鍵繼續(xù)下一步操作 n getchar system cls void Insert New Book 新書入庫 BK p p0 p1 p p1 h book printf n 新書入庫模塊 n printf n 請輸入新書信息 n 包括書號 書名 數(shù)量 n p0 BK malloc sizeof BK printf BookNo scanf s p0 book num while strcmp p0 book num p1 book num 0 if strcmp p0 book num p1 book num 0 此處分兩種情況 若圖書編號存在 則 直接進庫 只須輸入書的數(shù)量 printf n 此編號圖書已存在 直接入庫 n printf Number scanf d p1 book kc p0 book kc p1 book xy p0 book kc else 若不存在 則需要輸入其他的信息 然后在進行插入操作 printf BookName scanf s p0 book name printf BookWriter scanf s p0 book writer printf Number scanf d 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 book xy p0 book kc printf n 新書入庫完畢 按任意鍵繼續(xù)下一步操作 n getchar system cls int Find 查找菜單 int sn printf n t t 信息查詢菜單 n printf n printf t0 返回上級 t n printf t t n printf t1 查找圖書 2 查找讀者 t n printf t t n printf t3 打印圖書 4 打印讀者 t n printf n printf 請選擇相應代碼 for 循環(huán)調(diào)用模式 保證能進行重復操作 scanf d fflush stdin if sn4 printf n 錯誤 請重新輸入 else break return sn void Find Select 查找菜單選擇函數(shù) system cls for 循環(huán)調(diào)用模式 保證能進行重復操作 switch Find 功能選擇 case 0 system cls Menu select break case 1 Find Book break case 2 Find Reader break case 3 Print book break case 4 Print reader break default printf n 錯誤 exit 0 void Find Reader 查找讀者信息 RD p int i char find reader 10 p h reader printf n 讀者信息查詢模塊 n printf n 請輸入你要查詢讀者編號 scanf s find reader while strcmp p reader num find reader 0 if strcmp p reader num find reader 0 printf n 讀者編號 s 的信息為 n find reader printf ReaderNo tReaderName 此處這樣處理 是為了能實現(xiàn)一個讀者能借多本 書 Max 可以改 printf n printf t s t t s p reader num p reader name for i 0 iborrow i borrow book num printf t t s p borrow i limit date printf n else printf n 此讀者編號不存在 請核對 按任意鍵返回 getchar system cls void Find Book 查找圖書信息 BK p char find book 10 功能很簡單 讀者編號唯一 查找只須一次遍歷 p h book printf n 圖書信息查詢模塊 n printf n 請輸入你要查詢圖書編號 scanf s find book while strcmp p book num find book 0 if strcmp p book num find book 0 找到了就打印 否則提示不存在 或出錯 printf n 圖書編號 s 的信息為 n find book printf nBookNo t tBookName tBookWriter tXianYou tKuCun n printf s t t s t t s t t d t t d n p book num p book name p book writer p book xy p book kc else printf n 此圖書編號不存在 請核對 按任意鍵返回 getchar system cls void Print reader 打印讀者信息 RD p int i p h reader printf n 讀者信息如下 n n printf ReaderNo tReaderName 此處這樣處理 是為了能實現(xiàn)一個讀者能借多本書 Max 可以改 printf n while p NULL 遍歷鏈表一次就可以了 printf t s t t s p reader num p reader name for i 0 iborrow i borrow book num printf t t s p borrow i limit date printf n p p next printf n 讀者信息打印完畢 按任意鍵繼續(xù)下一步操作 getchar system cls void Print book 打印圖書信息 BK p p h book printf n 圖書信息如下 n n printf BookNo t tBookName tBookWriter tXianYou tKuCun n 直接打印所有圖書的信息 遍歷鏈表一次就可 while p NULL printf s t t s t t s t t d t t d n p book num p book name p book writer p book xy p book kc p p next printf n 圖書信息打印完畢 按任意鍵繼續(xù)下一步操作 getchar system cls void Borrow Book 借書模塊 BK p0 RD p1 char bo num 10 rea num 10 lim date 8 int i p0 h book p1 h reader printf n 借書模塊 n printf n 請輸入借書的讀者編號 先輸入借書的讀者信息 scanf s rea num while p1 next NULL if p1 next NULL goto END printf n 請輸入你要借的書的編號 scanf s bo num while strcmp bo num p0 book num 0 if p0 next NULL else if p0 book xyright Max 判斷此讀者借書權(quán)限是否已達最大 printf n 不好意思 借書數(shù)目已滿 不能借書 n 按任意鍵返回 else if strcmp p1 borrow 0 borrow book num 0 0 此讀者若已經(jīng) 借書 再判斷此讀者是否要借兩本一樣的書 for i 0 iborrow i borrow book num bo num 0 printf n 抱歉 同一個讀者不能同借兩本相同的書 n else if strcmp p1 borrow i borrow book num 0 0 如果沒有重復 printf n 請輸入你要歸還圖書的日期 scanf s lim date strcpy p1 borrow p1 right borrow book num bo num 記錄 所借書號 并且借書數(shù)目加一 現(xiàn)存量減一 strcpy p1 borrow p1 right 1 limit date lim date p0 book xy printf n 讀者編號 s 借書完畢 按任意鍵繼續(xù)下步操作 p1 reader num else 此讀者從未借過書 printf n 請輸入你要歸還圖書的日期 scanf s lim date strcpy p1 borrow p1 right borrow book num bo num 記錄所借書號 并 且借書數(shù)目加一 現(xiàn)存量減一 strcpy p1 borrow p1 right 1 limit date lim date p0 book xy printf n 讀者編號 s 借書完畢 按任意鍵繼續(xù)下步操作 p1 reader num END getchar system cls void Return Book 還書模塊 BK p RD q int i j find 0 char return book num 10 return reader num 10 p h book q h reader printf n 還書模塊 n printf n 請輸入要還書的讀者編號 基本同上 scanf s return reader num 注意 數(shù)組的輸入沒有 if q next NULL 設置標志 用于判斷讀者是否借了此書或是否出錯提前結(jié)束 若提前出錯 則 find 2 若 借了 則 find 1 若沒借為 find 0 printf n 此讀者編號不存在 按任意鍵返回 n goto end printf n 請輸入讀者還書的編號 scanf s return book num while p next NULL if p next NULL 設置標志 用于判斷讀者是否借了此書或是否出錯提前結(jié)束 若提前出錯 則 find 2 若借了 則 find 1 若沒借為 find 0 printf n 錯誤 此圖書編號不存在 按任意鍵返回 n goto end for i 0 iborrow i borrow book num 0 如果此讀者 借了此書 find 1 設置標志 用于判斷讀者是否借了此書或是否出錯提前結(jié)束 若提前 出錯 則 find 2 若借了 則 find 1 若沒借為 find 0 for j i jborrow j borrow book num q borrow j 1 borrow book num strcpy q borrow j limit date q borrow j 1 limit date strcpy q borrow Max 1 borrow book num 0 strcpy q borrow Max 1 limit date 0 p book xy q right printf n 編號 s 的讀者還書完畢 按任意鍵繼續(xù)下步操作 return reader num if find 0 為什么有個 find 0 因為遍歷時循環(huán) Max 次 如循環(huán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物第十章浮力單元試卷 2024-2025學年人教版物理八年級下冊
- 2024年紡織品檢驗員考試注意事項試題及答案
- 土壤普查試題答案及解析
- 山東會計綜評試題及答案
- 社區(qū)建設考試試題及答案
- 必修四 測試題及答案
- 助理廣告師考試中廣告交流策略的深入分析試題及答案
- 廣告設計師廣告效果測評試題及答案
- 管理會計試題卷及答案
- 強化實踐國際商業(yè)美術(shù)設計師考試試題及答案
- 《基金的信息披露》課件
- 2024年研發(fā)部規(guī)劃
- 《冠心病》課件(完整版)
- 失業(yè)保險待遇申領表
- 銷售提成及職能部門員工利潤分紅方案
- 藥用植物學智慧樹知到答案2024年浙江中醫(yī)藥大學
- 評職稱業(yè)績合同協(xié)議書
- 四年級《爺爺?shù)臓敔攺哪睦飦怼烽喿x測評題
- 2020-2024年安徽省初中學業(yè)水平考試中考英語試卷(5年真題+答案解析)
- 2024年福建省泉州市中考二模地理試題
- 2024年重慶八中中考數(shù)學一模試卷
評論
0/150
提交評論