




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+湎向对象程序设计课程设计报告课程名称 C+面向对象程序设计课题名称媒体库管理系统专 业 网络工程班 级551学 号姓 名高慧鹏指导教师2014年12 月22 日、课程设计题目:媒体库管理系统、目的与要求:1、目的:(1)要求学生达到熟练掌握C+胡言的基本知识和技能;( 2)基本掌握面向对象程序设计的基本思路和方法;( 3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及C+勺编程思想来完成系统的设计;( 2)要求在设计的过程中,建立清晰的类层次;( 3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;( 4)在系统的设计中
2、,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。、设计方法和基本原理:功能要求:1)添加物品程序主要完成图书馆三类物品信息的添加,要求编号唯一。如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果物品库已满,则提示不能再添加新的物2)查询物品可按照三种方式进行物品的查询。,按标题查询:按编号查询:按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。3)显示物品库可显示当前物品库中所有的物品信息。4)修改物品可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除物品对已添加的物品信息
3、进行删除。如果当前物品库为空,则提示“物品库为空! ”并返回操作;否则输入要删除的编号,根据编号删除该物品信息,如果没有找到该物品信息,则提示“该编号不存在” 。6)统计功能输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。7)保存物品将当前系统中物品信息存入文件中。8)读取物品将保存在文件中的物品信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:( 1应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;( 2分析系统中的各个实体及它们之间的关系包括属性和
4、行为;( 3根据问题描述,设计系统的类层次;( 4完成类层次中各个类的描述(包括属性和方法;( 5完成类中各个成员函数的定义;( 6完成系统的应用模块;( 7功能调试;( 8完成系统总结报告以及系统使用说明书1 .系统需求分析2 .总体设计区详细设计及实现4 .系统调试 425 .结论 436 .心得体会 431. 系统需求分析1.1 系统设计的目的与意义:图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。1.2 系统功能需求:本系统有四个类:Base类、Book类、CD、Draw类,存储资料信息、编号、标题、 作者、评级。 Base 为父类,
5、其余三个为子类,每个子类具有自己的特点。1 基础信息的添加功能程序能够任意添加图书、CD视频光盘、图画信息以及各自对应的相关信息。2修改功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查 找和修改。3删除功能对已添加的记录(图书、CD视频光盘、图画信息以及各自对应的相关信息)进行查 找和删除。如果当前系统中没有相应的记录,则提示“记录为空! ”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。4查询功能 可根据资料的编号查询资料及其内容。 可根据标题查找。 根据类别查询如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信
6、息。5保存功能将当前系统中各类记录存入文件中。6读取功能将保存在文件中的信息读入到当前系统中,以供用户使用。2. 总体设计2.1 系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。add ()函数用于添加信息;modify ()函数用来修改信息;del ()函数用来修改信息; refer ()函数用来查询数据信息; read ()函数用于将文件中的数据读取到内存中;save ()函数用于将内存中的信息存入文件内;主函数 main ()用于调 用这些函数。2.2 系统功能模块划分与设计:系统定义了 Base基类、Book类、CDt、Draw类这四个
7、类,定义了 add()、modify () 、 del () 、 read () 、 save() 、 refer ()等函数来实现系统所需功能。2.3 系统功能模块图:媒体库管理系统LibraryH图画信息统计图画信息查询图画信息删除图画信息修改图画信息添加视频光盘信息统视频光盘信息查视频光盘信息删.视频光盘信息添然图书信息添加Base图 3.1 Base 类void mainmenu();(2)图书类的设计:virtual void add();Bookvirtual void refer。;图3.2班级类void Book_manage(); virtual void display()
8、(3) CD类的设计:void Book_menu();void add();图£D学生类void refer();(4)图片类的设计void CD_manage();void add();Drawvoid refer();void Draw_manage();图 3.4 课程类6)各个类的关系描述:3. 详细设计及实现3.1 Base 类(抽象类 )的实现class Basepublic:void mainmenu();virtual void add();virtual void refer();virtual void display();virtual void modify
9、();virtual void del();virtual void Info();virtual void save();virtual void read();int No;/ 添加物品/ 查询物品/ 显示物品库/ 修改物品/ 删除物品/ 统计功能/ 保存物品/ 读取物品/ 编号/ 标题char headline200;/ 作者/ 评级/ 管理菜单显示/ 添加物品查询物品/ 显示物品库/ 修改物品/ 删除物品char write200;char rating200;3.2 班级类的实现Book.hclass Book:public Basepublic:void Book_manage()
10、;void Book_menu();/void add();void refer();/void display();void modify();void del();void Info();/ 统计功能/ 保存物品void save();void read();/ 读取物品char publisher20;/ 出版社char ISBN_No20;/ISBN号int pages;/ 页数;Book.cpp#include<iostream.h>#include<fstream.h>#include<string.h>#include"windows
11、.h"/ 暂停头文件#include"Book.h"const int maxsize_book=100;/ 图书数据最大长度Book b_maxsize_book;int count_book=1;Book b,b1;Base *p1;int i,j,num1,num2;void Book:Book_manage()int flag=1;int k;p1=&b;p1->read();b.Book_menu();loop4: cout<<" 请输入所要操作的编号:n"cin>>k;while(flag=1)
12、if(k>=0&&k<7)switch(k)/ 菜单选择case 1:p1->add();break;case 2:p1->refer();break;case 3:p1->display();break;case 4:p1->modify();break;case 5:p1->del();break;case 6:p1->Info();break;case 0:break;elsecout<<" 输入有误 , 请重新输入: n"goto loop4;loop: flag=0;if(flag=0)n
13、2.cout<<"n 请选择接下来的操作? n1. 返回图书信息管理菜单返回主菜单. n"cin>>flag; if(flag=1)b.Book_menu();cout<<" 请选择 n : "cin>>k;else if(flag=2)break;elsen"cout<<" 选择错误,请重新输入。goto loop;/添加图书数据void Book:add()(cout<<"请输入要添加数据的个数:"<<endl;cin>&
14、gt;num1;for(j=0;j<num1;j+)(cout<<"请输入图书编号:"<<endl;cin>>b.No;i=b.No;b_i.No=i;cout<<"请依次输入数据标题、作者、评级(未评级、一般、成人、儿童)、出 版社、ISBN号、页数:"<<endl;cin>>b_i.headline>>b_i.write>>b_i.rating>>b_i.publisher>>b_i.ISBN_No>>b_i.pa
15、ges;p1->save(););void Book:refer()/查找子菜单(loop1:cout<<""<<endl<<" in "<<endl<<"I "<<endl< <" I 按标题查询I "<<endl< <"I 按标题查询I "<<endl< <"I 按标题查询I "<<endl< <" I
16、 退出子菜单I "<<endl< <"|I "<<endl< <"1"<<endl<<" "<<endl<<endl;cout<<"请输入你要查询的方式编号:n"<<endl;cin>>num2;switch(num2)/三种情况用选择语句case 1:cout<<"请输入要查找的图书标题:n"<<endl;cin>>b
17、1.headline;for(j=0;j<maxsize_book;j+)(if(strcmp(b1.headline,b_j.headline)=0)cout<<"图书编号:"<<b_j.No<<""<<" 标 题 :<<b_j.headline<<" "<<" 作者:"<<b_j.write<<" "<<"评 级 :<<b_j.rati
18、ng<<" 出版社:"<<b_i.publisher<<""<<"ISBN 号:"<<b_j.ISBN_No<<""<<"页数:"<<""<<b_j.pages<<endl;Sleep(10);break;case 2:(cout<<"请输入要查找的图书编号"<<endl;cin>>b1.No;for(
19、j=0;j<maxsize_book;j+)(if(b1.No=b_j.No)cout<<"图书编号:"<<b_j.No<<""<<" 标 题 :"<<b_j.headline<<" "<<" 作者:"<<b_j.write<<" "<<"评 级 :"<<b_j.rating<<" 出版社:&quo
20、t;<<b_i.publisher<<""<<"ISBN 号:"<<b_j.ISBN_No<<""<<"页数:"<<"“<<b_j.pages<<endl;Sleep(10);break;case 3: (loop2: cout<<"请输入要查找的图书类别(未评级、一般、成人、儿童) "<<endl;cin>>b1.rating;if(b1.r
21、ating="未评级"|" 一般"|"成人"|"儿童")for(j=0;j<maxsize_book;j+)(if(strcmp(b1.rating,b_j.rating)=0)标题:评级:<<"页数:"<<"cout<<"图书编号:"<<b_j.No<<""<<<<b_j.headline<<" "<<"
22、; 作者:"<<b_j.write<<" "<<"<<b_j.rating<<"出版社:"<<b_j.publisher<<""<<"ISBN 号:"<<b_j.ISBN_No<<""<<b_j.pages<<endl;Sleep(10);else(cout<<"输入有误请重新输入:n"goto 100
23、P2;break;case 4:break;default:n"cout<<" 选择错误,请重新选择:goto loop1;break;void Book:display()for(j=1;j<num1+1;j+)"<<endlcout<<"图书编号:"<<b_j.No<<" "<<"标题:"<<b_j.headline<<" "<<"作者:"<&
24、lt;b_j.write<<""<<" 评 级 :"<<b_j.rating<<" 出 版社:"<<b_j.publisher<<""<<"ISBN 号:"<<b_j.ISBN_No<<""<<" 页 数 :"<<""<<b_j.pages<<endl;Sleep(10);void
25、Book二modify()int k;cout<<"请输入要修改的图书的编号"<<endl;cin>>b1.No;100P3:cout<<endl<<endl;cout<<"n "<<endl<<I "<<endl< <"I 修改标题I "<<endl< <"I 修改作者I "<<endl< <"I 修改评级I "<
26、;<endl< <"I 修改出版社I "<<endl< <"| 修改ISBN号I "<<endl< <"I 修改页数I "<<endl< <"返回菜单0I "<<endl<<"<<endl<<" "<<endl<<endl;cout<<endl<<endl;cout<<"请选择要修
27、改的内容的编号:n"cin>>k;if(k>=0&&k<7)switch(k)case 1:char mheadline20;cout<<"请输入修改后的标题:"<<endl;cin>>mheadline;strcpy(b_b1.No.headline,mheadline);break;case 2:char mwrite20;cout<<" 请输入修改后的作者: "<<endl;cin>>mwrite;strcpy(b_b1.No.
28、write,mwrite);break;case 3:char mrating20;cout<<" 请输入修改后的分级: (未评级、 一般、 成人、 儿童) "<<endl;cin>>mrating;strcpy(b_b1.No.rating,mrating);break;case 4:char mpublishe20;cout<<" 请输入修改后的出版社: "<<endl;cin>>mpublishe;strcpy(b_b1.No.publisher,mpublishe);brea
29、k;case 5:char mISBN_No20;cout<<”请输入修改后的ISBN号:"<<endl;cin>>mISBN_No;strcpy(b_b1.No.ISBN_No,mISBN_No);break;case 6:int mpages;cout<<" 请输入修改后的页数: "<<endl;cin>> mpages;b_b1.No.pages=mpages;break;case 0:break;elsecout<<" 选择错误,请重新输入: n"got
30、o loop3;void Book:del()cout<<" 请输入要删除的图书的编号"<<endl;cin>>b1.No;for(j=b1.No;j<num1;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)
31、;b_j.pages=b_j+1.pages;num1-;void Book:Info():"<<num1<<endl;cout<<" 当前物品库中总物品数;void Book:save()ofstream out;out.open(" 图书信息 .txt");out<<num1<<endl;for(int k=1;k<=num1;k+)out<<b_k.No<<<<b_k.headline<<<<b_k.write<<
32、;""<<b_k.rating<<""<<b_k.publisher<<""<<b_k.ISBN_No<<"<<b_k.pages<<endl;out.close();void Book:read()ifstream in;in.open("图书信息.txt");in>>num1;while(num1>=count_book)in>>b_count_book.No>>b
33、_count_book.headline>>b_count_book.write>>b_ count_book.rating>>b_count_book.publisher>>b_count_book.ISBN_No>>b_c ount_book.pages;count_book+;)in.close();)void Book:Book_menu()(cout<<"nn 欢迎使用媒体库管理系统"<<endl<<endl;cout<<"nn 图书信息管理&qu
34、ot;<<endl<<endl;cout<<""<<endl<<"1"<<endl<<<<endl<<"1 添加图书 <<endl<<"1 查询图书 <<endl<<"1 显示图书 <<endl<<"1 修改图书 <<endl<<"1 删除图书 <<endl<<"1 统计
35、图书 <<endl<<"1 退出系统0<<endl<<"11<<endl<<"<<endl<<endl;3.3 CD 类的实现CD.hclass CD:public Basepublic:void CD_manage();/void add();void refer();/void display();void modify();void del();void Info();/void save();/管理子菜单/ 添加物品查询物品/ 显示物品库/ 修改物品/ 删除物品
36、统计功能保存物品读取物品void read();/void cd_menu();/ 菜单char name20;/作者名char year20;/出版年份char time20;/播放时长;CD.cpp#include<iostream.h>#include<fstream.h>#include<string.h>#include"windows.h"/ 暂停头文件#include"CD.h"const int maxsize_video=100;/ 储存的最大值CD v_maxsize_video;int count
37、_video=1;CD v,v1;Base *p3;int i3,j3,vnum1,vnum2;void CD:CD_manage()/Cd 管理选择int flag=1;int k;p3=&v;p3->read();v.cd_menu();loop5: cout<<" 请输入所要操作的编号: "cin>>k;while(flag=1)if(k>=0&&k<7)switch(k)/ 第二菜单选择case 1:p3->add();break;case 2:p3->refer();break;case
38、 3:p3->display();break;case 4:p3->modify();break;case 5:p3->del();break;case 6:p3->Info();break;case 0:break;elsecout<<" 输入有误请重新输入: n"goto loop5;loop6: flag=0;if(flag=0)n2. 返cout<<"n请选择接下来的操作:n1. 返回CD言息管理菜单.回主菜单 . n"cin>>flag; if(flag=1)v.cd_menu();c
39、out<<" 请选择 n : "cin>>k;else if(flag=2)break;elsen"cout<<" 选择错误,请重新输入:goto loop6;/添力口 CDvoid CD:add()(cout<<"请输入要添加编号的个数:"<<endl;cin>>vnum1;for(j3=0;j3<vnum1;j3+)(cout<<"请输入视频编号:"<<endl;cin>>v.No;i3=v.No;
40、v_i3.No=i3;cout<<”请分别输入标题、作者、评级(未评级、一般、成人、儿童)、出品人 的姓名、出品年份、视频时长"<<endl;cin>>v_i3.headline>>v_i3.write>>v_i3.rating>>v_>>v_i3.year>>v_i3.time;Sleep(10);p3->save(););void CD:refer()/CD 查找(loop7:cout<<" "<<endl<<
41、"<<endl<<I "<<endl<<"| | "<<endl<<"| | "<<endl<<"| 按标题查询按标题查询按标题查询 | "<<endl<<退出子菜单 I "<<endl<<"I "<<endl<<"11 "<<endl<<" "<&l
42、t;endl<<endl;cout<<"请输入你要查询的方式编号:"<<endl;cin>>vnum2;switch(vnum2)(case 1:(cout<<"请输入要查找的视频标题"<<endl;cin>>v1.headline;for(j3=0;j3<maxsize_video;j3+)(if(strcmp(v1.headline,v_j3.headline)=0)cout<<"视频编号:"<<v_j3.No<
43、<""<<"标题:"<<v_j3.headline<<""<<"作者:"<<v_j3.write<<""<<" 评 级 :"<<v_j3.rating<<" 出品人的姓名:"<<v_<<""<<"出品年份:"<<v_j3.year<<
44、;""<<"视频时长:"<<""<<v_j3.time<<endl;Sleep(10);break;case 2:(cout<<"请输入要查找的视频编号"<<endl;cin>>v1.No;if(v1.No=v_j3.No)cout<<"视频编号:"<<v_j3.No<<""<<"标题:"<<v_j3.headli
45、ne<<""<<"作者:"<<v_j3.write<<""<<" 评 级 :"<<v_j3.rating<<" 出品人的姓名:"<<v_<<""<<"出品年份:"<<v_j3.year<<""<<"视频时长:"<<""
46、<<v_j3.time<<endl;Sleep(10);break;case 3:(cout<<"请输入要查找的视频类别(未评级、一般、成人、儿童)"<<endl;cin>>v1.rating;for(j3=0;j3<maxsize_video;j3+)for(j3=0;j3<maxsize_video;j3+)if(strcmp(v1.rating,v_j3.rating)=0)cout<<"视频编号:"<<v_j3.No<<""<<"标题:"&l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园秋季常见传染病管理措施
- 城镇小学六年级科学上册教学计划
- 2022届河南省济源平顶山许昌高三第一次质量检测理综化学试题(含解析)
- 慢性病康复科自查分析整改措施
- 老旧小区外立面整修材料环保性检测方案
- 建筑工程材料采购与库存管理方案
- 智能停车场系统车牌识别应用方案
- 药学专业实验实习总结范文
- 金融行业信息技术应用能力提升心得体会
- 老旧小区改造施工团队管理方案
- 移动商务法律法规基础认知
- 第一章 实验动物学概论
- vMix用户指南说明
- 立足一题,解决一类-解三角形中范围与最值问题教学设计
- NB/T 10527-2021煤矿立井井壁注浆施工规范
- YY 0167-2020非吸收性外科缝线
- 新疆生产建设兵团第六师五家渠市公开招聘事业单位317人(同步测试)模拟卷含答案
- 中小学学习《民法典》主题班会图文ppt
- 20客户画像与标签管理课件
- 领导干部个人有关事项报告表(2019版)(范本模板)
- 《公务员激励机制研究(论文)8000字》
评论
0/150
提交评论