- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告
题目: 图书管理基本业务模拟
院 系: 信息工程学院
专业班级: 计091
学生姓名: 王晨宇 张晴
马勋 叶旭东
学 号: 090671 090678 090683 090684
指导教师: 沙 芸
2011年6月29日
问题分析
图书馆基本业务模拟包含多方面的操作,其中本程序描述的是图书馆的新书入库、读者注册、图书馆借阅、归还、信息查询(含书籍信息查询和读者信息查询)等功能。
新书入库功能:
新到书籍入库包含几方面的操作:从界面输入书籍的编号(0~999999的长整型)、书名(字符串类型)、该书作者名(字符串类型)、该书的现存量(整型)、该书的总量(整型)。新书入库只有管理员可以进行操作。
读者注册功能
没有账号和密码读者和管理员都不能登录系统,本系统默认第一个注册系统的是系统管理员,借阅号为1000,权限是1,并输入自己基本信息,默认可借本数为10,并将所借书信息区全部置零。不是第一个注册的读者,借阅号从1000往后顺延,自己设置密码,权限为0.,其余信息与管理员相同,但是登陆之后的界面,管理员可以看到“入库”菜单选项,普通读者不能看到该选项。
借阅功能
书籍借阅主要涉及存书库和读者信息库双方的更新。用户首先登陆系统,查询该书是否存在,该书的剩余数量是否大于零,最后查询该读者是否已经借满书籍。若以上条件都满足,则将该书编号存入该读者的借阅信息区,将该读者的可借书数量减一,该存书的可借数量减一。
归还功能
读者登录后按书号来归还所借书籍,若书号正确并且确认归还该书籍,则从读者的借书区删除该书籍,将该书的可借数量增加一,然后返回。
旧书注销功能
管理员可以对注册过的图书进行注销。
数据结构描述
根据所给信息,可以采用线性链表来实现该问题。现在分别给予描述。
读者
读者有很多信息需要使用,其中包含读者的姓名、性别、密码、权限、所借书信息。这里我们定义一个结构体来描述他。定义的结构体代码如下:
typedef struct READER{
long number;//借阅号
char name[15];//读者姓名
char sex;//读者性别
char password[16];//读者的密码
int residue;//读者的剩余可借书籍数量
long borrowed[10];//读者已经借阅的书籍编号
int limit;//读者权限
struct READER *next;//该结构体作为线性链表的一部分用来链接下一个节点的指针
}reader;
书籍
同读者信息一样,书籍也有很多信息需要描述,其中包含书籍的编码、书名、书籍作者、书籍的总量、书籍的可借数量、出版社信息、出版日期,整个全部我们定义一个reader类型的结构体,该结构体定义的代码如下:
struct BOOK
{
int id;
int usr[10];
int total;
int store;
int days[10];
int zt;
char name[31];
char author[21];
} books[100];
数据链接
数据通过每个节点的“next”指针来链接,是单线性链表,只可以从头部查询数据,所以要记录好该链表的头结点位置,不要拿该节点的头结点参与运算,否则在程序中可能会修改该链表的头结点的信息,导致后续程序无法运行。
图书馆管理系统流程图
图书馆管理系统
注册登陆
注册
登陆
借阅
借阅
注销注册归还
注销
注册
归还
A、借阅模块:
函数声明:void book_out(void);//借书
该函数的流程图如下:
进入查找
进入查找
进入借阅
退出借阅
输入书号
存在
Y
N
输入可借天数
B、归还模块
函数声明:void book_in(void);//还书
该函数流程图如下:
进入归还
进入归还
输入书号
存在
归还
归还成功
退出归还
Y
N
Y
N
C、入库模块
函数声明: void book_add(void);//入库
流程图如下:
开始入库
开始入库
输入书号
输入书号
输入书籍信息
输入书籍信息
录入成功
录入成功
结束输入
结束输入
D、注销模块
函数声明:void book_del(void)
流程图如下:
进入注销
进入注销
查找编号
查找编号
信息清零
信息清零
注销结束
注销结束
算法设计
读者信息存储
读者信息采用线性单链表存储,设置头结点,头结点不存储数据,初始化时头结点-next设置为空,然后每从文件中读取一组数据,则将该数据存入新开辟的空间,链接到读者信息链
文档评论(0)