当前位置:文档之家› 实验一 类和对象

实验一 类和对象

实验一 类和对象
实验一 类和对象

实验一类和对象

Visual C++ 6.0集成开发环境的使用:

Visual C++系列产品是微软公司推出的一款优秀的C++集成开发环境,其产品定位为Windows 95/98、NT、2000 系列Win32 系统程序开发,由于其良好的界面和可操作性,被广泛应用。由于2000 年以后,微软全面转向.NET 平台,Visual C++6.0 成为支持标准C/C++规范的最后版本。

1.启动

安装完系统后,可以选择如下两种方式启动

1) 点击Windows “开始”菜单,选择“程序”菜单下“Microsoft Visual Studio 6.0”子菜单下的快捷方式Microsoft Visual C++ 6.0 启动Visual C++ 6.0。

2) 点击Windows “开始”菜单,选择“运行”,输入msdev,即可启动。启动后的界面如下:

图 1 启动界面

2.建立工程

选择“File”菜单下的“New”菜单项或直接按Ctrl+N,启动新建向导,如图2 所示:

图 2 新建向导

选择在“Projects”属性页选择Win32 Console Application,在Project Name 中输入项目名称demo,在Location 中选择项目文件,如图2 中c:\test\demo,项目所有文件将保存在此文件。输入完毕,单击确定按钮,进入下一界面如图3:

图 3 项目类型向导

在图 3 所示界面中选择a simple application,然后点击Finish 按钮,系统显示图4 所示界面。如果想退回上一步可以选择“Back”按钮。

图 4 项目信息

在图 4 中选择OK 按钮,系统完成项目的创建,并保存项目相关的信息。项目的目录结构如图5 所示。

1) Demo.dsw 是项目工作区文件,双击此文件,即可打开此项目;

2) Demo.dsp 为项目文件;

3) demo.cpp 是项目中的一个源程序;stdafx.h 和stdafx.cpp 为自动创建的源程序,一般不用修改。

图 5 目录结构

3.保存工程

保存工程比较简单,选择File 菜单中的Save workspace 即可。这还不够,项目由多个源程序构成,在保存工程时,需要保存相关的源程序,通过选择File 菜单中的Save 命令分别保存修改后的源程序即可。

4.打开工程

选择File 菜单中的Open workspace,选择相应的项目工作区文件或项目文件即可,例如本例中打开“C:\test\demo\demo.dsw”即可,打开后的界面如图6 所示。

图 6 demo 项目

1) 打开源程序文件

有两种方式可以打开源程序文件。

a) 从File 菜单选择open 命令,输入相应文件名即可打开相关源程序,例如“C:\test\demo\demo.cpp”

b) 在图6 所示FileView 页中选择相应的文件,单击即可。

2) 编辑源程序

在图 6 所示主窗口中,即可直接编辑程序文件。将文件demo.cpp 的内容修改如下:

#include "stdafx.h"

#include

int main(int argc, char* argv[])

{

printf("Hello, world\n");

return 0;

}

3) 保存源程序

选择File 菜单中的Save 命令即可保存当前文件,或直接按Ctrl+S

4) 新建源程序

选择File 菜单中的new 命令,在新建向导中,选择Files 属性,选择

C++Source File,并在File 中输入文件名,单击OK 即可。

图7 新建文件向导

5.编译源程序

选择Build 菜单中的Compile 命令,或直接按Ctrl+F7 即可直接对当前打开的源程序进行编译,系统在如图8 所示界面显示代码中的编译结果。

图8 系统输出窗口

6.链接程序

选择Build 菜单中的Build 命令,或直接按F7 即可直接对当前项目进行链接,系统在如图9 所示窗口链接结果。

图9 链接结果

7.运行程序

选择Build 菜单中的Excute 命令,或直接按Ctrl+F5 即可直接运行,图10 为程序运行结果。

图10 运行结果

一、实验目的

1、练习C++对C语言的扩充部分内容的编程,并且通过练习调试程序能够总结出错信息,为以后的编程学习打下基础。

2、通过上机练习学会类和对象的定义方法。

3、熟悉构造函数和析构函数的特点和功能。

4、通过上机练习进一步弄清下述概念。

(1)对象数组、堆对象、子对象和常量对象;

(2)指向类成员的指针,指向对象的指针,指向对象数组的指针、对象指针数组;

