图书借阅管理系统
图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。
系统设计要求
系统主要实现以下六个功能:
① 用户登录。系统用户分为管理员和学生。管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。
② 图书信息管理。图书信息包括:书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。图书信息管理包括:输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。
③ 学生信息管理。学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时间)。学生信息管理包括:输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。
④ 图书查询功能。图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。
⑤ 借书功能。借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。
⑥ 还书功能。还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。
系统总体设计
1. 功能模块图
用户登录
用户登录
管理模块
图书借阅管理系统
图书信息
管理模块
学生信息
管理模块
图书信息
查询模块
图书借阅
管理模块
系统功能模块图
管理员登录
学生登录
输入图书信息
保存图书信息
修改图书信息
增加图书信息
删除图书信息
输出图书信息
输入学生信息
保存学生信息
修改学生信息
增加学生信息
删除学生信息
输出学生信息
按书名查询
按作者查询
按图书分类查询
按出版社查询
按出版时间查询
借书管理
还书管理
2. 数据结构设计
系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:
typedef struct date //日期类型
{ short year; //年
short month; //月
short day; //日
}SDATE;
typedef struct library_card //借书卡类型
{ Short flag; //是否借阅标记
Char ISBN[20]; //所借图书的书号
SDATE bor_time; //借阅时间
}SLCARD;
typedef struct student //学生类型
{ char num[15]; //学号
char name[20]; //姓名
SLCARD card[5]; //借书卡(规定每人最多有5张)
}SSTUD;
typedef struct book //图书类型
{ char ISBN[20]; //书号
char bookname[40]; //书名
char author[20]; //作者
char publisher[30]; //出版社
char bookclass[20]; //图书分类
short total_num, stock_num; //总量,库存量
float price; //单价
SDATE publish_time; //出版时间
}SBOOK;
系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:
#define BOOKNUM 1000 // BOOKNUM为系统允许的最大图书数量
#define STUDNUM 100 // STUDNUM为系统允