图书管理系统实验报告.docx

上传人:b****7 文档编号:9174587 上传时间:2023-02-03 格式:DOCX 页数:16 大小:220.05KB
下载 相关 举报
图书管理系统实验报告.docx_第1页
第1页 / 共16页
图书管理系统实验报告.docx_第2页
第2页 / 共16页
图书管理系统实验报告.docx_第3页
第3页 / 共16页
图书管理系统实验报告.docx_第4页
第4页 / 共16页
图书管理系统实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

图书管理系统实验报告.docx

《图书管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

图书管理系统实验报告.docx

图书管理系统实验报告

图书管理系统

实验报告

 

班级:

软件工程0807

程序员:

赵博聪200826630726

傅钦聪200826630708

成金诚200826630704

2009.6

 

报告目录

1总体说明

1.1需求说明

1.1.1需求分析

1.能够实现读者可以自助注册。

2.能够实现多种关键字查书,及查看所有馆藏书目功能。

3.实现管理人员借书,还书功能。

4.实现管理人员,对于读者,工作人员的修改(包括添加删除)

5.能够实现管理人员添加,修改馆藏书目。

6.能够实现上层人员查看下层人员信息。

1.1.2系统性能

1.系统安全

2.功能齐全

3.实现一般的纠错功能(即对读者一般的输入错误判断)

4.易于维护和扩充数据

1.2功能介绍

图书管理系统(LMS)用于图书馆进行图书的管理,主要的功能包括借书、还书、查找等。

不同的使用对象具有不同的权限,详细见下表:

 

表1系统功能表

使用对象

功能

详细功能

读者

查看/修改个人信息,查看个人借阅信息

查询图书信息(根据不同字段查询)

工作人员

查询读者信息(个人信息和读者借书情况)

还书

借书

查询图书信息(根据不同字段查询)

管理人员

维护图书信息

添加、编辑图书信息

维护读者信息

添加、删除、编辑读者信息

维护人员信息

添加、删除工作人员信息

查询图书信息(根据不同字段查询)

1.2.1详细功能简介

登录

选择登录身份(读者、工作人员、管理员),输入用户名和密码,成功后进行相应的功能模块。

读者模块

读者可以查找馆藏书目,了解图书馆有哪些书,是否可借。

(可选择根据不同字段查找书本也可全显书本)

读者可以查看个人借书情况和修改基本个人信息、修改密码。

工作人员模块

可以查找馆藏书目,了解图书馆有哪些书,是否可借。

根据读者用户名查询读者信息,显示该读者基本信息,和借书情况。

读者信息高级查找可以根据姓名等其他信息进行查找(可选功能)

借书功能:

首先输入读者用户名,在该状态下依次输入该读者借的书,完成图书的借阅工作。

还书功能:

直接输入图书号,将该书的信息改为入库,并修改读者的借书记录。

管理员模块

可以查找馆藏书目,了解图书馆有哪些书,是否可借。

维护图书信息:

添加:

进入添加状态,根据提示依次输入图书的基本信息,默认状态下为继续输入。

修改:

输入书号,找到该书,根据提示选择该图书需要修改的字段,并进行修改。

删除:

删除工作人员,读者

1.3设计思路

采用面向对象的方式实现图书管理系统,根据不同的使用权限,使用对象分为读者、工作人员和管理员。

图11系统主要类结构图

分别设计读者类、工作人员类、管理员类(如上图),人员类为基类实现通用的功能。

(如查找图书信息)

用文本文件进行数据的保存,需要保存的数据主要包括图书数据、用户数据(包括读者、工作人员、管理员)。

设置数据操作类,实现所有的文本操作相关的功能。

2数据设计与类的作用

2.1数据设计

2.1.1图书数据设计

表2book文件字段设计表

字段名称

中文名

类型

no

书号

Int

name

书名

Char(40)

author

作者

Char(20)

press

出版社

Char(40)

storenum

藏书量

Int

borrownum

借出数

Int

2.1.2读者数据设计

表3Users文件字段设计

字段名称

中文名

类型

Name

用户名

Char(15)

Truename

真实姓名

Char(10)

Password

登录密码

Char(9)

Name

真实姓名

