C課程設計圖書管理系統完整版

2021-03-03 20:40:29 字數 3275 閱讀 4043

中南大學

資源與安全工程學院

課程設計報告

課程名稱 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

UML課程設計 圖書管理系統

資訊系統分析與設計 課程設計報告 設計題目 圖書管理系統 姓名 田非非 班級 信管1102班 學號 311109030224 指導老師 劉小燕 需求分析明確 5分 用例圖正確 10分 類圖正確 10分 序列圖正確 10分 狀態圖正確 10分 活 正確 10分 構件圖和部署圖正確 10分 講解思路清晰...

圖書管理系統課程設計C課程設計

目錄一 需求分析 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課程設計報告 圖書管理系統

c語言課程設計報告 圖書管理系統 系統需求 一 新書入庫 圖書資訊包括書名,書號,庫存量,現存量共4項.首先輸入3本書的資訊,並將其存入檔案 中.當有新書入庫時,先判斷檔案中是否有此書 即比較書名 若有則修改庫存量,現存量的資訊 若無此書,則將該書的資訊新增到檔案中.二 圖書查詢 輸入乙個書號,在檔...