(3)对象作为函数的参数、对象引用作为函数的参数和对象指针作为函数的参数。

二、实验环境

硬件环境:PC586以上;

操作系统:Windows 2000;

系统软件:Visual C++ 6.0

三、实验内容

1.按教材P16-19的介绍的内容熟悉Visual C++ 6.0的基本用法,将例1.4,

1.5的程序输入计算机中,用其练习单文序和多文件应用程序的实现方

法;l

2.P79教材中例3.2程序。该程序段虽然不是一个完整程序,需要写出main()的内容,但是该程序中出现了条件编译预处理命令。要求通过调试此程

序练习对条件编译命令的使用;

3.上机调试教材中P118例4.5程序。注意该程序中出现了引用调用。回答下列问题:(回答问题写入实验报告)

⑴引用调用和传值调用比较有什么不同?

⑵引用调用和传址调用比较有什么不同?

⑶引用调用在C++中为什么比传址调用使用的多?

4.上机调试教材中P127例4.15程序,学会重载函数的定义方法。函数重载的条件是什么?不满足条件的重载会出现什么问题?请上机试试。

(回答问题写入实验报告)

5、上机调试教材中例5.2程序。熟悉类的定义方法和对象的定义方法,进一步了解对类中私有成员的操作方法。

6、上机调试教材中例5.5程序。在调试分析中,请注意下述语法内容:(回

答问题写入实验报告)

#include

class TPoint

{

public:

TPoint(int x,int y)

{X=x;Y=y;}

TPoint(TPoint &p);

~TPoint()

{cout<<"Destructor Called.\n";}

int Xcoord()

{return X;}

int Ycrood()

{return Y;}

private:

int X,Y;

};

TPoint::TPoint(TPoint &p)

{

X=p.X;

Y=p.Y;

cout<<"P2="<

}

⑴构造函数,包括拷贝初始化构造函数的定义和调用;

⑵对象作为函数参数时,如何将实参值传递给形参?

⑶对象被创建后,何时调用析构函数来释放对象?

⑷构造函数和析构函数是如何被自动调用的?

7、上机调试教材中例5.11程序。熟悉静态成员的使用方法。说明静态成员

的初始化方法并了解静态成员函数的功能。

8、读懂P197作业题三的第5小题,该程序是对一个数组中的若干元素进行

某些操作的程序,写出程序中已经实现的操作。(写入实验报告)

增加下述功能:

(1)从数组中删除某个已有的数值,

(2)将数组中各元素进行一次排序的功能。

9、设计一个立方体类,它能计算输出立方体的体积和表面积。(选做)

10、上机调试教材中例6.1程序。通过该程序学会指向类的数据成员的指针定义方法、赋值方法和使用方法;学会指向类的成员函数指针的定义方法、赋值方法和使用方法。

11、上机调试教材中例6.3程序。通过该程序的调试掌握对象引用作为函数

的方法及功能。将该程序做如下修改后,再调试程序,比较其输出结果的异同。

⑴将成员函数copy的形参改为对象指针。

⑵将一般函数fun的形参改为对象指针。

⑶将copy()和fun()函数的形参均改为对象。

12、上机调试教材例6-5程序,熟悉对象数组的有关操作:定义、赋值及使用。

13、上机调试教材中P247练习题三2-5,并分析输出结果。(写入实验报告)

#include

class A

{

public:

A();

A(int i,int j);

~A();

void set(int i,int j){a=i;b=j;} private:

int a,b;

};

A::A()

{

a=0;

b=0;

cout<<"default constructor called.\n";

}

A::A(int i,int j)

