媒体库管理系统 C++.docx

上传人:b****3 文档编号:27482403 上传时间:2023-07-02 格式:DOCX 页数:66 大小:725.62KB
下载 相关 举报
媒体库管理系统 C++.docx_第1页
第1页 / 共66页
媒体库管理系统 C++.docx_第2页
第2页 / 共66页
媒体库管理系统 C++.docx_第3页
第3页 / 共66页
媒体库管理系统 C++.docx_第4页
第4页 / 共66页
媒体库管理系统 C++.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

媒体库管理系统 C++.docx

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

媒体库管理系统 C++.docx

媒体库管理系统C++

目录

第一章绪论2

1.1课程设计的目的2

1.2课程设计的背景和意义2

1.3课程设计环境2

第二章需求分析3

2.1问题描述3

2.2功能要求3

2.3问题的解决方案3

第三章系统设计4

3.1总体设计4

3.1.1系统功能分析:

4

3.1.2系统功能模块划分与设计:

4

3.1.3继承类描述4

3.2系统功能模块图:

5

3.2.1主要功能5

3.2.2对象的行为5

3.2.3系统功能模块图:

5

3.3类的设计6

4.图画类的设计8

第四章详细设计及功能实现8

4.1资料信息的读取功能的实现8

4.2资料信息的添加功能的实现9

4.3资料信息的查询功能的实现9

4.4资料信息的修改功能的实现11

4.5资料信息的删除功能的实现12

4.6资料信息的统计功能的实现13

4.7资料信息的功能的实现13

4.8资料信息的保存功能的实现14

4.9主函数实现14

第五章系统测试16

5.1主菜单模块测试:

16

5.2添加模块测试:

16

5.3查询模块测试17

5.4修改功能模块测试模块:

17

5.5显示功能模块测试18

5.6删除功能模块测试:

19

5.7统计功能模块测试:

19

5.8退出功能模块测试20

第六章:

课程总结20

第七章:

心得体会20

参考文献21

源代码22

第一章绪论

1.1课程设计的目的

课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。

通过课程设计,能够提高学生的分析问题,解决问题,要能很好的完成课程设计,要求我们必须掌握在学习中学到的知识,所以要我们对课本中学的知识要熟悉且掌握,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。

1.2课程设计的背景和意义

1.2.1课程设计的背景

1.理论研究基础

(1)C++语言的基本知识和技能,如:

类与对象,指针,输入/输出流,文本文件的建立保存;

(2)面向对象程序设计的基本思路和方法。

2.技术层面的支持

(1)研究这些结构的存储、显示,并有查找、添加、删除、修改、查询、统计、保存信息、载入等功能。

(2)类定义、类对象、继承、组合、多态和文件的输入/输出等内容。

1.2.2课程设计的意义

(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。

帮助了同学系统的掌握C++课程的主要内容。

(2)综合实际应用的需求是课程设计既覆盖教学所要求的知识点,有接近工程的实际需求,训练自己实际分析问题和解决问题以及编程的能力。

做到理论结合实际。

1.3课程设计环境

(1)在MicrosoftVisualC++6.0开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入合理的以及不合理的数据进行测试并进一步完善。

(2)硬件:

学校机房

(3)软件:

MicrosoftVisualC++6.0开发平台

第二章需求分析

2.1问题描述

图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。

图书馆共有三大类物品资料:

图书、视频光盘、图画。

这三类物品共同具有的属性有:

编号、标题、作者、评级(未评级,一般,成人,儿童)等。

其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品人的姓名、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。

2.2功能要求

(1)基本功能

1)添加物品:

主要完成图书馆三类物品信息的添加,要求编号唯一。

当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。

2)查询物品

可按照三种方式来查询物品,分别为:

按标题查询:

输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!

按编号查询:

输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!

”;

按类别查询:

输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!

”;

3)显示物品库:

输出当前物品库中所有物品信息,每条记录占据一行。

4)编辑修改物品:

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

5)删除物品:

主要完成图书馆物品信息的删除。

如果当前物品库为空,则提示“物品库为空!

”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。

6)统计信息

输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。

7)物品存盘:

将当前程序中的物品信息存入文件中。

8)读出物品:

从文件中将物品信息读入程序。

2.3问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

第三章系统设计

3.1总体设计

3.1.1系统功能分析:

系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。

add()函数用于录入信息;modify()函数用来修改信息;del()函数用来修改信息;;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;主函数main()用于调用这些函数。

3.1.2系统功能模块划分与设计:

系统定义了book类、cd类、picture类这三个类,定义了add()、modify()、del()、read()、save()、search()、show()、total()等函数来实现系统所需功能。

