面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)圖書管理系統(tǒng)_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)圖書管理系統(tǒng)_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)圖書管理系統(tǒng)_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)圖書管理系統(tǒng)_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課 程 設(shè) 計(jì) 報(bào) 告課程名稱 面向?qū)ο蟪绦蛟O(shè)計(jì) 課題名稱 圖書管理系統(tǒng) 專 業(yè) 計(jì)算機(jī)科學(xué)與計(jì)術(shù) 班 級 計(jì)算機(jī)1001 學(xué) 號 姓 名 指導(dǎo)教師 2011年 12 月 28 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 面向?qū)ο蟪绦蛟O(shè)計(jì) 課 題 圖書管理系統(tǒng) 專業(yè)班級 計(jì)算機(jī)1001 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 2011 年 11 月 15 日任務(wù)完成日期 2011 年 12 月 28 日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1.課程設(shè)計(jì)目的:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)是集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完面向?qū)ο蟪绦蛟O(shè)計(jì)課程后進(jìn)行的一次全面的綜合練習(xí)。要求學(xué)生

2、達(dá)到熟練掌握C+語言的基本知識和技能;基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和方法;能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題,從而提高動(dòng)手編程解決實(shí)際問題的能力。2.課題題目1)公司庫存管理系統(tǒng)2)高校學(xué)籍管理系統(tǒng)3)高校工資管理系統(tǒng)4)高校人事管理系統(tǒng)5)通訊錄程序設(shè)計(jì)6)學(xué)生成績管理系統(tǒng)7) 圖書管理系統(tǒng)8)文本編輯器的設(shè)計(jì)與實(shí)現(xiàn)9)學(xué)生考勤管理系統(tǒng)10)公司人員管理系統(tǒng)3設(shè)計(jì)要求: 設(shè)計(jì)課題題目:每位同學(xué)根據(jù)自己學(xué)號除以10所得的余數(shù)加1選擇相應(yīng)題號的課題。隨意換題者不記成績。 根據(jù)自己對應(yīng)的課題完成以下主要工作:完成系統(tǒng)需求分析:包括系統(tǒng)設(shè)計(jì)目的與意義;系統(tǒng)功能需求(系統(tǒng)流

3、程圖);輸入輸出的要求。完成系統(tǒng)總體設(shè)計(jì):包括系統(tǒng)功能分析;系統(tǒng)功能模塊劃分與設(shè)計(jì)(系統(tǒng)功能模塊圖)。完成系統(tǒng)詳細(xì)設(shè)計(jì):包括數(shù)據(jù)庫需求分析;數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)(ER圖);數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì);類層次圖;界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn)。系統(tǒng)調(diào)試:調(diào)試出現(xiàn)的主要問題,編譯語法錯(cuò)誤及修改,重點(diǎn)是運(yùn)行邏輯問題修改和調(diào)整。使用說明書及編程體會(huì):說明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。關(guān)鍵源程序(帶注釋) 按規(guī)定格式完成課程設(shè)計(jì)報(bào)告,將其打印稿(A4紙)上交給老師存檔。 不得抄襲他人程序、課程設(shè)計(jì)報(bào)告,每個(gè)人應(yīng)體現(xiàn)自己的個(gè)性設(shè)計(jì)。專心-專注-專業(yè)二、進(jìn)度安排第 17 周 星期一 8:0012:00 星

4、期二 8:0012:00 星期四 8:0012:00第 18 周 星期一 8:0012:00 星期二 14:3018:30 星期三 8:0012:00三、參考書籍1.C程序設(shè)計(jì)課程設(shè)計(jì) 劉振安編著 TP312C5632.C+ Builder和Delphi課程設(shè)計(jì)與系統(tǒng)開發(fā)案例 伍俊良 清華大學(xué)出版社 7-302-06072-X C+課程設(shè)計(jì)案例精編 嚴(yán)華峰 中國水利水電出版社 7-5084-2007-1 2004 C+課程設(shè)計(jì)與系統(tǒng)開發(fā)案例 伍俊良 清華大學(xué)出版社 7-302-05968-3 2002 C+語言課程設(shè)計(jì) : 案例精選與編程指導(dǎo) 陳清華朱紅 東南大學(xué)出版社 7-81089-275