{

a=i;

b=j;

cout<<"Construtor:a="<

A::~A()

{

cout<<"destructor called.a="<

}

void main()

{

cout<<"starting1...\n";

A a[3];

for(int i=0;i<3;i++)

a[i].set(2*i+1,(i+1)*2);

cout<<"ending1...\n";

cout<<"starting2...\n";

A b[3]={A(1,2),A(3,4),A(5,6)};

cout<<"ending2...\n";

}

#include

class A

{

public:

A(int i=0){m=1;cout<<"constructor called."<

void set(int i){m=i;}

void print() const{cout<

~A(){cout<<"destructor called."<

int m;

};

void main()

{

const int n=5;

A my;

my=n;

my.print();

}

#include

class A

{

A(int i=0) {m=i;cout<<"constructor called."<

void set(int i){m=i;}

void print() const{cout<

~A() {cout<<"destructor called."<

int m;

};

void fun(const A& c)

{

c.print();

}

void main()

{

fun(5);

}

#include

class complex

{

public:

complex();

complex(double real);

complex(double real,double imag);

void print();

void set(double r,double i);

double real,imag;

};

complex::complex()

{

set(0.0,0.0);

cout<<"default constructor called.\n";

}

complex::complex(double real)

{

set(real,0.0);

cout<<"constructor:real="<

complex::complex(double real,double imag)

{

set(real,imag);

cout<<"Constructor:real="<

void complex::print()

{

if(imag<0)

cout<

else

cout<

}

void complex::set(double r,double i)

{

real =r;

imag=i;

}

void main()

{

complex c1;

complex c2(6.8);

complex c3(5.6,7.9);

c1.print();

c2.print();

c3.print();

c1=complex(1.2,3.4);

c2=5;

c3=complex();

c1.print();

c2.print();

c3.print();

}

14、上机调试教材中作业题的第四题的程序。该程序实际上是一个关于字符串的操作。通过上机调试并回答课本中所提到的问题。(写入实验报告)

15、第1-6章中的其它与之相关例题、习题等。

16、创建本次实验的工作文件夹“实验一”,将所有源代码及可执行文件放

入此文件夹中。

四实验报告要求

1、实验目的;

2、实验内容;

3、回答问题:实验题中叙述的问题。

实验5 类和对象1答案

实验5:Java类与对象 一、实验目的 (1)使用类来封装对象的属性和功能; (2)掌握Java类的定义。 (3)java对象的使用 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Student{ long studentID; int classID; String name; String sex; int age; public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID; this.classID=classID; https://www.doczj.com/doc/8b16479069.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){

C++实验报告 类和对象(2)

福建师范大学实验报告 课程:C++ 实验名称:类和对象二第 1页共 5页 系别:实验日期年月日 专业班级:组别_____________ 实验报告日期年月日 姓名:学号:报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字 一、实验题目:实验九类和对象(二) 二、实验环境: 三、实验目的 (1)进一步加深对类和对象的理解。 (2)掌握类的构造函数和折购函数的概念和使用方法。 (3)掌握对对象数组,对象的指针及其使用方法。 (4)掌握友元的概念和使用。 (5)了解类模板的使用方法。 四、实验内容 (1)有以下程序: 1、阅读此程序,分析其执行过程,然后上机运行,对比输出结果。 2、修改上面的程序,增加一个fun函数,改写main函数,在main函数中调用fun函数,在fun函数中使用对象的引用(Student&)作为形参。 (2)商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售

时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3个销售员销售情况为: 销售员号(num)销售件数(quantity)销售单价(price)101 5 23.5 102 12 24.56 103 100 21.5 请编程序,计算出当日此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。 (3)有以下程序: 请读者分析和运行此程序,注意友元函数Time::display的作用。将程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。 修改后上机调试和运行。

实验:类和对象1

实验一:类和对象 【实验目的】 1.理解对象和类,掌握类的定义及如何创建一个对象; 2.掌握构造方法的运用; 3.掌握方法的定义和参数传递; 4. 掌握类的继承机制。 【实验准备】 一、复习配套教材相关章节的内容; 二、预习本次实验; 【实验内容】 1.编写一个程序,显示水果的定购行情。定义一个带有参数的构造方法,这些参数用于存放产品名,数量和价格。在主程序中输出三种不同的水果。package avage; public class text { String name; int agr; double page; public text(){ } public text(String name,int agr,double page){ https://www.doczj.com/doc/8b16479069.html,=name; this.agr=agr; this.page=page; } public void evagre(){ System.out.println("水果名为:"+https://www.doczj.com/doc/8b16479069.html,); System.out.println("水果数量:"+this.agr); System.out.println("水果单价:"+this.page); } } public class text1 { /** * @param args

*/ public static void main(String[] args) { // TODO Auto-generated method stub text s=new text(); https://www.doczj.com/doc/8b16479069.html,="苹果"; s.agr =10; s.page=1.0; s.evagre(); text c=new text(); https://www.doczj.com/doc/8b16479069.html,="香蕉"; s.agr =10; s.page=1.0; s.evagre(); text d=new text(); https://www.doczj.com/doc/8b16479069.html,="橘子"; s.agr =10; s.page=1.0; s.evagre(); 2. 编写一个学生类,封装学生的学号、姓名、成绩等信息。再编写一个主类,

实验3 类和对象

实验3 类和对象的创建与使用 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第1,3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 public class AccountOperation { public static void main(String [] args) { Account account1=new Account("650101","柳眉","天河学院",800.00); Account account2=new Account("650102","郑杰","天河学院",200.00); account1.transfer(account1,account2,300.0); account1.deposit(300.5); account1.withdraw(200); account1.withdraw(300); account1.query(); System.out.println(account1.toString()); //System.out.println(https://www.doczj.com/doc/8b16479069.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

实验报告_实验5 类与类关系与抽象类(学生学号_姓名)

实验报告_实验5类与类关系与抽象类(学生 学号_姓名) 一、实验目的 1.理解继承的概念,掌握子类的创建方法; 2.熟悉成员变量的隐藏和方法覆盖; 3.掌握使用super访问被隐藏、覆盖的基类变量与方法; 4.理解继承的层次结构,熟悉构造方法的执行顺序; 5.理解访问修饰符的作用,熟悉访问修饰符对子类继承性的影响; 6.熟悉子类对象向上转型的实现方法和Object类的基本用法; 7.理解多态种类、意义、实现条件及基本应用; 8.理解内部类的作用、种类、实现方法及注意事项; 9.理解类与类之间的关系,了解单例模式的实现机理; 10.理解抽象类、抽象方法概念,熟悉它们的声明、使用。 二、实验内容与步骤 1.(基础题)根据题意及注释补充所缺少代码,然后运行程序 public Student(){} public Student(String sno, String sname, int age) { this.sname=sname; this.sno=sno; this.age=age; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getSname() { return sname;

} public void setSname(String sname) { this.sname= sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } (1): class CollegeStudent extends Student (2): getSno() (3): getSname() (4): getAge() (5): major (6): student.setAge(26) (7): student.setSname("Jack") (8): cstudent.setSname("Jerry") (9): cstudent.setSno("1840700101") (10): cstudent.setAge(23) (11): cstudent.setMajor("物联网工程") 回答相关问题: (1)程序中有多少个类,哪个是主类?哪个是基类?哪个是子类? (2)程序中子类继承了基类哪些成员?基类对象如何给成员赋初值?子类对象又是如何给成员赋值? (3)是否可以不定义Student类的无参构造器? 2.(基础题)分析、运行以下程序,并回答相关问题: (1)分析程序,找出有问题的代码,请问出错原因是什么?

C++语言程序设计实验答案_类与对象

实验04 类与对象(6学时) (第4章类与对象) 一、实验目的 二、实验任务 4_1 声明一个CPU类。 包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 }; frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 4_2 声明一个简单的Computer类。 有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run和stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 4_3 声明一个表示时间的结构体。 可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

4_4(习题4-10)设计一个用于人事管理的People(人员)类。 考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号),sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现人员信息的录入和显示。要求包括:构造函数和析构函数、内联成员函数、组合。 三、实验步骤 1.(验证)声明一个CPU类,观察构造函数和析构函数的调用顺序。 首先声明枚举类型CPU_Rank,例如enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 },再声明CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,声明成员函数run和stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示顺序。在主程序中声明一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:。(程序见步骤2) ★程序的运行结果: 2.(示例)调试程序文件。 使用调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下: 操作)调试操作步骤如下: (1)单击“调试 | 逐语句”命令,系统进行单步执行状态,程序开始运行,一个DOS 窗口出现,此时Visual Studio中光标停在main()函数的入口处。

实验5 类和对象

类和对象 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 2、两游戏角色决斗。(选做) 角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,生命值+1;生命值<0判为负。生命值初始为1000,经验值初始为0。给定二个不同的角色,判定交手的胜负关系。 提示: step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。 step2:建立fight方法,接收二个角色类型的参数,返回胜者。 step3:初始化二角色,调用fight方法。 3、根据分数录取学生。 设计一个学校类,其中包含成员变量line(录取分数线)和对该变量值进行设置和获取的方法。 编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、total(综合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96以上并且综合成绩大于300。在该类的main()方法中,建立若干个学生对象,对符合录取条件的学生,输出其信息及“被录取”。 四、实验记录与分析(可自拟或选择) 1、重载的构造方法具有不同个数或不同类型的参数,编译器就可以根据这一点判断出用new 关键字产生对象时,该调用哪个构造方法了。 2、每个对象拥有各自的实例成员变量,而所有对象共享一个类成员变量。 3、实例成员变量通过对象引用,类成员变量通过类或对象名访问。

实验一 类和对象

实验一类和对象 Visual C++ 6.0集成开发环境的使用: Visual C++系列产品是微软公司推出的一款优秀的C++集成开发环境,其产品定位为Windows 95/98、NT、2000 系列Win32 系统程序开发,由于其良好的界面和可操作性,被广泛应用。由于2000 年以后,微软全面转向.NET 平台,Visual C++6.0 成为支持标准C/C++规范的最后版本。 1.启动 安装完系统后,可以选择如下两种方式启动 1) 点击Windows “开始”菜单,选择“程序”菜单下“Microsoft Visual Studio 6.0”子菜单下的快捷方式Microsoft Visual C++ 6.0 启动Visual C++ 6.0。 2) 点击Windows “开始”菜单,选择“运行”,输入msdev,即可启动。启动后的界面如下: 图 1 启动界面 2.建立工程

选择“File”菜单下的“New”菜单项或直接按Ctrl+N,启动新建向导,如图2 所示: 图 2 新建向导 选择在“Projects”属性页选择Win32 Console Application,在Project Name 中输入项目名称demo,在Location 中选择项目文件,如图2 中c:\test\demo,项目所有文件将保存在此文件。输入完毕,单击确定按钮,进入下一界面如图3:

图 3 项目类型向导 在图 3 所示界面中选择a simple application,然后点击Finish 按钮,系统显示图4 所示界面。如果想退回上一步可以选择“Back”按钮。 图 4 项目信息 在图 4 中选择OK 按钮,系统完成项目的创建,并保存项目相关的信息。项目的目录结构如图5 所示。 1) Demo.dsw 是项目工作区文件,双击此文件,即可打开此项目; 2) Demo.dsp 为项目文件; 3) demo.cpp 是项目中的一个源程序;stdafx.h 和stdafx.cpp 为自动创建的源程序,一般不用修改。 图 5 目录结构

实验五类与对象

实验五类和对象(一) 一、目的和要求 1 掌握类和对象的定义和使用方法 2 掌握对象的初始化方法 3 掌握定义构造函数和析构函数的方法 4 掌握静态成员和友元函数的用法。 上机准备 (1)复习教材第五章类与对象的内容 (2)准备本次上机所需的程序。 程序一(test5_2.cpp)的题目为:编写一个程序,采用一个类求n!,并输出5!的值. 程序二(test5_3.dsw))的题目为:建立一个类SUM,求二维数组外围各元素的和,并且屏幕输出数组中各元素及所求之和。具体要求如下: (1)私有数据成员。 ●int array[5][5]:二维整型数组。 ●int s: 数组array各外围元素的和。 (2)公有成员函数。 ●SUM(int d[5][5]):构造函数,初始化成员数据。 ●void process():求二维数组外围各元素的和s. ●void print ()屏幕输出二维数组(每行输出5个元素)及外围元素之和。 (3)在主程序中对该类进行测试。使用如下数据(外围元素指阴影部分元素。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 二、内容与步骤

1.启动Visual C++6.0 2、录入test5_1.cpp源程序。 程序内容如下: #include class T { public: T(int i) { t=i; cout<<"T(int"<

Visual C++ 6.0实验五类和对象、继承和派生

上海电力学院 实验报告 课程名称Visual C++ 实验项目类和对象、继承和派生 姓名储昊学号20132234 班级2013112 专业通信工程 同组人姓名指导教师姓名实验日期 实验内容 程序Ex_Class:定义一个人员类CPerson,包括的数据成员有姓名、编号、性别和用于输入/输出的成员函数。在此基础上派生出学生类Cstudent(增加成绩)和教师类Cteacher(增加教龄),并实现对学生和教师信息的输入/输出。编写一个完整的测试程序,并将Ex_Class 所有的类定义保存在Ex_Class.h中,将类的成员函数实现代码保存在Ex_Class.cpp中。 实验准备和说明 (1)在学习完第2章的“继承和派生”内容之后进行本次试验。 (2)编写本次上机所需要的程序。 实验步骤 1.创建工作文件夹 打开计算机,在“D:\Visual C++程序\LiMing\5”文件夹中创建一个新的子文件夹“5”。 2.输入程序Ex_Class.h (1)启动Visual C++6.0。 (2)单击标准工具栏上的“New Test File”按钮,在新打开的文档窗口中输入下列程序代码: #include #include class CPerson { public: CPerson() { strcpy(pName,""); strcpy(pID,""); } CPerson(char*name,char*id,bool isman=1) { Input(name,id,isman);

} void Input(char*name,char*id,bool isman) { setName(name); setID(id); setSex(isman); } void Output() { cout<<"姓名:"<

C++实验二类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

C++面向对象程序设计实验五 类与对象之三

C++面向对象程序设计实验五类与对象之三 一、实验目的 1、掌握C++类的概念和基本组成。 2、掌握类的声明和使用方法,并能根据实际定义相应的类。 3、熟悉友元函数和友元类的定义与使用方法。 4、掌握静态成员的定义与使用方法。 5、掌握this指针的使用方法。 二、实验内容 1、阅读下面程序,先在纸上写出输出结果,再运行程序核对笔算结果,并说明原因。 (1) #include // 编译预处理命令 using namespace std; // 使用命名空间std class Test { private: int a; // 数据成员 public: ~Test() { cout << "对调用默认构造函数的对对象进行析构" << endl; } // 析构函数 void set(int value) {a=value;} void show() {cout << a << endl;} };

int main() // 主函数main() { Test d; // 定义对象 d.set(7); d.show(); return 0; // 返回值0, 返回操作系统} (2) #include // 编译预处理命令 using namespace std; // 使用命名空间std class Test { public: static int a; // 静态成员 void Init() {a = 1; } // 初始化函数 Test(int a=6) {Init(); a++;} // 构造函数 }; int Test::a = 0; // 初始化a Test obj; // 定义全局对象 int main() // 主函数main() { cout << obj.a << endl; // 输出a return 0; // 返回值0, 返回操作系统}

实验5(1) 参考答案

实验5(1) 类的组合 参考答案 一、实验目的与实验要求 (1)理解类组合的概念与作用。 (2)掌握对象成员的定义方法,理解对象成员的构造与析构方法。 (3)理解组合后类的构造函数与析构函数的调用次序。 (4)掌握对象成员中私有成员和保护成员的访问方法。 二、实验内容 题目1:对象成员的定义、构造与访问。 定义三个类Member1、Member2和New。Member2中包含有Member1类型的成员,New中包含有Member1与Member2类型的成员。程序的具体要求如下。 ①在Member1类中,它含有一个int型私有数据成员x以及三个公有成员函数。三个成员函数分别为构造函数、析构函数与显示函数show( )。show( )函数的作用是输出x的值。 ②在Member2类中,它含有三个私有数据成员,分别是Member1型的对象obj1、obj2与int型的数据y。此外,它还含有三个公有成员函数,分别是构造函数、析构函数与显示函数show( )。show( )函数的作用是输出y的值。 ③在New类中,它含有三个私有数据成员,分别是Member1型的对象m1、Member2型的对象m2与int型的数据z。此外,它还含有三个公有成员函数,分别是构造函数、析构函数与显示函数show( )。show( )函数的作用是输出z的值。 ④main( )函数中定义一个New型的对象,并调用show( )函数。 程序为: #include using namespace std; class Member1 { public: Member1(int a) { x = a; cout << "constructing Member1 " << x << endl; } ~Member1( ) { cout << "donstructing Member1\n"; } void show( ) { cout << "Member1 x = " << x << endl;

实验1 类和简单对象(4学时)

实验一 (2010-3-23) 一、实验名称: 类和简单对象。 二、实验目的: (1)理解类和对象的概念; (2)掌握类与对象的定义方法; (3)理解类的成员的访问控制的含义,公有和私有成员的区别; (4)掌握构造函数和析构函数的含义与作用、定义方式和实现; (5)能够根据给定的要求定义类并实现类的成员函数; (6)掌握string类的使用方法 (7)了解C++面向对象程序设计的基本思想、基本方法和基本步骤; (8)掌握MS Visual C++6.0调试C++程序的基本方法、基本步骤。 三、练习项目 1. 输入下列程序,按要求进行实验,并记录实验的结果。 #include using namespace std; class Coordinate { public: Coordinate(int x1, int y1){x=x1; y=y1;} Coordinate(Coordinate &p); ~Coordinate(){cout<<"Destructor is called."<

} int main(){ Coordinate p1(3,4); Coordinate p2(p1); Coordinate p3=p2; cout<<"p3=("< class Date{ public: void printDate(); //显示日期 void setDay(int); //设置日的值 void setMonth(int); //设置月的值 void setYear(int); //设置年的值 private: int day, month, year; }; int main(){ Date testDay; testDay.setDay(5); testDay.setMonth(10); testDay.setYear(2010); testDay.printDate(); return 0; }; 3. 下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试

实验5-类和对象题目

实验5 类和对象 程序填空 1. 题目描述:仔细阅读下列求两个点之间距离的程序,程序的输出结果是50,根据程序的输出结果在划线处填入正确语句。 代码: #include #include using namespace std; class point { public: point(float a,float b) { x=a; y=b; } float Distance(point &p) { float dx=p.x-x; float dy=p.y-y; return (float)sqrt(dx*dx+dy*dy); } private: float x,y; }; int main() { point p1(2,3),p2(32,43); cout< using namespace std; class CRectangle { public: void Set(float a,float b) { if((a>0)&&(a<50)) length=a; else length=1; if((b>0)&&(b<50)) width=b;

c++类和对象实验报告

实验一类和对象 实验课程名:面向对象程序设计(C++) 专业班级:学号:姓名: 实验时间:实验地点:指导教师: 一、实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 二、实验内容 1.设计一个静态数组存储结构的顺序表类,要 求编程实现如下任务:建立一个线性表,首先 依次输人数据元素1,2,3,…,10,然后删除 数据元素6,最后依次显示当前线性表中的数 据元素。要求采用顺序表实现,假设该顺序表 的数据元素个数在最坏情况下不会超过50个。实验代码:#include using namespace std; const int MaxSize=100; //100只是示例性的数据,可根据实际问题具体定义 template //定义模板类SeqList class SeqList { public:

SeqList( ) {length=0;} //无参构造函数 SeqList(T a[ ], int n); //有参构造函数 ~SeqList( ) { } //析构函数为空 int Length( ) {return length;} //求线性表的长度 T Get(int i); //按位查找,取线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; template SeqList::SeqList(T a[ ], int n) { int i; if (n>MaxSize) throw "参数非法";

实验四-类与对象

实验四类与对象 1.实验目的 1、使用类来封装对象的属性和行为; 2、掌握对象的组合以及参数传递; 3、掌握类变量与实例变量,以及类方法与实例方法的区别 2.实验内容 1、参考教科书,完成下面实验: 1)实验1 Tank类 2)实验2 计算机与光盘 3)实验3 家族的姓氏 4)实验4 三角形、梯形和圆形的类封装 5)实验5 实例成员与类成员 2、完成习题: 1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220;增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。 2)根据要求修改实验2,主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。 3、提高题 编写储蓄账户类及测试类,模拟存款,参考以下运行方式: (1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。 (2)提示用户从键盘输入储蓄账户编号。 (3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。 (4)相应储蓄账户的余额被更新。 (5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。 (6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。 (7)用户输入yes,继续执行步骤(2),否则显示退出信息。 最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。 3.实验步骤 参考教材中相关的实验。 4.评分标准

内蒙古科技大学面向对象的程序设计实验5 类和对象(二)

内蒙古科技大学 面向对象的程序设计 实验报告 一、实验目的 1.理解掌握this指针的作用和用法; 2.理解掌握构造函数的定义和作用; 3.掌握构造函数的使用; 4.理解掌握拷贝构造函数的定义和使用; 5.理解掌握构造函数的重载; 6.理解掌握析构函数的定义和使用。 二、实验环境 编译器:Visual C++ 6.0. 操作系统:Windows 7 旗舰版 三、实验内容 2.1练习(一): 1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include class CPoint { public:

void Set(intx,int y); void Print(); private: int x; int y; }; void CPoint::Set(intx,int y) { x = x; y = y; } void CPoint::Print() { cout<<"x="< class CPerson { public: void Print(); private: CPerson(); private: int age; char *name; }; CPerson::CPerson() { } void CPerson::Print() { cout<<"name="<

相关主题
文本预览
相关文档 最新文档