C++面向对象程序设计媒体库管理系统设计Word文档下载推荐.docx
- 文档编号:15883672
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:32
- 大小:104.72KB
C++面向对象程序设计媒体库管理系统设计Word文档下载推荐.docx
《C++面向对象程序设计媒体库管理系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计媒体库管理系统设计Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
如果物品库已满,则提示不能再添加新的物品。
2)查询物品
可按照三种方式进行物品的查询。
·
按标题查询:
按编号查询:
按类别查询:
如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3)显示物品库
可显示当前物品库中所有的物品信息。
4)修改物品
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除物品
对已添加的物品信息进行删除。
如果当前物品库为空,则提示“物品库为空!
”并返回操作;
否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在”。
6)统计功能
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
7)保存物品
将当前系统中物品信息存入文件中。
8)读取物品
将保存在文件中的物品信息读入到当前系统中,以供用户使用。
在完成以上基本功能的基础上,可自行进行扩展或完善。
1.系统需求分析
1.1系统设计的目的与意义:
图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
1.2系统功能需求:
图书馆共有三大类物品资料:
图书、视频光盘、图画。
2)查询物品
3)显示物品库
4)修改物品
7)保存物品
8)读取物品
2.总体设计
2.1系统功能分析:
系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。
add()函数用于录入信息;
modify()函数用来修改信息;
del()函数用来修改信息;
searchStu()及searchScore()函数用来查询某班级中所有学生信息及查询某学生所有课程的成绩信息;
read()函数用于将文件中的数据读取到内存中;
save()函数用于将内存中的信息存入文件内;
主函数main()用于调用这些函数。
2.2系统功能模块划分与设计:
系统定义了Class类、Student类、Course类、Score类这四个类,定义了add()、modify()、del()、read()及save()等函数来实现系统所需功能。
2.3系统功能模块图:
2.4类的设计
(1)Base类(抽象类)的设计:
图3.1Base类
(2)图书类的设计:
图3.2图书类
(3)视频类的设计:
图3.3视频类
(4)图画类的设计:
图3.4图画类
3.详细设计及实现
3.1Base类(抽象类)的实现
classBase
{
public:
charnumber[20];
//编号
chartitle[11];
//标题
charwriter[8];
//作者
chargrade[20];
//评级
virtualvoidread()=0;
virtualvoidadd()=0;
virtualvoidmodify(int)=0;
virtualvoiddel(int)=0;
virtualvoidsave()=0;
};
3.2图书类的实现
Book.h
classBook:
publicBase
intISBNno;
//ISBN号
charpress[9];
//出版社
intpage;
//页数
voidread();
voidadd();
voidmodify(int);
voiddel(int);
voidsave();
Book.cpp
voidBook:
:
read()
{
fstreambookfile("
图书类信息.dat"
ios:
in|ios:
out);
bookfile>
>
b1[count_Book].number>
b1[count_Book].title>
b1[count_Book].writer>
b1[count_Book].grade>
b1[count_Book].ISBNno>
b1[count_Book].press>
b1[count_Book].page;
while(!
bookfile.eof())
count_Book++;
}
bookfile.close();
}
add()
{//存入对象数组中
strcpy(b1[count_Book].number,number);
strcpy(b1[count_Book].title,title);
strcpy(b1[count_Book].writer,writer);
strcpy(b1[count_Book].grade,grade);
b1[count_Book].ISBNno=ISBNno;
strcpy(b1[count_Book].press,press);
b1[count_Book].page=page;
count_Book++;
modify(intindex)
strcpy(b1[index-1].number,number);
strcpy(b1[index-1].title,title);
strcpy(b1[index-1].writer,writer);
strcpy(b1[index-1].grade,grade);
b1[index-1].ISBNno=ISBNno;
strcpy(b1[index-1].press,press);
b1[index-1].page=page;
del(intindex){
//前移其后记录
for(inti=index;
i<
=count_Book-1;
i++)
{
strcpy(b1[i-1].number,b1[i].number);
strcpy(b1[i-1].title,b1[i].title);
strcpy(b1[i-1].writer,b1[i].writer);
strcpy(b1[i-1].grade,b1[i].grade);
b1[i-1].ISBNno=b1[i].ISBNno;
strcpy(b1[i-1].press,b1[i].press);
b1[i-1].page=b1[i].page;
count_Book--;
save()
ofstreambookfile;
bookfile.open("
);
for(inti=0;
i++)
bookfile<
<
b1[i].number<
"
"
b1[i].title<
b1[i].writer<
b1[i].grade<
b1[i].ISBNno<
b1[i].press<
b1[i].page<
endl;
bookfile.close();
3.3视频类的实现
Video.h
classVideo:
charname;
//出品人姓名
chartime;
//出品年份
intduration;
//视频时长
Video.cpp
voidVideo:
fstreamvideofile("
班级信息.dat"
videofile>
v1[count_Video].number>
v1[count_Video].title>
v1[count_Video].writer>
v1[count_Video].grade>
v1[count_Video].name>
v1[count_Video].time>
v1[count_Video].duration;
videofile.eof())
count_Video++;
videofile>
v1[count_Video].t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 媒体库 管理 系统 设计