5、-4 2003 +課程設(shè)計(jì)案例精編 中國水利水電出版社 7-5084-1004-1 2002 7.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編 : 用C/C+描述 李建學(xué)李光元吳春芳 清華大學(xué)出版社 7-302-14536-9 2007 (編程平臺不限,vc+, c+ Builder等等。)課題7:圖書管理系統(tǒng)(一)、課程設(shè)計(jì)題目:圖書管理系統(tǒng)(二)、目的與要求: 1、目的: (1)要求學(xué)生達(dá)到熟練掌握C+語言的基本知識和技能; (2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; (3)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。 2、基本要求: (1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完

6、成系統(tǒng)的設(shè)計(jì); (2)要求在設(shè)計(jì)的過程中,建立清晰的類層次; (3)在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法; (4)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。 3、創(chuàng)新要求: 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。 4、寫出設(shè)計(jì)說明書 (三)、設(shè)計(jì)方法和基本原理: 1、問題描述(功能要求): 在圖書管理系統(tǒng)中,要為每個(gè)借閱者建立一個(gè)賬戶,并給借閱者發(fā)放借閱卡(借閱卡可以提供借閱卡號、借閱者名),賬戶中存儲借閱者的個(gè)人信息、借閱信息以及預(yù)定信息。持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預(yù)定書刊并取消預(yù)定,但這些操作都是通過圖書管理員進(jìn)

7、行的,也即借閱者不直接與系統(tǒng)交互,而是圖書管理員充當(dāng)借閱者的代理與系統(tǒng)交互。在借閱書刊時(shí),需要輸入所借閱的書刊名,書刊的ISBN/ISSN號,然后輸入借閱者的圖書卡號和借閱者名,完成后提交所填表格,系統(tǒng)驗(yàn)證借閱者是否有效(在系統(tǒng)中存在賬戶),若有效,借閱請求被接受,系統(tǒng)查詢數(shù)據(jù)庫系統(tǒng),看借閱者所借閱的書刊是否存在,若存在,則借閱者可借出書刊,建立并在系統(tǒng)中存儲借閱記錄。借閱者還書后,刪除關(guān)于所還書刊的借閱記錄。如果借閱者所借的書刊已被借出,借閱者還可預(yù)定該書刊,一旦借閱者預(yù)定的書刊可以獲得,就將書刊直接寄給預(yù)定人(為了簡化系統(tǒng),預(yù)定書刊可獲得時(shí)就不通知借閱者了)。另外,為了簡化系統(tǒng),也不考慮書

8、刊的最長借閱期限,假設(shè)借閱者可以無限期地保存所借閱的書刊。2、問題的解決方案: 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: (1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系包括屬性和行為; (3)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; (4)完成類層次中各個(gè)類的描述(包括屬性和方法); (5)完成類中各個(gè)成員函數(shù)的定義; (6)完成系統(tǒng)的應(yīng)用模塊; (7)功能調(diào)試; (8)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書目 錄1. 系統(tǒng)需求分析1. 系統(tǒng)設(shè)計(jì)目的與意義 設(shè)計(jì)該圖書管理系統(tǒng),要求學(xué)生達(dá)到熟練掌握C+語言的基本知識和技能,能夠基本掌握面向

9、對象程序設(shè)計(jì)的基本思路和方法,能夠利用所學(xué)的基本知識和技能解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)的問題。另外,通過該課程設(shè)計(jì)的實(shí)踐,來提高學(xué)生動(dòng)手編程解決實(shí)際問題的能力,加深對C+語言及解決問題方法的理解,為以后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。2. 系統(tǒng)功能需求分析由對圖書管理系統(tǒng)的問題描述可知,該系統(tǒng)主要功能應(yīng)該包括借閱書刊,歸還書刊,取消書刊預(yù)約信息,錄入書刊,顯示用戶信息,查詢書刊信息,退出系統(tǒng)等功能。同時(shí),在借閱書刊和顯示用戶信息的功能中還應(yīng)有有注冊用戶信息的功能。如果用戶在借閱書刊和顯示用戶信息的的時(shí)候,若用戶數(shù)據(jù)庫中沒有該用戶,則提示用戶是否注冊用戶信息。并且,在借閱書刊時(shí),若該書刊已借,用戶可以預(yù)約該

10、書刊。另外,在歸還書刊的功能中,應(yīng)該有預(yù)約該書刊的用戶可依預(yù)約時(shí)間的先后來獲得該書刊。在進(jìn)入取消書刊預(yù)約信息的時(shí)候,應(yīng)該根據(jù)用戶輸入的基本信息(借閱名,借閱卡號)首先來顯示用戶基本信息,再根據(jù)基本信息是否來進(jìn)行取消已預(yù)約書刊記錄信息的功能。依以上對系統(tǒng)所需功能的分析,為了實(shí)現(xiàn)上述的各個(gè)功能,首先應(yīng)該要建立合適的數(shù)據(jù)結(jié)構(gòu),為實(shí)現(xiàn)以上各個(gè)功能的基本運(yùn)算而進(jìn)行合理的數(shù)據(jù)存儲及組織。顯然,在該系統(tǒng)中的基本運(yùn)算主要是數(shù)據(jù)元素的查找、刪除、插入等。數(shù)據(jù)元素應(yīng)該是賬戶信息,賬戶信息內(nèi)又包括用戶的個(gè)人基本信息、借閱信息、以及預(yù)約信息。另外,為了能夠借閱書刊以及查詢書刊信息,應(yīng)該還要建立對圖書信息的存儲和組織的

11、數(shù)據(jù)結(jié)構(gòu),在該數(shù)據(jù)結(jié)構(gòu)中,圖書信息即為該數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素。以下對數(shù)據(jù)元素進(jìn)行詳細(xì)的分析。對于賬戶信息,其包括個(gè)人信息、借閱信息、以及預(yù)約信息。這些信息可以定義類來實(shí)現(xiàn),并把個(gè)人信息類、借閱信息類、預(yù)約信息類嵌套在賬戶信息類里,作為它的私有成員;對于圖書信息,則可定義圖書信息類。賬戶信息和圖書信息僅僅只是針對單一對象的信息,如要存儲多個(gè)這樣對象的信息,則必須構(gòu)建一個(gè)合適的數(shù)據(jù)結(jié)構(gòu)來存儲和組織這些信息。由系統(tǒng)功能可知,應(yīng)該選用鏈表來存儲賬戶信息和圖書信息比較合適。所以可以定義鏈表類來對賬戶信息和圖書信息進(jìn)行存儲和組織。另外,某一個(gè)用戶借閱或預(yù)約的書刊可能有多本,故也可以定義鏈表類來存儲和組織這些

12、信息,在把鏈表類嵌套到賬戶類里。2. 總體設(shè)計(jì)1.系統(tǒng)功能分析 該系統(tǒng)主要功能包括借閱書刊、歸還書刊、取消書刊預(yù)約信息、錄入書刊,顯示用戶信息、查詢書刊信息、退出系統(tǒng)等。進(jìn)入該系統(tǒng)后,便出現(xiàn)選擇這些功能的菜單,可依選擇項(xiàng)進(jìn)入相應(yīng)的功能模塊。執(zhí)行某一功能(除了退出系統(tǒng))后又可返回功能選項(xiàng)菜單界面。所以在主函數(shù)中需要采用函數(shù)嵌套。 依系統(tǒng)功能分析有:功能模塊流程圖如下: 開始 進(jìn)入圖書管理系統(tǒng)查詢書刊取消預(yù)約信息顯示用戶信息退出系統(tǒng)記錄書刊信息歸還書刊借閱書刊 結(jié)束 圖系統(tǒng)功能模塊流程圖 2.系統(tǒng)功能模塊劃分與設(shè)計(jì) 以下對各功能模塊進(jìn)行分析與設(shè)計(jì): (1)借閱書刊功能 首先輸入書刊名、書刊的ISB

13、N/ISSN號、借閱者名、借閱卡號。然后依借閱者名及借閱卡號在賬戶類鏈表中查找該用戶是否存在。若不存在,則返回到注冊賬號。反之,則依ISBN/ISSN號在圖書類中查找并判斷該書是否已借閱。(書刊是否被借閱,可以在圖書類中定義某一變量進(jìn)行標(biāo)記,以此來判斷該書刊是否被借閱)若借閱,用戶則可預(yù)約該書刊或結(jié)束借閱書刊功能,借閱書刊失敗。反之則借閱書刊成功,并作相應(yīng)的數(shù)據(jù)記錄。另外,在預(yù)約書刊后,若預(yù)約的書刊被歸還,則立即寄給預(yù)約人,并作相應(yīng)的數(shù)據(jù)記錄。(若有多人預(yù)約同一本書,應(yīng)按預(yù)約時(shí)間的先后,來確定寄給書刊的預(yù)定人)。 (2)歸還書刊功能 首先輸入用戶名及借閱卡號,并依次在賬戶類鏈表中查找到該賬戶。

14、若未查找則提示用戶可能輸入信息錯(cuò)誤并要求重新輸入。若查找到,則輸入書刊名及書刊ISNB/ISSN號,并由此在圖書類鏈表中查找該書刊是否存在,若未查找到則提示書刊信息輸入錯(cuò)誤并要求重新輸入。若書刊存在,則輸出歸還書刊成功,并作相應(yīng)的數(shù)據(jù)記錄。同時(shí),還要在賬戶類鏈表中查找已預(yù)約該書刊的用戶,并找到最早預(yù)約該書刊的用戶,將書刊寄送給該用戶,并對該用戶信息做相關(guān)的記錄。 (3)查詢書刊功能 查詢書刊應(yīng)根據(jù)書刊名在圖書類鏈表中來查找該書刊。查找方法應(yīng)該為順序查找。若圖書類鏈表中無要查找的書刊,則輸出圖書館內(nèi)無該書;反之,則輸出該書的基本信息,基本信息包括:書名、ISNB/ISSN號、價(jià)格、是否借閱等信息

15、。有時(shí)同名書刊不只一本,故每查找到一本該書刊則顯示該書刊信息,直至遍歷整個(gè)圖書類鏈表。書刊是否被借閱可設(shè)定一變量來表記。 (4)取消書刊預(yù)約功能 首先輸入借閱者名及借閱卡號,并依此在賬戶類鏈表中查找該用戶是否存在。若未查到,則提示用戶可能輸入信息錯(cuò)誤并要求重新輸入。若查到則顯示用戶信息,并依此是否進(jìn)行書刊預(yù)約功能。若進(jìn)行,則輸入書刊名及書刊ISNB/ISSN號,并在圖書類鏈表內(nèi)驗(yàn)證輸入信息是否正確。 (5)顯示用戶信息功能 首先輸入借閱者名及借閱卡號,并依此在賬戶類鏈表里查找該用戶是否存在。若未查找的到,則提示用戶可能輸入信息有誤或該用戶未注冊。反之則顯示該用戶信息。 (6)錄入書刊信息功能

16、錄入書刊信息,首先要錄入書刊的數(shù)量,然后依次輸入書刊名、書刊ISNB/ISSN號、書刊定價(jià)。這樣即可錄入書刊信息。3. 詳細(xì)設(shè)計(jì)1.數(shù)據(jù)類型及類層次圖 該系統(tǒng)所需數(shù)據(jù)類型主要為字符數(shù)組類型,即用字符串類型來定義數(shù)據(jù)。用字符串定義數(shù)據(jù)可用string類代替,定義成string類型的數(shù)據(jù),對字符的操作更簡單。在輸入string類數(shù)據(jù)時(shí),用輸入流中的操作符>>來輸入字符串,這樣需特別注意在輸入某一字符串時(shí),其間不能輸入空格,否則該輸入的字符將會(huì)轉(zhuǎn)到下個(gè)將要輸入的字符串變量,使輸入變得混亂。這是由于輸入流操作符在輸入數(shù)據(jù)時(shí),若遇到空格,則表示該輸入已結(jié)束。 該系統(tǒng)中定義的類包括:日期類、個(gè)

17、人信息類、借閱書刊信息類、預(yù)約書刊信息類、賬戶信息類、圖書類、借閱和預(yù)約、賬戶、圖書信息鏈表類。其類UML圖及類層次圖如下所示: (1)日期類 Date-year:int-month:int-day:int+Date(y:int=0,m:int=0,d:int=0)+Date(D:const Date&)+Getyear():int+Getmonth():int+Getday():int+Dashow():void+DaInput():Date 圖類的UML圖 (2)個(gè)人信息類 UnitInfo-name:string-reid:string-id:string-sex:string-

18、D:Date+UnitInfo(n:string,re: string,id:string,s:string,d:Date)+UnitInfo()+UnitInfo(U:const UnitInfo&)+Getname():string+Getreid():string+Unshow():void+UnInput():UnitInfo 圖類的UML圖 (3)借閱信息類 LendInfo-bookname:string-ISBN:string-D:Date-next:LendInfo*+LendInfo(n:string,ISBN:string,d:Date)+LendInfo()+Le

19、ndInfo(L:const LendInfo&)+GetINSB():string+Getnext():LendInfo*+setnext(L:LendInfo*):void+Leshow():void+LeInput():LendInfo 圖類的UML圖 (4)借閱信息鏈表類 LeList-front:LendInfo*-rear:LendInfo*-size:int+LeList()+insertRear(item:const LendInfo&):void+seekList(INSB:const string):LendInfo*+deletecurr(INSB:con

20、st string):bool+Leshow():void 圖類的UML圖 (5)預(yù)約信息類 TrothInfo-bookname:string-ISBN:string-D:Date-next:TrothInfo*+TrothInfo(n:string,INSB:string,d:Date)+TrothInfo()+TrothInfo(T:const TrothInfo&)+GetINSB():string+setnext(T:TrothInfo*):void+Getnext():TrothInfo*+Trshow():void+TrInput():TrothInfo+GetDate(

21、):Date 圖類的UML圖 (6)預(yù)約信息鏈表類 TrList-front:TrothInfo*-rear:TrothInfo*-size:int+TrList()+insertRear(itme:const TrothInfo&):void+seekList(INSB:const string&):TrothInfo*+deletecurr(INSB:const string&):bool+Trshow():void+GetTLDate(INSB:const string&):Date 圖類的UML圖 (7)賬戶類 Account-U:Unit-L:LeLi

22、st-T:TrList-next:Account*+Account(u:Unit,l:LeList,t:TrList)+Account()+AUInput():void+ALInput(L:const LendInfo&):void+ATInput(T:const TrothInfo&):void+deleteLeInfo(ISNB:const string&):bool+deleteTrInfo(ISNB:const string&):bool+Acshow():void+Acname():string+Acreid():string+GetNext():Ac

23、count*+SetNext(A:Account*):void+GetTrDate(ISNB:const string&):Date+SeekTr(ISNB:const string&):bool 圖類的UML圖 (8)賬戶鏈表類 AcList-frist:Account*-last:Account*-size:int+AcList()+AcList()+Getfront():Account*+GetLast():Account*+SeekAList(n:const string,id:const string):Account*+SeekActr(ISNB:const str

24、ing &):Account*+InsertLast(item:const string &):void<<friend>>+CompareTime(D1:Date&,D2:Date&):bool 圖類的UML圖 (9)圖書類 Library-bookname:string-INSB:string-Pointer:bool-Prices:float-next:Library*+Library(n:string,INSB:string,Prices:string)+Library()+Library(Li:const Library&

25、;)+LiInput():LIbrary+Lishow():void+GetPointer():bool+GetNext():Library*+GetBookName():string+GetISSN():string+SetNext(Li:Library*):void+SetPointer(T:const bool):void 圖類的UML圖 (10)圖書鏈表類 LiList-front:Library*-last:Library*-size:int+LiList()+Instrelast(Li:const Library):void+GetFront():Library*+LiSeek(n

26、ame:const string,INSB:const string):Library*+LiSeek(name:const string):void 圖類的UML圖 AcList Account TrList LeList UnitInfo TrothInfo LendInfo Date Library LiList 圖圖書管理系統(tǒng)程序的UML圖4. 系統(tǒng)調(diào)試 在調(diào)試過程中出現(xiàn)了許多錯(cuò)誤,并經(jīng)過一系列分析后,終于把錯(cuò)誤改正。程序錯(cuò)誤主要出現(xiàn)在邏輯上。編譯無語法錯(cuò)誤,而在運(yùn)行時(shí)出現(xiàn)異常,是程序不能繼續(xù)運(yùn)行下去,這是常見且難以解決的錯(cuò)誤,需要不斷的實(shí)踐且總結(jié)經(jīng)驗(yàn)。在該整個(gè)程序中,主要出現(xiàn)的錯(cuò)誤主

27、要表現(xiàn)在指針方面。尤其是對鏈表中的結(jié)點(diǎn)的一系列的刪除操作中,結(jié)點(diǎn)的指針數(shù)據(jù)成員的指向確定非常重要,在鏈表的刪除中,若鏈表未定義頭結(jié)點(diǎn),則需分刪除鏈表第一個(gè)結(jié)點(diǎn)和不是第一個(gè)結(jié)點(diǎn)這兩種情形進(jìn)行編程。另外,對于數(shù)據(jù)成員的輸入,需要按一定的要求來輸入,雖然有一些輸入提示信息,但由于輸入操作符的限制,還是因輸入錯(cuò)誤而導(dǎo)致程序運(yùn)行出現(xiàn)不合理的結(jié)果。 程序調(diào)試結(jié)果如下: 進(jìn)入系統(tǒng)主界面: 圖系統(tǒng)主界面 錄入書刊信息功能: 圖錄入書刊信息 查詢圖書信息功能: 圖查詢圖書信息 借閱書刊信息功能: 圖借閱書刊 歸還書刊功能: 圖歸還書刊 取消書刊預(yù)約功能: 圖取消書刊預(yù)約5. 結(jié)果分析設(shè)計(jì)的該圖書管理系統(tǒng),其要求

28、的基本功能能夠?qū)崿F(xiàn),且能夠動(dòng)態(tài)的錄入數(shù)據(jù),賬戶信息及圖書信息的錄入數(shù)量無限制。另外,在歸回圖書的功能中,預(yù)約該書刊的用戶可以依預(yù)約書刊的時(shí)間先后來獲得該書刊;在查詢圖書信息時(shí),能夠顯示該圖書是否可借閱,并能夠顯示同書刊名的所有該書刊。同時(shí),數(shù)據(jù)的保護(hù)機(jī)制較好,數(shù)據(jù)不易被破壞。但是,該系統(tǒng)的主要遺憾是未能使用文件進(jìn)行永久保持?jǐn)?shù)據(jù),這大大的降低了該系統(tǒng)的實(shí)際使用價(jià)值;程序代碼的復(fù)用性不是太好,程序的容錯(cuò)處理能力不是太強(qiáng),還有很多值得改進(jìn)的地方。由于時(shí)間和水平的有限,這些問題只能留在以后去進(jìn)一步解決,使系統(tǒng)更完美,實(shí)用。6. 總結(jié)通過此次課程設(shè)計(jì),更加深了對C+面向?qū)ο蟪绦蛟O(shè)計(jì)語言的知識和設(shè)計(jì)方法的