Char(20)

Sex

性别

Char(3)

borrows

借阅书数目

Int

Borrow

所借阅的书号

Int(5)

2.1.3其他用户数据设计

表4其他用户(管理员,工作人员)字段设计

字段名称

中文名

类型

Name

用户名

Char(15)

password

密码

Char(10)

2.1.4存储文件设计

reader.txt存储读者信息,数据顺序为用户名,密码,性别,年龄,书名号

manager.txt存储管理员信息,数据顺序为用户名,密码

worker.txt存储工作人员信息,数据顺序为用户名,密码

book.txt存储书本信息,数据顺序为书名号,书名,作者,出版社,馆藏数量,借出数量

2.2类的作用

2.2.1people类(基类)

people类包含成员:

charname[15]//储存用户名

charpassword[10]//储存密码

people()//成员函数有默认构造函数

virtual~people()//虚析构函数函数

char*getname()//读取用户名

char*getpass()//读取密码

voidsetname(char*)//设置用户名

voidsetpass(char*)//设置密码

voidsearch_book(book*)//跳出查书界面

函数book*find_book(long,book*),voidsearch_one_book(book*Bhead)//用于按书号查找图书

函数voidprint_all_book(book*)//查看全部图书

2.2.2reader类(people类派生)

reader类包含成员:

charsex[2]//储存性别

intage//储存年龄

intborrows//储存借书总数

longborrow[10]//储存具体借书

reader*next//连接下一个的链表

reader()//成员函数有默认构造函数

virtual~reader()//虚析构函数

函数voidoutput()//输出读者信息

函数voidupdate_reader()//修改个人信息

函数voidoutput_borrows(book*)//查看个人借书情况。

2.2.3workers类(people类派生)

workers类包含成员:

charsex[2]//储存性别

intage//储存年龄

worker*next//连接下一个的链表

worker()//成员函数有默认构造函数

virtual~worker()//虚析构函数

函数voidborrow_book(reader*,book*)//借书

函数voidreturn_book(reader*,book*)//还书

函数reader*find_reader(char*,reader*)//查看读者信息

友元函数friendistream&operator>>(istream&in,worker&w)//重载>>操作符

2.2.4manger类(people类派生)

manger类包含成员:

charsex[2]//储存性别

intage//储存年龄

manger*next//连接下一个的链表

manger()//成员函数有默认构造函数

virtual~manger()//虚析构函数

函数reader*find_reader(char*,reader*),voidupdate_reader(reader*)//更新读者信息函数

worker*find_worker(char*,worker*),voidupdate_worker(worker*&),voidupdate_add_worker(worker*),voidupdate_delete_worker(worker*&)//更新工作人员信息

函数voidupdate_book(book*&),voidupdate_add_book(book*),voidupdate_delete_book(book*&),voidupdate_revise_book(book*)//更新图书馆藏书信息

2.2.5book类

book类包含成员:

longno//储存书号

charname[40]//储存书名

charauthor[20]//储存作者

charpress[40]//储存出版社

intstorenum//储存馆藏数目

intborrownum//储存借书数目

book*next//连接下一个的链表

book()//成员函数有默认构造函数

virtual~book()//虚析构函数

函数voidoutput()//输出图书信息

友元函数friendostream&operator<<(ostream&ou,constbook&b),friendistream&operator>>(istream&in,book&b)//重载操作符<<和>>

2.2.6DBFile类

该类的每个对象操作一个数据文件,包含读、存、查找、删除数据的函数:

函数book*load_book(),reader*load_reader(),worker*load_worker(),manger*load_manger()//读入文档中的书,读者,工作人员和管理人员的数据

函数voidlogin_reader(reader*Rhead,book*Bhead),voidlogin_worker(worker*Whead,book*Bhead,reader*Rhead),voidlogin_manger(manger*Mhead,book*&Bhead,reader*Rhead,worker*&Whead)//读者工作人员和管理人员的登录

函数voiddealchoice(reader*here,book*Bhead),voiddealchoice(worker*here,book*Bhead,reader*Rhead),voiddealchoice(manger*here,worker*&Whead,book*&Bhead,reader*Rhead)//登录后读者工作人员和管理人员的相关操作

