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

2022-10-22 20:21:04 字數 3380 閱讀 7480

c語言課程設計報告:

圖書管理系統

系統需求

一、 新書入庫: 圖書資訊包括書名, 書號, 庫存量, 現存量共4項. 首先輸入3本書的資訊, 並將其存入檔案 」 中.

當有新書入庫時, 先判斷檔案中是否有此書( 即比較書名 ), 若有則修改庫存量, 現存量的資訊; 若無此書, 則將該書的資訊新增到檔案中.

二、圖書查詢: 輸入乙個書號, 在檔案中查詢此書, 若找到則輸出此書的全部資訊; 若找不到則輸出查詢失敗的資訊.

三、借閱管理

(1) 每個讀者的資訊包括姓名, 編號, 1張借書卡( 限借一本書 ), 輸入3個讀者的資訊存入檔案 「reader . dat」 中.

(2) 借書登記: 輸入讀者的編號, 所借圖書的書號, 先判斷姓名是否在檔案」 中, 若有則將書號存入一張借書卡上( 注: 初始時借書卡的資訊都為零, 借書後借書卡的資訊改為所借書的書號), 並修改檔案」的相應內容, 同時修改檔案」中此書的現存量.

若」無此姓名, 則應提示錯誤

(3) 還書管理: 輸入讀者的編號, 所還圖書的書號, 將借書卡的資訊置為零, 並修改檔案」的相應內容, 同時修改檔案」中此書的現存量.

四、輸出全部圖書資訊和全部讀者資訊

五、退出系統.

六、附加說明:系統將來完善的功能有:新增讀者,一位讀者可同時借閱和歸還多本圖書等

總體設計

一、 仔細閱讀系統要求,首先將此系統化分為如下模組(即如下函式)

1、 新書入庫模組:可用乙個函式insert_new_book(char book_num,char book_name,int number)來實現。形參分別為:

書名, 書號,以及有多少本書要入庫,再根據要求將資訊寫入檔案中。又由於最開始要輸入三本新書,故可以加乙個初始化函式init_book(),但是初始化函式只執行一次,也就是在系統第一次執行的時候執行,此時可以根據判斷是否存在這個檔案來決定是否執行初始化函式.

2、 查詢模組:可用乙個函式void find_book(char book_num)來實現。找到就輸出此書全部資訊,找不到就輸出查詢失敗資訊。

3、 借閱管理模組:

(1) 三個讀者的資訊可以在系統初始化時完成.即可用初始化函式init_reader()來實現對讀者的初始化。因為讀者初始化函式也只是在系統第一次執行的時候執行一次,故也可以根據是否存在檔案來確定是否執行此函式。

(到現在可以發現在系統初始化函式裡,至少已經需要呼叫兩個初始化函式了)

(2) 借書登記模組:可用乙個函式borrow_book(char reader_num,char book_num)來實現。在函式中要分別判斷

a 該讀者的編號是否已經存在,如果不存在,則提示錯誤。

b 該讀者的借閱書是否已滿(即最多只能借1本書)如果是,則提醒該使用者先去還書

c 輸出的書號對應的書是否存在,如果不存在,則提醒讀者不存在此書。

借書過程完成後,則對讀者資訊裡的借書資訊寫上所借書號,並修改庫存量。

(3) 還書管理模組:可用乙個函式return_book(char reader_num,

char book_num)來實現。在實現此函式時要判斷:

a 該讀者的姓名是否已經存在,如果不存在,則提示錯誤。

b 該讀者是否已經借閱此書。如果沒有,則提示錯誤。

c 還書過程完成後,則對讀者資訊裡的借書資訊清零,並修改庫存量。

4、 輸出圖書和讀者資訊:可分別用模組print_book()和print_reader()來實現

直接從檔案和檔案中讀取資訊並輸出。

5、 退出系統:可用乙個函式exit()來實現。首先將資訊儲存到檔案,釋放動態建立的記憶體空間,再退出此程式。

二、系統主模組結構圖:

詳細設計

一、 介面設計

此系統介面採用圖形和數位化選單設計。

主介面設計如下:

圖書管理系統

圖書管理系統主選單

請選擇相應的數字執行相應的功能:

0:退出此系統

1:新書入庫

2:圖書查詢

3:借書登記

4:還書管理

5:輸出全部圖書資訊和讀者資訊

各子介面如下:

1、 新書入庫介面:

請選擇相應的數字執行相應的功能:

10:返回主選單

11:新書入庫

請輸入新書名:

請輸入新書號:

請輸入新書數量:

注:新書入庫成功後,程式返回到子介面1)

2、 圖書查詢介面介面:

請選擇相應的數字執行相應的功能:

20:返回主選單

21:圖書查詢

請輸入需要查詢的書號:

注:圖書查詢完成後,返回到子介面2)

3、借書登記介面:

請選擇相應的數字執行相應的功能:

30:返回主選單

31:借書登記

請輸入讀者編號:

請輸入所借書號:

注:借書過程完成後,返回到子介面3)

4、還書管理:

請選擇相應的數字執行相應的功能:

40:返回主選單

41:還書登記

請輸入讀者編號:

請輸入所借書號:

注:還書過程完成後,返回到子介面4)

5、輸出全部圖書和讀者資訊:

請選擇相應的數字執行相應的功能:

50:返回主選單

51:輸出全部圖書資訊:

書號書名: 庫存量現存量

52:輸出全部讀者資訊:

讀者編號讀者姓名所借書號

(注:輸出圖書和讀者資訊後,返回到子介面5)

二、 資料結構設計

程式中考慮到圖書資訊和讀者資訊中都包含有不同型別的資料,故分別建立圖書和讀者兩種型別的結構體;由於圖書和讀者的數量非固定,所以採用動態鏈式儲存來實現。

圖書型別:

typedef struct bk{

char book_num[11]; /* 書號採用10位編碼最後1位為字串結束標誌(下同). */

char book_name[41]; /* 書名規定不超過40個字母(20 個漢字

unsigned book_kc,book_xc; /* book_kc 代表庫存梁,book_xc代表現存量 */

struct bk *next;

book;

讀者型別:

typedef struct rd{

char reader_num[11]; /* 讀者編號採用10位編碼 */

char reader_name[11]; /* 讀者姓名

char reader_book_num[11]; /*表示所借書號,初始值為「0」*/

struct bk *next;

reader;

三、 主要功能程式結構設計

1、系統主要結構流程圖:

045 32

5152

圖書管理系統課程設計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語言課程設計報告圖書管理系統

第一章 1.1題目描述 圖書管理系統設計 要求 圖書管理資訊包括 圖書名稱 圖書編號 單價 作者 存在狀態 借書人姓名 性別 學號等。試設計一圖書管理系統,使之能提供以下功能 1 新圖書基本資訊的輸入 2 圖書基本資訊的查詢 3 對撤銷圖書資訊的刪除 4 辦理借書手續 5 辦理還書手續 提示 建立圖...

圖書管理系統課程設計

資料庫課程設計報告 專案名稱 圖書管理系統 指導老師 賀亞茹 組名 amani 組長 賽萬平 組員 黃梓航張峰峰 完成日期 2012年 11 月 22日 成績 資料庫課程設計報告 一 專案名稱 圖書管理系統 二 專案需求分析 1 專案需求分析簡介 本資料庫的使用者主要是讀者 管理員 圖書等物件,通過...