29、理解,也深刻認(rèn)識了自己在這方面的不足之處。首先,在設(shè)計(jì)該系統(tǒng)時(shí),對問題描述進(jìn)行了比較深的認(rèn)識,并確定了系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)的封裝模式,也應(yīng)用了一些面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法。特別在此次設(shè)計(jì)中對數(shù)據(jù)引用的認(rèn)識更加深刻,引用作為函數(shù)形參,能夠通過形參而該變實(shí)參值,這一技術(shù)的使用非常方便有效。同時(shí),通過這次系統(tǒng)的課程設(shè)計(jì)過程,更進(jìn)一步認(rèn)識了自己的在編程方面的一些不足的方面,尤其表現(xiàn)在邏輯思維不夠嚴(yán)密,這方面還需在以后更多的訓(xùn)練中,來彌補(bǔ)這方面的不足。但在修改語法錯(cuò)誤方面,基本上還是能夠修改。然后,對課題進(jìn)行了分析并編寫了程序,且進(jìn)行了調(diào)試。至此,由于在設(shè)計(jì)開始,未為整個(gè)系統(tǒng)進(jìn)行整體及整個(gè)編寫過程

30、的詳細(xì)思考,使編寫的程序的健壯性不是特別的強(qiáng),且代碼復(fù)用性做得不夠好,由于數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)比較直接,未能使用更好的算法,使程序代碼較為繁瑣,而難以用文件方式對數(shù)據(jù)進(jìn)行永久保存,這也就使系統(tǒng)的實(shí)際使用價(jià)值大大地降低了。所以,在設(shè)計(jì)某系統(tǒng)時(shí),不僅僅只是對其功能模塊進(jìn)行簡單的分析,而且更要使功能模塊和設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)結(jié)合起來,以此設(shè)計(jì)更好的算法,編寫出更好,更實(shí)用的程序。于是,設(shè)計(jì)前的系統(tǒng)分析工作是非常重要的,這是程序設(shè)計(jì)思路的來源。通過此次課程設(shè)計(jì),更加深了對C+面向?qū)ο蟪绦蛟O(shè)計(jì)語言的知識和設(shè)計(jì)方法的理解,也深刻認(rèn)識了自己在這方面的不足之處。首先,在設(shè)計(jì)該系統(tǒng)時(shí),對問題描述進(jìn)行了比較深的認(rèn)識,并確定了

