媒体库管理系统.docx
《媒体库管理系统.docx》由会员分享,可在线阅读,更多相关《媒体库管理系统.docx(22页珍藏版)》请在冰点文库上搜索。
![媒体库管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/18a5d51c-6568-4653-8527-8ac4ad051f4d/18a5d51c-6568-4653-8527-8ac4ad051f4d1.gif)
媒体库管理系统
一、设计内容与设计要求
1.设计内容:
媒体库管理系统设计
问题描述
图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。
图书馆共有三大类物品资料:
图书、视频光盘、图画。
这三类物品共同具有的属性有:
编号、标题、作者、评级(未评级,一般,成人,儿童)等。
其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。
功能要求
(1)添加物品:
主要完成图书馆三类物品信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。
(2)查询物品
可按照三种方式来查询物品,分别为:
按标题查询:
输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!
”;
按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!
”;
按类别查询:
输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!
”;
(3)显示物品库:
输出当前物品库中所有物品信息,每条记录占据一行。
(4)编辑物品:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除物品:
主要完成图书馆物品信息的删除。
如果当前物品库为空,则提示“物品库为空!
”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。
(6)统计信息
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
(7)物品存盘:
将当前程序中的物品信息存入文件中。
(8)读出物品:
从文件中将物品信息读入程序。
问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
2.设计要求:
课程设计报告正文内容
(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。
(一)需求分析
系统设计目的与意义
系统功能需求(系统流程图);
输入输出的要求;
(二)总体设计
系统功能分析;
系统功能模块划分与设计(系统功能模块图)。
(三)详细设计
数据库需求分析
数据库概念结构设计(E-R图);
数据库逻辑结构设计。
类层次图
(四)界面设计与各功能模块实现
(五)系统调试
调试问题出现的主要问题:
编译语法错误及修改,重点是运行逻辑问题修改和调整
(六)使用说明及编程体会
说明如何使用你编写的程序,详细列出每一步的操作步骤。
(七)关键源程序(带注释)
书写格式
a.要求用A4纸打印成册
b.正文格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
c.正文的内容:
正文总字数要求在3000字左右(不含程序原代码)。
d.封面格式如下页。
考核方式
指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。
具体考核标准包含以下几个部分:
a.平时出勤(占10%)
b.系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)
c.程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)
d.设计报告(占30%)
注意:
不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。
e.独立完成情况(占10%)。
课程验收要求
a.判定算法设计的合理性,运行相关程序,获得正确的数值结果。
b.回答有关问题。
c.提交课程设计报告。
d.提交软盘(源程序、设计报告文档)。
e.依内容的创新程度,完善程序情况及对程序讲解情况打分。
三、 教材及参考书
朱战立等著,C++面向对象程序设计,人民邮电出版社;
郑莉著,C++语言程序设计(含实验指导书)。
清华大学出版社(结构化程序设计部分)
钱能主编,C++程序设计教程,清华大学出版社,2000.11
戴锋编著,VisualC++程序设计基础,清华大学出版社,2001.4
吕日著,C++程序设计教程,清华大学出版社,
C++大学教程,美国HarveyM.Deitel等
四、进度安排
第16-17周星期二8时:
00分——11时:
30分
星期二14时:
00分——17时:
30分
星期六8时:
30分——11时:
30分
星期六14时:
30分——17时:
30分
附:
选题方案:
所选题目根据学生学号确定,学号模9加1,即(学号%9+1)。
如你的学号为17,则所选题目号为:
17%9+1==9(题目9)。
可以最多三个选同一题的同学共同完成一项作业。
目录
一.需求设计*************************************************07
二.详细设计*************************************************08
三.界面设计与各功能模块的实现*************************10
四.系统调试*************************************************11
五.使用说明及心得体会************************************12
六.源代码****************************************************13
一.需求分析
要求用C++面向程序设计语言编写一媒体库管理系统,
1、目的:
1)要求学生达到熟练掌握C++语言的基本知识和技能;
2)基本掌握面向对象程序设计的基本思路和方法;
3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.系统设计的意义:
系统要能够对相应的数据进行很好的测试,系统开始的密码系统有良好的保密性,系统的录入可录入相应的媒体的信息,系统的查询可查询媒体的作者、编号、评级、标题以及各种媒体独有的信息,系统的修改可修改媒体的错误信息,系统的删除可删除丢失媒体的信息。
2.系统功能需求
1.要求完成以下功能:
1)能够从屏幕上读取一个媒体的信息并将信息存入到数据文件中。
2)能够将指定的信息从文件中删除。
3)能够按编号、标题、类别对媒体的信息进行检索并将检索结果显示在屏幕上。
4)添加媒体时,编号唯一,若编号重复则不与添加。
5)如果检索不到相应的信息应提示用户。
密码系统登陆菜单
3.系统功能流程图
其他人员菜单
管理员菜单
退出
信息查询
退出
信息删除
信息显示
信息查询
信息添加
4.输入输出的要求
1.输入的要求:
通过主函数体调用其他函数应用系统主控界面包括媒体信息添加,查询,显示,删除等功能模块。
媒体信息录入功能完成媒体信息的输入。
查询功能可以对数据各分类的记录进行查询。
修改功能可以对数据各分类进行修改。
删除功能可以对数据进行删除。
2.输出的要求:
1)能够按编号、标题、类别对媒体的信息进行检索并将检索结果显示在屏幕上。
2)如果检索不到相应的信息应提示用户。
二.详细设计
1.类设计
基类:
Tushuguan
数据成员:
作者、编号、标题、评级、类别编号
成员函数:
display()输入姓名、编号、标题、评级、类别编号
classTushuguan
{public:
charname[256];//作者
intnum;//编号
charbiaoti[256];//标题
charpingji[256];//评级
intx;//类别编号
voiddisplay(){cout<<"作者:
";cin>>name;cout<<"编号:
";cin>>num;
cout<<"标题:
";cin>>biaoti;cout<<"评级:
";cin>>pingji;
cout<<"类别编号(1.图书,2.视频光盘,3.图画):
";cin>>x;}};
派生类:
TushuShipinguangpanTuhua
①Tushu数据成员:
出版社ISBN号页数
成员函数:
display1()调用基类的display()函数和输入课时
Teacher(ints=800)//基本工资赋值
classTushu:
publicTushuguan
{public:
charcbs[256];//出版社
inthm;//ISBN号
intyeshu;//页数
voiddisplay1(){cout<<"请输入图书的";Tushuguan:
:
display();cout<<"请输入图书的出版社:
";cin>>cbs;cout<<"请输入图书的ISBN号:
";cin>>hm;cout<<"请输入图书的页数:
";cin>>yeshu;}};
②Shipinguangpan数据成员:
名字时长年份
成员函数:
display1()调用基类的display()函数
Shiyanyuan(ints=650,intb=150)//基本工资及补助赋值
classShipinguangpan:
publicTushuguan
{public:
charmingzi[256];//名字
intyear;//年份
intshichang;//时长
voiddisplay1(){cout<<"请输入视频光盘的";Tushuguan:
:
display();cout<<"请输入视频光盘出品者的名字:
";cin>>mingzi;cout<<"请输入视频光盘出品年份:
";cin>>year;cout<<"请输入视频光盘视频时长:
";cin>>shichang;}
};
③Tuhua数据成员:
国籍、长、宽
成员函数:
display1()调用基类的display()函数
classTuhua:
publicTushuguan
{public:
charguoji[256];//国籍
intchang;//长
intkuan;//宽
voiddisplay1()
{cout<<"请输入图画的";Tushuguan:
:
display();cout<<"请输入图画的出品国籍:
";cin>>guoji;cout<<"请输入图画作品的长:
";cin>>chang;cout<<"请输入图画作品的宽:
";cin>>kuan;}};
Tushuguan
#name[256]:
chai
#num:
int
#biaoti[256];char
#pingji[256];char
#x:
int
+display()void
具体如图:
基类
派生类
Tuhua
#guoji[]:
char
#chang:
int
#kuan:
int
+display1():
void
Shipinguangpan
#mingzi[]:
char
#year:
int
#shichang:
int
+display1():
void
Tushu
#cbs[256];char
#hm:
int
#yeshu:
int
+display1()void
三.界面设计与各功能模块的实现
1.界面设计
程序运行后会出现一个简捷的窗口,用户登录后可添加、查询、显示、删除数据。
2.功能模块实现设计
通过主窗体调用其他窗体。
应用系统主控界面包括信息添加、查询、显示、删除等功能模块。
信息添加功能完成媒体信息的输入;信息查询功能完成老师信息的查询;信息显示功能完成媒体信息的显示;信息删除功能完成媒体信息的删除。
具体举例如下:
1)添加函数
voidtushutianjia()//图书添加
{intn,m=3;ofstreamoutfile("图书.txt",ios:
:
app);if(outfile.fail()){cout<<"openerror!
"<(1);}intb;cout<<"请选择你要添加图书的本数:
";cin>>b;for(i=0;i>num1;cout<<"请重新输入图书的作者"<>nam;intn=0;for(j=0;j<100;j++){ifstreaminfile("图书.txt",ios:
:
in);infile>>t[j].num>>t[j].name;infile.close();if(t[j].num!
=num1)n++;break;if(t[j].num==num1&&strcmp(t[j].name,nam)!
=0)break;}for(j=0;j<100;j++){ifstreaminfile("视频光盘.txt",ios:
:
in);infile>>s[j].num;infile.close();if(s[j].num==num1)break;elsen++;break;}
for(j=0;j<100;j++){ifstreaminfile("图画.txt",ios:
:
in);infile>>h[j].num;infile.close();if(h[j].num==num1)break;elsen++;break;}strcpy(t[i].name,nam);t[i].num=num1;
for(j=0;j<100;j++){ifstreaminfile("图书.txt",ios:
:
in);infile>>t[j].num;if(t[j].num!
=0)m=3;elsem=2;infile.close();}if(n==m){outfile<"<2)查询函数
voidbianhaochaxun()//编号查询
{intn=0,bh;cout<<"请输入你要查询的编号:
";cin>>bh;for(i=0;i<100;i++){ifstreaminfile("图书.txt",ios:
:
in);infile>>t[i].num;if(t[i].num==0)break;if(t[i].num==bh){n++;infile>>t[i].x>>t[i].num>>t[i].name>>t[i].biaoti>>t[i].pingji>>t[i].cbs>>t[i].hm>>t[i].yeshu;
cout<"<{ifstreaminfile("视频光盘.txt",ios:
:
in);infile>>s[i].num>>s[i].year>>s[i].shichang;if(s[i].num==0)break;if(s[i].num==bh){n++;infile>>s[i].x>>s[i].num>>s[i].name>>s[i].biaoti>>s[i].pingji>>s[i].mingzi>>s[i].year>>s[i].shichang;cout<
"<:
in);infile>>h[i].num>>h[i].chang>>h[i].kuan;if(h[i].num==0)break;if(h[i].num==bh)infile>>h[i].x>>h[i].num>>h[i].name>>h[i].biaoti>>h[i].pingji>>h[i].guoji>>h[i].chang>>h[i].kuan;cout<"<3)显示函数
voidtushuxianshi()//图书显示
{ifstreaminfile("图书.txt",ios:
:
in);for(i=0;;i++)
{infile>>t[i].x>>t[i].num>>t[i].name>>t[i].biaoti>>t[i].pingji>>t[i].cbs>>t[i].hm>>t[i].yeshu;if(t[i].num==0)break;elsecout<!
!
"<4)删除函数
voidtushushachu()//图书删除
{ifstreaminfile("图书.txt",ios:
:
in);intbianha;cout<<"请输入你要删除图书的编号:
";cin>>bianha;for(i=0;i<100;i++){infile>>t[i].num>>t[i].x>>t[i].name>>t[i].biaoti>>t[i].pingji>>t[i].cbs>>t[i].hm>>t[i].yeshu;if(t[i].num==0)break;if(t[i].num==bianha){for(intj=i;j<100;j++){t[j].num=0;strcpy(t[j].name,"");strcpy(t[j].biaoti,"");strcpy(t[j].pingji,"");strcpy(t[j].cbs,"");t[j].x=0;t[j].hm=0;t[j].yeshu=0;}}}nfile.close();ofstreamoutfile("图书.txt",ios:
:
out);
for(i=0;i<100;i++){if(t[i].num!
=0)outfile<5)统计函数
voidxinxitongji()//数据统计
{intn=0,k=0,m=0;for(i=0;i<100;i++){ifstreaminfile("图画.txt",ios:
:
in);infile>>t[i].x>>t[i].num;
if(t[i].num==0)break;if(t[i].x==1)n++;infile.close();}for(i=0;i<100;i++){ifstreaminfile("视频光盘.txt",ios:
:
in);infile>>s[i].x>>s[i].num;if(s[i].num==0)break;if(s[i].x==2)k++;infile.close();}for(i=0;i<100;i++){ifstreaminfile("图画.txt",ios:
:
in);infile>>h[i].x>>h[i].num;
if(h[i].num==0)break;if(h[i].x==3)m++;infile.close();}cout<<"图书馆有图书:
"<"<四.系统调试
1.首页进入媒体管理系统登录系统
2.首页进入媒体库管理系统主菜单
3.可进入添加、查询、显示、删除、统计界面
五.使用说明及心得体会
通过这次对《高校工资管理系统》的设计,我体会到面向对象程序设计的特点,多态性,封装性,继承性,并掌握了一定的编程技巧,拓展了思维,提升了自己解决实际问题的能力。
虽然对文件和多态的理解还很肤浅,但是我学到了很多平时学不到的东西。
通过这次课程设计,深深体会到我对很多的专业知识还不了解,同时也把我在学这门课程的所存在的弊端暴露出来了,这就促使我要更多的阅读课外书籍,学到更多的专业知识,使自己得到不断的提高。
最后,我要衷心感谢老师和同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。
六代码
#include
#include
#include
#include