函数voidregisterreader(reader*Rhead)//新读者的注册

函数voidsave_book(book*Bhead),voidsave_reader(reader*Rhead),voidsave_worker(worker*Whead),voidsave_system(book*Bhead,reader*Rhead,worker*Whead)//保存数据到文档

3数据测试:

3.1选择登录类型

如图为登入界面,根据用户的需要选择登入的方式

3.1.1读者登录

选择2之后进入读者登入界面,

如果输入不正确会出现如图:

输入正确后会出现:

选①查看馆藏书目:

⑴按书号查询:

1234您所查询的书不存在

继续查询输入1,否则输入0:

0

⑵查看所有图书,就会显示如图。

⑶返回

查看个人借阅信息

修改个人信息:

(1)修改年龄

(2)修改姓名(3)修改密码(4)退出登入

查看个人信息:

退出登录返回上层

3.1.2工作人员登录

请输入用户名:

A请输入密码:

1234密码错误!

是否重新输入?

(是输入1,不是输入0)1请输入用户名:

AA请输入密码:

123456该用户不存在!

是否重新输入?

(是输入1,不是输入0)0

借书:

(1)输入读者用户名:

zbc

(2)输入书号:

1234没有该书!

请重新输入输入书号:

abcd没有该书!

请重新输入输入书号:

10001借书成功

还书:

(1)输入读者用户名:

bbc没有该用户!

请重新输入!

(2) 输入要还书号:

10002此读者未借此书

图书信息查询:

(1)按书号查询(2)查看所有图书(3)返回

读者信息查询:

输入读者信息zbc

退出登入

3.1.3管理人员登录

请输入用户名:

zbc请输入密码:

0311该用户不存在是否重新输入?

(是输入1,不是输入0)1请输入用户名:

yeyang请输入密码:

000000

登入界面如下

查找图书馆藏书:

(1)按书号查看:

12343您所查询的书不存在继续查询输入1,否则输入0:

继续查询输入1,否则输入0:

0

(2)查看所有图书 (3)返回

更新图书馆藏书:

(1)添加:

输入书名abc,输入作者zbc,输入出版社zjut,输入馆藏量2,添加成功!

!

是否继续添加?

<是输入1,否输入0>

(2)删除:

请输入要删除的图书号:

10001此书删除成功!

(3)编辑:

1.修改书名2.修改作者3.修改馆藏数目4.修改出版社(4)返回

读者信息维护:

(1)修改年龄

(2)修改姓名(3)修改密码

工作人员信息维护:

(1)添加工作人员:

输入用户面:

ggm输入密码:

ggm添加成功!

是否继续添加?

(是输入1,否输入0):

0

(2)删除工作人员:

请输入删除工作人员的账号:

ggm删除成功!

(3)返回

 

3.1.4读者注册

1.请输入你的用户名:

yeyang

2.请输入四位密码:

1234

3.输入新性别(男输入1,女输入0):

1

4.输入新年龄:

19

3.1.5退出系统

4实验总结

实验刚开始的时候,完全不知道从何入手,多次阅读一些有关资料整理之后了解了实验要求,确定了类。

之后从类的书写入手,一个个编写完善。

我们十分珍惜此次C++大型实验的机会,通过自己的努力,学会了如何用C++编写一个简单的管理系统。

首先要对程序的设计要求有比较明确的认识,然后是系统分析与系统设计,最后是代码的设计,编写与调试。

按照程序编写集中原则,根据C++课程所学概念、理论、方法,按照C++程序设计的基本步骤,设计出了恰当规模的程序,进一步加深了我们对于C++语言的理解与掌握。

提高实践能力,增加了团队合作能力,培养了队员之间的感情与默契。

我们编写代码的过程是辛苦的,不过也是快乐的,其中调试占据了一大部分时间,大家一起找错误一起解决错误,当一个一个BUG被发现并且攻克时,我们收获的成就,是喜悦!

程序的编写原则很重要,只要我们在编程,我们便能不断进步。

只有我们不断改进,才能提高我们的编程技艺。

通过这次实验,我们对程序的设计与应用有了更深的认识,这次实验也会成为我们非常宝贵的经验。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1