3.1.3继承类描述

book类相比基类,Book类增加了出版社的名字,ISBN号(可简单认为是一个由0-9,‘-’,A-Z构成的字符串),书的页数这三个数据成员。

CD类相比基类,Video类增加了出品者的名字,出品年份和视频时长(以分钟计,整数)这三个数据成员。

picture类相比基类,Painting类增加了出品国籍,作品的长与宽(以厘米计,整数)这三个数据成员。

3.2系统功能模块图:

3.2.1主要功能

(1)能够打开用户指定的文本文件,并将数据读入。

(2)对于文件中的物品信息,能提供一系列操作:

新增一个物品、删除物品、修改物品信息、显示满足搜索条件的物品。

(3)能够将用户操作完毕后的文件进行保存到指定文件名的文本文件中。

3.2.2对象的行为

BookCDpicture类型的物品的行为

1.相应类型物品的信息输入

2.相应类型物品的信息输出

3.物品信息从文件中\控制台读入

4.物品信息输出到文件中\控制台

媒体库的行为

1.打开一个文件读入其中的相关物品信息;

2.增加对其中的物品进行增加;

3.对其中的物品进行查找;

4.对其中的物品进行修改;

5.对其中的物品进行删除;

6.显示媒体库中所有物品信息;

0.退出媒体库并保存媒体库信息;

3.2.3系统功能模块图:

3.3类的设计

3.3.1.Base类(抽象类)的设计:

 

3.3.2.图书类的设计:

 

3.3.3光盘类的设计:

 

3.3.4.图画类的设计

 

第四章详细设计及功能实现

4.1资料信息的读取功能的实现

该功能用于对资料信息进行读取,可将保存在相应的文本文档中的各类人员的信息读取到内存中;

该功能在book类中的构造函数中,主函数中定义该类的对象,运行时自动将各文件中的资料信息读取出来;

voidbook:

:

read()

{

fstreambookfile("图书信息.txt",ios:

:

in|ios:

:

out);

bookfile>>b2[count_book].num>>b2[count_book].title>>b2[count_book].author>>b2[count_book].rank>>b2[count_book].press>>b2[count_book].ISBN>>b2[count_book].page;

while(!

bookfile.eof())

{

count_book++;bookfile>>b2[count_book].num>>b2[count_book].title>>b2[count_book].author>>b2[count_book].rank>>b2[count_book].press>>b2[count_book].ISBN>>b2[count_book].page;

}

bookfile.close();

}

4.2资料信息的添加功能的实现

该功能用于对资料信息进行添加,该功能分别调用base类中的查询函数,分别实现对图书、视频光盘、图画信息的添加

case1:

{

bookb3;

p=&b3;

cout<<"编号:

";cin>>b3.num;

cout<<"标题:

";cin>>b3.title;

cout<<"作者:

";cin>>b3.author;

cout<<"评级:

";cin>>b3.rank;

cout<<"出版社:

";cin>>b3.press;

cout<<"ISBN号:

";cin>>b3.ISBN;

cout<<"页数:

";cin>>b3.page;

cout<<"是否保存图书信息?

(y/n)\n";

cin>>out;

if(out=='y')

{

p->add();

p->save();

}

break;

}

voidbook:

:

add()

{

strcpy(b2[count_book].num,num);

strcpy(b2[count_book].title,title);

strcpy(b2[count_book].author,author);

strcpy(b2[count_book].rank,rank);

strcpy(b2[count_book].press,press);

strcpy(b2[count_book].ISBN,ISBN);

b2[count_book].page=page;

count_book++;

}

4.3资料信息的查询功能的实现

该功能用于对资料信息进行查询,可按照编号或标题或类别进行查询。

分别调用base类中的查询函数和各派生类中的显示函数,分别实现对图书、视频光盘、图画信息的查询.

voidbook:

:

search()

