




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 C+面向过程练习(一) (2学时) 实验目的和要求:1. 掌握C程序的基本格式与规范,学会编写简单的C程序。2. 理解C程序的结构和特点。3. 熟悉C程序基本的输入和输出操作。4. 掌握C数据类型、常量和变量以及修饰符的使用方法。5. 掌握C的各种流程控制语句的使用。6. 熟悉C语言实验环境,能够在VC6.0环境下调试与运行程序。 实验内容:1. 求解方程在复数域上的解,a,b,c由终端输入。注意分析的全面性。2. 猴子吃桃子问题:一天一只小猴子摘下一堆桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第十天小猴子去吃时,只剩下一个桃子了。问小猴子共摘下了多少个桃子。3. 用,求e之值,直到为止。 实验二C+面向过程练习(二)(2学时) 实验目的和要求:1. 掌握一维数组、二维数组的定义与使用。2. 掌握函数定义、函数调用和函数说明的方法。3. 掌握函数递归调用的概念和使用方法。 实验内容:1. 编程求若干个整数中的最大和次大,最小和次小这四个数。2. 由键盘输入两个整数,试编写两个函数分别求出这两个数的最大公约数和最小公倍数。3. 编写一个递归函数void reverse(int a,int n),将数组a中的数倒置。如a数组原来为:1 2 3 4 5,则调用reverse函数后,a数组内容变为:5 4 3 2 1。实验三 C+在非面向对象方面的扩充(2学时) 实验目的和要求:1. 掌握函数重载的方法及定义重载函数时的注意事项。2. 掌握函数缺省参数的使用。3. 掌握指针的定义及使用方法,理解void型指针。4. 理解动态内存分配意义,掌握new和 delete使用方法。5. 掌握引用的声明方法及使用。6. 掌握const修饰符及其内联函数的使用。7. 熟悉C+在非面向对象方面的其他扩充特性。 实验内容:1. 编写10个重载函数max,分别求两个整数、实数、双精度数、字符及三个整数、单精度数、双精度数、字符中的最大数。2. 编写函数void add1(int sum),void add2(int * sum),void add3(int & sum),功能如下:输入若干个整数,以0结束,并用参数sum返回这若干个整数之和。在主程序中分别调用这三个函数,观察结果,总结值传递和地址传递的规律。 3. 矩阵中填数:当给出 N*N 的矩阵,要求用程序填入下列形式的数:(1)S形填数,例如N=5 (2)回转填数,例如N=51234510987611121314152019181716 212223242512345161718196152425207142322218131211109 要求:用new和delete动态分配空间(提示:可用一维数组来表示二维数组)。实验四 类与对象(一)(4学时) 实验目的和要求:1. 掌握类、类的数据成员、类的成员函数的定义方式。2. 理解类成员的访问控制方式。3. 掌握对象的定义和操作对象的方法。4. 理解和掌握构造函数、析构函数、拷贝构造函数的定义与执行过程。5. 掌握重载构造函数的方法。6. 理解浅拷贝与深拷贝。7. 了解对象的生存期。 实验内容:1. 设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),要求:(1) Circle 类基本信息:圆心坐标、半径;Rectangle 类基本信息:长、宽;Triangle 类基本信息:三个顶点坐标;其中:成员变量为 private 属性,成员函数为public 属性。(2) 为Circle类设计缺省的构造函数,并用init成员函数进行数据成员的初始化。(3) 为其余两个类设计多个构造函数:无参、带参、参数值缺省的构造函数。(4) 每个图形类有计算图形的面积GetArea(),计算图形的周长GetPerimeter(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。以Circle 类为例:通过GetArea()计算圆的面积,GetPerimeter()计算圆的周长,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(int x,int y, int r)函数可以修改圆心坐标和半径。(5) 注意多个构造函数的声明方式与定义的实现。(6) 当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误。2. 一维数组是应用极为广泛的数据结构,但是C+语言的数组没有下标越界检查,因而极易出错。请定义一个安全的一维整型数组类intArray,要求:(1) 基本信息:存储数据的基址指针,数组的大小,均定义为private属性。(2) 定义构造函数、析构函数、拷贝构造函数。(3) 定义以下成员函数:int GetSize();返回数组的大小,即数组的元素个数。int GetAt(int nIndex) ;获得nIndex索引位置上的数组元素值。void SetAt(int nIndex , int newElement);向nIndex位置设定新的newElement值。(4) 使用intArray类实现一个冒泡排序程序。实验五 类与对象(二)(4学时) 实验目的和要求:1. 掌握对象数组的定义与使用方法。2. 理解对象指针的概念,学会用指针引用对象。3. 理解this指针的工作方式。4. 掌握静态数据成员和静态成员函数的基本使用方法。5. 理解友元与友元函数的作用,掌握其使用方法。6. 掌握对象成员及其常类型的使用方法。7. 学会使用C+的多文件方式编写程序。 实验内容:1. 设计一个Student(学生)类,并使Student类具有以下特点:(1) 该类具有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩。(2) 学生全部信息由键盘输入,以提高程序的适应性。(3) 通过成员函数分别统计每个学生的平均成绩和每门课程的平均成绩,当课程 数量增加或减少时成员函数无需修改仍可求取平均成绩。(4) 输出学生的各科成绩与平均成绩。(5) 学生对象的定义采用对象数组实现。(6) 统计不及格学生人数。(7) 表格输出整齐美观。(8) 能以最方便的方式实现对课程数量和学生人数的修改。实验六 继承与派生类 (4学时) 实验目的和要求:1. 理解类的继承的概念,能够定义和使用类的继承关系。2. 掌握派生类的声明与定义方法。3. 熟悉三种派生方式的访问特性。4. 掌握多基继承,理解和掌握虚基类。5. 理解赋值兼容规则。 实验内容:1. 定义点Point类作为基类,在此基础上派生出直线Line类和圆Circle类,在Circle类的基础上以不同的属性派生出圆柱Cylinder类和球Spheroid类。并要求基类和各派生类具有以下特点: (1) Line类含有计算直线长度和斜率的成员函数。(2) Circle类含有计算圆面积的成员函数。(3) Cylinder类含有计算圆柱表面积和体积的成员函数。(4) Spheroid类含有计算球体的表面积和体积的成员函数。(5) 要求在实验报告中画出类层次图。2. 小型公司人员管理。某小型公司有四类人员:总经理、技术人员、销售经理、推销员。设计一个基类person,并派生出employee(职员),再由employee派生出manager(总经理)、technician(技术人员)、salesmanager(销售经理)、saleman(推销员)。销售经理既是经理又是销售人员,兼具两类人员的特点,因此同时继承manager 和salesman 两个类。(1) 类定义l person类:基本信息:姓名、性别、出生日期(使用自定义的 Date(日期)类)其中:基本信息为 private 属性,成员函数为public 属性l Date 类:成员变量:年、月、日l 派生类employee :新增属性:编号、职位、薪水等l 派生类technician:新增属性:工作时间l 派生类 saleman: 新增属性:销售额、所属部门(2) 实现人员信息的录入与显示。(3) 计算并显示个人月薪:月薪计算办法:总经理拿固定月薪8000 元,技术人员按每小时25 元领取月薪;推销员的月薪按当月销售额的4%提成;销售经理固定月薪5000 元加所管辖部门当月销售总额的5 。实验七 多态性与虚函数 (4学时) 实验目的和要求:1. 理解编译时的多态性和运行时的多态性。2. 掌握虚函数的定义与使用方法。3. 掌握纯虚函数和抽象类的概念和使用方法,运用纯虚函数实现多态性。 实验内容:1. 在实验六题目1的基础上,增加以下内容:在Line类的基础上派生长方形Rectangle类和正方形Squre类,并分别在长方形Rectangle类和正方形Squre类的基础上派生长方体Cuboid类和正方体SquareBody类,并要求基类和各派生类具有计算各图形的周长、面积和体积的功能,要求用纯虚函数实现。注:可先定义一个抽象类-图形Figure类,含有求周长、面积、体积的纯虚函数,用此类进行派生。假设某个图形由上述几个图形组成,求该图形的总面积(若为平面图形)或总体积(若为立体图形)。2. 员工管理:(1) 将实验六中题目2中不同员工的工资计算函数pay(),改用虚函数实现。(2) 将每个类中的信息显示函数:display()改用虚函数实现。(3) 对每个类增加一个升职函数:promote()。(4) employee()类中的pay()和display()设计为纯虚函数;在主函数中便可以依据赋值兼容规则用基类类型的指针数组来处理不同派生类的对象。(5) 由于不同类的对象调用升级函数promote()需要赋于不同的实参值,难以对各类对象统一处理,因此,employee()中promote()定义为虚函数,各派生类再定义同名函数。实验八 运算符重载 (6学时) 实验目的和要求:1. 理解运算符重载的概念和使用方法。2. 掌握运算符重载的两种形式。3. 掌握几种常用运算符的重载。 实验内容:1. 请为complex类(复数类)定义下列重载运算符函数(1) 算术运算符+、-、*、/;(2) 求复数的共轭运算符!(3) 插入运算符; (4) 提取运算符 2. 请为fraction类(分数类)定义下列重载运算符函数(1) 算术运算符+、-、*、/;(2) 关系运算符,=,=,!=(3) 插入运算符; (4) 提取运算符3. 对实验四中的题目2实现的intArray类定义下标运算符“”重载函数,并用下标运算符的方法实现冒泡排序。实验九 模板 (2学时) 实验目的和要求:1. 掌握函数模板及其声明方法。2. 掌握模板函数及其生成方法。3. 学习类模板的声明与使用方法。 实验内容:1. 定义函数模板实现求一维数组中所有数据的和。其数据类型可以为整数、单精度数、双精度数、字符型数,并规定字符型数据的和为这两个字符连接起来的字符串,如:a+b=“ab”。2. 对实验五中的题目2 定义的intArray类用类模板进行改写(改为Array类),使之可以分别对若干整数、单精度数、双精度数、字符型数进行排序。实验十 I/O流 (2学时) 实验目的和要求:1. 熟悉流及流类库的作用。2. 掌握流类库中常用的类及其成员函数的使用方法。3. 掌握控制输出宽度的函数width和setw。4. 掌握函数setiosflags和resetiosflags设置和恢复对齐方式、精度、大小写、进制等。 实验内容:1. 试分别用流的格式化状态字与I/O操作算子,各写一个三角形形状的九九乘法表。2. 定义一个带有分别表示基数和整数值参数的格式化操作算子based,用以输出以此基数表示的整数。实验十一 文件的使用 (2学时) 实验目的和要求:1. 掌握文本文件的输入输出方法。2. 掌握文本文件的输入输出方法。 实验内容:1. 学生文件中的每一行包含了以下信息:学号,姓名及5门功课的成绩,请从该文件中接收数据,统计每个学生的总分和平均成绩,并按总分从高到低排序,将结果输出到另一文件中。附录:实验报告的书写规范1. 封面:请大家将实验报告的封面每一栏目写清楚、全面、准确。2. 目录:要将所写的实验项目按次序写在第一页的目录上。注意项目名称的前后一致性。3. 实验报告的格式:项目名称 实验目的和要求 实验内容 实验步骤:1. 问题分析和算法描述。2. 对于较大的题目,要叙述采用的数据结构方式。如类的层次结构及其各成员的含义与功能及其实现。3. 可以给出分析的流程图、数据流图、类的层次结构图、程序的结构图。4. 可以附上源程序。 实验结果及其分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能交通系统设计施工合同:智慧城市建设合作协议
- 2025年校园不锈钢护栏建设及校园安全保障合同范本
- 2025年度汽车行业专用车泵租赁及售后服务支持协议
- 2025年医院环境卫生管理及环保清洁设备操作维护合同
- 2025年山东俄语高考试题及答案
- 2025年新能源产业招商引资项目合作协议书
- 2025年教育机构多功能办公设备统一采购与培训服务合同
- 2025年度顺丰航空货运包装材料采购及服务协议
- 许娣2025年配偶财产分配及子女抚养权划分协议
- 2025年度跨境电商中间人服务佣金支付与责任承担合同
- 主题阅读1:大自然的文字
- 电梯周期日常维护保养项目表
- 工程项目进度管理-课件
- (中职中专)二维动画设计软件应用完整版课件汇总全书电子教案(最新)
- 国际贸易理论与实务ppt课件(完整版)
- GB∕T 6546-2021 瓦楞纸板边压强度的测定
- 历史选择性必修1 国家制度与社会治理(思考点学思之窗问题探究)参考答案
- 学前儿童发展心理学(第3版-张永红)教学课件1754
- 医学资料冠心病英文版
- 部编人教版九年级语文上册教学计划及教学进度表
- 干法——稻盛和夫
评论
0/150
提交评论