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

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計 報 告課程名稱 面向?qū)ο蟪绦蛟O(shè)計 課題名稱 圖書管理系統(tǒng) 專 業(yè) 計算機科學與計術(shù) 班 級 計算機1001 學 號 姓 名 指導教師 2011年 12 月 28 日湖南工程學院課 程 設(shè) 計 任 務(wù) 書課程名稱 面向?qū)ο蟪绦蛟O(shè)計 課 題 圖書管理系統(tǒng) 專業(yè)班級 計算機1001 學生姓名 學 號 指導老師 審 批 任務(wù)書下達日期 2011 年 11 月 15 日任務(wù)完成日期 2011 年 12 月 28 日一、設(shè)計內(nèi)容與設(shè)計要求1.課程設(shè)計目的:面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計是集中實踐性環(huán)節(jié)之一,是學習完面向?qū)ο蟪绦蛟O(shè)計課程后進行的一次全面的綜合練習。要求學生達到熟練掌握c+語言的基本

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

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

4、12:00第 18 周 星期一 8:0012:00 星期二 14:3018:30 星期三 8:0012:00三、參考書籍1.c程序設(shè)計課程設(shè)計 劉振安編著 tp312c5632.c+ builder和delphi課程設(shè)計與系統(tǒng)開發(fā)案例 伍俊良 清華大學出版社 7-302-06072-x 3.visual c+課程設(shè)計案例精編 嚴華峰 中國水利水電出版社 7-5084-2007-1 2004 4.visual c+課程設(shè)計與系統(tǒng)開發(fā)案例 伍俊良 清華大學出版社 7-302-05968-3 20025.visual c+語言課程設(shè)計 : 案例精選與編程指導 陳清華朱紅 東南大學出版社 7-8108

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

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

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

