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

2022-07-02 08:51:05 字數 4108 閱讀 4703

目錄一、需求分析 - 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 辦理還書手續模組 - 8 -

四、測試結果分析 - 9 -

4.1 輸入圖書資訊模組效果 - 9 -

4.2 查詢模組效果示意 - 10 -

4.3 刪除模組效果圖 - 12 -

4.4 借閱圖書模組效果示意圖 - 12 -

4.5 歸還圖書模組效果示意圖 - 13 -

五、總結 - 14 -

5.1 優缺點分析 - 14 -

5.2 心得體會與收穫 - 15 -

六、參考文獻 - 15 -

七、附錄 - 16 -

先分析我所拿到的題目,我需要設計乙個簡單的圖書管理系統。分為兩個方面,一方面是對圖書的管理。首先需將圖書的基本資訊寫入到指定的儲存圖書資訊的檔案中;接下來是查詢功能,要實現根據圖書的序號和書名查詢圖書的基本資訊;然後是刪除功能,要求根據輸入序號刪除對應圖書所有資訊。

另一方面是學生借書和還書系統。借書後,要求輸入學生資訊,並且與所借書本對應,並且借出後,書本所存狀態隨之發生改變,並儲存;還書時,要求輸入學生的資訊,並且將還書資訊儲存。

根據以上分析可知,由於圖書的資訊是存放在檔案中,所以要有檔案的寫入讀出等操作;同時要對圖書資訊和對應學生的資訊進行瀏覽、查詢或刪除等一系列的操作,就要對檔案的內容進行讀出寫入儲存,就要涉及到一些簡單的演算法;此外,由於是乙個作業系統,就需要有主選單實現選擇操作。

根據以上的需求分析可以將整個系統的設計分為六個模組:1、輸入圖書基本資訊模組, 2、查詢圖書基本資訊模組,3、刪除圖書資訊模組,4、辦理借書手續模組,5、辦理還書手續模組。另外加上系統主選單的選擇的設計。

此程式是在microsoft visual c++軟體平台上編譯的,具有整合開發環境,可提供編輯c語言,c++以及c++/cli等等程式語言。vc++整合了便利的除錯工具,特別是整合了微軟視窗程式設計(windows api)、三維動畫directx api,microsoft .net框架。

綜合以上的分析及開發平台特點,我決定採用結構體資料結構,將圖書的基本資訊設計為結構體資料,用來存放多種圖書的資訊,把圖書的名稱、編號、單價、作者、存在狀態,包括與之對應的借書人姓名、性別、學號作為結構體成員,然後將結構體資料儲存到檔案中,以便實現資訊之間的對應輸入輸出,以及儲存。

根據以上分析,可得以下圖書管理系統設計的框圖:

圖2-1 圖書管理系統設計框圖

主函式的設計主要是為呼叫選單函式,在選單函式中實現各個模組功能子函式的呼叫,同時為使用者提供乙個較為人性化的操作介面,能夠提示使用者進行正確的操作,在輸入出錯後可以有出錯提示。具體流程圖如圖:

圖 3-1 主函式操作流程圖

實現這部分功能是主要採用switch語句。首先用printf函式在執行介面上打出學籍管理系統和個功能模組及其對應的數字選項。然後輸入要進行的操作選項,利用switch語句進行判斷,而後進入到不同的功能函式中,進行不同的操作。

當然,要在進行完某一項操作要呼叫main函式,方便使用者進行線下一項的操作

在定義變數時採用結構體資料結構,圖書編號、儲存的數量是整型,圖書的**在此定義為整型(本也可以定義為float型),圖書名稱、圖書的作者是字元型,採用字元型陣列,但陣列長度一定要足夠,否則會出現資料丟失錯誤,考慮到圖書名稱、作者的字元長度,在此定義它們的長度要足夠。將涉及到的圖書和對應學生的基本資訊定義為結構體。

在將圖書的基本資訊輸入時,要將其儲存為book_用來存放所有輸入的圖書的資訊。這時就涉及到檔案的建立和寫入,選取較為簡單的fprintf函式作為寫入檔案的函式。首先定義乙個指向檔案的指標,再定義乙個整型變數,該整型變數count是人為輸入的,其目的是為了實現輸入書本數目的多少,利用迴圈輸入。

在迴圈輸入之前通過指標開啟建立乙個文字檔案,迴圈輸入時fprintf函式自動建立乙個文字檔案,實現向檔案中寫入count組資料的功能。迴圈結束後檔案中已經寫入要輸入的資訊。流程圖如下;

圖3-2 圖書資訊輸入模組操作流程圖

查詢模組的基本思想比較簡單,就是在已輸入的檔案資訊中讀取出原檔案資訊。我設計的具體查詢方法和操作分為兩方面:一方面是通過圖書編號進行查詢,另一方面是通過書名進行查詢。

