简易图书管理系统设计文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易图书管理系统设计文档

————————————————————————————————作者:————————————————————————————————日期:

简易图书管理系统

一、功能描述

该系统运行后主菜单界面如下:

系统可实现图书查询、借书、还书、书目浏览、图书管理等功能。在主菜单状态下输入“Q”或“q”,则系统运行结束。

一、主要数据结构:

1、图书类型:类数组

Class Book{

char Name[80]; //书名

char Auther[80]; //作者

int amount; //该书在库数量

};

Book booklist[20]; //假定不会超过20种图书

2、书库文件:用文本文件保存书目信息

其中第一个数据为一个整数,是图书的种类数。此后的数据为书目信息,每本书包括书名、作者、在库数量。

程序运行之前可在工程文件夹下用记事本建立一个文本文件,其中写入数据0。以此作为书库文件的初始状态。

二、主要功能模块

1、查询模块

提示输入待查询书名,搜索到匹配项后在屏幕上显示书名、作者、该书在库数量(有几本书);若库中无匹配书目,则屏幕提示“书库无此书!”。查寻范围为从文件中读出的结构体数组。

2、浏览模块

在屏幕上显示目前书库信息,即结构体数组信息。若库中读出的图书种类数为0,说明还没有图书,此时提示“库中无图书!”。

3、借书模块

从库中读出信息,如果图书种类数=0,表明库中无图书,则提示“库中无图书,暂不能借阅!”,否则提示输入待借图书名,如未搜索到匹配项,提示“库中无此书!”,如果搜索到的图书在库数量已经为0,则提示“抱歉,该书全部借出!”,否则提示“借阅成功”,同时将该书在库数量-1。并将图书信息写入文件。

4、还书模块

从库中读出信息,如果图书种类数=0,库中无图书,提示“库中无图书,暂不能还书!”,否则提示输入待还书名,如未搜索到匹配项提示“库中无此书!”,否则提示“还书成功”,同时该书在库数量+1。并将信息写入文件。

5、管理模块

该模块可向库中添加图书。有权限者方可进入管理,运行后首先提示输入口令,可以有三次输入机会,若口令不对提示“抱歉,无权限,按回车返回主菜单”。否则可以向书库中添加图书。系统提示“输入添加图书的书名、作者、在库数量:”,可一次添加多种图书。管理模块的口令自行预定。修改信息后写入文件。

二、算法提示:

1、数据类型及变量定义

Class Book{//表示图书的类

char Name[80]; //书名

char Auther[80]; //作者

int amount; //该书在库数量

};

Book booklist[20]; //结构体数组,假定不会超过20种图书

书库图书信息:文本文件建立,初始可用记事本建立,只有一个数据0,表示空库。

2、主函数模块算法

void main(){

for(; ;){ //系统连续工作至退出为止

//调用显示主菜单模块;

//提取输入的选择字符ch;

//根据字符ch值选择调用查询模块、或借阅模块、或还书模块、或

浏览//模块、或管理模块、或退出

if(选择退出) 退出循环;

}

}

3、查询模块算法

void SearchBook(){

//将书库信息读入数组

for(;;){ //可连续查询多次

//输入待查询书名bookName;

//在数组中查找匹配的书名

//如果找到输出该书所有信息,否则cout<

cout<<"继续查询吗?按n键退出, 回车键继续查询:";

cin.get(ch); //吸收以前输入项的回车符

cin.get(ch);

if(ch=='n'||ch=='N') 退出循环

}

MainMenu(); //显示主菜单

}

4、借阅模块算法

void BorrowBook(){

//读出书库信息

if(是空库) cout<<"库中无图书,暂不能借阅!";

else{ //库中有书

for(;;){ //可连续重复借阅

输入待借书名bookName;

//在数组中查找匹配项

if(未找到) cout<< "库中无此书!";

else if(在库数量==0) cout<<"抱歉,该书全部借出.";

else{

cout<<"借阅成功!"<

//在库数量--

}

cout<<"继续借阅吗?按n键退出, 回车键继续借阅:";

cin.get(ch);

cin.get(ch);

if(ch=='n'||ch=='N')退出循环;

}

//书的种类及书目数组写入文件

MainMenu();

}

}

5、还书模块算法

void ReturnBook(){

//读出书库信息

for(;;){ //可重复还书

//输入待还书名bookName;

//查找匹配项

if(未找到) cout<

else{

cout<<"还书成功!";

//该书在库数量++

}

cout<<"继续借阅吗?按n键退出, 回车键继续借阅:";

cin.get(ch);

相关文档
最新文档