8、外,為了簡化系統(tǒng),也不考慮書刊的最長借閱期限,假設(shè)借閱者可以無限期地保存所借閱的書刊。2、問題的解決方案: 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: (1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計;(2)分析系統(tǒng)中的各個實體及它們之間的關(guān)系包括屬性和行為; (3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次; (4)完成類層次中各個類的描述(包括屬性和方法); (5)完成類中各個成員函數(shù)的定義; (6)完成系統(tǒng)的應(yīng)用模塊; (7)功能調(diào)試; (8)完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書目 錄1. 系統(tǒng)需求分析12. 總體設(shè)計23. 詳細設(shè)計34. 系統(tǒng)調(diào)試105. 結(jié)果分析126. 總結(jié)

9、137. 附件14湖南工程學院課程設(shè)計報告1. 系統(tǒng)需求分析1. 系統(tǒng)設(shè)計目的與意義 設(shè)計該圖書管理系統(tǒng),要求學生達到熟練掌握c+語言的基本知識和技能,能夠基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法,能夠利用所學的基本知識和技能解決簡單的面向?qū)ο蟪绦蛟O(shè)計的問題。另外,通過該課程設(shè)計的實踐,來提高學生動手編程解決實際問題的能力,加深對c+語言及解決問題方法的理解,為以后的學習打下堅實的基礎(chǔ)。2. 系統(tǒng)功能需求分析由對圖書管理系統(tǒng)的問題描述可知,該系統(tǒng)主要功能應(yīng)該包括借閱書刊,歸還書刊,取消書刊預約信息,錄入書刊,顯示用戶信息,查詢書刊信息,退出系統(tǒng)等功能。同時,在借閱書刊和顯示用戶信息的功能中還應(yīng)

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

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

12、來存儲賬戶信息和圖書信息比較合適。所以可以定義鏈表類來對賬戶信息和圖書信息進行存儲和組織。另外,某一個用戶借閱或預約的書刊可能有多本,故也可以定義鏈表類來存儲和組織這些信息,在把鏈表類嵌套到賬戶類里。2. 總體設(shè)計1.系統(tǒng)功能分析 該系統(tǒng)主要功能包括借閱書刊、歸還書刊、取消書刊預約信息、錄入書刊,顯示用戶信息、查詢書刊信息、退出系統(tǒng)等。進入該系統(tǒng)后,便出現(xiàn)選擇這些功能的菜單,可依選擇項進入相應(yīng)的功能模塊。執(zhí)行某一功能(除了退出系統(tǒng))后又可返回功能選項菜單界面。所以在主函數(shù)中需要采用函數(shù)嵌套。 依系統(tǒng)功能分析有:功能模塊流程圖如下: 開始 進入圖書管理系統(tǒng)查詢書刊取消預約信息顯示用戶信息退出系統(tǒng)

13、記錄書刊信息歸還書刊借閱書刊 結(jié)束 圖7.1系統(tǒng)功能模塊流程圖 2.系統(tǒng)功能模塊劃分與設(shè)計 以下對各功能模塊進行分析與設(shè)計: (1)借閱書刊功能 首先輸入書刊名、書刊的isbn/issn號、借閱者名、借閱卡號。然后依借閱者名及借閱卡號在賬戶類鏈表中查找該用戶是否存在。若不存在,則返回到注冊賬號。反之,則依isbn/issn號在圖書類中查找并判斷該書是否已借閱。(書刊是否被借閱,可以在圖書類中定義某一變量進行標記,以此來判斷該書刊是否被借閱)若借閱,用戶則可預約該書刊或結(jié)束借閱書刊功能,借閱書刊失敗。反之則借閱書刊成功,并作相應(yīng)的數(shù)據(jù)記錄。另外,在預約書刊后,若預約的書刊被歸還,則立即寄給預約人

14、,并作相應(yīng)的數(shù)據(jù)記錄。(若有多人預約同一本書,應(yīng)按預約時間的先后,來確定寄給書刊的預定人)。 (2)歸還書刊功能 首先輸入用戶名及借閱卡號,并依次在賬戶類鏈表中查找到該賬戶。若未查找則提示用戶可能輸入信息錯誤并要求重新輸入。若查找到,則輸入書刊名及書刊isnb/issn號,并由此在圖書類鏈表中查找該書刊是否存在,若未查找到則提示書刊信息輸入錯誤并要求重新輸入。若書刊存在,則輸出歸還書刊成功,并作相應(yīng)的數(shù)據(jù)記錄。同時,還要在賬戶類鏈表中查找已預約該書刊的用戶,并找到最早預約該書刊的用戶,將書刊寄送給該用戶,并對該用戶信息做相關(guān)的記錄。 (3)查詢書刊功能 查詢書刊應(yīng)根據(jù)書刊名在圖書類鏈表中來查找

15、該書刊。查找方法應(yīng)該為順序查找。若圖書類鏈表中無要查找的書刊,則輸出圖書館內(nèi)無該書;反之,則輸出該書的基本信息,基本信息包括:書名、isnb/issn號、價格、是否借閱等信息。有時同名書刊不只一本,故每查找到一本該書刊則顯示該書刊信息,直至遍歷整個圖書類鏈表。書刊是否被借閱可設(shè)定一變量來表記。 (4)取消書刊預約功能 首先輸入借閱者名及借閱卡號,并依此在賬戶類鏈表中查找該用戶是否存在。若未查到,則提示用戶可能輸入信息錯誤并要求重新輸入。若查到則顯示用戶信息,并依此是否進行書刊預約功能。若進行,則輸入書刊名及書刊isnb/issn號,并在圖書類鏈表內(nèi)驗證輸入信息是否正確。 (5)顯示用戶信息功能

16、 首先輸入借閱者名及借閱卡號,并依此在賬戶類鏈表里查找該用戶是否存在。若未查找的到,則提示用戶可能輸入信息有誤或該用戶未注冊。反之則顯示該用戶信息。 (6)錄入書刊信息功能 錄入書刊信息,首先要錄入書刊的數(shù)量,然后依次輸入書刊名、書刊isnb/issn號、書刊定價。這樣即可錄入書刊信息。3. 詳細設(shè)計1.數(shù)據(jù)類型及類層次圖 該系統(tǒng)所需數(shù)據(jù)類型主要為字符數(shù)組類型,即用字符串類型來定義數(shù)據(jù)。用字符串定義數(shù)據(jù)可用string類代替,定義成string類型的數(shù)據(jù),對字符的操作更簡單。在輸入string類數(shù)據(jù)時,用輸入流中的操作符來輸入字符串,這樣需特別注意在輸入某一字符串時,其間不能輸入空格,否則該輸

17、入的字符將會轉(zhuǎn)到下個將要輸入的字符串變量,使輸入變得混亂。這是由于輸入流操作符在輸入數(shù)據(jù)時,若遇到空格,則表示該輸入已結(jié)束。 該系統(tǒng)中定義的類包括:日期類、個人信息類、借閱書刊信息類、預約書刊信息類、賬戶信息類、圖書類、借閱和預約、賬戶、圖書信息鏈表類。其類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():d

18、ate 圖7.2date類的uml圖 (2)個人信息類 unitinfo-name:string-reid:string-id:string-sex:string-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 圖7.3unitinfo類的uml圖 (3)借閱信息類 lendinfo-bookname:str

19、ing-isbn:string-d:date-next:lendinfo*+lendinfo(n:string,isbn:string,d:date)+lendinfo()+lendinfo(l:const lendinfo&)+getinsb():string+getnext():lendinfo*+setnext(l:lendinfo*):void+leshow():void+leinput():lendinfo 圖7.4lendinfo類的uml圖 (4)借閱信息鏈表類 lelist-front:lendinfo*-rear:lendinfo*-size:int+lelist()+ins

20、ertrear(item:const lendinfo&):void+seeklist(insb:const string):lendinfo*+deletecurr(insb:const string):bool+leshow():void 圖7.5lelist類的uml圖 (5)預約信息類 trothinfo-bookname:string-isbn:string-d:date-next:trothinfo*+trothinfo(n:string,insb:string,d:date)+trothinfo()+trothinfo(t:const trothinfo&)+getinsb():

21、string+setnext(t:trothinfo*):void+getnext():trothinfo*+trshow():void+trinput():trothinfo+getdate():date 圖7.6trothinfo類的uml圖 (6)預約信息鏈表類 trlist-front:trothinfo*-rear:trothinfo*-size:int+trlist()+insertrear(itme:const trothinfo&):void+seeklist(insb:const string&):trothinfo*+deletecurr(insb:const string

22、&):bool+trshow():void+gettldate(insb:const string&):date 圖7.7trlist類的uml圖 (7)賬戶類 account-u:unit-l:lelist-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+deletetrin

23、fo(isnb:const string&):bool+acshow():void+acname():string+acreid():string+getnext():account*+setnext(a:account*):void+gettrdate(isnb:const string&):date+seektr(isnb:const string&):bool 圖7.8account類的uml圖 (8)賬戶鏈表類 aclist-frist:account*-last:account*-size:int+aclist()+aclist()+getfront():account*+getla

24、st():account*+seekalist(n:const string,id:const string):account*+seekactr(isnb:const string &):account*+insertlast(item:const string &):void+comparetime(d1:date&,d2:date&):bool 圖7.9aclist類的uml圖 (9)圖書類 library-bookname:string-insb:string-pointer:bool-prices:float-next:library*+library(n:string,insb:s

25、tring,prices:string)+library()+library(li:const library&)+liinput():library+lishow():void+getpointer():bool+getnext():library*+getbookname():string+getissn():string+setnext(li:library*):void+setpointer(t:const bool):void 圖7.10library類的uml圖 (10)圖書鏈表類 lilist-front:library*-last:library*-size:int+lilis

26、t()+instrelast(li:const library):void+getfront():library*+liseek(name:const string,insb:const string):library*+liseek(name:const string):void 圖7.11lilist類的uml圖 aclist account trlist lelist unitinfo trothinfo lendinfo date library lilist 圖7.12圖書管理系統(tǒng)程序的uml圖4. 系統(tǒng)調(diào)試 在調(diào)試過程中出現(xiàn)了許多錯誤,并經(jīng)過一系列分析后,終于把錯誤改正。程序錯誤主

27、要出現(xiàn)在邏輯上。編譯無語法錯誤,而在運行時出現(xiàn)異常,是程序不能繼續(xù)運行下去,這是常見且難以解決的錯誤,需要不斷的實踐且總結(jié)經(jīng)驗。在該整個程序中,主要出現(xiàn)的錯誤主要表現(xiàn)在指針方面。尤其是對鏈表中的結(jié)點的一系列的刪除操作中,結(jié)點的指針數(shù)據(jù)成員的指向確定非常重要,在鏈表的刪除中,若鏈表未定義頭結(jié)點,則需分刪除鏈表第一個結(jié)點和不是第一個結(jié)點這兩種情形進行編程。另外,對于數(shù)據(jù)成員的輸入,需要按一定的要求來輸入,雖然有一些輸入提示信息,但由于輸入操作符的限制,還是因輸入錯誤而導致程序運行出現(xiàn)不合理的結(jié)果。 程序調(diào)試結(jié)果如下: 進入系統(tǒng)主界面: 圖7.13系統(tǒng)主界面 錄入書刊信息功能: 圖7.14錄入書刊信

28、息 查詢圖書信息功能: 圖7.15查詢圖書信息 借閱書刊信息功能: 圖7.16借閱書刊 歸還書刊功能: 圖7.17歸還書刊 取消書刊預約功能: 圖7.18取消書刊預約5. 結(jié)果分析設(shè)計的該圖書管理系統(tǒng),其要求的基本功能能夠?qū)崿F(xiàn),且能夠動態(tài)的錄入數(shù)據(jù),賬戶信息及圖書信息的錄入數(shù)量無限制。另外,在歸回圖書的功能中,預約該書刊的用戶可以依預約書刊的時間先后來獲得該書刊;在查詢圖書信息時,能夠顯示該圖書是否可借閱,并能夠顯示同書刊名的所有該書刊。同時,數(shù)據(jù)的保護機制較好,數(shù)據(jù)不易被破壞。但是,該系統(tǒng)的主要遺憾是未能使用文件進行永久保持數(shù)據(jù),這大大的降低了該系統(tǒng)的實際使用價值;程序代碼的復用性不是太好,

