课程设计报告媒体库管理系统.docx
- 文档编号:10773250
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:44
- 大小:120.15KB
课程设计报告媒体库管理系统.docx
《课程设计报告媒体库管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计报告媒体库管理系统.docx(44页珍藏版)》请在冰豆网上搜索。
课程设计报告媒体库管理系统
集团标准化工作小组[Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]
课程设计报告媒体库管理系统
C++面向对象程序设计
课程设计报告
课程名称C++面向对象程序设计
课题名称媒体库管理系统
专业网络工程
班级551
学号
姓名高慧鹏
指导教师
2014年12月22日
(一)、课程设计题目:
媒体库管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
(4)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
(三)、设计方法和基本原理:
功能要求:
1)添加物品
程序主要完成图书馆三类物品信息的添加,要求编号唯一。
如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果物品库已满,则提示不能再添加新的物品。
2)查询物品
可按照三种方式进行物品的查询。
·按标题查询:
·按编号查询:
·按类别查询:
如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3)显示物品库
可显示当前物品库中所有的物品信息。
4)修改物品
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除物品
对已添加的物品信息进行删除。
如果当前物品库为空,则提示“物品库为空!
”并返回操作;否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在”。
6)统计功能
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
7)保存物品
将当前系统中物品信息存入文件中。
8)读取物品
将保存在文件中的物品信息读入到当前系统中,以供用户使用。
在完成以上基本功能的基础上,可自行进行扩展或完善。
3、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告以及系统使用说明书
2
3
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:
";
cin>>k;
}
elseif(flag==2)
{
break;
}
else
{
cout<<"选择错误,请重新输入。
\n";
gotoloop;
}
}
};
voidBook:
:
add()o=i;
cout<<"请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出版社、ISBN号、页数:
"< cin>>b_[i].headline>>b_[i].write>>b_[i].rating>>b_[i].publisher>>b_[i].ISBN_No>>b_[i].pages; } p1->save(); }; voidBook: : refer()eadline)==0) cout<<"图书编号: "< "< "< "< "< ""<<"ISBN号: "< "<<""< Sleep(10); } } break; case2: { cout<<"请输入要查找的图书编号"< cin>>; for(j=0;j { if==b_[j].No) cout<<"图书编号: "< "< "< "< "< ""<<"ISBN号: "< "<<""< Sleep(10); } } break; case3: { loop2: cout<<"请输入要查找的图书类别(未评级、一般、成人、儿童)"< cin>>; if=="未评级"||"一般"||"成人"||"儿童") { for(j=0;j { if(strcmp,b_[j].rating)==0) cout<<"图书编号: "< "< "< "< "< ""<<"ISBN号: "< "<<""< Sleep(10); } } else { cout<<"输入有误请重新输入: \n"; gotoloop2; } } break; case4: break; default: { cout<<"选择错误,请重新选择: \n"; gotoloop1; } break; } }; voidBook: : display() { for(j=1;j { cout<<"图书编号: "< "< "< "< "< ""<<"ISBN号: "< "<<""< Sleep(10); } }; voidBook: : modify() { intk; cout<<"请输入要修改的图书的编号"< cin>>; loop3: cout< cout <<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< <<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"< <<"┃┃"< <<"┃◇修改标题-----------①◇┃"< <<"┃◇修改作者-----------②◇┃"< <<"┃◇修改评级-----------③◇┃"< <<"┃◇修改出版社---------④◇┃"< <<"┃◇修改ISBN号---------⑤◇┃"< <<"┃◇修改页数-----------⑥◇┃"< <<"┃◇返回菜单-----------0◇┃"< <<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"< <<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< < cout< cout<<"请选择要修改的内容的编号: \n"; cin>>k; if(k>=0&&k<7){ switch(k) { case1: { charmheadline[20]; cout<<"请输入修改后的标题: "< cin>>mheadline; strcpy(b_[].headline,mheadline); } break; case2: { charmwrite[20]; cout<<"请输入修改后的作者: "< cin>>mwrite; strcpy(b_[].write,mwrite); } break; case3: { charmrating[20]; cout<<"请输入修改后的分级: (未评级、一般、成人、儿童)"< cin>>mrating; strcpy(b_[].rating,mrating); } break; case4: { charmpublishe[20]; cout<<"请输入修改后的出版社: "< cin>>mpublishe; strcpy(b_[].publisher,mpublishe); } break; case5: { charmISBN_No[20]; cout<<"请输入修改后的ISBN号: "< cin>>mISBN_No; strcpy(b_[].ISBN_No,mISBN_No); } break; case6: { intmpages; cout<<"请输入修改后的页数: "< cin>>mpages; b_[].pages=mpages; } break; case0: break; };} else { cout<<"选择错误,请重新输入: \n"; gotoloop3; } }; voidBook: : del() { cout<<"请输入要删除的图书的编号"< cin>>; for(j=;j { 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--; } }; voidBook: : Info() { cout<<"当前物品库中总物品数: "< }; voidBook: : save() { ofstreamout; ("图书信息.txt"); out< for(intk=1;k<=num1;k++) { out< } (); }; voidBook: : read() { ifstreamin; ("图书信息.txt"); in>>num1; 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++; } (); } voidBook: : Book_menu() { cout<<"\n\n ----------☆欢迎使用媒体库管理系统☆----------"< cout<<"\n\n ----------☆图书信息管理☆----------"< cout <<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< <<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"< <<"┃┃"< <<"┃◆添加图书-----------①◆┃"< <<"┃◆查询图书-----------②◆┃"< <<"┃◆显示图书-----------③◆┃"< <<"┃◆修改图书-----------④◆┃"< <<"┃◆删除图书-----------⑤◆┃"< <<"┃◆统计图书-----------⑥◆┃"< <<"┃◆退出系统-----------0◆┃"< <<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"< <<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< < }; CD类的实现 classCD: publicBase { public: voidCD_manage();回CD信息管理菜单.\n2.返回主菜单.\n"; cin>>flag; } if(flag==1) { (); cout<<"请选择\n: "; cin>>k; } elseif(flag==2) { break; } else { cout<<"选择错误,请重新输入: \n"; gotoloop6; } } }; voidCD: : add()o=i3; cout<<"请分别输入标题、作者、评级(未评级、一般、成人、儿童)、出品人的姓名、出品年份、视频时长"< cin>>v_[i3].headline>>v_[i3].write>>v_[i3].rating>>v_[i3].name>>v_[i3].year>>v_[i3].time; Sleep(10); } p3->save(); }; voidCD: : refer()eadline)==0) cout<<"视频编号: "< "< "< "< "< ""<<"出品年份: "< "<<""< Sleep(10); } } break; case2: { cout<<"请输入要查找的视频编号"< cin>>; for(j3=0;j3 { if==v_[j3].No) cout<<"视频编号: "< "< "< "< "< ""<<"出品年份: "< "<<""< Sleep(10); } } break; case3: { cout<<"请输入要查找的视频类别(未评级、一般、成人、儿童)"< cin>>; for(j3=0;j3 { if(strcmp,v_[j3].rating)==0) cout<<"视频编号: "< "< "< "< "< ""<<"出品年份: "< "<<""< Sleep(10); } } break; case4: break; default: { cout<<"选择有误,请重新输入: \n"; gotoloop7; } } }; voidCD: : display() { for(j3=1;j3 { cout<<"视频编号: "< "< "< "< "< ""<<"出品年份: "< "<<""< Sleep(10); } }; voidCD: : modify()eadline,mheadline); } break; case2: { charmwrite[20]; cout<<"请输入修改后的作者: "< cin>>mwrite; strcpy(v_[].write,mwrite); } break; case3: { charmrating[20]; cout<<"请输入修改后的分级: (未评级、一般、成人、儿童)"< cin>>mrating; strcpy(v_[].rating,mrating); } break; case4: { charmname[20]; cout<<"请输入修改后出品人的姓名: "< cin>>mname; strcpy(v_[].name,mname); } break; case5: { c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 媒体库 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)