《面向对象课程设计》课程设计报告
更新时间:2024-01-19 02:16:01 阅读量: 教育文库 文档下载
- 面向对象课程设计报告推荐度:
- 相关推荐
呼伦贝尔学院
计算机科学与技术学院
《面向对象课程设计》课程设计报告
(第六次)
呼伦贝尔学院—媒体管理系统
姓名:邵军
班级: 2011级计算机科学与技术一班 学号:2011121122 指导教师:于世华 成绩:
完成时间: 2011年4月7号 完成地点:综合楼401机房
面向对象课程设计 一、 设计任务分析
1、问题描述
呼伦贝尔学院图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。 图书馆共有三大类物品资料:图书、视频光盘、图画。
这三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。 2、功能要求
(1) 添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。 (2)查询物品
可按照三种方式来查询物品,分别为:
按标题查询、按编号查询、按类别查询:当输入相应信息时,输出所查询的信息,若不存在该记录,则提示“该标题/编号/类别不存在!”;
(3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行 (4)编辑物品:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。 (6)统计信息
输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。
(7)物品存盘:将当前程序中的物品信息存入文件中。 (8)读出物品:从文件中将物品信息读入程序。 3、问题的解决方案
2
计算机科学与技术学院程序设计
面向对象课程设计 根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;
(8)完成系统总结报告。
二、模块设计与主要数据结构
1.一共设计了七个类,分别是媒体类ziliao,图书类tushu,视频 光盘类guangpan,图画类tuhua,图书管理类tushu_Manage,视频光盘管理类guangpan_Manage,图画管理类tuhua_Manage。下面以ziliao,guangpan,guangpan_Manage为例。 类名 public: 数据成员 成员函数 int number;光盘编号; string title;标题; string write;作者; string level;评级; ziliao(intn=0,string ti=\w=\ziliao(基类) l=\带参数的构造函数; virtual void Input(){};基类输入函数; virtual void Output(){};基类输出函数; intGetnumber(){return number;}返回编号; string Gettitle(){return title;}返回标题; 图书类guangpan(基类做为它的虚函数) class guangpan:virtual public ziliao public: string name;出品姓名; intdate;出品时间; 类名 数据成员 成员函数 inttime;播放时长; guangpan(){} 不带参数的构造函数 guangpan(intn,stringti,stringw,stringl,stringna,intda,floattim) :ziliao(n,ti,w,l),name(na),date(da),time(tim){};不带参数构造函计算机科学与技术学院程序设计
3
面向对象课程设计 数; void Input()输入函数; void Output()输出函数; 类名 数据成员 guangpan_Manage(光盘管理类) guangpangp[maxb]; 光盘类类型的对象gp[maxb]组为数据成员; int top; 记录个数; public: 成员函数
guangpan_Manage(){top=0;} 无参数构造函数给top赋值0; void Add(); 添加函数; void Show(); 显示函数; void Search(); 查询函数; void Edit(); 修改函数; void Delete(); 删除函数; void Total(); 统计函数; void Save(); 保存函数; void Read(); 读取函数; 2、类之间的关系
首先定义的是媒体类ziliao;之后通过ziliao类派生了图书类tushu,视频关盘类guangpan,图画类tuhua;然后通过tushu类派生了图书管理类tushu_Manage,通过guangpan类派生了视频光盘管理类guangpan_Manage,通过tuhua类派生了图画管理类tuhua_Manage。通过继承,派生类可以用基类的成员函数。
3、界面设计
主菜单:包括图书管理,视频光盘管理,图画管理,退出四个功能。 分别调用了调用了三个子菜单。来进一步实现媒体库管理功能。
A、主界面
呼伦贝尔学院媒体管理系统界面:
4
计算机科学与技术学院程序设计
面向对象课程设计
B、子界面
——>光盘管理界面:
——>图书管理界面:
——>图画管理界面:
5
计算机科学与技术学院程序设计
面向对象课程设计 三、流程图
Ziliao类(基类)
Tushu类 guangpan类 tuhau类
四、源代码
//【基类】 classziliao {
public: int number; string title; string write; string level; ziliao(int n=0,string
l=\ virtual void Input(){}; virtual void Output(){}; intGetnumber(){return number;} stringGettitle(){return title;} };
//【光盘类】
6
Tushu_Manage类 Guangpan_Manage类 Tuhau_Manage类 添加 查找 修改 删除 显示 保存 读取 ti=\w=\
计算机科学与技术学院程序设计
面向对象课程设计 classguangpan:virtual public ziliao {
public: string name; int date; float time; public:
guangpan(){} guangpan(intn,stringti,stringw,stringl,stringna,intda,floattim) :ziliao(n,ti,w,l),name(na),date(da),time(tim){}; void Input() { cout<<\请输入光盘编号:\ cin>>number; cout<<\请输入内容标题:\ cin>>title; cout<<\请选入作者:\ cin>>write; cout<<\请输入评级(未评级,一般,成人,儿童):\ cin>>level; cout<<\请输入出品人姓名:\ cin>>name; cout<<\请输入出品时间:\ cin>>date; cout<<\请输入播放时长:\ cin>>time; } void Output() { cout< 7 计算机科学与技术学院程序设计 面向对象课程设计 < //【光盘管理类】 classguangpan_Manage { guangpangp[maxb]; int top; public: guangpan_Manage(){top=0;} void Add(); void Show(); void Search(); void Edit(); void Delete(); void Total(); void Save(); void Read(); }; //【添加光盘信息】 voidguangpan_Manage::Add() { if(top>=maxb) { cout<<\用户已满\ return; } guangpan t; cout<<\输入新添加的光盘的信息\ t.Input(); for(inti=0;i 8 计算机科学与技术学院程序设计 面向对象课程设计 gp[top]=t; top=top+1; cout<<\添加成功!\} //【显示已有的光盘信息】 voidguangpan_Manage::Show() { if(top==0) { cout<<\无数据!\ return; } for(inti=0;i //【查询已有的光盘信息】 voidguangpan_Manage::Search() { if(top==0) { cout<<\当前系统中没有存储记录\ return; } int choice; cout<<\请选择查找方式:1.按编号查找 2.按光盘标题查找.\ cin>>choice; while(choice!=1&&choice!=2){cout<<\请输入正确的序号:\ switch(choice) { case 1:{ cout<<\请输入要查找的编号:\ int number; cin>>number; for(inti=0;i 9 计算机科学与技术学院程序设计 面向对象课程设计 } cout<<\查无此光盘!\ }break; case 2:{ cout<<\请输入要查找的光盘名\ string title; cin>>title; for(inti=0;i //【删除已有的光盘信息】 voidguangpan_Manage::Delete() { if(top==0) { cout<<\当前系统中没有存储记录!\ return; } cout<<\、按编号查找删除 2、按光盘名查找删除\ int choice; cin>>choice; while(choice!=1&&choice!=2){cout<<\请输入正确的序号:\ switch(choice) { case 1: { cout<<\请输入编号:\ int number; cin>>number; 10 计算机科学与技术学院程序设计 面向对象课程设计 for(inti=0;i 11 计算机科学与技术学院程序设计 面向对象课程设计 gp[j]=gp[j+1]; cout<<\删除成功!\ top--; };break; case 2:return; default:cout<<\无此项,失败!\ }return; } } cout<<\无此光盘!\ }; break; default:cout<<\没有此项,失败:\ } } //【修改已有的光盘信息】 voidguangpan_Manage::Edit() { if(top==0) { cout<<\当前系统中没有存储记录!\ return; } int number; cout<<\请输入要查找的光盘编号:\ cin>>number; for(inti=0;i //【统计光盘信息数量】 voidguangpan_Manage::Total() 12 计算机科学与技术学院程序设计 面向对象课程设计 {cout<<\光盘类光盘数为:\} //【保存输入的光盘信息】 voidguangpan_Manage::Save() { ofstream out(\光盘管理.txt\ if(!out) { cout<<\打开失败!\ return; } cout<<\打开成功!\ for(inti=0;i //【读取光盘保存的信息】 voidguangpan_Manage::Read() { ifstream in(\光盘管理.txt\ if(!in) { cout<<\打开失败!\ return; } inti=0; while(in>>gp[i].number >>gp[i].title 13 计算机科学与技术学院程序设计 面向对象课程设计 >>gp[i].write >>gp[i].level >>gp[i].name >>gp[i].date >>gp[i].time) { gp[i].Output(); i++; top++; } in.close(); }; //【主函数】 void tushumenu();//图书菜单函数; void guangpanMenu();//光盘菜单函数; void tuhuaMenu();//图画菜单函数; int main() { int choice; do{ cout<<\ --欢迎登陆!-- 【呼伦贝尔学院媒体管理系统】 \ cout<<\ =========================================================================\ cout<<\ =========================================================================\ cout<<\【 1.图书管理 2.光盘管理 3.图画管理 0.退出系统】\ cout<<\【【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】】\ cout<<\请输入您的选择:\ cin>>choice; switch(choice) { case 1:tushumenu();break; case 2:guangpanMenu();break; case 3:tuhuaMenu();break; case 0:cout<<\您已安全退出系统.\ 14 计算机科学与技术学院程序设计 面向对象课程设计 default:cout<<\没有此选项.请重选.\ } }while(choice!=0); cout<<\ <<<<欢迎您下次再使用呼伦贝尔学院媒体管理系统系统!>>>>\ system(\ return 0; } voidguangpanMenu() { guangpan_Manage p; int choice; do { cout<<\ 《《欢迎您下次再使用呼伦贝尔学院媒体管理系统系统》》 \ cout<<\ 【二】光盘管理 \ cout<<\======================\ cout<<\【】\ cout<<\【 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0=>退出】\ cout<<\【】\ cout<<\【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】\ cout<<\输入您操作的选项:\ cin>>choice; switch(choice) { case 1:p.Add();break; case 2:p.Search();break; case 3:p.Edit();break; case 4:p.Delete();break; case 5:p.Show();break; case 6:p.Save();break; case 7:p.Read();break; case 8:p.Total();break; case 0:cout<<\退出成功!\ default:cout<<\无此选项!请重试!\ } }while(choice!=0); } 15 计算机科学与技术学院程序设计 面向对象课程设计 voidtuhuaMenu() { tuhua_Manage p1; int choice; do { cout<<\ 《《欢迎您下次再使用呼伦贝尔学院媒体管理系统系统》》 \ cout<< \ 【三】图画管理 \ cout<<\=======================\ cout<<\【】\ cout<<\【 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0=>退出】\ cout<<\【】\ cout<<\【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】\ cout<<\输入您操作的选项:\ cin>>choice; switch(choice) { case 1:p1.Add();break; case 2:p1.Search();break; case 3:p1.Edit();break; case 4:p1.Delete();break; case 5:p1.Show();break; case 6:p1.Save();break; case 7:p1.Read();break; case 8:p1.Total();break; case 0:cout<<\退出成功!\ default:cout<<\无此选项!请重试!\ } }while(choice!=0); } voidtushumenu() { tushu_Manage p2; int choice; do { cout<<\ 《《欢迎您下次再使用呼伦贝尔学院媒体管理系统系统》》 \ cout<< \ 【一】图书管理 \ 16 计算机科学与技术学院程序设计 面向对象课程设计 cout<<\=======================\ cout<<\【】\ cout<<\【 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0=>退出】\ cout<<\【】\ cout<<\【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】\ cout<<\输入您操作的选项:\ cin>>choice; switch(choice) { case 1:p2.Add();break; case 2:p2.Search();break; case 3:p2.Edit();break; case 4:p2.Delete();break; case 5:p2.Show();break; case 6:p2.Save();break; case 7:p2.Read();break; case 8:p2.Total();break; case 0:cout<<\退出成功!\ default:cout<<\无此选项!请重试!\ } }while(choice!=0); } 五、测试情况 17 计算机科学与技术学院程序设计 面向对象课程设计 18 计算机科学与技术学院程序设计 面向对象课程设计 19 计算机科学与技术学院程序设计 面向对象课程设计 六、小结 在以前学习了c++面向对象课程后,这学期又开始了面向对象程序设计的课程在上学期的基础之上,老师带领我们进行了程序设计,从小的系统,到中型的系统,到结课我进行了这次大的系统的设计,这也是对我在这门课程所学到的东西的一个考验,通过这次试验让我更加的知道了程序设计的魅力,使得自己更加了解了对系统的设计的整个过程,使得自己受益匪浅,通过自己的努力,和查询资料,用了两周的时间完了成对呼伦贝尔学院媒体管理系统的设计,基本上实现了老师的题目要求,完成了系统,做了实 20 计算机科学与技术学院程序设计 面向对象课程设计 验报告。 希望以后可以有更多的机会可以做这样的系统,这个过程真的很过瘾,很值得我们去争取。对于我们的学习有着大步的提高,使得我们的兴趣有大的提高。 21 计算机科学与技术学院程序设计
正在阅读:
《面向对象课程设计》课程设计报告01-19
2012年全国教育学研究生考试(学术型)大纲(初稿)三人行内部资料03-13
最爱的生日礼物送给最爱的女友07-26
大学生创业导论11-09
《高中数学常用公式总结》05-23
微机原理与接口技术-课后习题答案05-12
oracle笔试题03-17
2012年《公共政策》复习资料04-06
员工辞职报告模板合集08-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 课程
- 设计
- 面向
- 对象
- 报告
- 英语阅读能力培养的研究课题实施方案
- 谁将打败携程旅行网(可可西机票MALL商业模式创新案例) - 图文
- 浅析洞朗冬季驻军和中印对峙
- 21 搭石doc
- 2017年高考全国卷《语文考试说明》题型示例及详解
- 贵阳中医学院2003级骨伤手术学试卷 A卷答案及评分标准
- 温医研一病理生理
- 《三打白骨精》教案
- 2017-2018学年珠海市香洲区初三上期末数学试卷(官方版,含评分标准)
- 无机化学全部章节
- 淅川粉末冶金有限公司SPC作业指导书
- 四年级下英语教案-Unit 1 Its on your head-湘少版小学学科网
- 针灸病案汇总
- XX花炮厂申请三年技改补助奖励请示
- 移动代维资格认证考试 - 华为主设备2
- DEH操作说明和逻辑技术说明
- 电厂锅炉习题及题解
- 学前教育史题目答案
- 《教育技术应用》教学大纲
- 大地测量学2011年长安大学考试重点(1)