29、程序的容錯處理能力不是太強,還有很多值得改進的地方。由于時間和水平的有限,這些問題只能留在以后去進一步解決,使系統(tǒng)更完美,實用。6. 總結(jié)通過此次課程設(shè)計,更加深了對c+面向?qū)ο蟪绦蛟O(shè)計語言的知識和設(shè)計方法的理解,也深刻認識了自己在這方面的不足之處。首先,在設(shè)計該系統(tǒng)時,對問題描述進行了比較深的認識,并確定了系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)的封裝模式,也應(yīng)用了一些面向?qū)ο蟪绦蛟O(shè)計的基本方法。特別在此次設(shè)計中對數(shù)據(jù)引用的認識更加深刻,引用作為函數(shù)形參,能夠通過形參而該變實參值,這一技術(shù)的使用非常方便有效。同時,通過這次系統(tǒng)的課程設(shè)計過程,更進一步認識了自己的在編程方面的一些不足的方面,尤其表現(xiàn)在邏輯思維

30、不夠嚴密,這方面還需在以后更多的訓練中,來彌補這方面的不足。但在修改語法錯誤方面,基本上還是能夠修改。然后,對課題進行了分析并編寫了程序,且進行了調(diào)試。至此,由于在設(shè)計開始,未為整個系統(tǒng)進行整體及整個編寫過程的詳細思考,使編寫的程序的健壯性不是特別的強,且代碼復用性做得不夠好,由于數(shù)據(jù)結(jié)構(gòu)的設(shè)計比較直接,未能使用更好的算法,使程序代碼較為繁瑣,而難以用文件方式對數(shù)據(jù)進行永久保存,這也就使系統(tǒng)的實際使用價值大大地降低了。所以,在設(shè)計某系統(tǒng)時,不僅僅只是對其功能模塊進行簡單的分析,而且更要使功能模塊和設(shè)計的數(shù)據(jù)結(jié)構(gòu)結(jié)合起來,以此設(shè)計更好的算法,編寫出更好,更實用的程序。于是,設(shè)計前的系統(tǒng)分析工作是

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