第一方面,首先在查詢函式中定義檔案指標,指向要開啟的檔案,利用fscanf函式讀取檔案中資訊,如果檔案指標查到的圖書編號與使用者輸入的序號相同,就將該結構體中的圖書的基本資訊從檔案中輸出,顯示在螢幕上,從而實現基本資訊的查詢。

第二方面,首先在查詢函式中定義檔案指標,指向要開啟的檔案,利用fscanf函式讀取檔案中資訊,如果檔案指標查到的圖書名稱的長度與使用者輸入的書名相同(利用strcmp比較字串),就將該結構體中的該圖書的基本資訊從檔案中輸出,顯示在螢幕上,從而實現基本資訊的查詢。

在查詢模組成績查詢與基本資訊查詢的流程一樣,應此將二者作為一起。流程圖如下:

圖3-3 圖書資訊查詢模組操作流程圖

刪除模快的基本思想就是後面的資訊覆蓋前面的資訊,後面的資訊被0代替,從而實現刪除功能。具體實現方法就是選擇刪除功能,利用檔案指標和fscanf函式,將檔案內容讀出,顯示在螢幕上,讓使用者決定刪除哪乙個學生的基本資訊,然後輸入該學生的學號賦值給乙個整型變數,利用for迴圈在檔案中查詢與該變數值相同的學生,找到之後將結構體中一組空的資訊(全為0)賦值給當前結構體,從而將該學生資訊「刪除」。

同時要實現的是在存放成績的檔案中也要該同學的成績資訊刪除,原理相同,就是在找到該同學的資訊之後,保留迴圈變數的值,再對成績檔案裡該同學的進行相同覆蓋操作,即可實現同時在b檔案刪除資訊。流程圖如下;

圖3-4 刪除模組操作流程圖

辦理借書手續模組的基本思想是將檔案開啟,然後輸入並儲存對應該圖書的學生的相關資訊,同時,讓所存書本的數目減少借走的書的數目。在編寫函式時,首先要開啟圖書儲存所在的檔案,將圖書的資訊讀回到結構體中。然後輸入要借的圖書的序號,通過迴圈查詢結構體中圖書的編號,直到找到該圖書時,輸入該組對應的學生的資訊。

並且輸入要借的書本的數目,此時,讓所存書本的數目減少借走的書的數目,之後將這一組資訊全部儲存到檔案裡面,完成辦理借書手續。流程圖如下:

圖3-5 辦理借書手續操作流程圖

辦理借書手續模組的基本思想是將檔案開啟,改變並儲該檔案的資訊。在編寫函式時,首先要開啟圖書儲存所在的檔案,將圖書的資訊讀回到結構體中。然後輸入學生的學號,通過迴圈查詢結構體中對應學生的學號,直到找到對應該**書的資訊時,輸入該**書和學生的所有資訊,之後輸入要還的書本的數目,此時,讓所存書本的數目增加還書的數目。

如果存數等於總數,則顯示完全儲存。之後將這結構體資訊全部存回到檔案裡面,完成辦理還書手續。流程圖如下:

圖3-5 辦理還書手續操作流程圖

以上就是各模組的詳細設計,在主選單中選擇呼叫各個模組子的函式,從而實現不同功能。

存放檔案的位置可以有自己指定,如在開啟建立乙個新檔案時,指定存放到f://csheji時,則要在此位置才能找到檔案。此時,對應學生的資訊全部為0。

其輸入資訊與檔案寫入檔案的結果如下圖:

圖 4-1 圖書資訊輸入

檔案按內容寫入如圖:

圖 4-2 圖書資訊儲存到檔案

基本資訊查詢:

(1)按圖書序號查詢。過程及結果如圖4—3:(輸入圖書編號)

圖 4-3 按圖書序號查詢結果

(2)按圖書名稱查詢。過程及結果如圖4—4:(輸入圖書名稱)

圖 4-4 按圖書名稱查詢結果

圖 4-5 登出圖書的操作過程

檔案中被刪除效果:

圖 4-6 圖書登出的結果顯示

借閱過程和結果如圖:

圖 4-7 借閱圖書的操作示意圖

此時檔案中的儲存效果:(注意第二組資訊:所存書本數目減少了2本,並輸入了學生資訊)

圖 4-8 借閱圖書的操作結果示意圖

歸還過程和結果如圖:

圖 4-9 歸還圖書的操作過程示意圖

檔案中儲存的結果如圖:

圖 4-8 歸還圖書的操作結果示意圖

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

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

圖書管理系統課程設計

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

圖書管理系統課程設計

軟體工程課程設 計1 圖書管理系統可行性研究報告 1 1.1 引言 1 1.1.1 編寫目的 1 1.1.2 專案背景 2 1.1.3 參考資料 2 1.2 可行性研究的前提 2 1.2.1 要求 2 1.2.2 目標 3 1.2.3 評價尺度 3 2 系統需求分析 3 2.1 系統的目的 3 2....