31、系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)的封裝模式,也應(yīng)用了一些面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法。特別在此次設(shè)計(jì)中對數(shù)據(jù)引用的認(rèn)識更加深刻,引用作為函數(shù)形參,能夠通過形參而該變實(shí)參值,這一技術(shù)的使用非常方便有效。同時(shí),通過這次系統(tǒng)的課程設(shè)計(jì)過程,更進(jìn)一步認(rèn)識了自己的在編程方面的一些不足的方面,尤其表現(xiàn)在邏輯思維不夠嚴(yán)密,這方面還需在以后更多的訓(xùn)練中,來彌補(bǔ)這方面的不足。但在修改語法錯(cuò)誤方面,基本上還是能夠修改。然后,對課題進(jìn)行了分析并編寫了程序,且進(jìn)行了調(diào)試。至此,由于在設(shè)計(jì)開始,未為整個(gè)系統(tǒng)進(jìn)行整體及整個(gè)編寫過程的詳細(xì)思考,使編寫的程序的健壯性不是特別的強(qiáng),且代碼復(fù)用性做得不夠好,由于數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)比較直接,未能

32、使用更好的算法,使程序代碼較為繁瑣,而難以用文件方式對數(shù)據(jù)進(jìn)行永久保存,這也就使系統(tǒng)的實(shí)際使用價(jià)值大大地降低了。所以,在設(shè)計(jì)某系統(tǒng)時(shí),不僅僅只是對其功能模塊進(jìn)行簡單的分析,而且更要使功能模塊和設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)結(jié)合起來,以此設(shè)計(jì)更好的算法,編寫出更好,更實(shí)用的程序。于是,設(shè)計(jì)前的系統(tǒng)分析工作是非常重要的,這是程序設(shè)計(jì)思路的來源。7. 附件#include<iostream>#include<string>#include<cstddef>using namespace std;.n" LendInfo*currPtr=front; LendInfo*t

