C語言課設之圖書管理系統

2021-03-04 09:34:37 字數 3714 閱讀 8840

c語言課程設計

目錄1、需求分析;

2、系統總框圖;

3、每個模組的設計分析;

4、列出所有定義的函式及說明;

5、舉例說明1、2個比較有特點的演算法;

6、資料分析。

7、存在的問題與不足及對策;

8、使用說明(操作手冊);

9、學習心得。

圖書管理系統設計

一.題目要求:

圖書管理資訊包括:圖書名稱、圖書編號、單價、作者、存在狀態、借書人姓名、性別、學號等。

程式還有以下功能:新近圖書基本資訊的輸入; 圖書基本資訊的查詢;對撤銷圖書資訊的刪除;辦理借書手續;辦理還書手續。

二.系統總框圖

三.每個模組的設計分析和所有定義的函式及說明

1、資料結構

//圖書的資料結構:

struct book

book[1000]; //定義乙個比較大的1000本書

//會員卡的資料型別

struct car

car[1000]; //定義一千個會員

//定義學生型別,用於存放借出的書籍

struct student

student[1000]; //定義一千個學生

2、main() 主函式模組

主函式是程式入口,採用模組化設計。首先在主程式中列印歡迎介面,定義一些必要變數,作一無限迴圈程式,迴圈體為一開關語句,該語句設定乙個斷點,其條件值是通過呼叫主選單函式得到的返回值,根據該值,呼叫相應的功能函式,同時設定乙個斷點,當返回值為一定條件時結束程式。

3、chabook() 查詢圖書函式模組

在這個模組中又分為兩個子模組:按書名查詢模組和按作者查詢。

1) 按書名查詢模組:在這個子函式裡使用指向檔案的指標變數,定義指標變數fp,fp指向檔名為「book.txt」的首位址,如果不存在,則自動建立。

從鍵盤輸入書名,依次移動指標位址,直到找到輸入的檔名,找到後顯示圖書資訊,再判斷狀態值是否為1,真的話就顯示「此書現在無人借閱」,假就顯示「這本書已經有人借出!」,關閉檔案,然後按任意鍵返回。如果找到最後乙個位址仍沒找到,就顯示「沒有你要查詢的書籍!

」。關閉檔案。

2) 按作者查詢,原理同按書名查詢。

4、lendbook() 借書函式模組

定義檔案指標變數fp,fp2。fp指向「car.txt(會員卡記錄檔案)」首位址,從鍵盤輸入卡號,與檔案中儲存的依次比較,如果一致,就找到這個位址,並賦給變數i。

關閉這個檔案。開始借書,輸入要借的書,這時指標位址指向「book.txt」,以唯讀的方式開啟,依次找與輸入書名一致的圖書,如果找到,又分兩種情況:

狀態值為1,則把書借出,把此書的狀態值改為0.否則,顯示「書已被借出」。如果找不到,顯示「不存在這樣的書」,關閉檔案。

返回。5、huanbook() 還書函式模組

同樣定義兩個指標變數:fp,fp2。先從鍵盤輸入要還圖書者會員卡卡號,然後是還書人名字,與檔案中的相對照,都一致就進入還書過程,刪除掉所還圖書的借書記錄,將還的書的原來狀態設為無人借閱的。

如果沒找到圖書就顯示「你沒有借這樣的書,任意鍵返回...」,如果沒找到所輸卡號,則顯示「沒這樣的卡,和管理員聯絡,按任意鍵返回...」。

還書過程結束。

6、lendcount() 借書統計函式模組

定義指向檔案的指標變數fp,並使fp指向「record.txt」,以只寫的方式開啟檔案,從首位址讀取,找到借書資訊,就把統計借出書個數的變數i的值加1。並顯示借出的每一本書的資訊。

7、addcar() 增加會員卡函式模組

定義指向檔案的指標變數fp,並使fp指向「car.txt」的首位址,以追加的方式開啟檔案「car.txt」,從鍵盤輸入會員資訊,並寫入檔案。

8、delcar() 刪除會員卡函式模組

定義指向檔案的指標變數fp,和fp2。分別以寫入的方式開啟「car.txt」,和「bookl.txt」。從鍵盤輸入要刪除的會員卡卡號,然後把有關資訊刪除。

9、carcount() 會員統計函式模組

定義指向檔案的指標變數fp,使其指向「car.txt」,以唯讀的方式開啟,依次讀取裡面資料,把會員個數賦給表示會員個數的變數n,並輸出每個會員資訊。

10、addbook() 增加圖書函式模組

定義指向檔案的指標變數fp,使其指向「book.txt」

並以追加的方式開啟檔案,依次從鍵盤讀入圖書的各個資訊,寫入檔案,然後關閉檔案。

11、delbook() 刪除圖書函式模組

定義兩個檔案指標,fp,fp2.從鍵盤輸入圖書名字。然後在檔案中查詢,找到後刪除掉有關記錄,找不到則報錯

12、changebook() 修改圖書資訊函式模組

定義兩個檔案指標,fp,fp2.從鍵盤輸入要修改的圖書名。然後從檔案中找一致的,找到後詢問修改哪一部分。在進入修改。完成後關閉檔案。

13、bookcount() 圖書統計函式模組

定義檔案指標fp,並使之指向「book.txt」依次從裡面讀取資料,並輸出。

14、end() 結束函式模組

定義退出介面。

四.舉例說明2個比較有特點的演算法

演算法一:查詢圖書函式

在這個演算法的特點在於:模組中又分為兩個子模組:按書名查詢模組和按作者查詢,以滿足讀者的不同需求。

11、演算法二:借書統計函式模

特點在於:能夠統計借出的書的資訊。定義指向檔案的指標變數fp,並使fp指向「record.

txt」,以只寫的方式開啟檔案,從首位址讀取,找到借書資訊,就把統計借出書個數的變數i的值加1。並顯示借出的每一本書的資訊。

五:資料分析

#include

#include

#include

#include

#include

#define stack_init_size 10

#define ok 1

#define true 1

#define error 0

/*定義學生型別,用於存放借出的書籍*/

struct student student[1000];

/*定義書的型別*/

struct book

book[1000];

/*借書卡的資料型別*/

struct car

car[1000];

查詢圖書資訊模組

//////(1)按書名查詢

findbook()

else

fclose(fp);

return 0;

}} printf("沒有你要查詢的書籍!\n");

fclose(fp);

return 0;

}2)按作者查詢

findbook1()

{ file *fp;

char bookcreat[10];

int i;

fp=fopen("book.txt","r");

printf("請輸入你要查詢的作者名:\n");

scanf("%s",bookcreat);

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

{ if(strcmp(bookcreat,book[i].bookcreat)==0)

{if(book[i].turefalse==1)

{printf(" 書號書名作者 \n %d %s %s \n",book[i].booknum,book[i].bookname,book[i].bookcreat);

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

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

軟體工程課設圖書管理系統

軟體工程概論實驗手冊 姓名學號班級2013.5.18 第一部分引言和概述 1.1 專案背景 圖書館是高等院校的重要組成部門,是教師和學生獲取知識的重要場所,由於圖書館主要從事大量的圖書資料的儲存和流通,所以一直以來,計算機在圖書館的圖書管理中得到了廣泛的應用。目前,借書情況日益增長,本系統就是要為達...

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

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