C语言图书管理系统
- 格式:doc
- 大小:162.50 KB
- 文档页数:17
《程序设计与算法综合实习》课程设计报告
题 目:
班 级: 软件学院软件工程R6班
学生学号:
学生姓名:
指导老师:
提交时间: 2014年5月2号
成 绩:
华南农业大学 信息学院 图书馆管理系统
一、需求分析
1、系统概述:
(1)题目概述:
设计一个图书登记管理程序,该程序具有以下功能:
a.录入某本图书的信息(图书信息包括的内容:ISBN号、书名、作者、出版社、出版日期、价格)
b.给定图书ISBN编号,显示该图书信息;
c.给定图书ISBN编号,修改该图书信息;
d.给定图书ISBN编号,删除该图书信息;
e.给定某个字符串,查找并显示所有书名中包括该字符串的图书的信息;
f.给定出版社名称,查找并显示该出版社的所有图书的信息;
g.统计功能:提供一些统计各类信息的功能。
(2)题目要求:
a.按照分析、设计、编码、调试和测试过程完成应用程序;
b.学习并使用流程图等工具,并在撰写报告中使用;
c.程序的各项功能在程序运行时,以菜单方式选择并执行;
d.要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式及结束方式等;
e.所有的信息存储在一个文件或多个中,并实现文件读写操作。
f.记录添加删除操作时,先从文件载入数据,用链表存放,批量操作完后,数据从链表写入文件;
g.查看数据时,先从文件载入数据,用数组存放,并排序,使用二次查找加速查找过程,一次载入允话使用者多次查看数据。
(3)系统功能:
管理员功能:(1)图书管理: a.增加图书
b.删除图书
c.修改图书
d.查找图书
(2).用户管理: a.增加用户
b.删除用户
c.查找用户
(3)修改管理员密码
普通用户功能:(1)查找图书: a.图书借阅
b.图书归还
c.查询图书信息
(2)修改用户密码
2、系统运行环境:
(1)硬件环境: CPU:奔腾3以上
内存:1G以上
显卡:集成显卡
硬盘:10M
(2)软件环境: 操作系统:windows 7/8
DOS系统支持中文输出
3、功能需求描述:
(1)管理员功能:在图书管理功能中,管理员能够将新购的图书信息录进系统中,也能将已丢失的图书的信息从系统中删除,还能将录入有错误信息的图书进行信息修改;在查找图书功能上,显示图书信息时,管理员查找出现的图书信息能显示该图书的借阅者情况。若被借阅,便会显示出借阅者的用户名;若是没被借阅,则显示“无”。在用户管理功能中,管理员能够添加新的普通用户并且为该用户设置初始密码。还能删除普通用户,查看普通用户。最后,就是剩下修改管理员密码这个功能。第一次进入该系统时,管理员的初始密码是“123456”,管理员第一次进去后必须进行修改。避免被非管理员人员登录后进行操作,造成灾难性的损失。修改密码成功后,密码经过加密程序被写进文件里面。避免被他人打开该文件直接找到密码。
(2)普通用户功能:普通用户能查找图书,并且在查找过程中后能够对图书进行借阅或者事归还。借阅和归还都必须进行信息的登记和消除。这是管理员所不具备的功能。最后还有一个修改自己用户名密码的功能,这起到信息保密的作用,避免有人使用其他人的账号进行借书。 二、总体设计
1、总体开发思想:
(1)主要的数据结构:两个单链表结构,其中一个单链表存放图书信息,另一个存放普通用户信息。
数据域里面存放图书的ISBN码;书名;作者;出版社;出版时间;价格;状态;
借出者信息;书本类型
指针域
Head
null
数据域
图书信息链表
(2)数据存贮方式:顺序存储。每当数据发生变动时,都将文件里面的数据清空,再重新把链表里面的数据写进文件中。
......
(3)使用的语言: C语言。
数据域里面存放普通用户的账号;姓名以及用户所在学院专业班级。
指针域
Head
null
数据域
普通用户链表 2、系统模块结构图:
3、功能设计: 用户选择 管理员
普通用户 增加图书
删除图书
查找图书
修改图书
修改密码
用户管理
修改密码
查找图书 增加用户
删除用户
查找用户
图书借阅
图书归还
查看图书信息 按ISBN码查按书名查
按出版社查
退出系统 1.选择管理员登陆程序框图
2.增加图书程序框图
管理员功能界面
增加图书
输入图书信息
图书信息是否正确
否
修改图书 是 图书入库 是否继续添加图书 是 否 输入管理员密码
密码是否正确
管理员功能界面 是 用户选择
是否继续输入密码 否 是 否 3删除图书程序框图
4修改图书程序框图
管理员功能界面
修改图书
输入图书信息
是否继续修改图书 是 否
修改完毕 管理员功能界面
删除图书
输入图书信息
是否删除该图书
否
什么也不做 是 删除图书 是否继续删除图书 是 否 5.查找图书程序框图
6.修改密码程序框图(管理员和普通用户一样)
功能界面
修改密码
输入原密码,新密码
原密码是否正确并且新密码规范
修改成功 是 是否继续进行密码修改 否 是
否 管理员功能界面
查找图书
选择条件输入图书信息
是否继续查找图书 是 否
显示信息 7.添加新用户
8.删除用户
用户管理界面
删除用户
输入用户信息
是否删除该新用户
否 是 用户删除成功 是否继续删除用户 是 否 用户管理界面
增加用户
输入用户信息
是否添加该新用户
否 是 用户添加成功 是否继续添加用户 是 否 9.查找用户
用户管理界面
查找用户
选择条件输入用户信息
是否继续查找用户 是 否
显示信息
10.借书,还书程序框图
普通用户查找图书
查找图书
该图书是否存在 否
是 是否继续查找图书 是 否
借书 还书 什么都不做
输入用户名和用户密码
用户名和用户密码是否都正确 否
借书 / 还书成功 是
三、功能实现
1、主要函数:函数名及参数含义;
void read_txt ( ); //对文件进行读操作,把图书信息读取到链表中;
int write_txt ( ); //对文件进行写操作,把链表中图书信息写进文件,成功则返回1;失败则返回0;
vcoid add_book ( );//添加图书,申请一个链表结点用以添加图书;
void book_ISBN (linklist p);//p为要操作图书所在的结点,将p结点数据域所存的ISBN码按顺序插入
图书链表中;
void delete_book( );//删除图书;
void delete_ISBN( linklist p);//p为指定要删除图书所在的结点,将结点p删除;
void alter_book(Linklist p,int bookkey);//修改图书;p为所要修改的图书所在的结点;bookkey为判断功
能;若是在添加图书时图书信息错误进行修改,则执行bookkey的功
能;若是在修改图书功能进入进行修改,则不执行bookk功能;
void seek( );//查找图书总菜单;
void seek_ISBN( );//按ISBN码查找(二分查找);
void seek_name( );//按书名查找(管理员页面进入时使用模糊查找,普通用户则是精确查找);
void seek_press( );//按出版社找(遍历同个出版社的所有图书);
void manage_user( );//用户管理;
void read_user_txt( );// 对文件进行读操作,把普通用户的信息读取到链表中;
int write_user_txt( );//对文件进行写操作,把链表中普通用户的信息写进文件,成功则返回1;失败则
返回0;
void add_user( );//添加用户,申请一个链表结点用以添加新图书;
void delete_user( );//删除用户;
void seek_user( );//查找用户;
void read_password( );//将文件中加密的管理员密码解密并且放到字符数组里面;
void enter_password( );//输入密码,并使密码在屏幕显示成星号;
int lend_return_book(char s[ ]);//s[ ]为图书的ISBN码;图书借阅和归还,借阅成功或者归还成功返回1,失败则返回0;
int user_judge(char ss [ ]);ss[ ]为普通用户账号;图书借阅和归还时对普通用户身份进行鉴别,用户正确
则返回1,不正确并且返回放弃继续输入则返回0;