33、emPtr; while(currPtr!=0) temPtr=currPtr; temPtr->Leshow(); currPtr=currPtr->Getnext(); delete temPtr; .n" TrothInfo*currPtr=front; TrothInfo*temPtr; while(currPtr!=0) temPtr=currPtr; temPtr->Trshow(); currPtr=currPtr->Getnext(); delete temPtr; Date TrList:GetTLDate(const string&

34、 INSB)TrothInfo*T=seekList( INSB);Date D;if(T!=0)return T->GetDate();else return D;UnitInfo();L.LeList();T.TrList();否重新輸入?Y或N:"char c=' 'while(c!='N'&&c!='Y')cin>>c;cout<<endl;if(c='N')cout<<" 用戶庫中無該用戶,不能顯示該用戶信息!"<<end

35、l<<endl;break;else if(c='Y')cout<<" 重新輸入信息(Y1)或注冊用戶信息(Y2).請輸入選擇項(xiàng)Y1或Y2:"string s=" "while(s!="Y1"&&s!="Y2")cin>>s;cout<<endl;if(s="Y1")cout<<" 請重新輸入信息:"<<endl;else if(s="Y2")cout&

36、lt;<" 用戶注冊信息:"<<endl;Pointer=creat(A);elsecout<<" 選擇項(xiàng)輸入錯(cuò)誤!請重新輸入!"<<endl; else cout<<" 選擇項(xiàng)輸入錯(cuò)誤!請重新輸入!"<<endl;if(Pointer!=0)Pointer->Acshow();void Input(LiList &L) cout<<"-錄入書刊信息-"<<endl;int n;cout<<"

