图书馆管理系统设计报告.docx
《图书馆管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
图书馆管理系统设计报告
(此文档为word格式,下载后您可任意编辑修改!
)
第一章绪论
1.1课程设计的目的
课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。
通过课程设计,能够提高学生的分析问题,解决问题,要能很好的完成课程设计,要求我们必须掌握在学习中学到的知识,所以要我们对课本中学的知识要熟悉且掌握,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。
1.2课程设计的背景和意义
1.2.1课程设计的背景
1.理论研究基础
(1)C++语言的基本知识和技能,如:
类与对象,指针,输入/输出流,文本文件的建立保存;
(2)面向对象程序设计的基本思路和方法。
2.技术层面的支持
(1)研究这些结构的存储、显示,并有查找、添加、删除、修改、查询、统计、保存信息、载入等功能。
(2)类定义、类对象、继承、组合、多态和文件的输入/输出等内容。
1.2.2课程设计的意义
(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。
帮助了同学系统的掌握C++课程的主要内容。
(2)综合实际应用的需求是课程设计既覆盖教学所要求的知识点,有接近工程的实际需求,训练自己实际分析问题和解决问题以及编程的能力。
做到理论结合实际。
1.3课程设计环境
(1)在MicrosoftVisualC++6.0开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入合理的以及不合理的数据进行测试并进一步完善。
(2)硬件:
学校机房
(3)软件:
MicrosoftVisualC++6.0开发平台
第二章需求分析
2.1问题描述
图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
图书馆共有三大类物品资料:
图书、视频光盘、图画。
这三类物品共同具有的属性有:
编号、标题、作者、评级(未评级,一般,成人,儿童)等。
其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出版社、ISBN号、页数等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。
2.2功能要求
(1)基本功能
1)添加物品:
主要完成图书馆三类物品信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。
2)查询物品
可按照三种方式来查询物品,分别为:
✧按标题查询:
输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!
”;
✧按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!
”;
✧按类别查询:
输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!
”;
3)显示物品库:
输出当前物品库中所有物品信息,每条记录占据一行。
4)编辑物品:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除物品:
主要完成图书馆物品信息的删除。
如果当前物品库为空,则提示“物品库为空!
”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。
6)统计信息
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
例如:
总物品数30
图书类10
视频光盘类15
图画类5
7)物品存盘:
将当前程序中的物品信息存入文件中。
8)读出物品:
从文件中将物品信息读入程序。
(2)扩展功能
在完成以上基本功能的基础上,可自行进行扩展或完善,例如:
1)可按物品编号进行排序。
2)使用二进制文件存储信息。
3)添加记录时,考虑各种数据的有效性。
4)组合查询功能的实现。
2.3问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
第三章系统设计
3.1数据设计
3.1.1类设计
***************************************************************************
基类:
***************************************************************************
classziliao
{
protected:
intnumber;
chartitle[20];
charwriter[20];
charlevel[20];
inttag;//资料删除标记
};
***************************************************************************
图书类:
***************************************************************************
classtushu:
publicziliao//定义由ziliao类派生出tushu(图书)类
{
private:
charpublish[20];
intISBN;
intpage;
public:
intgetno(){returnnumber;}//获取图书编号
char*gettitle(){returntitle;}//获取图书标题
voiddeltushu(){tag=1;}//删除图书
intgettag(){returntag;}//获取删除图画的标记
voidaddtushu(intn,char*t,char*w,char*l,char*p,intI,intpa){}//增加图书操作
voiddisplay(){}//显示图书信息
};
****************************************************************
视频光盘类:
****************************************************************
classguangpan:
publicziliao//定义由ziliao基类派生出guangpan(光盘)类
{
private:
charname[20];
intdate;
floattime;
public:
voiddelguangpan(){tag=1;}//删除视频光盘
intgetno(){returnnumber;}//获取视频光盘编号
intgettag(){returntag;}//获取删除视频光盘的标记
char*gettitle(){returntitle;}//获取视频光盘标题
voidaddguangpan(intn,char*t,char*w,char*l,char*na,intd,floatti){}//增加视频光盘操作
voiddisplay(){}//显示视频光盘信息
};
***************************************************************************
图画类:
***************************************************************************
classtuhua:
publicziliao//定义由ziliao类派生出的tuhua(图画)类
{
private:
charcountry[20];
intlength;
intwidth;
public:
voiddeltuhua(){tag=1;}//删除图画
intgetno(){returnnumber;}//获取图画编号
intgettag(){returntag;}//获取删除图画的标记
char*gettitle(){returntitle;}//获取图画标题
voidaddtuhua(intn,char*t,char*w,char*l,char*c,intle,intwi){}//增加图画操作
voiddisplay(){}//显示图画信息
};
***************************************************************************
图书馆资料管理类:
***************************************************************************
classtushuguan
{
private:
inttop1,top2,top3,top11,top22,top33;
tushuts[maxb];
guangpangp[maxgp];
tuhuath[maxp];
public:
voidziliaodata();
tushuguan();
voidaddtushu(intn,char*t,char*w,char*l,char*p,intI,intpa)//添加图书,加前先查找
{
ts[top1].addtushu(n,t,w,l,p,I,pa);
top1++;top11++;
}
intlook1(intbookid)//按编号查找图书
{
intk=-1;
for(inti=0;iif(ts[i].getno()==bookid&&ts[i].gettag()==0)
k=i;
returnk;
}
intlook11(char*m)//按标题查找图书
{
intk=-1;
for(inti=0;iif(strcmp(ts[i].gettitle(),m)==0&&ts[i].gettag()==0)
{ts[i].display();
k=i;}
returnk;
}
voidaddguangpan(intn,char*t,char*w,char*l,char*na,intd,floatti)//添加视频光盘,加前先查找
{
gp[top2].addguangpan(n,t,w,l,na,d,ti);
top2++;top22++;
}
intlook2(intbookid)//按编号查找视频光盘
{
intk=-1;
for(inti=0;iif(gp[i].getno()==bookid&&gp[i].gettag()==0)
k=i;
returnk;
}
intlook22(char*m)//按标题查找视频光