圖書管理系統程式設計報告書

2021-03-04 07:44:57 字數 3249 閱讀 6634

一、問題描述

1、 圖書的新增:可以分別進行圖書(如書名、編號、作者、書的**等)資訊與會員(卡號、所借書的名稱等)資料的錄入。

2、 圖書查詢:可以將圖書的資訊(書名、編號、作者、書的**)輸出到螢幕上。

3、 操作:使用者可以進行借書、還書、以圖書名進行查詢、修改使用者資料,新增會員等功能。

4、 儲存:可以將錄入的資訊儲存進文件。

5、 匯入:可以從文件中匯出圖書資訊與使用者資訊供程式用。

6、 退出:退出程式。

二、需求分析

該系統需要設計如下功能:

1. 圖書資訊管理

2. 圖書的錄入

3. 圖書的查詢

4. 會員的新增

5. 會員借書

6. 會員還書

7. 退出

三、系統概述設計

自然語言演算法描述

1新增書資訊

2查詢書資訊

系統的管理和操作 3新增會員卡(新增會員)

4會員借書

5會員還書

函式及其呼叫

子函式的例表:

insetbook圖書資訊輸入函式

searchbook查詢書資訊

addcards新增會員卡(新增會員)

lendbook會員借書

backbook還書

四、系統詳細設計

圖書資訊:定義乙個book的結構體

使用者資訊:定義乙個會員numbers和乙個會員卡cards的結構體

設計思想

先實現主選單,這樣就有了乙個總體的方向.然後主選單用乙個switch(a)語句實現,這樣在main()只要對這個函式呼叫即可,使程式整體顯得有規劃.然後根據主選單的內容,分別定義不同的函式.

然後要做的就是對這些函式的具體實現.程式用到的兩載體主要是三個結構體:struct book{} struct numbers{} struct cards{}通過相應函式實現numbers,cards對book的一些操作.

能過資訊管理函式,實現對圖書資訊與會員資訊的輸入功能.然後通過儲存的函式將相應資料儲存在」 data.dat」和card.

txt 「record.txt」三個檔案中.而瀏覽資訊的函式主要是對這些資訊的輸出.

而操作主要包括了:借書,還書等函式然而為了方便會員在借書時能記得圖書的相關資訊,我們在操作中加入了以書名瀏覽函式.然後如果已經存在了」 data.

dat」 和card.txt 「record.txt兩個檔案,會員就不必再次輸入圖書資訊與使用者資訊,這樣使程式的操作簡單多了,然後為了會員在使用程式時方便改**書與會員的相關資訊

函式的相互關係與呼叫

由main()通過 switch(a)語句來實現函式呼叫

五、系統測試

程式設計出現的問題

1. 首先是由於缺乏整體的規劃,使在寫**的過程式中整體看起來很混亂,常常實現了這個函式才發現還需要另乙個函式,這樣寫乙個算乙個的方法使在寫這個程式的時候走了許多彎路.後來由於有了個整體的規劃,寫出了乙個初步的演算法,使得原來複雜的問題變得簡單起來.

同時也要注意函式的命名,好的命名有利於增強程式的可讀性,還有**的書寫規範.要適當的學會使自己的程式**整潔好看.

2. 設計結構體陣列時沒有注意到結構體陣列大小,使得除錯出現了呼叫記憶體錯誤的問題。

3. 程式大部分都是由c語言實現的.由於我對c語言檔案及結構體部分不是很熟悉,讓我在寫如檔案儲存和匯入函式的時候費了許多時間.

然而由於若全用c語言寫**太長,所以如有些簡單的操作如:清屏,延緩就用了windows.h中的相關函式system(「cls」);system(「pause」;)使程式簡單化.

4. 在使用輸出語句時,我引用了c++中的語法,這樣使得輸出語句更易操作,介面更加美觀。

程式效果

insetbook();實現效果很好

searchbook();開始出現記憶體呼叫錯誤,經除錯後得到解決 addcards() ; 實現效果很好

lendbook() ; 實現效果時好時壞

backbook() ; 效果一般。

雖然函式能達到預定效果,但還存在許多不足。

六、 經驗總結

通過這次「圖書管理系統」課程設計,我學到了課本以外的東西,這讓我明白,僅僅能讀懂程式永遠是不夠的,必須的動手寫,要不然只會眼高手低。我們要從實踐中才能學到更多的東西。而實踐又要以理論為基礎,要是c語言知識不紮實,做出的程式是漏洞百出。

所以,我們要將理論與實踐結合起來,把我們在課堂上學到的東西運用在實踐中,這樣才能提高我們程式設計能力。

首先是對c語言的掌握。我跟我的搭檔一起完成了圖書管理系統的設計,毫無疑問,要寫好乙個這麼大的系統,不僅需要分析所需模組功能的能力,更重要的是要將之轉化為c語言源**,用c語言翻譯出來,這就要求我們不得不一遍又一遍地溫習書上的的內容,本來那些遺忘的知識,在我們不斷的看書與實踐中又一點一點地清晰起來,並且毫無疑問,我們對這些知識的理解又上公升了乙個層次。

七、參考文獻

[1]譚浩強.c語言教程.北京:清華大學出版社,2002,4

[2]嚴蔚敏.資料結構.北京:清華大學出版社,2009,7

[3]網路」關於怎麼獲得系統當前時間」,」關於檔案的輸入與輸出」「部分源**「等。

#include

#include

#include

#include

#include

void lendbook();

#define n 10

typedef struct //圖書結構體

book;

typedef struct /*定義借書人會員,用於存放借出的書籍*/

numbers;

typedef struct /*會員卡的資料型別*/

cards;

book bk[1000];

numbers number[1000] ;

cards card[1000];

void write_file() //寫檔案

}void insetbook()

void searchbook()

{ printf("\t\t圖書查詢t\t\n");

cout<<"請輸入你要查詢的書籍名"< file *fp;

char bookname[20];

int i;

fp=fopen("c:data.dat","r");

// cout<<"請輸入你要查詢的書籍";

scanf("%s",bookname);

for(i=0;fread(&bk[i],sizeof(book),1,fp)!=1;i++)

圖書管理系統測試報告書

軟體測試報告書 軟體名稱 圖書管理系統 測試人員 苗玉丹 測試日期 2011年6月6號 目錄1 簡介 4 1.1 編寫目的 4 1.2 專案背景 4 1.3 系統簡介 4 1.4 術語和縮寫詞 4 1.5 參考資料 4 2 測試概要 4 2.1 測試用例設計 5 2.2 測試環境與配置 5 2.3 ...

c語言程式設計報告圖書管理系統

中國地質大學 本科生課程 封面 課程名稱 c語言課程設計 教師姓名樊媛媛 本科生姓名 本科生學 本科生專業 所在院系 類別日期 注 1 無評閱人簽名成績無效 2 必須用鋼筆或原子筆批閱,用鉛筆閱卷無效 3 如有平時成績,必須在上面評分表中標出,並計算入總成績。課程設計評語 2 目錄 3 1 課程 題...

物件導向程式設計圖書管理系統

物件導向程式設計 c 專案名稱 圖書管理系統設計 學校 學院 班級 姓名學號 同組成員者 完成時間 2010年12月28日 成績 指導教師簽名 時間 一 問題分析與功能定義 二十一世紀是資訊的社會,資訊作為社會最主要的資源,將成為戰略資源引起人們廣泛的關注。如何獲取資訊?圖書是我們最好的獲取資訊的方...