C--程序设计实验报告.docx
《C--程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《C--程序设计实验报告.docx(7页珍藏版)》请在咨信网上搜索。
HUNAN UNIVERSITY OF TECHNOLOGY C++程序设计实验报告 学 院( 部):. 专 业:. 学 生 姓 名:. 指 导 老 师:. 班 级:. 顾少 沈浩学号 2015年12月 实验一类和对象的应用 (实验课时:2实验性质:设计) 实验名称:类和对象的应用实验目的:(1)进一步学习VC++6.0开发环境及程序调试方法。 (2)熟悉C++面向对象的程序设计的基本概念;(3)练习类的定义和对象的创建; (4)练习对象的成员函数的调用方法以及对象的初始化;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬 盘 40GB): (2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.O0实验内容:事先编好程序,上机调试和运行程序,分析结果。 (1)编程1:有一个3*4的整形矩阵,要求编写一个函数求出其中值最大的那 个元素的值,以及其所在的行号和列号;使用debug调试功能:追踪程序中函数的运行。 (2)编程2:定义并实现一个简单的学生类:公有属性为:学号、姓名、班级, 成员函数为输入和显示一个学生的上述信息,要求成员函数写在.cpp文件中,成员函数说明 写在.h文件中;(3)将程序(2)中的数据成员改为私有的,考虑对程序有何影响; (4)编程3:设计一个长方形类Rectangleo成员变量包括:长度和宽度,成员 函数有:Area计算面积,Set设置长方形的长和宽,Get获取长方形的长和宽。最后,编写 一个主程序来测试该类及成员函数。 (5)编程4:设计一个汽车类Car。成员变量有:品牌,颜色,车门,车灯,行 驶速度。成员函数有:打开车门、打开车灯、加速、减速等。最后,编写一个主程序来测试 该类及功能。(提示:在成员函数中用输出成员函数名来表示该成员函数被调用)实验步骤:(1)启动Visual C++6.0开发环境; (2)创建一个项目;(3)建立C++源程序文件; (4)编辑C++源程序文件内容;(5)建立并运行可执行程序: (6)关闭工作空间。 ^include <iostream>using namespace std; int fun(int a[3][4]Jnt& x,int& y)int max = a[0][0]; forfint i=0; i<=2; i++) forfint j=0; j<=3; j++) (if(max <= a[i][j]) (max = a[i][j]; x = i;y = j;} ) } return max;} int main()( intarr[3][4]={{l,2,3,4},{224,67,85,3},{5,8,755,3}}; int m,n,MAX; MAX = fun(arr,m,n); cout«"The maximum: "«MAX«endl; cout«"Abscissa is: "«m«endl; cout«"Ordinate is: "«n«endl; system("pause"); return 0;} 实验要求:(1)掌握C++类和对象的基本概念;掌握C++类和对象的定义及使用; (2) 掌握对象的成员函数的调用方法;程序格式规范,程序运行正确; (3) 认真书写实验报告,如实填写各项实凝内容。 实验二 类的构造函数、析构函数的应用 (实验课时:2实验性质:设计) 实验名称:类的构造函数、析构函数的应用实验目的:(1)练习类的构造函数、析构函数的定义和使用方法; (2)练习对象数组、对象指针的使用;(3)练习类的静态成员的使用。 实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬 盘 40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.O0实验内容:(1)编程:设计一个学生类。要求: 学生的属性有:学号,姓名,性别;学生的行为有:输入学生的上述属性和输出学生的上述属性。 编写构造函数对学生的所有属性初始化,无参数的构造函数设置学号为 1001,姓名为“张三”,性别为'M' ('M'代表男,'F'代表女)。 (2)修改上述程序:修改定义析构函数,在析构函数中输出学号。再运行程序, 观察运行结果。 (3)修改上述main程序:使用对象指针,用new生成一个学生对象,然后, 用delete清除该对象,使用单步运行观察运行结果。 (4)修改上述程序:增加一个私有数据成员成绩score:增加一个成员函数 readdata:输入一学生的学号和成绩;增加一个成员函数getscore:取得学生的成绩。再修 改main函数;定义一个班的同学(假如一个班有10位同学,采用对象数组),输出该班的 平均成绩。 (5)不用对象数组,而使用静态的数据成员来实现(4)中求一个班的学生的平 均成绩,学生的成绩在构造函数中输入。 (提示:定义2个静态数据成员,1个是存储总成绩,1个是存储学生人数)。 (6)分别运行上述程序,并分析结果。 注意:在增加一个新的功能时,可以把暂时不需要的功能代码给注释掉。 实验步骤:(1)启动Visual C++6.0开发环境;(2)创建一个项目; (3)建立C++源程序文件;(4)编辑C++源程序文件内容; (5)建立并运行可执行程序;(6)关闭工作空间。 ^include <iostream>ttinclude <string> #include "head.h"using namespace std; /*class Cstudent( public: int num,clas; string name; void print(); void pout();};7 void Cstudent::print(){ cout « "Enter Student's number: " « endl; cin » num; cout« "Enter Student's name:" « endl; cin » name; cout« "Enter Student's class:" « endl; cin » clas;void Cstudent::pout() cout« "Number« num « endl; cout« "Name « name « endl; cout« "Class :" « clas « endl;) int main()( Cstudent stu;stu.print(); stu.pout(); system("pause"); return 0;实验要求:(1)掌握C++类的构造函数、析构函数的定义和使用方法: (2)掌握C++对象数组、对象指针的使用;(3)掌握类的静态数据成员的定义和使用; (4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。 实验三类的继承与派生 (实验课时:2实验性质:设计) 实验名称:类的继承与派生实验目的:(1)进一步理解继承与派生的概念; (2)掌握通过继承派生出一个新的类的方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬 盘 40GB); (2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.O0实验内容:事先编好程序,I:机调试和运行程序,分析结果。 (1)编程:编写一个学生类Student。要求: ① 学生的保护属性有:学号(Num),姓名( Name),性别(Sex): 学生的公用成员函数有:ReadData()用「输入Num、Name、Sex。OutputData() 用于输出 Num、Name、Sex。 ② 然后,在学生类的基础上派生出研究生类Graduate,该类新增私有属性研究方向(ResearchD),新增公用成员函数ResearchWorkf),该函数功能为输出学号和研究方向。 ③ 编写main函数测试基类和派生类的各属性很函数的访问。修改派生类的派生 方式以及基类成员的访问方式,再测试看看基类和派生类的属性访问方式有何不同。 (2)编程:在上述工程中增加一个Teacher (教师)类,采用多重继承方式由 Student和Teacher类公有派生出新类Student_Teachero要求: ① Teacher类的保护成员有:Name、Sex、Title (职称)、Wages (工资)。两 个基类中的Name、Sex同名,在引用这些数据成员时,指定作用域。 ② 在派生类Student_Teacher中,增加两个成员函数:ReadFl ()用于读入: Num、Name、Sex、Title、Wageso Show ()用于输出数据,在 Show ()中,首先调用 Student 类的display ()函数用于输出Num、Name、Sex,然后再用cout语句输出Title、Wageso ③ 在类体中声明成员函数,在类外定义成员函数。 思考题:类的三种继承方式的主要区别是什么? 实验步骤:(1)启动Visual C++6.0开发环境;(2)创建一个项目; (3)建立C++源程序文件;(4)编辑C++源程序文件内容; (5)建立并运行可执行程序;(6)关闭工作空间。 include <iostream>using namespace std; int a, b;class Crectangle (public: int len, wid,s;int area(); void set(int, int);void get(); );int Crectangle::area() {s = len*wid; return s;) void Crectangle::set(int m, int n){ len = m;wid = n; }void Crectangle::get() { cout « "length is :" « len « endl; cout« "width is :" « wid « endl; cout « "Area is :" «s« endl;) int main(){ Crectangle rec;rec.set(3,4); rec.area();rec.get(); )实验要求:(1)掌握继承与派生的概念; (2)掌握通过继承派生出一个新的类的方法;(3)程序格式规范,程序运行正确; (4)认真书写实验报告,如实填写各项实验内容。 实验四类的多态性与虚函数 (实验课时:2实验性质:设计) 实验名称:类的多态性与虚函数实验目的:(1)了解多态性的概念; (2)了解虚函数的作用和使用方法;(3)了解纯虚函数和抽象类的概念和用法。 实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬 盘 40GB); (2)软件:操作系统为WindowsXP (或2000、server2003等),工具软件为Visual c++6.0o实验内容:事先编好程序,上机调试和运行程序,分析结果。 (1)编程:定义抽象基类Shape (图形)。 Shape类有一个公共的纯虚函数Area,用于派生类求图形的面积。 (2)由 Shape 派生出 3 个派生类:Circle (圆形)、Rectangle(矩形)、Triangle (三角形),用一个函数PrintArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。 在主程序中测试这些类的PrintArea函数。 (3)在类Circle基础上再派生一个圆柱体Cylinder,重载Area函数求圆柱体的 体积。然后,编写主程序采用静态多态性和动态多态性分别测试Area函数。 (4)在类Circle中定义一个析构函数,让它输出一行信息“This is Cicle Destruction0 在类Cylinder中定义,个析构函数,让它输出•行信息“This is Cylinder Destruction 0 在主程序中用指向基类Circle类的指针动态生成Cylinder类对象,然后用delete 语句释放该对象,测试看看运行结果如何。再修改Circle的析构函数为虚函数,测试看看运 行结果如何。 (5)运行上述程序,并分析结果。 实验要求:(1)掌握多态性的概念;掌握虚函数的作用和使用方法; (2) 掌握纯虚函数和抽象类的概念和用法;程序格式规范,程序运行正确; (3) 认真书写实验报告,如实填写各项实验内容。 思考题:虚函数的作用是什么? ^include <iostream>//include <string> using namespace std;class Car {private: char brand[10], color[10];bool door, lamp; double speed;public: Car(char sl[], char s2[]);void open_door(); void open_lamp();void speed_up(); void speed_down();); Car::Car(char sl[], char s2[])( int i;for (i = 0; sl[i]; i++) {color[i] = sl[i]; )for (i = 0; s2[i]; i++) (brand[i] = s2[i]; )door = false; lamp = false;speed = 0; cout« "颜色: for (i = 0; sl[i]; i++)cout« color[i]; cout« endl;cout« "品牌: for (i = 0; s2[i]; i++)cout« brand[i]; cout« endl;void Car::open_door() {door = true; cout« "车门已经打开"« endl;) void Car::open_lamp()( lamp = true;) void Car::speed_up(){ speed += 10.0; cout« "加速——行驶速度为:"« speed « endl; }void Car::speed_down() (speed -= 10.0; if (speed < 0)speed = 0; cout« ”减速——行驶速度为:"« speed « endl; )int main() (CarcarC'Gray'V'Benz"); car.open_lamp();car.open_door(); car.speed_up();car.speed_down(); system("pause");return 0; )实验步骤:(1)启动Visual C++6.0开发环境; (2) 创建一个项目;建立C++源程序文件; (3) 编辑C++源程序文件内容;建立并运行可执行程序,并分析结果; (4) 关闭工作空间。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文