简易图书管理系统设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);