信息计算科学面向对象程序设计实验指导书.docx
《信息计算科学面向对象程序设计实验指导书.docx》由会员分享,可在线阅读,更多相关《信息计算科学面向对象程序设计实验指导书.docx(14页珍藏版)》请在冰豆网上搜索。
信息计算科学面向对象程序设计实验指导书
《面向对象程序设计》
实验指导书
适用专业:
信息与计算科学
邵阳学院理学系
前言
《面向对象程序设计》是信息与计算科学专业本科生的一门专业选修课。
面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。
它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。
面向对象技术已广泛应用于计算机其他相关的领域,如面向对象的网络协议、面向对象的建模技术、面向对象的数据库、面向对象的系统分析与设计,以及软件构架技术和基于组件对象模型的分布式多层设计技术。
它的学习对信息与计算科学专业学生进一步学习起到了非常重要的作用。
通过本课程的学习要求学生了解结构化程序设计的基本思想及方法,加深C语言的理解,理解面向对象程序设计的基本思想及基本概念,掌握C++语言基础,理解类、对象、封装、继承、派生、多态、重载、异常处理、模板等概念,初步掌握UML与面向对象的分析与设计,理解标准模板库STL的使用方法,理解Windows编程思想,熟悉VC++的编程环境,了解MFC编程方法,结合实例使学生理解系统的开发过程和方法。
通过本课程的学习,应熟练掌握面向对象的C++编程技术,建立对象模型,并熟悉C++的面向对象的各种特性,初步掌握可视化面向对象编程技术
为了使学生更好地理解和深刻地把握以上知识,并在此基础上,训练和培养熟练掌握面向对象的C++编程技术,建立对象模型,并熟悉C++的面向对象的各种特性,初步掌握可视化面向对象编程技术的技能,设置了“VisualC++环境及程序设计基础练习”、“类、对象、继承、方法重载及多态性练习”、“Windows编程基础练习”、“MFC编程练习”、“数据库编程练习”5个实验,其中“数据库编程练习”为设计性实验。
各项实验主要了解、掌握的具体知识,训练及培养的技能见下面各实验目的。
本指导书各实验从C++编程基础、类、对象、继承、重载、Windows编程、MFC编程、数据库编程等面向对象编程体系的各个方面对学生进行了训练,培养其实际动手能力。
本指导书只适用于信息与计算科学专业。
实验1:
基本输入输出语句
实验学时:
2
实验类型:
验证
实验要求:
必修
一、实验目的
通过本实验的学习,使学生了解VisualC++的编程环境,掌握C++的程序基础知识,训练利用VisualC++编程环境的基本技能,为今后继续学习面向对象的程序设计奠定基础。
二、实验内容
1.上机实现第二章课后习题
三、实验原理、方法和手段
依据第一第二章所学C++的数据类型、输入输出、程序的基本结构与控制语句、函数、数组、指针、引用等知识,根据各题的要求设计程序,并上机编程、调试,最终实现各题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此每人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房。
六、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
八、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
九、其它说明
1.本次实验各题只是完成一个简单的程序,也没有学到相关的知识,所以同学们只能创建“C++SourceFile”文件。
2.每做完一题,先关闭工作空间,然后再重新创建新的下一题的文件。
实验2:
顺序、分支和循环结构程序设计
实验学时:
2
实验类型:
验证
实验要求:
必修
一、实验目的
1.通过本实验,加深对顺序、分支和循环控制结构有关概念的理解。
2.熟练掌握while和for循环控制语句的特点,掌握循环
结构程序设计和调试方法。
3.掌握二重循环结构程序的设计方法。
二、实验内容
1.用for循环实现第二章课后习题9,12。
2.编写并调试程序,使用for循环控制语句实现上面的问
题。
3.阶乘累加问题。
编写程序,求1+2!
+3!
+…+n!
的值。
三、实验原理、方法和手段
依据第一第二章所学C++的数据类型、输入输出、程序的基本结构与控制语句、函数、数组、指针、引用等知识,根据各题的要求设计程序,并上机编程、调试,最终实现各题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此每人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房。
六、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
八、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
九、其它说明
1.本次实验各题只是完成一个简单的程序,也没有学到相关的知识,所以同学们只能创建“C++SourceFile”文件。
2.每做完一题,先关闭工作空间,然后再重新创建新的下一题的文件。
4.
实验3:
密钥加密
实验学时:
2
实验类型:
设计
实验要求:
必修
一、实验目的
掌握一维数组的定义与使用。
掌握函数定义、函数调用和函数说明的方法。
掌握函数递归调用的概念和使用方法。
理解C++程序的结构和特点。
熟悉C++程序基本的输入和输出操作。
掌握C++数据类型、常量和变量以及修饰符的使用方法。
掌握C++的各种流程控制语句的使用。
2、实验内容
将输入的一行字符以加密的形式输出,然后将其解密,解密的字符序列与输入的正文进行比较,吻合时输出解密的正文,否则输出解密失败。
加密时,将每个字符的ASC
码依次反复加上4962873中的数字,解密与加密顺序相反。
三、实验原理、方法和手段
依据所学面向对象程序设计基本概念、string、向量等知识,根据该题的要求设计程序,并上机编程、调试,最终实现该题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此没人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房
六、实验步骤
1.实验前,复习所学第一、二、三章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
八、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
9、其它说明
实验4:
去掉双斜杠注释
实验学时:
2
实验类型:
验证
实验要求:
必修
一、实验目的
通过本实验的学习,使学生了解文件流的知识,训练文件打开和关闭,向量,string流分流等基本操作,为今后继续学习面向对象编程奠定基础。
二、实验内容
设计一个程序从给定文件中读取一段程序代码,该段代码包含大量注释内容,要求该程序生成一个新文件,这个文件里存储的是去掉了注释内容的程序代码。
三、实验原理、方法和手段
依据第二至六章所学数组,文件输入输出,string分流,向量等知识,根据该题的要求设计程序,并上机编程、调试,最终实现该题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此没人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房。
六、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
八、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
九、其它说明
实验5:
彼此两点距离最近
实验学时:
2
实验类型:
设计
实验要求:
必修
1、实验目的
掌握C++数据类型、常量和变量以及修饰符的使用方法。
掌握C++的各种流程控制语句的使用。
掌握函数定义、函数调用和函数说明的方法。
二、实验内容
用c++程序设计一个求解两点距离最近的算法。
三、实验原理、方法和手段
依据第二至八章所学知识,根据题目的要求设计程序,并上机编程、调试,最终实现各题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此没人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房。
六、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
八、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
。
9、其它说明
实验6:
简单类定义
实验学时:
2
实验类型:
设计
实验要求:
必修
一、实验目的
掌握类、类的数据成员、类的成员函数的定义方式。
理解类成员的访问控制方式。
掌握对象的定义和操作对象的方法。
理解对象指针的概念,学会用指针引用对象。
掌握静态数据成员和静态成员函数的基本使用方法。
理解友元与友元函数的作用,掌握其使用方法。
掌握对象成员及其常类型的使用方法。
学会使用C++的多文件方式编写程序。
二、实验内容
设计一个Student(学生)类,并使Student类具有以下特点:
该类具有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩。
学生全部信息由键盘输入,以提高程序的适应性。
通过成员函数分别统计每个学生的平均成绩和每门课程的平均成绩,当课程数量增加或减少时成员函数无需修改仍可求取平均成绩。
输出学生的各科成绩与平均成绩。
学生对象的定义采用对象数组实现。
统计不及格学生人数。
表格输出整齐美观。
能以最方便的方式实现对课程数量和学生人数的修改。
采用多文件方式组织程序。
设计三个图形类:
Circle(圆)、Rectangle(矩形)、Triangle(三角形),要求:
Circle类基本信息:
圆心坐标、半径;
Rectangle类基本信息:
长、宽;
Triangle类基本信息:
三个顶点坐标;
其中:
成员变量为private属性,成员函数为public属性。
为Circle类设计缺省的构造函数,并用init成员函数进行数据成员的初始化。
为其余两个类设计多个构造函数:
无参、带参、参数值缺省的构造函数。
每个图形类有计算图形的面积GetArea(),计算图形的周长GetPerimeter(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。
以Circle类为例:
通过GetArea()计算圆的面积,GetPerimeter()计算圆的周长,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(intx,inty,intr)函数可以修改圆心坐标和半径。
注意多个构造函数的声明方式与定义的实现。
当输入数据为不合理数据时(例如:
输入的三角形的顶点是否能组成一个三角形),提示用户输入错误。
三、实验原理、方法和手段
依据第八至十四章所学知识,根据各题的要求设计程序,并上机编程、调试,最终实现各题的功能。
四、实验条件
具有与学生数相同数目计算机的机房。
五、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
六、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
。
实验7:
继承、多态
实验学时:
2
实验类型:
设计
实验要求:
必修
一、实验目的
理解类的继承的概念,能够定义和使用类的继承关系。
掌握派生类的声明与定义方法。
熟悉三种派生方式的访问特性。
掌握多基继承,理解和掌握虚基类。
理解编译时的多态性和运行时的多态性。
掌握虚函数的定义与使用方法。
掌握纯虚函数和抽象类的概念和使用方法,运用纯虚函数实现多态性。
二、实验内容
定义点Point类作为基类,在此基础上派生出直线Line类和圆Circle类,在Circle类的基础上以不同的属性派生出圆柱Cylinder类和球Spheroid类。
并要求基类和各派生类具有以下特点:
Line类含有计算直线长度和斜率的成员函数。
Circle类含有计算圆面积的成员函数。
Cylinder类含有计算圆柱表面积和体积的成员函数。
Spheroid类含有计算球体的表面积和体积的成员函数。
要求在实验报告中画出类层次图。
在题目的基础上,增加以下内容:
在Line类的基础上派生长方形Rectangle类和正方形Squre类,并分别在长方形Rectangle类和正方形Squre类的基础上派生长方体Cuboid类和正方体SquareBody类,并要求基类和各派生类具有计算各图形的周长、面积和体积的功能,要求用纯虚函数实现。
注:
可先定义一个抽象类---图形Figure类,含有求周长、面积、体积的纯虚函数,用此类进行派生。
假设某个图形由上述几个图形组成,求该图形的总面积(若为平面图形)或总体积(若为立体图形)。
三、实验原理、方法和手段
依据第九至十四章所学知识,根据各题的要求设计程序,并上机编程、调试,最终实现各题的功能。
四、实验组织运行要求
由于该实验对学生的合作配合没有什么要求,因此没人一台机器,分别实现各程序的编程和调试。
五、实验条件
具有与学生数相同数目计算机的机房。
六、实验步骤
1.实验前,复习所学第一、二章的内容,并在纸上设计编写好程序;
2.实验时,上机输入编写好的程序、编译、调试、实现程序的功能;
3.实验后,认真总结实验中出现的各种出错、意外的情况及调试的过程,形成编程、调试经验,并认真填写好实验报告。
七、实验报告
按照实验报告的要求完整填写各项内容,仔细记录实验结果,认真总结并写好实验总结。
附录:
实验报告的书写规范
项目名称
Ø实验目的和要求
Ø实验内容
Ø实验步骤:
1.问题分析和算法描述。
2.对于较大的题目,要叙述采用的数据结构方式。
如类的层次结构及其各成员的含义与功能及其实现。
3.可以给出分析的流程图、数据流图、类的层次结构图、程序的结构图。
4.可以附上源程序。
Ø实验结果及其分析:
1.实验结果:
1.1.给出实验的结果及其形式(如程序运行后的界面等)
1.2.至少给出两组测试用例,要具有针对性,最好要有一个刁难性的用例。
2.实验分析:
2.1.对程序用例的测试结果分析,如用例结果的正确性,程序的功能、可靠性、健壮性、缺陷等。
2.2.对整个程序的调试或运行过程中所遇到的问题进行分析,并说明你的解决方法。
2.3.对本次实验的体会做个总结,如有没有达到预期的目的和要求,掌握了哪些知识,学到了哪些方法,还有哪些内容不够清晰,今后将怎么做等等。
尤其要对实验过程中学到的分析问题、遇到的问题、解决问题的方法、策略做个总结。