媒体库管理系统Word格式文档下载.docx
《媒体库管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《媒体库管理系统Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
(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时:
星期六8时:
30分——11时:
星期六14时:
30分——17时:
附:
选题方案:
所选题目根据学生学号确定,学号模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<
编号:
num;
标题:
biaoti;
评级:
pingji;
类别编号(1.图书,2.视频光盘,3.图画):
"
x;
}};
派生类:
TushuShipinguangpanTuhua
①Tushu数据成员:
出版社ISBN号页数
display1()调用基类的display()函数和输入课时
Teacher(ints=800)//基本工资赋值
classTushu:
publicTushuguan
charcbs[256];
//出版社
inthm;
//ISBN号
intyeshu;
//页数
voiddisplay1(){cout<
请输入图书的"
Tushuguan:
:
display();
cout<
请输入图书的出版社:
cbs;
请输入图书的ISBN号:
hm;
请输入图书的页数:
yeshu;
②Shipinguangpan数据成员:
名字时长年份
display1()调用基类的display()函数
Shiyanyuan(ints=650,intb=150)//基本工资及补助赋值
classShipinguangpan:
charmingzi[256];
//名字
intyear;
//年份
intshichang;
//时长
voiddisplay1(){cout<
请输入视频光盘的"
请输入视频光盘出品者的名字:
mingzi;
请输入视频光盘出品年份:
year;
请输入视频光盘视频时长:
shichang;
}
};
③Tuhua数据成员:
国籍、长、宽
classTuhua:
charguoji[256];
//国籍
intchang;
//长
intkuan;
//宽
voiddisplay1()
{cout<
请输入图画的"
请输入图画的出品国籍:
guoji;
请输入图画作品的长:
chang;
请输入图画作品的宽:
kuan;
#name[256]:
chai
#num:
int
#biaoti[256];
char
#pingji[256];
#x:
int
+display()void
具体如图:
基类
派生类
Tuhua
#guoji[]:
char
#chang:
#kuan:
+display1():
void
Shipinguangpan
#mingzi[]:
#year:
int
#shichang:
Tushu
#cbs[256];
char
#hm:
#yeshu:
+display1()void
三.界面设计与各功能模块的实现
1.界面设计
程序运行后会出现一个简捷的窗口,用户登录后可添加、查询、显示、删除数据。
2.功能模块实现设计
通过主窗体调用其他窗体。
应用系统主控界面包括信息添加、查询、显示、删除等功能模块。
信息添加功能完成媒体信息的输入;
信息查询功能完成老师信息的查询;
信息显示功能完成媒体信息的显示;
信息删除功能完成媒体信息的删除。
具体举例如下:
1)添加函数
voidtushutianjia()//图书添加
{intn,m=3;
ofstreamoutfile("
图书.txt"
ios:
app);
if(outfile.fail()){cout<
openerror!
endl;
exit
(1);
}intb;
请选择你要添加图书的本数:
b;
for(i=0;
i<
i++){intnum1;
charnam[256];
t[i].display1();
请重新输入图书的编号"
num1;
请重新输入图书的作者"
nam;
intn=0;
for(j=0;
j<
100;
j++){ifstreaminfile("
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++){ifstreaminfile("
视频光盘.txt"
s[j].num;
if(s[j].num==num1)break;
elsen++;
for(j=0;
图画.txt"
h[j].num;
infile.close();
if(h[j].num==num1)break;
}strcpy(t[i].name,nam);
t[i].num=num1;
j++){ifstreaminfile("
t[j].num;
if(t[j].num!
=0)m=3;
elsem=2;
}if(n==m){outfile<
t[i].x<
t[i].num<
t[i].name<
t[i].biaoti<
t[i].pingji<
t[i].cbs<
t[i].hm<
1"
t[i].yeshu<
}elsecout<
数据添加重复。
}outfile.close();
}
2)查询函数
voidbianhaochaxun()//编号查询
{intn=0,bh;
请输入你要查询的编号:
bh;
i++){ifstreaminfile("
infile>
t[i].num;
if(t[i].num==0)break;
if(t[i].num==bh){n++;
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<
}break;
}if(n==0)cout<
图书内没有你要查询的信息。
n=0;
i++)
{ifstreaminfile("
s[i].num>
s[i].year>
s[i].shichang;
if(s[i].num==0)break;
if(s[i].num==bh){n++;
s[i].x>
s[i].name>
s[i].biaoti>
s[i].pingji>
s[i].mingzi>
s[i].x<
s[i].num<
s[i].name<
s[i].biaoti<
s[i].pingji<
s[i].mingzi<
s[i].year<
s[i].shichang<
视频光盘内没有你要查询的信息。
i++){ifstreaminfile("
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].name>
h[i].biaoti>
h[i].pingji>
h[i].guoji>
h[i].x<
h[i].num<
h[i].name<
h[i].biaoti<
h[i].pingji<
h[i].guoji<
h[i].chang<
h[i].kuan<
}break;
}if(n==0)cout<
图画没有你要查询的信息。
}
3)显示函数
voidtushuxianshi()//图书显示
{ifstreaminfile("
i++)
{infile>
elsecout<
}cout<
图书显示完毕!
!
4)删除函数
voidtushushachu()//图书删除
{ifstreaminfile("
intbianha;
请输入你要删除图书的编号:
bianha;
i++){infile>
if(t[i].num==bianha){for(intj=i;
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("
out);
i++){if(t[i].num!
=0)outfile<
}outfile.close();
5)统计函数
voidxinxitongji()//数据统计
{intn=0,k=0,m=0;
i++){ifstreaminfile("
if(t[i].num==0)break;
if(t[i].x==1)n++;
}for(i=0;
s[i].num;
if(s[i].x==2)k++;
h[i].num;
if(h[i].num==0)break;
if(h[i].x==3)m++;
}cout<
图书馆有图书:
n<
本"
图书馆有视频光盘:
m<
个"
图书馆有图画"
k<
册"
四.系统调试
1.首页进入媒体管理系统登录系统
2.首页进入媒体库管理系统主菜单
3.可进入添加、查询、显示、删除、统计界面
五.使用说明及心得体会
通过这次对《高校工资管理系统》的设计,我体会到面向对象程序设计的特点,多态性,封装性,继承性,并掌握了一定的编程技巧,拓展了思维,提升了自己解决实际问题的能力。
虽然对文件和多态的理解还很肤浅,但是我学到了很多平时学不到的东西。
通过这次课程设计,深深体会到我对很多的专业知识还不了解,同时也把我在学这门课程的所存在的弊端暴露出来了,这就促使我要更多的阅读课外书籍,学到更多的专业知识,使自己得到不断的提高。
最后,我要衷心感谢老师和同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。
六代码
#include<
iostream>
fstream.h>
stdlib.h>
string