图书馆管理系统

  • 格式:doc
  • 大小:1.27 MB
  • 文档页数:96

数据结构大作业设计报告

一、 需求分析

 图书信息管理系统

内容简述:

图书信息管理系统记录了图书馆中图书的图书号、书名、作者姓名、出版社名、图书的现存量和总库存量等书籍数据,同时有以管理员登陆系统的方式进行对书籍数据以及借阅者的信息进行管理,可以实现对书籍和借阅者进行添加,修改,删除。

基本业务活动要求(实现的功能):

1. 管理员:

(1)新书采编入库:新购入一种书,经分类和确定书号之后登记到图书帐目中去。如果这种书在帐中已有,则只将总库存量增加。

(2)修改已在图书库中的图书信息。

(3)清除库存:某种书已无保留价值,将它从图书帐目中注销。

(4)查询已在图书库中的图书信息。

(5)对借阅者的信息进行管理:新增,查询,修改,删除等等。

(6)查看借阅记录。

2. 借阅者:

(1)查询图书信息:

a) 按书名查询: 如查找所有书名为“数据结构”的图书。

b) 按作者姓名查询:如查找所有“张三”编写的图书。

c) 按出版社名查询:如查找所有“机械工业出版社”出版的图书。

d) 组合查询:如查找所有“张三”编写的、由“机械工业出版社”出版的图书。

(2)借阅:如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限,改变该书的现存量。

(3)归还:注销对借阅者的登记,改变该书的现存量。

二、 项目设计 1、 类体系设计

有两个类:class bookdata,class managebook

class managebook公有继承class bookdata

2、 类的数据成员和各函数的功能描述

class bookdata数据成员:

char booknum1[10], //书类

bookname[50], //书名

writer[50], //作者

publishing[50]; //出版社

int booknum, //书的序号

nowstore, //书的现存量

allstore; //书的总库存量

class managebook数据成员:

char manager[50], //管理员用户名

reader[50], //借阅者姓名

cardnum[50], //借阅者图书证号

password[50]; //管理员登陆密码

int num; //借还图书本数

各个功能函数:

void setfile(); //初始化数据文件

void mainmenu(); //主菜单函数

void findbook(int w); //查询图书,w标志用来区分借阅者查询和管理员查询

void find(char*file,int w);

void landbook(); //借阅图书

void land(char*file,managebook p);

void returnbook(); //归还图书

void returnf(char*file,managebook p);

void managermenu(); //管理员板块

void landingpass(); //管理员登陆密码函数

void managerlanding(); //管理员登陆

void addbook(); //新书采编入库

void add(char*file,bookdata p);

void altbook(); //修改图书信息

void alt(char*file,bookdata p);

void delbook(); //清除库存,删除图书信息

void del(char*file,bookdata p);

void managereader(); //借阅者信息管理板块

void addreader(); //新增读者信息

void checkreader(); //查询读者信息

void altreader(); //修改读者信息

void delreader(); //删除读者信息

void managerenroll(); //管理员注册 void checklend(); //查看借阅记录

void altmanager(); //修改管理员信息

void delmanager(); //删除管理员信息

void del_library(); //注销图书馆

3、程序流程图

开始

头文件:包含class bookdata,

class managebook;

void setfile();

//初始化数据文件void mainmenu();

//主菜单函数

void

findbook(int w);

//查询图书,w标志用来区分借阅者查询和管理员查询 void

landbook();

//借阅图书 void

returnbook();

//归还图书 退出! 管理员板块

Void find(char*

file,int w);

//查询后可直接借阅 void

land(char*file,managebook p);

void

returnf(char*file,managebook p);

管理员板块

void

managermenu();

管理员

登陆

void

altmanager();

//修改管理员信息 void

managerenroll();

//管理员注册 void

delmanager();

//删除管理员信息 void

del_library();

//注销图书馆

管理员登陆

void landingpass();

//管理员登陆密码函数

void managerlanding();

//管理员登陆密码函数

借阅者信息管理

void

addbook();

//新书采编入库 void

altbook();

//修改图书信息 void

delbook();

//清除库存,删除图书信息 void

findbook(int w);

//查询图书,w标志用来区分借阅者查询和管理员查询 void

checkland();

//查看借阅记录

void

find(char*file,void

add(char*void

alt(char*void

del(char*

3. 算法分析:

在本程序中,头文件定义了两个类:class bookdata和class managebook,以及各个功能函数。

运行程序,首先执行void setfile();函数,该函数初始化数据文件,将在exe程序所在文件夹生成所有数据文件,若该文件夹没有数据文件,则生成空的数据文件,数据文件记录图书馆管理系统的所有数据。 借阅者信息管理

void managereader();

//借阅者信息管理板块

void

addreader();

//新增读者信息 void

checkreader();

//查询读者信息 void

altreader();

//修改读者信息 void

delreader();

//删除读者信息 然后由void mainmenu();生成主菜单,主菜单运用switch语句区分指令进行执行功能,其他菜单亦雷同形成。主菜单前3项选择为借阅者(读者)所选择的查询,借阅,归还图书,分别调用void findbook(int w); void

landbook(); void returnbook(); 此3个函数还分别有一个子函数:void find(char*file,int w); void land(char*file,managebook p);

void returnf(char*file,managebook p);直接在数据文件上对图书执行相应功能。其中void findbook(int w);和void find(char*file,int w);中的w为区分管理员和借阅者查询图书的标志,若是借阅者查询,在查询完毕后可以根据查询结果直接调用void landbook();进行借阅图书。当然,借阅者也可以直接借阅而不用经过查询。

在让借阅者执行查询,借阅,归还图书等操作之前,首先要在初始化的数据文件中添加图书信息,所有主菜单的第4项选择为调用

void managermenu();函数转到管理员板块。管理员板块有5项选择:登陆,注册,修改,删除,注销图书馆。管理员登陆需要输入其用户名和登陆密码,用户名和登陆密码要在管理员注册中才可获得,而管理员注册也需进行权限确认,即要正确输入权限密码才能完成管理员注册,本程序权限密码为”201130580466”。管理员信息的修改、删除也要输入权限密码进行确认,确保图书馆管理的严密性。每个管理员都拥有自己独特的用户名和登陆密码,凭此调用void managerlanding();跳转到图书馆管理菜单,调用该函数之前要先调用void landingpass()进行用户名和登陆密码的确认。

图书馆管理菜单有6项选择:新书入库,修改图书信息,注销图书,管理员查询图书,借阅者信息管理,查看借阅记录;分别由void addbook();

void altbook(); void delbook(); void findbook(int w);