第一篇:面向对象程序设计课程设计大纲2013级计算机专业实验指导书
《面向对象程序设计课程设计》实验指导书
一、课程设计实验的基本内容和要求
1.选题范围
所选题目必须能够实现一个完整意义上的应用系统,但题目名称与具体功能不限,学生可根据自身的兴趣、特点等进行选题或由指导教师提供指导性选题。
2.选题要求
系统功能应较为多样化,具有一定的实用性或趣味性。同时要求所选题目在实现上必须运用以下知识点:菜单、工具栏、多重窗体、文件操作(可选)、图形操作(可选)、多媒体技术(可选)、数据库操作(可选)等。题目规模、难度适当。
3.参考选题
(1)设计一个五子棋游戏。
游戏说明:棋盘分为阴线和阳线,阳线为棋盘上的可见的横纵直线,阴线为棋盘上无实线相连的隐型斜线。在棋阳线和阴线的任意一条线上形成的有5个或5个以上的同色棋子不间隔地紧紧相连者为胜方。
基本要求:
在开始编写程序以前,要完成对系统的分析,给出系统类和对象模型。 用C++的OO技术完成系统程序的设计,给出类成员的详细描述。
程序中至少要定义两个类(例如:坐标position类,棋子chess类等),类中要有多个属性和方法。
完成的程序界面要美观,能够完成五子棋的基本游戏功能(两人对战)。创新要求:在基本要求达到后,进行创新设计,完善与增加游戏的功能,例如悔棋功能。
(2)设计一个2维图形绘制程序。
说明:从点类开始构建几种图源(如直线、折线、圆、三角形、矩形),并能初步实现简单图形的组合,如构建一个五角星。
基本要求:
用C++类的思想来完成程序的设计。
在设计的过程中,建立清晰的类层次;
创新要求:在基本要求达到后,进行创新设计,如实现多种图形的组合。
(3)设计一个windows附件中所示的计算器。
基本要求:
求利用面向对象的方法以及VC++的编程思想来完成系统的设计;
要求在设计的过程中,对windows环境下的编程有一个基本的认识。
创新要求:在基本要求达到后,可进行创新设计,如增加计算器的函数功能。
(4)公司人事管理系统
基本要求:
利用面向对象的编程思想以及C++的编程方法完成系统的设计;
完成设计的具体内容:
某小公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。实现:(a)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。(b)程序对所有人员有提升级别的功能
(c)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销
员的报酬按该推销员当月销售额提成(d)销售经理既拿固定月薪也领取销售提成。
(e)能按姓名或者编号寻找、删除、更新、显示各类人员的信息
(5)模拟猜扑克牌大小游戏
基本要求:
利用面向对象的编程思想以及C++的编程方法完成系统的设计;
该游戏的玩法和规则如下:玩法
②洗牌:每盘游戏开始之前,使扑克牌的排列顺序充分随机。
② 发牌:每局开始时,从未使用的扑克牌集合中顺序发给玩家5张扑克牌(明牌)。③ 猜点:从未使用的扑克牌集合中按顺序取出一张扑克牌(即庄家的暗牌),要求玩家将手中的第一张扑克牌和这张庄家的暗牌进行比较,确定哪张牌大?
④ 积分:玩家确定回答后,翻开被猜的扑克牌(暗牌变成明牌),同时根据玩家回答的正确与否显示相应的提示,并为玩家的游戏成绩积分。然后将这两张已经比较过的牌回收到已经使用过的扑克牌集合中,玩家手中的下一张扑克牌成为新的一张扑克牌。
⑤ 对玩家手中剩余的扑克牌顺序重复第③和④步操作,直至玩家手中不再有剩余的扑克牌时,一局游戏结束。
⑥ 如果未使用的扑克牌集合中的扑克牌数目多余10张,则从第②步自动开始进行本盘游戏的下一局。
⑦ 询问玩家是否继续进行下一盘游戏,如果继续,则从第①步开始进行新的一盘游戏。规则
① 积分规则:
• 猜中1次,积1分;猜错1次,不积分。
• 1局中连续猜中3次,除正常积分外奖励1分;连续猜错3次,罚1分。
• 1局全部猜中,除正常积分外奖励3分;1局全部猜错,罚3分。
• 玩家的最低积分为0,即不出现负分。
② 牌面大小比较规则:每张扑克牌的牌面由花色(梅花Club、方块Diamond、红心Heart和黑桃Spade)和牌点(A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)组成。确定两张扑克牌牌面大小的规则有两条:
• 如果两张牌面的牌点不同,则牌面大小仅与牌点有关,而与牌面的花色无关。牌点的大小顺序为:2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K < A。• 如果两张牌面的牌点相同,则牌面大小仅与牌面的花色有关。花色的大小顺
序为:Club < Diamond < Heart < Spade。
(6)实现vector类和string类
基本要求:
vector和string均为c++标准库中的重要类,提供多个接口,请实现这些接口,其中vector请实现为模板类,两个类各自包含的接口如附件“string类vector类接口.doc” 4.课程设计报告要求
课程设计报告应包含以下八个内容。
1. 题目
课程设计题目。
2. 功能描述
对系统要实现的功能进行简明扼要的描述。
3. 概要设计
根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。
4. 详细设计
详细说明各功能模块的实现过程,所用到的算法、技巧等。
5. 效果及存在问题
说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。
6. 心得体会
谈谈自己在课程设计过程中的心得体会。
7. 附录
附上各功能模块的主要代码。
8. 参考文献
列出各种参考文献,包括参考书目,论文和网址等。
二、课程设计的考核
根据系统设计和报告的质量评定成绩,系统设计占60%,报告占40%。优秀系统设计的标准如下:系统设计合理,有一定的实用性或趣味性,逻辑性强,界面友好;优秀报告的标准如下:层次清晰,文字流畅,重点突出。
四、其他
参考资料:
1.黄维通 等编著,《Visual c++ 面向对象与可视化程序设计》,清华大学出版社,2003.12
2.朱晴婷 等编著,《Visual c++ 程序设计—基础与实例分析》,清华大学出版社,2004.3
3.汪成为 等编著,《面向对象分析、设计与应用》,国防工业出版社
4.《面向对象程序设计》 刘振安主编 经济科学出版社
5.《Visual C++ 6.0实例教程》 门槛创作室 电子工业出版社
6.《Visual C++简明教程》 邓力编著 海洋出版社
7.《Visual C++ 6.0编程实例·技巧》 李国徽等编著 华中理工大学出版社
8.《深入浅出MFC》 侯俊杰著 电子版
9.http://.cn ── E海航标
10.http:// ── 程序家园
11.http://msdn.microsoft.com ── MSDN在线帮助
说明:
1. 根据各自的情况选择题目,单人完成。
2. 坚决禁止抄袭和从网上下载源代码,如有发现,一律不及格
3. 最后1~2周进行程序验收,提交时请将整个项目打包发给我,可在我机器上直接运行和查看代码。每个同学都需要向我汇报设计思路和实现方式,请提前做好准备,
第二篇:《面向对象程序设计》课程设计教学大纲
《面向对象程序设计》课程设计教学大纲
《面向对象程序设计》课程设计教学大纲
中文名称:《面向对象程序设计》课程设计
英文名称:Course Project of Object-Oriented Programming 课程编码:09003410
设计周数:1周(18学时)学
分:1学分
开课学期:第2学期
开课单位:软件学院
一、课程设计的教学目的和任务
通过本课程设计教学所要达到的目的是培养学生理论联系实际的思想,让学生综合运用面向对象程序设计课程中的理论知识,特别是面向对象程序设计与面向对象编程的方法,进行实际的程序设计与编程项目实践。
本课程设计的任务是设计和编写完成一个简单的游戏程序。
二、课程设计的主要内容
学生采用面向对象程序设计课程教材《C++ Program Design》中提供的图形库ezWindow,参考教材第15章中的程序片段,设计编写完成一个游戏程序 ― 终结者(Terminator)。鼓励学生自主创新,脱离教材的内容,编写其它游戏程序。
三、课程设计的基本教学要求
该课程设计需要在安装了Microsoft Windows 2000操作系统、Microsoft Visual C++ 6.0和ezWindow 库的计算机实验室中进行。为了方便学生撰写设计报告,还要求计算机中安装Microsoft Office。软件学院教学实验中心满足这些条件,因此该课程设计可在软件学院教学实验中心进行。
四、参考资料
面向对象程序设计课程教材《C++ Program Design》。
五、成绩评定标准
课程设计成绩分为优、良、中、及格和不及格5个等级。分别从以下几个方面考擦:
1、工作学习态度:
10%;
2、程序设计与代码质量:40%;
3、设计报告质量:
30%;
4、创新:
20%。
大纲执笔人:雷跃明
大纲审定人:陈林
时间:2008年2 月4 日
第三篇:面向对象技术与UML课程设计实验指导书
《面向对象技术与UML课程设计》实验指导书
实验一 系统的用例模型
实验名称:系统的用例模型
实验类型: 设计性实验 学
时:一天
一、实验目的
1.熟悉用例图的基本功能和使用方法。
2.锻炼结合给定题目,进行有效需求分析的能力。3.掌握如何使用建模工具绘制用例图的方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。用Rational Rose工具软件绘制系统的用例图。
四、实验步骤
1.结合实际给定题目,完成系统的需求建模。
2.针对每个用例进行业务分析。以图书管理系统中“删除读者信息”用例为例来说明实验具体步骤。
(1)分析:在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
(2)根据分析结果,书写业务流程,一般包含以下信息:
①管理员在录入界面,输入待删除的读者名;
②“业务逻辑”组件在数据库中,查找待删除的读者名; ③如果不存在,则显示出错信息,返回步骤①,如果存在则继续; ④“业务逻辑”组件判断“待删除的读者”是否可以删除; ⑤如果不可以,则显示出错信息,返回步骤⑧,如果可以则继续; ⑥在数据库中,删除相关信息; ⑦显示删除成功信息; ⑧结束。
3.根据分析结果,绘制用例图。以图书管理系统中“删除读者信息”用例为例说明具体绘图步骤:(1)在用例图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1(2)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:login。
图1.2(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.3
图1.4
图1.5(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6
(6)根据步骤(5),同时完成如图1.7和图1.8。此时,删除读者用例图就到此完成。其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
(7)根据分析情况,进一步添加或细化用例图。
图1.7
图1.8
五、实验报告要求
1. 说明系统的需求建模结果,对主要用例整理用例图。2. 小结实验心得体会。
实验二 系统的类模型
实验名称:系统的类模型
实验类型: 设计性实验 学
时:一天
一、实验目的
1.理解类的基本概念。
2.掌握如何从需求分析中抽象出类的方法。3.掌握在Rational Rose中绘制类的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
完成实验一后,对给定题目的系统的需求的初步分析,得出系统的用例图,通过对用例的业务流程的分析,我们可以初步了解系统的业务处理流程。本实验需要对系统进行静态建模,这就需要从系统的用例图去寻找和发现类。用Rational Rose工具软件绘制系统的类图。
四、实验步骤
1.分析:由前面试验对需求的分析抽象出类。2.绘制类图的步骤:
(1)打开前面初步构建的UML模型文件;(2)打开Rose中的逻辑视图(Logical View),选择分析模型(analysis model)目录。并在其下创建一个子目录并命名为:“图书馆业务功能”。
(3)用鼠标右击“图书馆业务功能”在弹出来的菜单中选择“New→Class diagram”项,创建类图,如图2.1所示。
(4)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Book,如图2.2所示。
图2.1
图2.2(5)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,图2.3所示;后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项,图2.4所示,后在出现的对话框中输入相关信息如图2.5所示;如书本的ISBN号,在Type这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置Private这个权限,如图2.6所示。这个类的其他属性也可以按照以上的做法设置,最后得到的结果是图2.7所示。
图2.3 图2.4
图2.5 图2.6(6)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图2.8所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,见图2.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框内填写一些相关的方法说明,如图2.12所示,设置好该方法的访问权限,见图2.13。类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见类2.14。
图2.7 图2.8
图2.9
图2.11
图2.10
图2.12
图2.13 图2.14(7)至此,类的方法和属性都设置好了,如图2.15所示。
图2.15(8)按照上面的步骤设置好所有类的属性和方法。
(9)为各个类添加关系,由关联、泛化、依赖等关系来静态描述业务。
五、实验报告要求
1.整理实验结果。2.小结实验心得体会。
实验三 系统的状态建模
实验名称:系统的状态建模
实验类型: 设计性实验 学
时:一天
一、实验目的
1.熟悉状态图的基本功能和使用方法。2.掌握如何使用建模工具绘制状态图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
完成实验一后,对给定题目的系统的需求的初步分析,得出系统的用例图,通过对用例的业务流程的分析,我们可以初步了解系统的业务处理流程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,在本实验主要完成用例的状态图。
四、实验步骤
1.业务分析:由前面实验对用例的描述和分析得到业务动态行为的状态分析。以用例“还书”为例,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。
2.绘制状态图。
还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;
绘图步骤:
(1)在用例图中的还书(revesion)用例,单击右键,如图3.1所示,新建一个状态图,命名为revesion状态图,图3.2所示。
图3.1
图3.2(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态,如图3.5所示。
图3.3
图3.4
图3.5(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。
图3.6
图3.7
图3.8(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要建立两种状态,如图3.10所示。
图3.9
图3.10(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。整个的还书的过程便完成;图3.11所示。
(7)根据分析设计情况,进一步添加或细化状态图。
图3.11
五、实验报告要求
1.整理实验结果。2.小结实验心得体会。
实验四 活动图
实验名称:活动图
实验类型: 设计性实验 学
时:一天
一、实验目的
1.熟悉活动图的基本功能和使用方法。2.掌握如何使用建模工具绘制活动图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
完成实验一后,对给定题目的系统的需求的初步分析,得出系统的用例图,通过对用例的业务流程的分析,我们可以初步了解系统的业务处理流程。本实验在前面基础上绘制活动图,说明用例具体的业务流程。
四、实验步骤
(1)通过对用例的分析,得到用例执行的具体步骤。以用例“删除读者信息”为例,经过分析,一般按照以下步骤进行:
①管理员在录入界面,输入待删除的读者名;
②“业务逻辑”组件在数据库中,查找待删除的读者名;
③如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; ④“业务逻辑”组件判断“待删除的读者”是否可以删除; ⑤如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; ⑥在数据库中,删除相关信息; ⑦显示删除成功信息; ⑧结束。
(2)绘制活动图,以用例“删除读者信息为例”绘图步骤如下:
①在用例图中,找到删除的用例,如图4.1所示,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。如图4.2所示。
图 4.1
图4.2 ②新建好活动图后,双击删除的活动图,得到如图4.3所示,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,如图4.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图4.5。
图4.3 ③接着在左边的工具上选取开始点,并在administrator的泳道上添加,如图4.6所示;添加完开始结点后,再来为此活动图添加活动,图4.7所示,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图4.8所示。
图4.4
图4.5
图4.6
图4.7
图4.8
④完成步骤②后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框,如图4.9所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图4.10所示;如不能通过,则结束,如图4.11所示。
图4.9
图4.10
图4.11
⑤验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图4.12和图4.13所示。
图4.12
图4.13 ⑥最后,在删除后,系统会返回操作结果给操作者,图4.14所示;删除成功或删除失败系统都会有信息返回给操作者。
五、实验报告要求
1. 整理实验结果。2. 小结实验心得体会。
实验五 顺序图
实验名称:顺序图
实验类型: 设计性实验 学
时:一天
一、实验目的
1.理解顺序图的基本概念。
2.掌握在Rational Rose中绘制交互图的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过对教学内容的学习,我们完成了系统的需求分析,并从业务对象中抽象出了类。现在需要对前面所给出的用例进行实现,而用例的实现主要由顺序图来指定和描述系统的动态特性。本实验主要在前面实验基础上对用例进行动态建模。
四、实验步骤
1.通过前面实验,分析系统中存在的主要交互操作。
2.为每一个交互操作绘制顺序图。以“增加图书”为例说明绘图步骤:
(1)在Rose软件的左边栏目上的Logicl View单击右键,新建一个时序图,顺序图可以用时序来表示,如图5.1;图中的直线箭头是发送消息;虚线箭头是返回消息;曲折线是对象自己给自己发送消息并调用。
(2)接下来的是添加类,系统中的类是其他的方法的边界,在上面做好的类找到可以直接拖拉来图中,见图5.2 和图5.3所示。
图5.1
图5.2
图5.3(3)添加类后,便可以添加方法了,开始是必需是外面的实体向系统发送消息,如图5.4所示,是管理员登录时向系统发送的消息;
图5.4(5)可以按上一步的方法来完成其他的方法,如viladate(验证),返回验证结果,当用户收到结果后,可以正常登录后便能进行增加图书见图5.5到图5.9。最后得到的时序图如图5.10所示。
图5.5 : administrator1: login : ActionFormSystem2: login3: validate
图5.6 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result
图5.7 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add
图5.8 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook
图5.9
: administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult
图5.10
五、实验报告要求
1.整理实验结果。2.小结实验心得体会。
第四篇:《面向对象程序设计方法》实验教学大纲
《面向对象程序设计方法》实验教学大纲
(计算机科学与技术本科专业使用)
一、教学目标
通过该实验课,学生应在熟练掌握过程化程序设计方法的基础上,领会面向对象程序设计及类的封装、数据隐藏、继承及多态等特性,逐步掌握面向对象程序设计方法,培养一定的程序设计能力,为以后各专业课程的学习打下良好的程序设计基础。
二、实验教学时数
三、实验内容
实验一 图形打印
1、实验目的:练习for循环
2、实验技能培训内容:打印几种特殊图形,如菱形和Z字形
3、主要仪器:计算机
4、实验方法:上机编程
实验二 判素数
1、实验目的:练习函数
2、实验技能培训内容:判断101-200之间有多少个素数,并输出所有素数。
3、主要仪器:计算机
4、实验方法:上机编程
实验三 递归函数练习
1、实验目的:练习递归函数
2、实验技能培训内容:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....3、主要仪器:计算机
4、实验方法:上机编程
实验四 数列排序
1、实验目的:练习数组及几种基本排序方法
2、实验技能培训内容:用选择、插入、冒泡、快速等几种基本的排序方法对数列进行排序。
3、主要仪器:计算机
4、实验方法:上机编程
实验五 矩阵乘积
1、实验目的:练习数组
20学时
2、实验技能培训内容:用数组存储两个矩阵,求两个矩阵的乘积。
3、主要仪器:计算机
4、实验方法:上机编程
实验六 设计时间日期类
1、实验目的:掌握简单类的设计方法
2、实验技能培训内容:构造一个TimeDate类,类中包含一个成员函数,用来在屏幕上显示时间与日期(采用建立在标准库time.h中的标准时间与日期来寻找与显示日期)。
3、主要仪器:计算机
4、实验方法:上机编程
实验七 设计计时类
1、实验目的:掌握简单类的设计方法
2、实验技能培训内容:建立Watch类,用来仿效秒表跟踪消逝的时间。用构造函数将消逝时间的初值置为零。提供两个成员函数Start()与Stop(),分别打开与关闭计时器。
3、主要仪器:计算机
4、实验方法:上机编程
实验八 设计字符栈类
1、实验目的:掌握简单类的设计方法
2、实验技能培训内容:用Stack类,写一个函数LoadStack(),用来返回已经将字母表(a-z)入栈的堆栈。在调用函数中,将这个堆栈赋值给另一个对象,并证明它包含字母表。可以改变堆栈的尺寸,以便它大得足以支持字母表。
3、主要仪器:计算机
4、实验方法:上机编程
实验九 友元的使用方法
1、实验目的:掌握友元的使用方法
2、实验技能培训内容:求两数的平方差(友元函数说明)
3、主要仪器:计算机
4、实验方法:上机编程
实验十 访问权限
1、实验目的:掌握类成员的各种访问权限
2、实验技能培训内容:类成员的各种访问权限
3、主要仪器:计算机
4、实验方法:上机编程
实验十一 类的派生
1、实验目的: 掌握类的派生
2、实验技能培训内容:给出基类AreaClass(形状类),建立两个派生类Box(方形类)与Isosceles(等腰三角形类),让每个派生类包含一个函数Area(),分别用来返回方形与等腰三角形的面积。
3、主要仪器:计算机
4、实验方法:上机编程
实验十二 用类方法求解一元二次方程
1、实验目的: 掌握类的派生
2、实验技能培训内容:实现一个Complex类和一个Real类。将Real类定义为Complex类的子类。然后设计一个求解一元二次实系数方程的根的类Root。
3、主要仪器:计算机
4、实验方法:上机编程
实验十三 类继承中的构造
1、实验目的: 掌握类继承中的构造
2、实验技能培训内容:类继承中的构造方法
3、主要仪器:计算机
4、实验方法:上机编程
实验十四 类继承中的构造
1、实验目的: 掌握类继承中的构造
2、实验技能培训内容:类继承中的构造方法
3、主要仪器:计算机
4、实验方法:上机编程
实验十五 大学生类
1、实验目的: 掌握虚函数的使用
2、实验技能培训内容:设计一个大学的类系统,包括Student(学生),Professor(教师),Staff(职员)。另有一个类既作为学生又兼作助教的可作为派生类StudentStaff,它是由Student类和Staff类派生而来,另外定义一个父类DataRec作为上述类(子类)的基类。
3、主要仪器:计算机
4、实验方法:上机编程
责任撰写人:陈桂芬
第五篇:面向对象程序设计实验教学大纲
《面向对象程序设计》
实验指导书
《面向对象程序设计实验》课程组
目录
实验预备 实验环境和工具使用,多文件应用程序的开发过程 实验一 类与对象
实验二 实验三 实验四 实验五 实验六 实验七 I/O实验八
构造函数、析构函数 继承-单继承 继承-多继承
多态-运算符重载
多态-虚函数 流与文件 模板
实验预备 实验环境和工具使用 多文件应用程序的开发过程
一、实验目的与要求
Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率,本实验通过学习Visual C++ 6.0界面的常用组成情况,并学习各种常用的窗口、菜单、按钮的意义和功能,并通过一些简单的程序设计,目的是使学生对用户界面、菜单和工具栏有一个全面的了解并掌握主要菜单命令。
了解Visual C++集成开发环境的界面组成; 理解菜单命令的含义 掌握“New:”菜单命令、“Breakpoints”菜单命令、“Build”菜单命令、“Source Brower”菜单命令、工具栏的定制和修改、联机帮助。 简单的程序设计
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤 1.上机实验内容
Visual C++集成开发环境的用户界面识别; 新文件、新工程项目、工作区的创建; 设置、查看和删除断点; 编译和运行程序; 浏览资源信息;
工具栏的定制和修改; 联机帮助的使用;
熟悉Visual C++编写控制台模式程序的方法; 上机输入例题,调试并运行,并观察结果; 上机编写一个程序
实验1调试并编译程序。
在Visual C++下,编写控制台模式的程序和在DOS下编写程序相似,具有简单方便的特点,一般用于后台程序的编写。控制台模式下程序的编写有两种方法,一是创建一个C++源程序文件,二是创建一个控制台模式的工程。
⑴ 创建一个C++源程序文件
① 启动Visual C++,单击“File”菜单下的“New”菜单命令,出现“New”对话框。然后选择“Files”选项卡,在此选项卡的左侧,单击“C++ Source Files”:在选项卡的右侧,选择源程序存放的位置(location)以及源程序文件名(File),然后单击【OK】按钮。注意C++源程序文件的扩展名为.cpp。
② 在编辑区输入源程序,程序内容如下:
#include
(Build)按钮或者选择“Build”菜单命令,系统提示是否创建一个默认的工程工作区,单击【是】按钮即可。④ 系统开始编译源程序并链接相应的文件,如果没有错误则在集成开发环境下方的状态栏中出现下列提示“0error(s),0warning(s)”,此时可以按
① 启动Visual C++,单击“File”菜单下的“New”菜单命令,出现“New”对话框。然后选择“Projects”选项卡,在此选项卡的左侧,单击“Win32 Console Application”;在选项卡的右侧,选择工程文件存放的位置(location)以及工程文件名(Project Name)。然后单击【OK】按钮。
② 在“Win32 Console Application-Step 1 of 1”对话框中选择应用程序的类型“An empty project”,单击【Finish】按钮。③ 在集成开发环境的左侧单击“File View”属性页,右键单击“Source Files”,选择“Add Files to Folder„”。在“文件名”中填入文件名,此时也可以选择存在的文件。
④ 此时在“Source Files”左侧出现一个加号,单击加号,出现新的源程序文件“1_1.cpp”,双击此文件,在集成开发环境的右侧输入例1_1.⑤ 按照创建一个C++源程序文件的第④个步骤编译和运行程序。
图1-1 向工程中添加源程序文件
图1-2 选择添加的源程序文件的文件名与类型
实验一 类与对象
一、实验目的与要求
(1)掌握类和对象的概念、定义和使用方法。(2)掌握不同特性对象成员的访问方法
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤
(1)定义一个描述学生类,数据成员包括:姓名、性别、年龄;成员函数包括:输出各个数据成员的值,设置各个数据成员的值。
(2)求点到直线的距离。定义一个点类Point,数据成员包括:坐标点。成员函数包括:设置各个数据成员的值的构造函数Point(), 取得坐标值的函数Getx(),Gety(),设计一直线类Line,数据成员包括:直线系数a,b,c;成员函数包括:取得系数的函数Geta(),Getb(),Getc();构造函数Line();
• 说明:
• d=|a*x0+b*y0+c|/sqrt(a*a+b*b)
实验二 构造函数与析构函数
一、实验目的与要求
1.掌握构造函数和析构函数的使用方法。2.掌握静态成员的使用方法。3.掌握友员的使用方法。
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤
(1)写出下列程序的执行结果,然后上机进行验证。用VC6的Debug的功能跟踪构造函数、析构函数和成员函数的执行顺序。#include
x = 2;y = 50;z = 9;} TEST(int a,int b,int c){
cout << “调用重载构造函数”<< endl;
x = a;y = b;z = c;} void display(){
cout << “x=” << x << 't' << “y=” << y <<'t' << “z=” << z << endl;} int max(int a,int b){
if(a>b)return a;else return b;} ~TEST(){
cout << “调用析构函数” << endl;
cout << x << “,” << y <<“和” << z << “最大值是:” << max(max(x,y),z)<< endl;} private: int x,y,z;};
void main(){ TEST obj1;obj1.display();TEST obj2(33, 20, 80);obj2.display();}(3)静态成员练习:书例子 class tc {
(4)友元练习:书例子
实验三 继承-单继承
一、实验目的及要求
1、掌握继承、基类和派生类的概念。
2、掌握初始化基类成员的方法。
3、掌握派生类对基类的继承。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
• 要求:设计点类、圆类和圆柱类,其中,圆类继承点类,圆柱类继承圆类。求:圆面积。圆柱表面积、体积。• 圆的面积:S=PI*R*R • 周长:C= 2*PI*R • 圆柱表面积:A=2*PI*R*H+2*PI*R*R • =C*H+2*S • 圆柱体积: V=PI*R*R*H =S*H
• class Point //点类 • { • protected: • double x,y;• public: • Point(double x0,double y0); double Area();
• };• class Circle:public Point { //圆类 • protected: • double r;//半径 • public: • Circle(double x0,double y0,double radius)• double Area()//计算圆的面积 •
• };• class Cylinder: public Circle { //圆柱体类 • double h;//高度 • public: • Cylinder(double x0=0,double y0=0,double height=0){ •
• double Area()//计算圆柱体的表面积 •
• double Volume()//计算圆柱体的体积 • } • };
思考:点,矩形,立方体?
radius=0, double
实验四 继承-多继承
一、实验目的及要求
1、掌握继承、基类和派生类的概念。
2、掌握初始化基类成员的方法。
4、掌握派生类对基类的继承。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1阅读程序,写出实验结果。
#include “stdafx.h” #include “iostream.h” class BASE1 {public: void show_i(){ cout<
j=y;} };int main(int argc, char* argv[]){ DERIVED obj;obj.set(5,7);obj.show_i();obj.show_j();return 0;} 2 书上作业。Student,worker,s_w.•
实验五 运算符重载
一、实验目的及要求
1、掌握用成员函数重载运算符的方法。
2、掌握用友元函数重载运算符的方法。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1、定义一个复数类,通过重载运算符:“ *”,“/”,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
分析:两复数相乘的计算公式为:(a+b i)*(c+d i)=(ac-bd)+(ad+bc)i 两复数相除的计算公式为:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i
2、定义一个分数类,通过重载运算符:“ *”,“/”,直接实现二个分数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
实验六 多态性-虚函数
一、实验目的及要求
5、学习虚函数和纯虚函数的定义与使用方式。
6、理解抽象类的概念,学习如何用指针指向其他的派生类,实现多态性。
7、掌握抽象类的定义与使用方式,并注意指针的用法。
7、学习如何使用虚函数、纯虚函数、抽象类和实现类的多态性。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1、虚函数的简单使用。
# include
class subclass: public base { public: virtual void fn(){ cout « “In subclass n ”;} };
void test(base &b){ b.fn();} void main(){ base be;subclass sc;cout« “ Calling test(bc)n ”;test(bc);cout« “Calling test(sc)n ”;test(sc);}
2、定义一个从正方形、球体和圆柱体的各种运算中抽象出一个公共基 container类,在其中定义表面积和体积的纯虚函数,分析:
定义一个派生于container类的正方体类cube,在类中都具有求表面积的和体积的重定义的成员函数。定义一个派生于container类的球体类sphere,在类中都具有求表面积和体积的重定义的成员函数。
定义一个派生于container类的圆柱体类cylinder,在类中都具有求表面积和体积的重定义的成员函数。
实验八 模板
一、实验目的及要求
1.了解函数模板、类模板与模板函数、模板类的关系; 2.熟悉函数模板、类模板的声明与实例化过程; 3.掌握应用模板进行的程序设计
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行C程序环境为VC 6.0系统。
三、实验内容及步骤
模板的概念:
若一个程序的功能是对某种特定的数据类型进行处理,则将所处理的数据类型说明为参数,就可把这个程序改写为模板。模板可以让程序对任何其他数据类型进行同样方式的处理。
C++程序由类和函数组成,模板也分为函数模板(function template)和类模板(class template)。因此,可以使用一个带有多种不同数据类型的函数和类,而不必显式记忆针对不同的数据类型的各种具体版本。
函数模板的一般定义形式是: template <类型形式参数表> 返回类型 FunctionName(形式参数表){ //函数定义体 } 其中的类型形式参数表可以包含基本数据类型,也可以包含类类型。如果是类类型,则须在前面加上 calss。
这样的函数模板定义,不是一个实实在在的函数,编译系统不为其产生任何执行代码。该定义只是对函数的描述,表示它每次能单独处理在类型形式参数表中说明的数据类型。当编译系统发现有一个函数调用: FunctionName(实在参数表);将根据实在参数表中的类型,确认是否匹配函数模板中对应的形式参数表,然后生成一个重载函数。该重载函数的定义体与函数模板的函数定义体相同,而形式参数表的类型则以实在参数表的实际类型为依据。该重载函数称为模板函数(template function)。
注意:函数模板与模板函数的区别在于,函数模板是模板的定义,定义中用到通用类型参数。模板函数是实实在在的函数定义,它由编译系统在碰见具体的函数调用时所生成,具有程序代码。
实验1:用函数模板方法编写程序,对给各种不同类型的三个数分别求最大数。要求:编程序上机通过,写出运行结果。
实验2: 用函数模板方法编写程序,对给各种不同类型的两个数的和。
要求:编程序上机通过,写出运行结果。
实验七 I/O流与文件
一、实验目的与要求
(1)掌握流的概念。
(2)掌握文本文件和二进制文件的使用方法。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容与步骤:
(1)#include
cout< (3)建立一个文本文件“textfile.txt”(内容由读者选定),然后显示该文件,(4)建立若干个结构体类型的学生数据。要求 (1)键盘输入学生的信息,学生的属性包括学号、姓名和成绩,(2)用文件流中write函数将学生的信息写入文件D:student.dat(3)将student.dat中所有的数据读到内存中并显示输出在屏幕上。(10分)编写程序上机完成如下工作: Struct student { Int num;Char name[20];Float score;}stu[10];Main(){ //用键盘输入 For(int i=0;i<10;i++)Cin>>。。。。//写入文件中 Ifstream ifile(“d:student.dat”,ios::binary);//建立文件,并打开 if(!ifile.fail())//异常处理 { cerr<<“not open!” return 0;} For(int i=0;i<10;i++)Ifile.write(„„..);//写入 Ifile.close();//关闭 //读文件 Ofstream ofile(“d:student.dat”,ios::binary);For(int i=0;i<10;i++){Ofile.read(„..)//读出文件 Cout< 实验六 综合应用程序一 一、实验目的 本实验是对前面所学知识的总结,通过一个比较完整的应用程序的设计,将学过的知识连贯起来,掌握开发一个实际应用程序的步骤,同时学会使用开发工具实现界面友好的应用程序。并通过本实验,掌握如何运用面向对象技术对具体的应用系统进行分析和设计。 二、基本知识点 1、类和对象的定义、对象的初始化和使用 2、面向对象的继承机制 3、虚函数与多态性 4、运算符重载 5、文件的使用 6、算法的使用 三、基本要求 1、理解面向对象的特性 2、掌握面向对象程序设计的开发方法 3、有一定的分析问题和解决问题的能力 4、根据学过的知识点,充分利用已有的开发工具和素材,使程序编写具有更高的效率,能真正地解决实际问题。 四、实验内容: 可以在多个题目中选择一个: 1、编写一本通信录 2、模拟简单计算器 3、简单的管理系统的设计:如人事、工资、学生成绩等。(要求部分功能实现)。 五、学生实验报告要求 1、实验步骤 1)设计确定类的结构及各类之间的关系,注意成员变量和函数的性质(共有、私有或保护),哪些函数需要动态(定义为虚拟函数)。 2)创建系统项目(解决方案, Project)。 3)按上述结构定义各类,在构造函数中对成员变量进行初始化。4)定义各类中的成员函数 5)对用到的算法进行描述 2、完成编写相关实验代码 3、对实验结果进行分析 4、对本次实验要有总结 注意:要求在系统设计阶段对数据结构(主要是类的结构及类之间的联系)进行分析研究,充分利用面向对象的特性,使类结构尽可能合理和高效。