{

cout<<"请选择查询方式:

(1.标题,2.编号,3.类别,4.退出)";

intd,i;

cin>>d;

switch(d)

{

case1:

{

cout<<"请输入图书标题:

"<

cin>>title;

for(i=0;i

{

if(strcmp(b2[i].title,title)==0)

{

cout<<"您查找的图书信息为:

"<

cout<

cout<

}

else

if(i==count_book-1)

cout<<"查找失败,请重新输入!

"<

}

break;

}

case2:

{

cout<<"请输入图书编号:

"<

cin>>num;

for(i=0;i

{

if(strcmp(num,b2[i].num)==0)

{

cout<<"您查找的图书信息为:

"<

cout<

cout<

}

else

if(i==count_book-1)

cout<<"查找失败,请重新输入!

"<

}

break;

}

case3:

{

cout<<"请输入图书类别:

"<

cin>>rank;

for(i=0;i

{

if(strcmp(rank,b2[i].rank)==0)

{

cout<<"您查找的图书信息为:

"<

cout<

cout<

}

else

if(i==count_book-1)

cout<<"查找失败,请重新输入!

";

}break;

}

case4:

break;

default:

cout<<"请重新输入!

";

}

}

4.4资料信息的修改功能的实现

该功能用于对资料信息进行修改,在查询到需要修改的资料后进行编辑,分别调用base类中查询及各类中的显示,删除,添加函数,分别实现对图书、视频光盘、图画信息的编辑.

case4:

{

bookb6;

p=&b6;

intindex;

p->show();

cout<<"请选择要修改的图书编号:

\n";

cin>>index;

cout<<"请输入要修改的图书:

"<

cout<<"编号:

";cin>>b6.num;

cout<<"标题:

";cin>>b6.title;

cout<<"作者:

";cin>>b6.author;

cout<<"评级:

";cin>>b6.rank;

cout<<"出版社:

";cin>>b6.press;

cout<<"ISBN号:

";cin>>b6.ISBN;

cout<<"页数:

";cin>>b6.page;

cout<<"是否保存班级信息?

(y/n)\n";

cin>>out;

if(out=='y')

{

p->modify(index);

p->save();

cout<<"已完成修改"<

system("pause");

}

break;

}

voidbook:

:

modify(intindex)

{

strcpy(b2[index-1].num,num);

strcpy(b2[index-1].title,title);

strcpy(b2[index-1].author,author);

strcpy(b2[index-1].rank,rank);

strcpy(b2[index-1].press,press);

strcpy(b2[index-1].ISBN,ISBN);

b2[index-1].page=page;

}

4.5资料信息的删除功能的实现

该功能用于对资料信息进行删除,在查询到需要删除的资料后进行删除,分别调用base类中的查询函数和各类中的显示,删除函数,分别实现对图书、视频光盘、图画信息的删除.

voidbook:

:

del(intb)

{

for(inti=b;i<=count_book-1;i++)

{

strcpy(b2[i-1].num,b2[i].num);

strcpy(b2[i-1].title,b2[i].title);

strcpy(b2[i-1].author,b2[i].author);

strcpy(b2[i-1].rank,b2[i].rank);

strcpy(b2[i-1].press,b2[i].press);

strcpy(b2[i-1].ISBN,b2[i].ISBN);

b2[i-1].page=b2[i].page;

}

count_book--;

}

4.6资料信息的统计功能的实现

该功能用于对资料信息进行统计,可统计资料的总数及各类别总数等信息

voidbook:

:

total()

{

intsum=0;

for(inti=1;i<=count_book;i++)

{

sum=sum+i;

}

cout<<"总的图书数目:

"<

cout<

for(i=0;i

{

cout<

}

}

4.7资料信息的功能的实现

该功能用于对资料信息进行显示,对各类资料按编号进行排序后调用各派生类的显示函数,可将各类资料的信息分别显示出来

voidbook:

:

show()

{

cout<

for(inti=0;i

{

cout<

}

}

4.8资料信息的保存功能的实现

该功能用于对资料信息进行保存,可将各类资料的信息分别保存在不同的txt文本文档中,分别实现对图书,光盘,图画信息的保存。

该功能在base类中的析构函数中,在退出系统时,程序中的资料信息自动保存在相应文件中。

voidbook:

:

save()

{

ofstreambookfile;

bookfile.open("图书信息.txt");

for(inti=0;i<=count_book-1;i++)

bookfile<

bookfile.close();

}

4.9主函数实现

在主函数中,定义一个book,CD,picture类的对象,调用资料管理函数实现各个功能。

voidmain()

{

//将各个文件中的数据依次读入内存

bookbb;

bb.read();

CDCC;

CC.read();

picturepp;

pp.read();

intchoice=1;//显示主菜单

while

(1)

{

cout<<"****************媒库管理系统主菜单****************"<

cout<<"1、图书信息管理"<

cout<<"2、光盘信息管理"<

cout<<"3、图画信息管理"<

cout<<"0、退出主菜单"<

cout<<"请输入所要操作的编号:

";

cin>>choice;

switch(choice)

{

case1:

book_manage();break;

case2:

CD_manage();break;

case3:

picture_manage();break;

case0:

cout<<"感谢你的使用!

"<

default:

cout

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

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1