32、然后,對課題進行了分析并編寫了程序,且進行了調(diào)試。至此,由于在設(shè)計開始,未為整個系統(tǒng)進行整體及整個編寫過程的詳細思考,使編寫的程序的健壯性不是特別的強,且代碼復用性做得不夠好,由于數(shù)據(jù)結(jié)構(gòu)的設(shè)計比較直接,未能使用更好的算法,使程序代碼較為繁瑣,而難以用文件方式對數(shù)據(jù)進行永久保存,這也就使系統(tǒng)的實際使用價值大大地降低了。所以,在設(shè)計某系統(tǒng)時,不僅僅只是對其功能模塊進行簡單的分析,而且更要使功能模塊和設(shè)計的數(shù)據(jù)結(jié)構(gòu)結(jié)合起來,以此設(shè)計更好的算法,編寫出更好,更實用的程序。于是,設(shè)計前的系統(tǒng)分析工作是非常重要的,這是程序設(shè)計思路的來源。7. 附件#include#include#includeusin

33、g namespace std;/定義日期類class dateprivate:int year;int month;int day;public:date(int y=0,int m=0,int d=0):year(y),month(m),day(d)date(const date&d):year(d.year),month(d.month),day(d.day)int getyear()return year;int getmonth()return month;int getday()return day;void dashow();date dainput();date();date

