课程设计报告媒体库管理系统Word文件下载.docx
- 文档编号:7449151
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:44
- 大小:120.15KB
课程设计报告媒体库管理系统Word文件下载.docx
《课程设计报告媒体库管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《课程设计报告媒体库管理系统Word文件下载.docx(44页珍藏版)》请在冰点文库上搜索。
如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3)显示物品库
可显示当前物品库中所有的物品信息。
4)修改物品
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除物品
对已添加的物品信息进行删除。
如果当前物品库为空,则提示“物品库为空!
”并返回操作;
否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在”。
6)统计功能
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
7)保存物品
将当前系统中物品信息存入文件中。
8)读取物品
将保存在文件中的物品信息读入到当前系统中,以供用户使用。
在完成以上基本功能的基础上,可自行进行扩展或完善。
3、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告以及系统使用说明书
2
3
1.系统需求分析
系统设计的目的与意义:
图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
系统功能需求:
本系统有四个类:
Base类、Book类、CD类、Draw类,存储资料信息、编号、标题、作者、评级。
Base为父类,其余三个为子类,每个子类具有自己的特点。
1.基础信息的添加功能
程序能够任意添加图书、CD视频光盘、图画信息以及各自对应的相关信息。
2.修改功能
对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和修改。
3.删除功能
对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查找和删除。
如果当前系统中没有相应的记录,则提示“记录为空!
否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。
4.查询功能
1 可根据资料的编号查询资料及其内容。
2 可根据标题查找。
3 根据类别查询
5.保存功能
将当前系统中各类记录存入文件中。
6.读取功能
将保存在文件中的信息读入到当前系统中,以供用户使用。
2.总体设计
系统功能分析:
系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。
add()函数用于添加信息;
modify()函数用来修改信息;
del()函数用来修改信息;
refer()函数用来查询数据信息;
read()函数用于将文件中的数据读取到内存中;
save()函数用于将内存中的信息存入文件内;
主函数main()用于调用这些函数。
系统功能模块划分与设计:
系统定义了Base基类、Book类、CD类、Draw类这四个类,定义了add()、modify()、del()、read()、save()、refer()等函数来实现系统所需功能。
系统功能模块图:
类的设计
(1)Base类(抽象类)的设计:
图Base类
(2)图书类的设计:
图班级类
(3)CD类的设计:
图学生类
(4)图片类的设计:
图课程类
(6)各个类的关系描述:
3.详细设计及实现
Base类(抽象类)的实现
classBase
{
public:
voidmainmenu();
virtualvoidadd(){};
回图书信息管理菜单.\n2.返回主菜单.\n"
;
cin>
>
flag;
}
if(flag==1)
{
();
cout<
<
"
请选择\n:
k;
elseif(flag==2)
break;
else
选择错误,请重新输入。
\n"
gotoloop;
};
voidBook:
:
add()o=i;
cout<
请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出版社、ISBN号、页数:
endl;
cin>
b_[i].headline>
b_[i].write>
b_[i].rating>
b_[i].publisher>
b_[i].ISBN_No>
b_[i].pages;
}
p1->
save();
refer()eadline)==0)
cout<
图书编号:
b_[j].No<
"
标题:
b_[j].headline<
作者:
b_[j].write<
评级:
b_[j].rating<
出版社:
b_[i].publisher<
"
ISBN号:
b_[j].ISBN_No<
页数:
b_[j].pages<
Sleep(10);
}
break;
case2:
请输入要查找的图书编号"
for(j=0;
j<
maxsize_book;
j++)
{
if==b_[j].No)
case3:
loop2:
cout<
请输入要查找的图书类别(未评级、一般、成人、儿童)"
if=="
未评级"
||"
一般"
成人"
儿童"
)
if(strcmp,b_[j].rating)==0)
b_[j].publisher<
else
输入有误请重新输入:
gotoloop2;
case4:
break;
default:
选择错误,请重新选择:
gotoloop1;
display()
{
for(j=1;
num1+1;
{
"
Sleep(10);
modify()
intk;
请输入要修改的图书的编号"
cin>
loop3:
cout<
endl<
cout
<
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"
endl
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
┃┃"
┃◇修改标题-----------①◇┃"
┃◇修改作者-----------②◇┃"
┃◇修改评级-----------③◇┃"
┃◇修改出版社---------④◇┃"
┃◇修改ISBN号---------⑤◇┃"
┃◇修改页数-----------⑥◇┃"
┃◇返回菜单-----------0◇┃"
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"
请选择要修改的内容的编号:
if(k>
=0&
&
k<
7){
switch(k)
case1:
charmheadline[20];
cout<
请输入修改后的标题:
cin>
mheadline;
strcpy(b_[].headline,mheadline);
case2:
charmwrite[20];
请输入修改后的作者:
mwrite;
strcpy(b_[].write,mwrite);
case3:
charmrating[20];
请输入修改后的分级:
(未评级、一般、成人、儿童)"
mrating;
strcpy(b_[].rating,mrating);
case4:
charmpublishe[20];
请输入修改后的出版社:
mpublishe;
strcpy(b_[].publisher,mpublishe);
case5:
charmISBN_No[20];
请输入修改后的ISBN号:
mISBN_No;
strcpy(b_[].ISBN_No,mISBN_No);
case6:
intmpages;
请输入修改后的页数:
mpages;
b_[].pages=mpages;
case0:
};
}
else
选择错误,请重新输入:
gotoloop3;
del()
请输入要删除的图书的编号"
for(j=;
num1;
b_[j].No=b_[j+1].No;
strcpy(b_[j].headline,b_[j+1].headline);
strcpy(b_[j].write,b_[j+1].write);
strcpy(b_[j].rating,b_[j+1].rating);
strcpy(b_[j].publisher,b_[j+1].publisher);
strcpy(b_[j].ISBN_No,b_[j+1].ISBN_No);
b_[j].pages=b_[j+1].pages;
num1--;
Info()
当前物品库中总物品数:
num1<
save()
ofstreamout;
("
图书信息.txt"
);
out<
for(intk=1;
=num1;
k++)
out<
b_[k].No<
b_[k].headline<
b_[k].write<
b_[k].rating<
b_[k].publisher<
b_[k].ISBN_No<
b_[k].pages<
();
read()
ifstreamin;
in>
while(num1>
=count_book)
in>
b_[count_book].No>
b_[count_book].headline>
b_[count_book].write>
b_[count_book].rating>
b_[count_book].publisher>
b_[count_book].ISBN_No>
b_[count_book].pages;
count_book++;
Book_menu()
\n\n ----------☆欢迎使用媒体库管理系统☆----------"
\n\n ----------☆图书信息管理☆----------"
┃◆添加图书-----------①◆┃"
┃◆查询图书-----------②◆┃"
┃◆显示图书-----------③◆┃"
┃◆修改图书-----------④◆┃"
┃◆删除图书-----------⑤◆┃"
┃◆统计图书-----------⑥◆┃"
┃◆退出系统-----------0◆┃"
CD类的实现
classCD:
publicBase
voidCD_manage();
回CD信息管理菜单.\n2.返回主菜单.\n"
gotoloop6;
}
voidCD:
add()o=i3;
请分别输入标题、作者、评级(未评级、一般、成人、儿童)、出品人的姓名、出品年份、视频时长"
v_[i3].headline>
v_[i3].write>
v_[i3].rating>
v_[i3].name>
v_[i3].year>
v_[i3].time;
p3->
refer()eadline)==0)
cout<
视频编号:
v_[j3].No<
v_[j3].headline<
v_[j3].write<
v_[j3].rating<
出品人的姓名:
v_[j3].name<
"
出品年份:
v_[j3].year<
视频时长:
v_[j3].time<
Sleep(10);
}
}
break;
case2:
{
请输入要查找的视频编号"
cin>
for(j3=0;
j3<
maxsize_video;
j3++)
{
if==v_[j3].No)
case3:
请输入要查找的视频类别(未评级、一般、成人、儿童)"
if(strcmp,v_[j3].rating)==0)
case4:
default:
选择有误,请重新输入:
gotoloop7;
display()
for(j3=1;
vnum1+1;
modify()eadline,mheadline);
charmwrite[20];
strcpy(v_[].write,mwrite);
charmrating[20];
strcpy(v_[].rating,mrating);
charmname[20];
请输入修改后出品人的姓名:
mname;
strcpy(v_[].name,mname);
case5:
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 媒体库 管理 系统