- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《面向对象程序设计( C++)》
安徽工业大学
《面向对象程序设计语言》课程设计报告
图书管理系统
学号: 9
姓名:李家景
目 录
问题分析与功能定义
对象(类)设计及实现
核心控制设计
测试分析
心得体会
源程序代码
项目名称:图书管理系统设计一、 问题分析与功能定义
二十一世纪是信息的社会, 信息作为社会最主要的资源, 将成为战略资源引起人们广泛的关注。 如何获取信息图书是我们最好的获取信息的方式, 但由于图书馆图书收藏量大大增加, 使传统的图书管理员的工作日益繁重起来。 迫使人们起用新的管理方法来管理图书, 但如何把图书管理员从繁重的工作中解脱出来
呢
科学技术日新月异的进步, 让人类生活发生了巨大的变化, 计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。 信息化时代的到来成为不可抗拒的潮流, 人类文明正在进入一个崭新的时代。 因此,图书管理系统也以方便、 快捷、费用低的优点正慢慢地进入人们的生活, 将传统的图书管理方式彻底的解脱出来, 提高效率, 减轻工人人员以往繁忙的工作, 减小出错的概率,使读者可以花更多的时间在选择书和看书上。 从而使人们有更多时间来获取信息、了解信息、掌握信息 。
1、设计内容及要求
设计一个图书馆管理系统, 完成图书管理和读者管理的功能, 并能对借阅信息进行管理,要求完成一下功能,图书资料管理,可以添加、修改、删除、查询书籍信息,读者资料管理,可以添加、修改、删除、查询读者信息;借书管理,可以进行添加借书信息;还书管理,可以进行还书信息;
该项目是在 Visual C++ 的平台下用 c++语言实现,创建对象,程序运行开始,打开文件并将其分别链入链表之中; 程序结束关闭并保存文件。 整体系统功
能全部由链表实现。
2、模块图
图书馆管
理系统
借书 还书 读者维 图书维护
护
离开
二、对象(类)设计及实现
1、概要设计
Reader 读者类、 RDatabase 读者库类、 Book 图书类、 BDatabase 图书库类
class RDatabase
加、借阅、还书功能:
添加读者和图书信息。
借阅尚在架的图书。
(3) 读者归还的图书。
查找功能
根据图书的编号查找图书信息。
根据读者的编号查找读者的信息。
系统的操作
系统在进入时,要有菜单提示;
系统在用户退出时,有一定的提示。3、算法分析
1)添加操作:(读者信息的添加与图书信息的添加类似)
包括两个部分,先通过输入设备输入信息,系统获取;然后添加入读者数据库文件中。
㈠获取信息
void Reader::addreader(int n,char *na)
ddreader(n,na);
输入 n 和 na
cout 读者添加成功 endl;
return 1;
tag=0; no=n;
}
no=n;
return 0;
strcpy(name,na);
}
int i=0
流程图:
iMaxbor
der *p=query(n);
borbook[i]=0;
p==NULL
Y
N
top++;
read[top].addreader(n,
na);
cout 读 者 添 加 成 功
endl;
return 1;
return 0;
㈡析构函数写入新读者的编号跟姓名
RDatabase::~RDatabase()
{
fstream file(,ios::out);
for (int i=0;i=top;i++)
{
if(read[i].gettag()==0)
((char *)read[i],sizeof(read[i]));
else
();
}
}
流程图:
fstream file(,ios::out);
int i=0
当 i=top
read[i].gettag()==0
Y N
((char
*)read[i],sizeof ();
(read[i]));
i++
2)借书操作:利用 for
语句和 if 语句,通过判断图书的 borbook 的编号是否为
0,来判断图书是否未被借走或还没有被借完。
void
Reader::borrowbook(int
bookid)
int i=0
int i=0
etno()==readeridread[i].gettag()==0)
return read[i]; 当 iMaxbor
return NULL;
当 iMaxbor
borbook[i]==0
}
YY
borbook[i]==bookid
流程图:
int i=0
NN
borbook[i]=bookid
continue
当 i=t
p
borbook[i]=0;
return; return 1;
read[i].getno()==readerid
i++
r
文档评论(0)