34、date:dainput()int y,m,d;couty;coutm;coutd;return date(y,m,d);void date:dashow()coutyear 年 month 月 day 日endl;/個人信息類class unitinfoprivate:string name; string reid; string id; string sex; date d; public:unitinfo(string n,string re,string id,string sex,date d):name(n), reid(re),id(id),sex(sex),d(d)uniti

35、nfo():name( ),reid( ),id( ),sex( ),d(0,0,0);unitinfo(const unitinf &info):name(i),reid(info.reid), id(info.id),sex(info.sex),d(info.d)string getname()return name;string getreid()return reid;void unshow();unitinfo uninput();unitinfo();unitinfo unitinfo:uninput()string n,r,i,s;date d;coutr;cou

36、tendl;coutn;coutendl;couts;coutendl;couti;coutendl;cout 出生日期:endl;d=d.dainput(); return unitinfo(n,r,i,s,d);void unitinfo:unshow()cout 借閱卡號:reidendl;cout 用戶姓名:nameendl;cout 性別 :sexendl;cout 身份證號:idendl;cout 出生日期:;d.dashow();/借閱信息類class lendinfoprivate:string bookname;string isbn; date d; lendinfo *n

37、ext; public:lendinfo(string n,string h,date d):bookname(n),isbn(h),d(d), next(null)lendinfo():bookname( ),isbn( ),next(0)lendinfo(const lendinfo&l):bookname(l.bookname),isbn(l.isbn), d(l.d),next(l.next)string getinsb()return isbn; void setnext( lendinfo*l)next=l;lendinfo* getnext()return next;void l

38、eshow();lendinfo leinput();lendinfo lendinfo:leinput()string n,i;date d;coutn;couti;cout借閱日期:endl;d=d.dainput();return lendinfo(n,i,d);void lendinfo:leshow()cout 書名 :booknameendl;cout 書號 :isbnendl;coutsetnext(currptr);rear=currptr;size+;lendinfo* lelist:seeklist(const string inbs)lendinfo*pointer=fr

39、ont;lendinfo*ccurptr=0;while(pointer!=0)if(inbs=pointer-getinsb()ccurptr=pointer; break;pointer=pointer-getnext();if(pointer=0) cout 用戶沒有借閱這本書getnext(); delete pointer; mark=true;elsewhile(pointer-getnext()!=currptr)pointer=pointer-getnext();pointer-setnext(currptr-getnext();delete currptr;mark=true; size-;elsecout 用戶沒有該書的借閱信息!leshow(); pointer=pointer-getnext();else cout 用戶無任何借閱記錄

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論