中 北 大 学
课程设计说明书
学 院 、 系 :
专 业:
学 生 姓 名:
学 号:
设 计 题 目 :
图书管理系统
起 迄 日 期:
指 导 教 师:
日期: 2016 年 2 月 29 日
1 设计目的
图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
功能描述:
(1)新进图书基本信息的输入。
(2)图书基本信息的查询。
(3)对撤消图书信息的删除。
(4)为借书人办理注册。
(5)办理借书手续。
(6)办理还书手续
要求:使用二进制文件方式存储数据,系统以菜单方式工作
2 任务概述
经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块
对应一个函数,他们的功能分别是:图书信息输入函数 input(),借阅图书函数(borrow),增加删除
图书函数(adddelet),图书查询函数(search),以及归还图书信息函数(giveback)。在这些函数当中,
这四个函数的实现严格按照题目的要求。
2.1 图书信息输入函数 input():主要功能是从键盘输入图书信息并将其写入文件中,作为图书馆的书
库,以便对下面的函数进行运行,此函数是基础。
2.2 图书借阅函数 borrow(): 主要借阅图书的功能和录入学生应该还书的时间。
2.3 图书归还函数 giveback(): 主要实现借阅图书后,归还图书的功能,并把应该还书的时间和实际还书
的时行比较过期时输出学生的信息,也是该程序的的一个重点。
2.4 增加删除图书函数 adddelet(): 实现的功能是实现对图书的删除;
2.5 图书查询函数 search(): 允许按照图书编号,书名,作者,出版社进行查询,并将查询信息输出;
2.6 退出函数 该函数主要实现退出运行界面的功能.
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功
能,并根据需要终止程序的执行。
每一个图书记录都包含:图书编号,名称,出版社,作者,现有数量和总量在程序当中,将图书记录类型定
义为结构体类型,并把它写入 d:\\liuyan.txt 中,其他函数每次对图书记录的访问,其数据来源都
是 d:\\liuyan.txt 文件,这样做不但可以保证图书数据的一致性,而且可以对图书数据进行永久保
存,保证每次运行程序都可以采用原来的数据。
3 模块划分
3.1 功能模块设计
根据分析整个系统主要划分为 4 个功能模块,分别执行要求中的功能。该系统需要有添加,
删除,查询,修改,累加,循环显示主菜单,保存信息功能,能将会员卡进行注销,利用显示函 数
将会员卡内所有信息显示。要求有循环显示菜单工能。功能模块图如图 1 所示。
(1)输入读者
输入相关读者信息至内存中;
(2) 输入书籍
输入书籍号,对已存的书籍信息进行查询;
(3) 书籍管理模块
输入相应代码,对相关信息进行查询;
(4) 退出管理模块
主菜单中输入 0 退出系统登录;
管理员版图书管理系统
新
书
入
库
查
询
借
书
登
记
书
籍
数
量
书
籍
信
息
修
改
还
书
管
理
书
籍
信
息
查
询
图 2 管理员版图书管理系统流程图
退
出
查
询
按
照
读
者
姓
名
查
询
按
照
读
者
编
号
查
询
按
照
图
书
作
者
查
询
按
照
图
书
名
查
询
按
照
图
书
编
号
查
询
图书查询系统主界面
图 3 图书查询主界面流程图
3.2 系统设计方案
设计一个总菜单,1 登录信息,2 查询管理,3 书籍管理系统,4 退出系统。基本功能的实现都
将体现在这几个菜单选项中。
struct reader *next;
}RD;
BK *h_book;
RD *h_reader;
void Login(); /*登陆*/
int Menu(); /*主菜单*/
void Menu_select(); /*主菜单选择函数*/
void Init(); /*初始化*/
void Init_reader(); /*初始化读者*/
void Init_book(); /*初始化图书*/
void Insert_New_Book(); /*新书入库*/
int Find(); /*查找菜单*/
void Find_Select(); /*查找菜单选择函数*/
void Find_Reader(); /*查找读者信息*/
void Find_Book(); /*查找图书信息*/
void Print_reader(); /*打印读者信息*/
void Print_book(); /*打印图书信息*/
void Borrow_Book(); /*借书函数*/
void Return_Book(); /*还书函数*/
void Save(); /*保存信息*/
void Save_Reader(); /*保存读者信息*/
void Save_Book(); /*保存图书信息*/
void Load(); /*加载信息*/
void Load_Reader(); /*加载读者信息*/
void Load_Book(); /*加载图书信息*/
void Login()/*登陆*/
{
system("cls");
printf("\n\n\n\t\t\t 欢迎登陆本系统\n");
printf("\n\n\t\t 系统版权所有\n\n\n\n\n\n\n");
printf("\n\n\n\t\t 按 任 意 键 进 入 系 统 ...");
getchar(); system("cls");
}
int Menu() /*主菜单*/
{ int sn;
printf("\n\t\t 图书管理系统主菜单\n");
printf("=================================================\n");
printf("*\t0----退出系统 *\n");
printf("*\t1----新书入库 *\n");
printf("*\t2---- 查询 *\n");
printf("*\t3----借书登记 *\n");
printf("*\t4----还书管理 *\n");
printf("=================================================\n");
printf("请选择相应代码:");
4 主要函数说明及其 N-S 图
4.1 主要函数
1)图书信息输入函数 input():主要功能是从键盘输入图书信息并将其写入文件中,作为图书馆的书
库,以便对下面的函数进行运行,此函数是基础。
2)图书借阅函数 borrow(): 主要借阅图书的功能和录入学生应该还书的时间。
3)图书归还函数 giveback(): 主要实现借阅图书后,归还图书的功能,并把应该还书的时间和实际
还书的时行比较过期时输出学生的信息,也是该程序的的一个重点.
4)增加删除图书函数 adddelet(): 实现的功能是实现对图书的删除;
5) 图书查询函数 允许按照图书编号,书名,作者,出版社进行查询,并将查询信息输出;
6)退出函数 该函数主要实现退出运行界面的功能.
4.2 详细设计流程图
登录模块图 4,图 5