37、;需錄入信息的書刊數(shù)量:"cin>>n;cout<<endl;Library*Li=new Libraryn;for(int i=0;i<n;i+)Lii=Lii.LiInput();(Lii);cout<<endl<<endl;delete Li;/取消預(yù)約void DeleteTrothInfo(AcList&A,LiList&L) cout<<"-取消書 刊預(yù)約 -"<<endl;string name,reid,bookname,id;Account*Pointe

38、r=0;cout<<"輸入用戶基本信息如下:"<<endl;while(!Pointer)cout<<" 用戶名 :"cin>>name;cout<<" 借閱卡號:"cin>>reid;cout<<endl;cout<<endl<<"取消書刊預(yù)約提示信息:"<<endl;Pointer=(name,reid);if(Pointer=0)cout<<"用戶輸入信息錯(cuò)誤!用戶庫中

39、無該用戶。是否重新輸入?Y或N:"char ch=' 'while(ch!='Y'&&ch!='N')cin>>ch;cout<<endl;if(ch='N')cout<<" 輸入用戶信息錯(cuò)誤,您將不能取消書刊預(yù)約!"<<endl;else if(ch='Y')cout<<"請重新輸入用戶基本信息:"<<endl;else cout<<" 選擇項(xiàng)輸入錯(cuò)誤,請

40、重新輸入選擇項(xiàng)!"<<endl;if(ch='N') break;if(Pointer!=0)cout<<endl;Pointer->Acshow();cout<<endl<<"用戶是否繼續(xù)執(zhí)行該操作?請選擇Y或N:"<<endl;char st=' 'while(st!='Y'&&st!='N')cin>>st;if(st='Y')cout<<"輸入書刊的基本信息:&q

41、uot;<<endl; Library*ccurPtr=0;while(!ccurPtr)cout<<" 書刊名:"cin>>bookname;cout<<" 書刊號:"cin>>id;cout<<"取消書刊預(yù)約提示信息:"<<endl;ccurPtr=(bookname,id);if(ccurPtr=0)cout<<"輸入書刊信息錯(cuò)誤!請檢查!是否?重?新輸入信息?Y或N:"char c=' 'while(c!='N'&&c!='Y')cin>>c;cout<<endl;if(c='N')cout<<" 因輸入書刊信息錯(cuò)誤!您將不能取消書刊預(yù)約!"<<endl;else if(c='Y')cout<<"請您重新輸入書刊信息:"<

溫馨提示

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

最新文檔

評論

0/150

提交評論