媒体库管理系统.docx

上传人:b****3 文档编号:6960210 上传时间:2023-05-10 格式:DOCX 页数:22 大小:67.86KB
下载 相关 举报
媒体库管理系统.docx_第1页
第1页 / 共22页
媒体库管理系统.docx_第2页
第2页 / 共22页
媒体库管理系统.docx_第3页
第3页 / 共22页
媒体库管理系统.docx_第4页
第4页 / 共22页
媒体库管理系统.docx_第5页
第5页 / 共22页
媒体库管理系统.docx_第6页
第6页 / 共22页
媒体库管理系统.docx_第7页
第7页 / 共22页
媒体库管理系统.docx_第8页
第8页 / 共22页
媒体库管理系统.docx_第9页
第9页 / 共22页
媒体库管理系统.docx_第10页
第10页 / 共22页
媒体库管理系统.docx_第11页
第11页 / 共22页
媒体库管理系统.docx_第12页
第12页 / 共22页
媒体库管理系统.docx_第13页
第13页 / 共22页
媒体库管理系统.docx_第14页
第14页 / 共22页
媒体库管理系统.docx_第15页
第15页 / 共22页
媒体库管理系统.docx_第16页
第16页 / 共22页
媒体库管理系统.docx_第17页
第17页 / 共22页
媒体库管理系统.docx_第18页
第18页 / 共22页
媒体库管理系统.docx_第19页
第19页 / 共22页
媒体库管理系统.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

媒体库管理系统.docx

《媒体库管理系统.docx》由会员分享,可在线阅读,更多相关《媒体库管理系统.docx(22页珍藏版)》请在冰点文库上搜索。

媒体库管理系统.docx

媒体库管理系统

 

一、设计内容与设计要求

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2