图书管理系统设计
1、需求分析
图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择。
2、总体设计
整个系统被设计为数据输入模块、数据查询模块、数据删除模块和数据修改模块。
3、详细设计
数据结构采用结构体,设计图书信息结构体:
Struct bookManageInfo
{
Char bookName[20];//图书名称
Char bookCode[20];//图书编号
Float price;//图书价格
Char author[10];//作者
Int state;//存在状态,0代表可以出借,1代表已经借出
Char borrowerName[10];//借书人姓名
Int sex;//借书人性别,0代表女,1代表男
Char stuNo[10];//借书人学号
}bookMInfo;
(1)数据输入模块
采用fwrite或fprintf把图书基本信息写入图书信息文件。
(2)数据查询模块
通过菜单选择查询方式,提供按书名查询和按作者名查询两种查询方式。采用基本查找算法即可。
(3)数据删除模块
通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己
实现:读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。
(4)数据修改模块
办理借书手续时,先要在文件中查找要借的书的存在状态,若可以出借,则允许借出,把借书人姓名、性别和学号添加到该书的记录中,并把存在状态改为已经借出;否则,显示“抱歉,该书已借出”。办理还书手续时,在文件中查找该书的记录,然后把存在状态改为允许出借,把借书人姓名、性别和学号删除。具体修改操作可以参考删除操作。