1、 C 语言课程设计 图书借阅管理系统 班 级: 学 号:121407124 姓 名: 指导老师: 成 绩: C 语言课程设计 第 1 页 共 25 页 一 任务描述 课题是图书借阅管理系统。采用结构体数组,用于院级资料室管理,实现简 单的图书借阅管理,可以进行借书,还书,查询,挂账,借出图书查询等操作。 具体分为 6 个模块: 1. 图书信息录入。 2. 借阅信息录入。 3. 还书记录。 4. 挂账处理。 5. 信息查询:分为按书名查询,按作者查询,按库存量查询和按被借阅信息查 询。 6. 借阅统计:分为按教师统计和按照部门统计。 二 系统概要设计 1.系统模块化设计 图书借阅管理系统 查 找
2、 借 阅 还 书 借 阅 统 计 图 书 信 息 录 入 挂 账 处 理 按 书 名 查 找 按 作 者 查 询 按 库 存 量 查 询 已 借 出 查 询 按 部 门 查 询 按 老 师 查 询 C 语言课程设计 第 2 页 共 25 页 查找:按照图书名称,作者,库存和被借阅信息查询。 借阅:输入所找的图书,输入书名和编号,若有库存,可以借阅,若没有库存, 则无法借阅。 还书:输入图书信息,进行还书。 借阅统计:按照借书人的姓名和单位,分别查找借阅信息。 挂账处理:输入当天日期,可以查找出在当天,借阅图书超过 90 天的借阅人姓 名。 三 系统详细设计 1. 数据结构设计 struct l
3、ist long num; char name20; char auther20; char publisher20; int quantity; booksN; struct list booksN用来存放新到的图书信息,包括编号、书名、作者、出版社和 库存。 struct time int year; int month; int day; ; struct time 结构体用来存放年月日信息 struct out long numb; C 语言课程设计 第 3 页 共 25 页 char name20; char publisher20; char teacher20; char sub
4、ject20; float price; struct time borrow; struct time returnb; outlistN; struct out outsideN结构体数组用来存放借出去的图书信息,包括编号,书名、 出版社、借阅老师、老师所属的部门、借阅日期和还书日期。其中,还书日期在 还书的时候补齐。 struct b char name20; char book1020; teacher; struct b teacher 用来保存借阅老师的姓名和所属部门,用与查找。 2. 模块接口设计 主函数入口进入,通过开关选择 1 到 6 个模块,7 为退出。 模块 1:入口 v
5、oid search(); 在这个函数里,通过开关选择 1 到 4 类选择,5 为退出,退出后返回主函数。 模块 2:入口 void borrow(); 在这个函数里,若有库存,输入要借阅的图书信息,没有库存无法借阅,然 后返回主函数。 模块 3:入口 void returnb(); 在这个函数里,输入所还的图书信息和还书日期,返回主函数。 模块 4:入口 void statistics(); 在这个函数里,通过开关选择 1 到 2 类搜索,3 为退出,退出后返回主函数。 模块 5:入口 void all(); 在这个函数里, 先输入新书种类的数量, 然后按次序, 分别输入图书的编号、 书名、
6、作者、出版社和库存。输入结束,按任意键回到主函数。 模块六:入口 void unpaid(); 在这个函数里,输入当天日期,显示出当天借阅超过 90 天的借阅人姓名, C 语言课程设计 第 4 页 共 25 页 按任意键返回。 3 流程图 主函数 查找 输入选择 x 3X 是否等于 5 开始 输入选择 x X 是否等于 7 Y N 开关选择 输入选择 x 结束 C 语言课程设计 第 5 页 共 25 页 借阅 还书 开始 结束 输入信息 库存加一 开始 输入图书 有库存 N Y 输入信息 结束 C 语言课程设计 第 6 页 共 25 页 借阅统计 图书信息录入 开始 输入书本数 i=1 输入第 i 本 i90 int cal(struct time x) int i,n,m=0; int months13=0,31,28,31,30,31,30,31,31,30,31,30,31; int monthsr13=0,31,29,31,30,31,30,3