C++实验一类与简单对象.docx
- 文档编号:28061450
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:16
- 大小:57.81KB
C++实验一类与简单对象.docx
《C++实验一类与简单对象.docx》由会员分享,可在线阅读,更多相关《C++实验一类与简单对象.docx(16页珍藏版)》请在冰豆网上搜索。
C++实验一类与简单对象
天津理工大学实验报告
学院(系)名称:
计算机与通信工程学院
姓名
学号
专业
计算机科学与技术
班级
教学班
实验项目
实验一类与简单对象
课程名称
高级程序设计语言II
课程代码
实验时间
2016年9月6日第7、8节
实验地点
计算机软件实验室7-219
批改意见
成绩
教师签字:
实验目的:
(1)理解类和对象的概念;
(2)掌握类与对象的定义方法;
(3)理解类的成员的访问控制的含义,公有和私有成员的区别;
(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;
(5)能够根据给定的要求定义类并实现类的成员函数;
(6)掌握string类的使用方法
(7)了解C++面向对象程序设计的基本思想、基本方法和基本步骤;
(8)掌握MSVisualC++6.0或DEVC++调试C++程序的基本方法、基本步骤。
实验内容:
一、实验名称:
类和简单对象。
二、实验目的:
(1)理解类和对象的概念;
(2)掌握类与对象的定义方法;
(3)理解类的成员的访问控制的含义,公有和私有成员的区别;
(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;
(5)能够根据给定的要求定义类并实现类的成员函数;
(6)掌握string类的使用方法
(7)了解C++面向对象程序设计的基本思想、基本方法和基本步骤;
(8)掌握MSVisualC++6.0或DEVC++调试C++程序的基本方法、基本步骤。
三、练习项目
1.
输入下列程序,按要求进行实验,并记录实验的结果。
#include
usingnamespacestd;
classCoordinate
{
public:
Coordinate(intx1,inty1){x=x1;y=y1;}
Coordinate(Coordinate&p);
~Coordinate(){cout<<"Destructoriscalled."< intgetx(){returnx;} intgety(){returny;} private: intx,y; }; Coordinate: : Coordinate(Coordinate&p){ x=p.x;y=p.y; cout<<"Copyinitianizationconstructoriscalled."< } intmain(){ Coordinatep1(3,4); Coordinatep2(p1); Coordinatep3=p2; cout<<"p3=("< return0; } (1)记录程序的运行结果 (2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增加如下语句: cout<<”Constructoriscalled.”< 重新记录程序的运行结果,并解释输出结果。 (3)按下列要求进行测试。 在主函数体内,添加如下语句: Coordinatep4; Coordinatep5 (2); 测试程序会出现什么错误? 为什么? 如何对已有的构造函数进行适当的修改? (4)结合第 (2)和第(3)步的修改和运行结果: 分析创建不同的对象时如何调用适当的构造函数? 1. . 2. 调用一次构造函数。 3. Coordinatep4; Coordinatep5 (2);错误,因为类没有默认的构造函数,也没有无参数的构造函数和一个参数的构造函数; 改正可为: 将Coordinate(intx1,inty1){x=x1;y=y1;}改为Coordinate(intx1=0,inty1=0){x=x1;y=y1;} 4.系统会自动根据参数的类型和参数的个数,调用合适的函数。 2. 根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。 #include classDate{ public: voidprintDate();//显示日期 voidsetDay(int);//设置日的值 voidsetMonth(int);//设置月的值 voidsetYear(int);//设置年的值 private: intday,month,year; }; intmain(){ DatetestDay; testDay.setDay(5); testDay.setMonth(10); testDay.setYear(2010); testDay.printDate(); return0; }; 完整如下: #include classDate{ public: voidprintDate();//显示日期 voidsetDay(int);//设置日的值 voidsetMonth(int);//设置月的值 voidsetYear(int);//设置年的值 private: intday,month,year; }; voidDate: : setDay(inta) {day=a;} voidDate: : setMonth(intb) {month=b;} voidDate: : setYear(intc) {year=c;} voidDate: : printDate() {cout< intmain(){ DatetestDay; testDay.setDay(5); testDay.setMonth(10); testDay.setYear(2010); testDay.printDate(); return0; }; 运行结果: 3. 下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试 该类设计的正确性。 #include usingnamespacestd; classcoutner { public: counter(intnumber);//构造函数 voidincrement();//给value原值加1 voiddecrement();//给value原值减1 intgetvalue();//计数器值 voidprint();//显示计数 privat取得e: intvalue;//数据成员 }; intmain(){ ...//定义counter类的几个对象并调用有关成员函数 return0; } 程序如下: #include usingnamespacestd; classcoutner{ public: coutner(intnumber): value(number)//构造函数 {} voidincrement();//给value原值加1 voiddecrement();//给value原值减1 intgetvalue();//取得计数器值 voidprint();//显示计数 private: intvalue;//数据成员 }; voidcoutner: : increment()//给value原值加1 {value=value+1;} voidcoutner: : decrement()//给value原值减1 {value=value-1;} intcoutner: : getvalue()//取得计数器值 {returnvalue;} voidcoutner: : print()//显示计数 {cout< intmain(){ ints; cin>>s; coutnero1(s);//定义counter类的几个对象并调用有关成员函数 o1.increment(); o1.print(); coutnero2(s);//定义counter类的几个对象并调用有关成员函数 o2.decrement(); o2.print(); return0; } 4. 定义一个类ClsName,要求该类设计如下: (1)该类有两个整型数据成员x和y; (2)为该类重载三个不同的构造函数: 分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别; (3)设计2个成员函数用来读取数据成员x和y; (4)设计2个成员函数用来设置数据成员x和y; (5)设计1个成员函数用来在屏幕上打印输出数据成员x和y; (6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。 程序如下: #include usingnamespacestd; classClsName{ private: intx,y; public: ClsName(inta,intb) {x=a;y=b;} ClsName(intc) {x=c;y=0;} ClsName() {x=1;y=1;} intgetx() {returnx;} intgety() {returny;} voidprint(); }; voidClsName: : print() { cout< } intmain() { ClsNameo1,o2(3),o3(4,5); o1.print(); o2.print(); o3.print(); return0; } 运行结果: 5. 建立类cylinder,包括两个数据成员radius和height,分别表示圆柱体的半径和高度,cylinder类的构造函数被传递了两个double值来初始化这两个成员;定义成员函数area()和volume用来求圆柱体的表面积和体积,定义成员函数print()打印cylinder类的相关信息。 最后,在主函数中对cylinder类的设计进行测试。 程序如下: #include usingnamespacestd; classcylinder{ private: doubleradius,height,a,v; public: cylinder(doublea,doubleb) {radius=a;height=b;} doublearea(); doublevolume(); voidprint(cylinder&t); }; doublecylinder: : volume() { doublev; v=height*radius*radius*3.14; returnv; } doublecylinder: : area() { doublea; a=2*radius*3.14*height; returna; } voidcylinder: : print(cylinder&t) { cout<<"area="< } intmain() { cylindero1(3,3); o1.print(o1); return0; } 运行结果: 6. 定义一个学生类CStudent实现简单的学籍管理功能,要求该类至少实现以下功能: (1)录入学生的基本信息(包括姓名,学号,性别,年龄,专业,入学时间,各门功课成绩) (2)输出学生的基本信息 (3)选课(输入时间和所选的课程) (4)统计每门课的学分绩点 (5)统计每学期的平均学分绩点 (6)统计重考科目 (7)统计重修科目 程序如下: #include #include usingnamespacestd; classCStudent{ public: CStudent(stringn,stringnu,strings,inta,stringz,inty,intm,intd,intma,inte,intcyy)//构造函数 { name=n;number=nu;sex=s;age=a;zy=z;year=y;month=m;day=d;math=ma;english=e;c=cyy; } voidprint()//打印出学生信息 {cout<<"姓名: "< "< "< "< "< "< "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 一类 简单 对象