C++面面向对象象程序设设计课 程 设 计计 报 告课程名称称 C+++面向对对象程序序设计 课题名称称媒体库库管理系系统专 业网网络工程程班 级5551学 号113200551110姓 名高高慧鹏指导教师师20144年 12 月 22 日日(一)、课程程设计题题目:媒体库管管理系统统(二)、目目的与要要求: 1、目的的: (1)要要求学生生达到熟熟练掌握握C+++语言的的基本知知识和技技能; (2)基基本掌握握面向对对象程序序设计的的基本思思路和方方法; (3)能能够利用用所学的的基本知知识和技技能,解解决简单单的面向向对象程程序设计计问题 2、基本本要求:: (1)要要求利用用面向对对象的方方法以及及C+++的编程程思想来来完成系系统的设设计; (2)要要求在设设计的过过程中,建建立清晰晰的类层层次; (3)在在系统中中至少要要定义四四个类,每每个类中中要有各各自的属属性和方方法; (4)在在系统的的设计中中,至少少要用到到面向对对象的一一种机制制 3、创新新要求:: 在基本要要求达到到后,可可进行创创新设计计,如根根据查找找结果进进行修改改的功能能。
(三)、设计计方法和和基本原原理: 功能要求求:1) 添加物品品程序主要要完成图图书馆三三类物品品信息的的添加,要要求编号号唯一如如果添加加了重复复编号的的物品时时,则提提示用户户数据添添加重复复并取消消添加;;如果物物品库已已满,则则提示不不能再添添加新的的物品2) 查询物品品可按照三三种方式式进行物物品的查查询·按标题题查询::·按编号号查询::·按类别别查询::如果未找找到,给给出相应应的提示示信息,如如果找到到,则显显示相应应的记录录信息3) 显示物品品库可显示当当前物品品库中所所有的物物品信息息4) 修改物品品可根据查查询结果果对相应应的记录录进行修修改,修修改时注注意编号号的唯一一性5)删除除物品对已添加加的物品品信息进进行删除除如果果当前物物品库为为空,则则提示“物品库库为空!!”并返回回操作;;否则输输入要删删除的编编号,根根据编号号删除该该物品信信息,如如果没有有找到该该物品信信息,则则提示“该编号号不存在在”6)统计计功能输出当前前物品库库中总物物品数,以以及按物物品类别别,统计计出当前前物品中中各类别别的物品品数并显显示7) 保存物品品将当前系系统中物物品信息息存入文文件中。
8) 读取物品品 将保存存在文件件中的物物品信息息读入到到当前系系统中,以以供用户户使用在完成以以上基本本功能的的基础上上,可自自行进行行扩展或或完善3、问题题的解决决方案:: 根据系统统功能要要求,可可以将问问题解决决分为以以下步骤骤: (1)应应用系统统分析,建建立该系系统的功功能模块块框图以以及界面面的组织织和设计计;(2)分分析系统统中的各各个实体体及它们们之间的的关系包包括属性性和行为为; (3)根根据问题题描述,设设计系统统的类层层次; (4)完完成类层层次中各各个类的的描述(包包括属性性和方法法); (5)完完成类中中各个成成员函数数的定义义; (6)完完成系统统的应用用模块;; (7)功功能调试试; (8)完完成系统统总结报报告以及及系统使使用说明明书iii目 录录1.系统统需求分分析12.总体体设计223.详细细设计及及实现334.系统统调试4425.结论论436.心得得体会4431. 系统需求求分析 11.1系系统设计计的目的的与意义义:图书馆中中的资料料很多,如如果能分分类对其其资料流流通进行行管理,将将会带来来很多方方便,因因此需要要有一个个媒体库库管理系系统。
1.2 系统功功能需求求:本系统有有四个类类:Baase类类、Boook类类、CDD类、Drraw类类,存储储资料信息息、编号号、标题题、作者者、评级级Basse 为为父类,其其余三个个为子类类,每个个子类具具有自己己的特点点1.基础础信息的的添加功功能程序能够够任意添添加图书书、CDD视频光光盘、图图画信息息以及各各自对应应的相关关信息2.修改改功能对已添加加的记录录(图书书、CDD视频光光盘、图图画信息息以及各各自对应应的相关关信息)进进行查找找和修改改3.删除除功能对已添加加的记录录(图书书、CDD视频光光盘、图图画信息息以及各各自对应应的相关关信息)进进行查找找和删除除如果当前前系统中中没有相相应的记记录,则则提示“记录为为空!”并返回回操作;;否则输输入要删删除的编编号对该该记录进进行删除除,如果果没有找找到,则则提示相相应的记记录不存存在4.查询询功能① 可根据资资料的编号查查询资料料及其内内容② 可根据标标题查找找③ 根据类别别查询如果未找找到,给给出相应应的提示示信息,如如果找到到,则显显示相应应的记录录信息5.保存存功能将当前系系统中各各类记录录存入文文件中6.读取取功能将保存在在文件中中的信息息读入到到当前系系统中,以以供用户户使用。
2. 总体设计计2.1 系统功功能分析析:系统通过过调用函函数来实实现信息息录入、信信息修改改、信息息删除、信信息查询询以及数数据保存存文件等等功能aadd()函函数用于于添加信息息;moodiffy()函函数用来来修改信信息;ddel()函函数用来来修改信信息;rrefeer()函函数用来来查询数数据信息息;reead()函函数用于于将文件件中的数数据读取取到内存存中;ssavee()函函数用于于将内存存中的信信息存入入文件内内;主函函数maain()用用于调用用这些函函数 2.2系系统功能能模块划划分与设设计:系统定义义了Baase基基类、Boook类类、CDD类、Drraw类类这四个个类,定定义了aadd()、mmodiify()、ddel()、rreadd()、ssavee()、refer()等函数来实现系统所需功能2.3 系统功功能模块块图:媒体库管理系统Library类图书图画视频光盘图画信息查询视频光盘信息添加图书信息查询图书信息添加图书信息统计图画信息统计图书信息修改图书信息删除视频光盘信息删除视频光盘信息修改视频光盘信息查询视频光盘信息统计图画信息修改图画信息删除图画信息添加2.4 类的设设计(1)BBasee类(抽抽象类)的的设计::Basevoid mainmenu(); virtual void add(){}; virtual void refer(){}; virtual void display(){} virtual void modify(){}; virtual void del(){}; virtual void Info(){}; virtual void save(){}; virtual void read(){}; int No; char headline[200]; char write[200]; char rating[200]; 图 3..1 BBasee类(2)图图书类的的设计::Book void Book_manage(); void Book_menu(); void add(); void refer(); void display(); void modify(); void del(); void Info(); void save(); void read(); char publisher[20]; char ISBN_No[20]; int pages;图 3..2班级级类(3)CCD类的的设计::CD void CD_manage(); void add(); void refer(); void display(); void modify(); void del(); void Info(); void save(); void read(); void cd_menu(); char name[20]; char year[20]; char time[20];图 3..3学生生类(4)图图片类的的设计::Draw void Draw_manage(); void Draw_menu(); void add(); void refer(); void display(); void modify(); void del(); void Info(); void save(); void read(); char nationality[20]; int length; int width; 图 33.4 课程类类(6)各各个类的的关系描描述:3. 详细设计计及实现现3.1 Basse类((抽象类类)的实实现classs BBasee{publlic::voidd maainmmenuu();; virttuall vooid addd(){{};///添加加物品 virttuall vooid reffer((){}};///查询物物品virttuall vooid dissplaay()){};;//显显示物品品库virttuall vooid moddifyy(){{};///修改改物品virttuall vooid dell(){{};///删除除物品virttuall vooid Inffo()){};;//统统计功能能virttuall vooid savve()){};;//保保存物品品virttuall vooid reaad()){};;//读读取物品品int No;;//编编号charr heeadllinee[2000];;//标标题charr wrritee[2000];;//作作者charr raatinng[2200]];///评级};3.2 班级类类的实现现Bookk.hclasss BBookk:puubliic BBasee{publlic::voidd Boook__mannagee();;//管管理voidd Boook__mennu());///菜单显显示voidd addd());///添加物物品 voiid rrefeer());///查询物物品 voiid ddispplayy();;//显显示物品品库 voiid mmodiify(();///修改改物品 voiid ddel(();///删除除物品 voiid IInfoo();;//统统计功能能 voiid ssavee();;//保保存物品品 voiid rreadd();;//读读取物品品charr puubliisheer[220];;//出出版社charr ISSBN__No[[20]];///ISBBN号int pagges;;//页页数};Bookk.cppp#inccludde#inccludde>#inccludde#inccludde"wwinddowss.h""//暂暂停头文文件#inccludde"BBookk.h""consst iint maxxsizze_bbookk=1000;///图书书数据最最大长度度Bookk b__[maaxsiize__boook];;int couunt__boook=11;Bookk b,,b1;;Basee *pp1;int i,jj,nuum1,,numm2;voidd Boook:::Boook__mannagee(){int flaag=11;int k;p1=&&b;p1->>reaad());b.Boook__mennu());loopp4:ccoutt<<""请输入入所要操操作的编编号:\\n";;cin>>>k;;whille(fflagg==11){if(kk>=00&&kk<7)){swittch((k)///菜单单选择{casee 1::p1-->addd());brreakk;casee 2::p1-->reeferr();;breeak;;casee 3::p1-->diispllay(();bbreaak;casee 4::p1-->moodiffy());brreakk;casee 5::p1-->deel());brreakk;casee 6::p1-->Innfo(();bbreaak;casee 0::breeak;;}}elsee{coutt<<""输入有有误,请请重新输输入:\\n";;gotoo looop44;}loopp:fllag==0;if(fflagg==00){coutt<<""\n请请选择接接下来的的操作?? \n11.返回回图书信信息管理理菜单.. \nn2.返返回主菜菜单. \n"";cin>>>fllag;;}if(fflagg==11){b.Boook__mennu());coutt<<""请选择择\n::";cin>>>k;;}elsee iff(fllag===2)){breaak;}elsee {coutt<<""选择错错误,请请重新输输入。
\\n";;gotoo looop;;}}};voidd Boook:::addd())//添添加图书书数据{coutt<<""请输入入要添加加数据的的个数::"<<>>nuum1;;for((j=00;j<>>b..No;;i=b..No;;b_[ii].NNo=ii;coutt<<""请依次次输入数数据标题题、作者者、评级级(未评评级、一一般、成成人、儿儿童)、出出版社、IISBNN号、页页数:""<>>b__[i]].heeadllinee>>bb_[ii].wwritte>>>b_[[i]..rattingg>>bb_[ii].ppubllishher>>>b__[i]].ISSBN__No>>>b__[i]].paagess;}p1->>savve());};voidd Boook:::reeferr()///查找找子菜单单{loopp1:ccoutt <<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<>>numm2; swwitcch(nnum22)///三种情情况用选选择语句句 { caase 1: { coout<<<"请请输入要要查找的的图书标标题:\\n"<<>>b1..heaadliine;; foor(jj=0;;j>>b1..No;; foor(jj=0;;j>>b11.raatinng;if(bb1.rratiing==="未未评级""||""一般""||""成人""||""儿童""){for((j=00;j<>>b11.Noo;loopp3:ccoutt<>>k; iff(k>>=0&&&k<<7){{ swwitcch(kk) { caase 1: { chhar mheeadllinee[200]; coout<<<"请请输入修修改后的的标题::"<<>>mheeadllinee; sttrcppy(bb_[bb1.NNo]..heaadliine,,mheeadllinee); } brreakk; caase 2: { chhar mwrritee[200]; coout<<<"请请输入修修改后的的作者::"<<>>mwrritee; sttrcppy(bb_[bb1.NNo]..wriite,,mwrritee); } brreakk; caase 3: { chhar mraatinng[220];; coout<<<"请请输入修修改后的的分级::(未评评级、一一般、成成人、儿儿童)""<>>mraatinng; sttrcppy(bb_[bb1.NNo]..rattingg,mrratiing)); } brreakk; caase 4: { chhar mpuubliishee[200]; coout<<<"请请输入修修改后的的出版社社:"<<>>mpuubliishee; sttrcppy(bb_[bb1.NNo]..pubblissherr,mppubllishhe);; } brreakk; caase 5: { chhar mISSBN__No[[20]]; coout<<<"请请输入修修改后的的ISBBN号::"<<>>mISSBN__No;; sttrcppy(bb_[bb1.NNo]..ISBBN_NNo,mmISBBN_NNo);; } brreakk; caase 6: { innt mmpagges;; coout<<<"请请输入修修改后的的页数::"<<>> mppagees; b__[b11.Noo].ppagees=mmpagges;; } brreakk; caase 0:bbreaak; };;} ellse { coout<<<"选选择错误误,请重重新输入入:\nn"; gooto looop3;; }};voidd Boook:::deel()){coutt<<""请输入入要删除除的图书书的编号号"<<>>b11.Noo;for((j=bb1.NNo;jj>>numm1;whille(nnum11>=ccounnt_bbookk){in>>>b_[[couunt__boook]..No>>>b__[coountt_boook]].heeadllinee>>bb_[ccounnt_bbookk].wwritte>>>b_[[couunt__boook]..rattingg>>bb_[ccounnt_bbookk].ppubllishher>>>b__[coountt_boook]].ISSBN__No>>>b__[coountt_boook]].paagess;counnt_bbookk++;;}in.cclosse());}voidd Boook:::Boook__mennu()){coutt<<""\n\\n -------------☆☆ 欢迎使使用媒体体库管理理系统 ☆☆------------- ""<#inccludde>#inccludde#inccludde"wwinddowss.h""//暂暂停头文文件#inccludde"CCD.hh"consst iint maxxsizze_vvideeo=1100;;//储储存的最最大值CD vv_[mmaxssizee_viideoo];int couunt__viddeo==1;CD vv,v11;Basee *pp3;int i3,,j3,,vnuum1,,vnuum2;;voidd CDD::CCD_mmanaage(()///Cd管管理选择择{int flaag=11;int k;p3=&&v;p3->>reaad());v.cdd_meenu(();loopp5: coout<<<"请请输入所所要操作作的编号号:";;cin>>>k;;whille(fflagg==11){if(kk>=00&&kk<7)){swittch((k)///第二二菜单选选择{casee 1::p3-->addd());brreakk;casee 2::p3-->reeferr();;breeak;;casee 3::p3-->diispllay(();bbreaak;casee 4::p3-->moodiffy());brreakk;casee 5::p3-->deel());brreakk;casee 6::p3-->Innfo(();bbreaak;casee 0::breeak;;}}elsee{coutt<<""输入有有误请重重新输入入:\nn";gotoo looop55;}loopp6:fflagg=0;;if(fflagg==00){coutt<<""\n请请选择接接下来的的操作:: \n11.返回回CD信信息管理理菜单.. \nn2.返返回主菜菜单. \n"";cin>>>fllag;;}if(fflagg==11){v.cdd_meenu(();coutt<<""请选择择\n::";cin>>>k;;}elsee iff(fllag===2)){breaak;}elsee {coutt<<""选择错错误,请请重新输输入:\\n";;gotoo looop66;}}};voidd CDD::aadd(()///添加CCD{coutt<<""请输入入要添加加编号的的个数::"<<>>vnnum11;for((j3==0;jj3>>v..No;;i3=vv.Noo;v_[ii3]..No==i3;;coutt<<""请分别别输入标标题、作作者、评评级(未未评级、一一般、成成人、儿儿童)、出出品人的的姓名、出出品年份份、视频频时长""<>>v__[i33].hheaddlinne>>>v_[[i3]].wrritee>>vv_[ii3]..rattingg>>vv_[ii3]..namme>>>v_[[i3]].yeear>>>v__[i33].ttimee;Sleeep(110);;}p3->>savve());};voidd CDD::rrefeer())//CCD查找找{loopp7:ccoutt<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<>>vnnum22;swittch((vnuum2)){casee 1::{coutt<<""请输入入要查找找的视频频标题""<>>v11.heeadllinee;for((j3==0;jj3>>v11.Noo;for((j3==0;jj3>>v11.raatinng;for((j3==0;jj3>>v11.Noo;loopp8:ccoutt<>>k;;if(kk>=00&&kk<7)){swittch((k){casee 1::{charr mhheaddlinne[220];;coutt<<""请输入入修改后后的标题题:"<<>>mhheaddlinne;strccpy((v_[[v1..No]].heeadllinee,mhheaddlinne);;}breaak;casee 2::{charr mwwritte[220];;coutt<<""请输入入修改后后的作者者:"<<>>mwwritte;strccpy((v_[[v1..No]].wrritee,mwwritte)。