中南大學
資源與安全工程學院
課程設計報告
課程名稱 c++課程設計
課題名稱圖書管理系統設計
專業城市地下空間工程
班級城地1001班
學號 020
姓名彭xx
指導教師畢林
2023年 06 月 26 日
任務書下達日期 2023年 06 月 20 日
任務完成日期 2011 年 06 月 26日
題目三:圖書管理系統設計
(一)、課程設計題目:
圖書管理系統設計
(二)、要求:
使用二進位制檔案方式儲存資料,系統以選單方式工作
(三)、設計方法和基本原理:
1、功能描述:
(1)新進圖書基本資訊的輸入。
(2)圖書基本資訊的查詢。
(3)對撤消圖書資訊的刪除。
(4)為借書人辦理註冊。
(5)辦理借書手續。
(6)辦理還書手續。
2、問題的解決方案:
根據系統功能要求,可以將問題解決分為以下步驟:
(1)應用系統分析,建立該系統的功能模組框圖以及介面的組織和設計;
(2)分析系統中的各個實體及它們之間的關係包括屬性和行為;
(3)根據問題描述,設計系統的類層次;
(4)完成類層次中各個類的描述(包括屬性和方法);
(5)完成類中各個成員函式的定義;
(6)完成系統的應用模組;
(7)功能除錯;
(8)完成系統總結報告以及系統使用說明書
一、設計內容與設計要求
1.課程設計目的:
從課程設計的實踐活動中獲得知識提高。要求學生達到熟練掌握c++語言的基本知識和技能;基本掌握物件導向程式設計的思想和方法;能夠利用所學的基本知識和技能,解決簡單的物件導向程式設計問題,從而提高動手程式設計解決實際問題的能力。
2.總體設計
2.1 系統功能分析:
系統通過呼叫函式來實現刪除圖書、讀者資訊,新增圖書、讀者資訊等功能。delbook( )函式用於刪除圖書資訊;addbook( )函式用於增加圖書資訊;borrowbook( )函式用於實現借書操作;returnbook( )函式用於實現還書操作等等;主函式用於掉用這些函式。
2.2系統功能模組劃分與設計
本系統定義了book類、bdatebase類、reader類、rdatebase類這四個類,定義了addbook ( )、addreader( )、borrowbook ( )、setname( )等函式來實現系統所需功能。
2.3 系統功能模組圖:
3.3.詳細設計
3.1 讀者類的設計
該類定義了借書操作,還書操作,設定讀者姓名等功能。
圖 3.1
3.2 讀者庫類類的設計
該類實現了建立讀者的個人資料,刪除讀者資訊,輸出讀者資訊等功能。
圖 3.2
3.3 圖書類的設計
圖書類,可以實現對圖書的描述,圖書的編號,書名,借出,還入等操作。
圖 3.3
3.4 圖書庫類的設計
圖 3.4
4.除錯與測試:
4.1系統除錯
在除錯過程中,出現了一些錯誤。
1、輸入資料時,輸錯了資料的型別會造成死迴圈,因此輸入時需要注意。
2、一開始主介面輸入非正確數字時,沒有提示錯誤。容易造成使用者誤解
圖4.1
在主函式的switch語句結束處加上default:cout<<"輸入錯誤,請從新輸入:";就可以了,修改後:
圖4.2
具體除錯過程。
主介面圖4.3
圖書維護
圖4.4
讀者維護
圖4.1
5.結果分析
本程式總共設計了四個類,滿足了課題對類的要求,在設計的過程中,建立了較為清晰的類層次,也利用了物件導向的方法以及c++的程式設計思想來完成系統的設計,做到了每個借閱者建立乙個賬戶,賬戶中儲存借閱者的個人資訊、借閱資訊等要求。而且介面美觀,容易操作。但是程式太長,不夠簡練,導致出現錯誤很難發現和修改。
感想和體會:
通過這次的課程設計,讓我們充分的感覺到了要自己設計乙個程式是多麼的難,以及學習好c++是多麼的重要。
在這個程式的設計過程中,我們清楚的意識到自己的水平有多麼的薄弱,課程的知識學得有多麼的不紮實。看網上的例子好像覺得也沒那麼難,自己一上機實際操作就出現了很多問題,除錯的時候系統總是在報錯,還有很多警告,每增加乙個函式就要除錯好久,有時候應為少了乙個大括號或是分號,導致要找很久很久。雖然系統可以執行,也具有了一些基本的功能,但我們意識到了自己有太多的不足。
以後還會有很多的課程設計,一定要吸取這次的教訓,把知識學懂學透學精,真正的為我所用,這樣走上社會我們才能真正的發揮所長。
我們三個人分工合作,組長彭愛賢負責對程式的編譯,通過不斷的嘗試和學習,最終製成程式的最初模式!謝經緯負責對程式的修改。沈維健負責後期製作,總結組內的製作經驗!
通過努力,得以在規定的時間內完成任務。
這一次的c++課程設計讓我們學到了很多知識,懂得如何發現問題,並解決!
非常感謝老師及同學們的幫助,讓我們有這乙個機會好好學習c++的更廣泛的知識。
7、7.1 源程式清單:
#include
#include //定義控制符
#include //包含string的標頭檔案
#include //用來支援對磁碟檔案的輸入輸出
using namespace std;
const int maxr=100;
const int maxb=100;
const int maxbor=5; //以上三行宣告maxr、maxb、maxbor為常資料成員
class reader //宣告類型別為讀者
//虛函式,返回name
int gettag() //虛函式,返回tag
int getno() //虛函式,返回no.
void setname(char na設定讀者姓名函式
void delbook() //刪去圖書資訊
void addreader(int n,char *na) //增加讀者資訊
void borrowbook(int bookid) //定義借書函式,且借圖書編號為整型 }
} int retbook(int bookid) }
return 0;
} void disp() //成員函式,輸出基類資料成員
{ cout << setw(5) << no 資訊系統分析與設計 課程設計報告 設計題目 圖書管理系統 姓名 田非非 班級 信管1102班 學號 311109030224 指導老師 劉小燕 需求分析明確 5分 用例圖正確 10分 類圖正確 10分 序列圖正確 10分 狀態圖正確 10分 活 正確 10分 構件圖和部署圖正確 10分 講解思路清晰... 目錄一 需求分析 2 二 概要設計 2 2.1 設計思想 2 2.2執行平台及開發環境 2 2.3 資料結構 3 2.4 系統結構圖 3 三 詳細設計 3 3.1 主函式 3 3.2 圖書基本資訊輸入 4 3.3查詢模組 5 3.4 刪除模組 6 3.5 辦理借書手續模組 7 3.6 辦理還書手續模... c語言課程設計報告 圖書管理系統 系統需求 一 新書入庫 圖書資訊包括書名,書號,庫存量,現存量共4項.首先輸入3本書的資訊,並將其存入檔案 中.當有新書入庫時,先判斷檔案中是否有此書 即比較書名 若有則修改庫存量,現存量的資訊 若無此書,則將該書的資訊新增到檔案中.二 圖書查詢 輸入乙個書號,在檔...UML課程設計 圖書管理系統
圖書管理系統課程設計C課程設計
C課程設計報告 圖書管理系統