《【数据结构】图书馆图书借阅信息管理系统》由会员分享,可在线阅读,更多相关《【数据结构】图书馆图书借阅信息管理系统(38页珍藏版)》请在金锄头文库上搜索。
1、东北大学信息科学与工程学院东北大学信息科学与工程学院数据结构课程设计报告数据结构课程设计报告题目 图书馆图书借阅信息管理系统课题组长 王逸飞课题组成员 王嘉琦 李聪专业名称 计算机科学与技术班级 计 1307指导教师 杨雷2015 年 1 月课程设计任务书课程设计任务书题目:题目:图书馆图书借阅信息管理系统问题描述:问题描述:对图书馆的图书借阅业务管理作一个简单的模拟。设计要求:设计要求:设计图书借阅信息管理的模拟程序。(1)采用顺序表或结构体链表存储结构。(2)实现图书的创建、分类、插入、删除、修改、借阅等管理功能。(3)实现图书的各种借阅查询和统计功能。(4)考虑采用优化的查询和排序算法。
2、(5)其它完善性功能。指导教师签字:指导教师签字:年年 月月 日日目录目录 1 1 课题概述课题概述.11.11.1 课题任务课题任务.11.21.2 课题原理课题原理.11.31.3 相关知识相关知识.32 2 需求分析需求分析42.12.1 课题调研课题调研.42.22.2 用户需求分析用户需求分析.53 3 方案设计方案设计73.13.1 总体功能设计总体功能设计73.23.2 数据结构设计数据结构设计83.33.3 函数原型设计函数原型设计.103.43.4 主算法设计主算法设计123.53.5 用户界面设计用户界面设计.144 4 方案实现方案实现.154.14.1 开发环境与工具开
3、发环境与工具.154.24.2 程序设计关键技术程序设计关键技术.164.34.3 个人设计实现(按组员分工)个人设计实现(按组员分工)4.3.14.3.1 王逸飞设计实现王逸飞设计实现.174.3.24.3.2 王嘉琦设计实现王嘉琦设计实现.174.3.34.3.3 李聪设计实现李聪设计实现.175 5 测试与调试测试与调试.235.15.1 个人测试(按组员分工)个人测试(按组员分工)235.1.15.1.1 王逸飞测试王逸飞测试.235.1.25.1.2 王嘉琦测试王嘉琦测试.235.1.25.1.2 李聪测试李聪测试235.25.2 组装与系统测试组装与系统测试335.35.3 系统运
4、行系统运行366 6 课题总结课题总结.396.16.1 课题评价课题评价396.26.2 团队协作团队协作.406.36.3 团队协作团队协作.416.46.4 个人设计小结(按组员分工)个人设计小结(按组员分工)426.4.16.4.1 王逸飞设计小结王逸飞设计小结.426.4.26.4.2 王嘉琦设计小结王嘉琦设计小结.426.4.36.4.3 李聪设计小结李聪设计小结.427 7 附录附录 A A 课题任务分工课题任务分工50A-1A-1 课题程序设计分工课题程序设计分工50A-2A-2 课题报告分工课题报告分工.51附录附录 B B 课题设计文档(光盘)课题设计文档(光盘)52B-1
5、B-1 课程设计报告(电子版)课程设计报告(电子版)52B-2B-2 源程序代码(源程序代码(*.H*.H,*.CPP*.CPP).52B-3B-3 工程与可执行文件工程与可执行文件.52B-4B-4 屏幕演示录像文件(可选)屏幕演示录像文件(可选).52附录附录 C C 用户操作手册(可选)用户操作手册(可选)53C.1C.1 运行环境说明运行环境说明.53C.2C.2 操作说明操作说明.541 1 课题概述课题概述1.1 课题任务【问题描述】 对图书馆的图书借阅业务管理作一个简单的模拟。 【设计要求】 设计图书借阅信息管理的模拟程序。 (1)采用顺序表或结构体链表存储结构。 (2)实现图书
6、的创建、分类、插入、删除、修改、借阅等管理功能。 (3)实现图书的各种借阅查询和统计功能。 (4)考虑采用优化的查询和排序算法。 (5)其它完善性功能。1.2 课题原理以结构体链表为存储结构,则抽象数据类型即为用结构体链表表示的线性 表,所以主要涉及到结构体链表的一些基本操作函数。1.3 相关知识结构体链表表示的线性表的定义,表示,C 语言实现,在对图书信息进行 排序的过程涉及到了结构体链表的排序技术。文件的读入与输出操作。2 需求分析需求分析2.1 课题调研对东北大学图书馆进行考察,并在网络上搜集相关资料。发现图书管理系 统主要面向两类人群,一是图书馆管理员,二是普通用户。而两类人群中,管
7、理员应该拥有对该系统的最高权限,全面掌握普通用户的借阅信息,全面掌握 所有图书的借阅信息。权限较低的用户只有图书信息一般查询权限,经过注册 的用户可有进一步对图书信息进行操作的权限。2.2 用户需求分析进过以上课题调研,主要有一下需要: (1)一般用户:对图书信息进行查询,显示;(2)注册用户:可以对图书信息进行查询,显示,借书,还书,导出个人 图书信息; (3)管理员:针对用户,可以进行用户信息增删,用户信息显示,用户信 息的查询;针对图书,可以进行图书信息的查询,图书信息的显示,图书信息 的录入,图书信息的删除,图书信息的排序。 故需要以下主要函数用户登录管理,登录信息确认,查询图书功能,
8、显示 图书信息功能,显示图书信息,借书功能,还书功能,个人图书管理功能,图 书信息录入,图书信息删除,图书信息修改以及一些界面跳转3 方案设计方案设计3.1 总体功能设计(1)实现一般用户对图书信息进行查询,显示功能; (2)实现注册用户对图书信息进行查询,显示,借书,还书,导出个人图 书信息功能; (3)实现管理员针对用户,可以进行用户信息增删,用户信息显示,用户 信息的查询;实现针对图书,可以进行图书信息的查询,图书信息的显示,图 书信息的录入,图书信息的删除,图书信息的排序。3.2 数据结构设计用户和管理员信息的节点:struct user char usernameMax_userna
9、me_size; char passwordMax_password_size; USER typedef struct user1 * UserPtr1;图书信息节点:typedef struct book char bookname65; char auther65; char chubanshe65; char profession65; int booknumber; int price;int onof; struct book * next; BOOK;我们将结构的创建,初始化,插入删除等基本操作都封装在主界面函数, 插入函数,注册函数等之中,后面还有详细的说明,在此不赘述。3.3
10、 函数原型设计int show_function1_window(UserPtr1);显示普通用户界面 int show_function2_window(UserPtr1);显示管理员用户界面 int show_guanyue_window();普通用户观阅函数 int show_zhuce_window(UserPtr1);显示注册界面 int show_queren_window(UserPtr1);显示确认界面 int jiemian();通用界面 int Jieshu(BookPtr);借书函数 int Huanshu(BookPtr);还书函数 int Insert(BookPtr
11、 *);增加图书函数 int Show(BookPtr);显示图书信息函数 int Serch(BookPtr a);查找函数 int numserch(BookPtr);编号查询 int adresserch(BookPtr);出版社查询 int autherserch(BookPtr);作者查询 int nameserch(BookPtr);书名查询 int onofserch(BookPtr);图书状态查询 int priceserch(BookPtr);价格查询 int Delete(BookPtr);删除图书信息 int Save(BookPtr);保存图书信息 int main1(
12、);主体函数3.4 主算法设计主 主主 主 主 主 主 主 主主 主 主 主主 主 1主主 主 2主 主 3主 主 4主 主 0主主主主主主主主主主 主主 主主 主主 主 主 主 主主 主 主 主 主123403.5 用户界面设计由于时间原因,低级版本在没有实现可视化界面,采用 DOS 来显示得到的 结果。4 方案实现方案实现4.1 开发环境与工具编程环境为 visual c+6.0。工具为 C 语言。4.2 程序设计关键技术结构体链表的创建,插入,删除,输出,排序;文件的读入读出,对文件 进行重新编辑。4.3 个人设计实现(按组员分小节)4.3.1 王逸飞、王嘉琦、李聪设计实现1.课题任务(
13、1)主函数函数界面 (2)管理员界面函数 (3)管理员主要功能实现 (4)登录确认函数 (5)图书信息录入 (6)图书信息删除 (7)图书信息显示 (8)图书信息修改 (9)图书信息排序 (10)图书信息保存 (11)普通用户观阅函数2.程序源代码#include #include #include #include #include #define Max_username_size 64+1 #define Max_password_size 64+1struct user1 char username65; char password65; USER1,dengl; /登陆用账户信息ty
14、pedef struct user1 * UserPtr1;typedef struct user2 char usernameMax_username_size;int sex;long int stunumber; USER2; /管理用账户信息 typedef USER2 * UserPtr2;typedef struct book char bookname65; char auther65; char chubanshe65; char profession65; int booknumber; int price; int onof; struct book * next; BOO
15、K; typedef BOOK * BookPtr;int show_function1_window(UserPtr1); int show_function2_window(UserPtr1); int show_zhuce_window(UserPtr1); int show_queren_window(UserPtr1); int jiemian(); int Jieshu(BookPtr); int Huanshu(BookPtr); int Huankuan(); int Insert(BookPtr *); int Show(BookPtr); int numserch(Book
16、Ptr); int adresserch(BookPtr); int autherserch(BookPtr); int nameserch(BookPtr); int adresserch(BookPtr); int onofserch(BookPtr); int priceserch(BookPtr); int Delete(BookPtr); int Save(BookPtr); void show_denglu_window(UserPtr1 b);int Serch(BookPtr a);BookPtr bookhead=NULL; int main1() int cmd0;system(“cls“);printf(“*