当前位置:文档之家› 实验3 类和对象-2-程序

实验3 类和对象-2-程序

实验3  类和对象-2-程序
实验3  类和对象-2-程序

实验3 类和对象(2)

1.sy3-1.cpp

#include

using namespace std;

class X

{private:

int a;

int b;

const int c;

public:

X():c(0){ a=b=0; }

X(int i):b(0),c(0){ a=i; }

X(int i, int j, int k):c(k){ a=i; b=j; }

void setA(int i){ a=i; }

void showC(int k) const { cout<

void show() const

{ cout<<"a="<

cout<<"b="<

cout<<"c="<

}

};

int main()

{

int a=11;

X x2(a);

X x3(22, a, 33);

x2.setA(44);

x2.show();

x3.show();

return 0;

}

2.sy3-2.cpp

#include

using namespace std;

#include

class Triangle //声明三角形类{public:

Triangle(float x, float y, float z);

void setTriangle(float x, float y, float z); //设置三角形三边长

double getArea(); //求三角形面积float getPerimeter(); //求三角形周长

void print(); //输出三角形信息

private:

float a, b, c; //数据成员,三角形的三条边

};

Triangle::Triangle(float x, float y, float z) { a = x; b = y; c = z; }

void Triangle::setTriangle(float x, float y, float z) //设置三角形三边长

{ a = x; b = y; c = z; }

double Triangle::getArea() //求三角形面积

{ double s;

s = (a + b + c) / 2.0;

return sqrt( s*(s-a)*(s-b)*(s-c));

}

float Triangle::getPerimeter(){ return (a + b + c); } //求三角形周长

void Triangle::print() //输出三角形信息

{ cout<<"the three side of the triangle is:"<

cout<<"the perimeter of the triangle is:"<

cout<<"the area of the triangle is:"<

}

int main()

{ Triangle t1(4, 5, 6); //定义三角形对象

Triangle t2(7, 8, 9); //定义三角形对象

t1.print();

t2.print();

return 0;

}

3.sy3-3.cpp

#include

using namespace std;

class intArray

{public:

intArray(int size); //构造函数

intArray(const intArray &x); //复制构造函数

~intArray(); //析构函数

bool set(int i, int elem); //设置第i个数组元素的值,设置成功返回true,失败返回false bool get(int i, int &elem); //获取第i个数组元素的值,获取成功返回true,失败返回false int length( ) const; //获取数组的长度

void reSize ( int size ); //重置数组

void print(); //输出数组

private:

int *elements; //指向动态数组的指针

int arraysize; //数组的大小

};

intArray::intArray(int size)

{ if ( size <= 0 )

{ cerr << "Invalid Array Size" << endl; return; }

elements = new int[size];

if ( elements == NULL )

{ cerr << "Memory Allocation Error" << endl; return; } else arraysize = size;

}

intArray::intArray(const intArray &x)

{ int n = arraysize = x.arraysize;

elements = new int[n];

if ( elements == NULL )

cerr << "Memory Allocation Error"<< endl;

int *srcptr = x.elements;

int *destptr = elements;

while ( n-- )

* destptr++ = * srcptr++;

}

intArray::~intArray(){ delete [] elements; }

bool intArray::set(int i, int elem)

{ if (i < 0 || i > arraysize)

{ cout<<"I is invalid!"<

else

{ elements[i] = elem; return true; }

}

bool intArray::get(int i, int &elem)

{ if (i < 0 || i > arraysize)

{ cout<<"I is invalid!"<

else

{ elem=elements[i]; return true; }

}

int intArray::length( ) const { return arraysize; }

void intArray::reSize ( int size )

{ if ( size >= 0 && size != arraysize )

{ int * newarray = new int[size];

if ( newarray == NULL )

cerr << "Memory Allocation Error" << endl;

int n = ( size <= arraysize ) ? size : arraysize;

int *srcptr = elements;

int *destptr = newarray;

while ( n-- ) * destptr++ = * srcptr++;

delete [ ] elements;

elements = newarray;

arraysize = size;

}

}

void intArray::print()

{ for (int i = 0; i < arraysize; i++)

cout << elements[i] << " ";

cout << endl;

}

int main()

{ intArray arr(5);

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

if (!arr.set(i,i)) exit(1);

arr.print();

return 0;

}

4.sy3-4.cpp

#include //包含头文件命令

using namespace std; //使用名字空间std

#include

class Account

{public:

Account(string Id, double b); //构造函数

string getId(); //获取账号

double getBalance(); //返回当前账户余额

void deposit(double amount); //存款操作

bool withdraw(double amount); //取款操作

private:

string id;

double balance;

};

string Account::getId() { return id; }

double Account::getBalance(){ return balance; } Account::Account(string Id, double Balance)

{ id=Id; balance=Balance; }

void Account::deposit(double amount)

{ balance+=amount;

cout<<"存款成功!"<

cout<<"存款金额:"<

}

bool Account::withdraw(double amount)

{ if( balance>amount)

{ balance-=amount;

cout<<"取款成功!"<

cout<<"取款金额:"<

{ cout<<"余额不足!"<

}

int main()

{

Account account("123456789",2000);

cout<<"当前账户信息:"<

cout<<"账号:"<

cout<<"余额:"<

account.deposit(200);

cout<<"余额:"<

account.withdraw(100);

cout<<"余额:"<

return 0;

}

5.sy3-5.cpp

#include

using namespace std;

#include

class airCondition

{public:

airCondition(string brand,string color,string power,bool status,int temperature)

{ this->brand=brand;

this->color=color;

this->power=power;

this->status=status;

this->temperature=temperature;

}

void up()

{ if(status)

{ if(temperature<30) temperature++; }

}

void down()

{ if(status)

{ if(temperature>16) temperature--; }

}

void show()

{ if(status)

cout<<"状态为:运行"<

else

cout<<"状态为:关闭"<

cout<<"温度为"<

}

void changSwitch(){status=!status;}

int getTemperature(){return temperature;}

private:

string brand;

string color;

string power;

bool status;

int temperature;

};

int main()

{ airCondition air("格力","白色","2匹",false,25); //实例化一个空调对象air.show(); //输出空调状态

cout<<"\n打开空调"<

air.changSwitch();

cout<<"\n设定空调温度为20度\n"<

int temperature=air.getTemperature();

while(temperature!=20)

{ if(temperature>20)

air.down();

else

air.up();

temperature=air.getTemperature();

}

air.show();

return 0;

}

6.sy3-6.cpp

#include //包含头文件命令

using namespace std; //使用名字空间std

#include

class Student

{public:

Student(){ sno=""; name=""; score=0; } //默认构造函数

Student(string sno, string name, int score) //普通构造函数

: sno(sno), name(name), score(score){}

string GetSno(){ return sno; } //获取学生学号

string GetName(){ return name; } //获取学生姓名

int GetScore(){ return score; } //获取学生成绩

void SetSno(string sno){ this->sno = sno; } //修改学生学号

void SetName(string name){ this->name = name; } //修改学生姓名

void SetScore(int score){ this->score = score; } //修改学生成绩

void Show() //显示学生信息

{ cout<<"Sno is: "<

cout<<"Name is: "<

cout<<"Score is: "<

}

private:

string sno; //学号

string name; //姓名

int score; //成绩

};

void sort(Student stud[], int n); //改进的冒泡排序

int main()

{

Student student[5] = {Student("1001", "ZhangSan", 75),

Student("1002", "LiSi", 81),

Student("1003", "WangWu", 90),

Student("1004", "ZhaoLiu", 71),

Student("1005", "HouQi", 88) };

cout<<"排序后:"<

sort(student,5);

for (int i = 0; i < 5; i++) student[i].Show();

cout << endl << endl;

return 0;

}

void sort(Student stud[], int n)//改进的冒泡排序

{ int i, j;

Student t;

int flag;

for (j = 0; j < n-1; j++)

{ flag=1;

for (i = 0; i < n-j-1; i++)

if (stud[i].GetScore() > stud[i+1].GetScore())

{ flag = 0;

t = stud[i]; stud[i] = stud[i+1]; stud[i+1] = t;

}

if (flag == 1) break;

}

}

实验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/ea18901425.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

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()函数的入口处。

实验2 类和对象(一)

实验2 类和对象(一) 1、实验目的 (1)掌握声明类的方法,类和类的成员的的概念以及定义对象的方法。 (2)初步掌握用类和对象编制基于对象的程序。 (3)学习检查和调试基于对象的程序。 2、实验内容 (1)有以下程序: #include using namespace std; class Time //定义Time类 {public: //数据成员为公用的 int hour; int minute; int sec; }; int main( ) { Time t1; //定义t1为Time类对象 cin>>t1.hour; //输入设定的时间 cin>>t1.minute; cin>>t1.sec; 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<

实验一 类和对象

实验一类和对象 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、下列哪一个不属于JAVA语言的数据类型 A)指针类型 B)类 C)数组 D)浮点类型 答案:A 2、声明类的关链字是 A)Class B)class C)void D)main

3、不属于java类中的变量的是 A)实例成员变量 B)类成员变量 C)局部变量 D)寄存器变量 答案: D 4、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或 顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为 A)隐藏 B)覆盖 C)重载 D)Java不支持此特性

5、不使用static修饰符限定的方法称为实例成员方法,下列哪一个说法是不正确的A)成员方法可以直接调用父类的成员方法 B)成员方法可以直接调用父类的类方法 C)成员方法不可以直接调用其他类的成员方法 D)成员方法可以直接调用本类的类方法 答案: 6、函数重载是指 A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可 以不同 C)两个以上的函数名字不同,但形参的个数或类型相同 D)两个以上的函数取相同的函数名,并且函数的返回类型相同

7、下述哪个说法是不正确的 A)局部变量在使用之前无需初始化,因为有该变量类型的默认值B)类成员变量由系统自动进行初始化,也无需初始化 C)参数的作用域就是所在的方法 D)for语句中定义的变量,当for语句执行完时,该变量就消亡了答案:A 8、下列代码的执行结果是: public class Test6{ public static void main(String args[]){ int a=4,b=6,c=8; String s="abc"; } }

实验3 类和对象

实验3 类和对象 一、实验目的 1、掌握Java语言面向对象的程序设计方法; 2、理解对象的封装概念; 3、掌握Java的类和对象的声明和使用方法 二、实验环境 1、PC微机; 2、DOS操作系统或Windows 操作系统; 3、Java sdk程序开发环境、eclipse集成环境。 三、实验内容 1. 银行账户管理 编写一个Account类模拟账户,该类包含成员变量和成员方法见下面的UML图。编写程序测试Account类:创建一个对象,其账号为123456、余额10000元、年利率3.3%。使用withdraw 方法从该账户提款2000元,使用deposit方法往该账户存款3000元,并打印余额、月利息以及账户的开户日期。 public class bank { public static void main(String[] args) { Accout test1=new Accout(123456,10000,0.033); test1.withdraw(2000);

test1.deposit(3000); System.out.println("id: "+test1.getId()); System.out.println("balance: "+test1.getBalance()); System.out.println("monthlyinterest: "+test1.getMonthlyInterest()); System.out.println("datecreated: "+test1.getDateCreated()); } } class Accout{ private int id; private double balance; private double annualInterestRate; private java.util.Date dateCreated; public Accout() { id=0; balance=0; annualInterestRate=0; dateCreated=new java.util.Date(); } public void deposit(int i) { // TODO自动生成的方法存根 } public Accout(int newid,double newbalance,double newannualInterestRate) { id=newid; balance=newbalance; annualInterestRate=newannualInterestRate; dateCreated=new java.util.Date(); } public int getId() { return id; } public double getBalance() { return balance; } public double getannualInterestRate() { return annualInterestRate; } public void setId(int newid) { id=newid; } public void setBalance(double newbalance) { balance=newbalance; }

实验3 类与对象

实验3 类与对象 一、实验目的 本实验的目的用于指导读者掌握Java语言面向对象的程序设计方法,理解对象的封装等概念,要求读者在调试实例程序后,总结出面向对象的事务定义以及以对象的形式进行封装等内容。 二、实验内容 1、课本P221,8-6 和课本P237,8.1题 2、编写一个名为“复数”的类,包含复数的实部和虚部(数据成员),以及复数之间的基本算术运算:加、减(方法成员),并要求复数加减运算,程序运行中能对给定的复数进行运算,并打印运算的结果。 3、用类来描述游戏角色的交手次数、经验值、生命值之间的关系,并断定角色决斗的胜负。 三、实验要求 1、加减运算能够接收不同类型的参数既可以实现复数与实数的加减、复数与复数的加减运算。 2、两游戏角色决斗。角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,生命值+1;生命值<0判为负。生命值初始为1000,经验值初始为0。 3、给定二个不同的角色,判定交手的胜负关系。 4、实验报告给出决斗结果和交手次数 5、实验报告给出所有源代码。 四、实验环境 1、PC微机; 2、DOS操作系统或 Windows 操作系统; 3、Eclipse程序集成环境。 五、实验步骤 内容一: 1、创建“复数”类Complex,定义实部、虚部成员 2、定义构造函数接收二个double参数用来初始化数据成员

3、定义二个复数运算函数plus()以及minus()各接收一个复数类型以实现复数与复数的加减运算。 4、定义二个复数运算函数plus()以及minus()各接收一个double类型以实现复数与与实数的加减运算。 4、定义一个打印方法。 5、在main()方法中创建复数对象并调用相关方法来验证。 内容二: 1、建立角色类Role,给出相应的成员,并能以生命值、经验值初始化角色对象。 2、在角色类中建立fight方法,接收一个角色类型的参数并与之“战斗”,返回胜者信息。 3、在主函数中初始化二个角色,调用fight方法。 六、测试数据 略 七、实验报告(学生完成) 实验报告应包括以下几个部分: 1、程序流程图; 2、程序的数据结构设计; 3、程序的源代码及相关注释 4、程序运行结果的分析。 八、思考题(学生完成) 1.定义一个点类“Point”。Point 类的属性有x 轴和y 轴坐标,可以通过方法setX()设置x轴坐标,方法setY()设置y 轴坐标,方法getX()获得x 轴坐标,方法getY()获得y 轴坐标。编写一个测试类PointTest 来创建Point 类的对象,测试该类。 2.编程定义一个栈类,它封装了栈数组,判断栈空方法、判断栈满方法以及进栈和出栈。

实验三:类与对象(bo)

实验三 Java类与对象 【实验目的】 1) 理解面向过程与面向对象区别 2) 理解面向对象的三大特征 3) 掌握类声明的方法 4) 掌握构造方法 5) 掌握对象的创建方法与创建机制 6) 掌握成员变量、类变量和局部变量区别 7) 掌握成员方法与类方法区别 8) 掌握函数的重载 9) 掌握4种访问修饰符的区别 【实验环境】 JDK1.6+Eclpise3.2 【实验准备】 1)复习课件中理论知识 2)练习课堂所讲的例子 【实验内容】 1、创建猴子类。具体要求如下: 1)编写一个类Monkey,用来表示猴子类; 2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉); 3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值) 4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”) 5)测试:在main方法中创建两个猴子对象monkey1(皮蛋、50、3)和monkey2(兰兰、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。分别打印出

monkey1和monkey2的名字、体重、年龄和爱好。并调用monkey1和monkey2的爬树方法。 2、创建矩形Rectangle类。具体要求如下: 1)创建一个Rectangle类; 2)创建属性:两个double成员变量:width和height。 3)创建方法:计算矩形的周长getLength()和面积getArea()。 4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。 【实验过程及结果】 实验代码及结果: 1. package arp; public class Monkey {//创建类 // 4个属性(成员变量) private String name; private int weight; private int age; private static String love="吃香蕉"; public Monkey(){ } //有参构造方法 public Monkey(String name,int weight,int age) { https://www.doczj.com/doc/ea18901425.html,=name; this.weight=weight; this.age=age; } //爬树 public void climbTree(String name,int height){ System.out.println(name+"会爬树,能爬"+height+"米"); } //测试 public static void main(String [] args){ Monkey monkey2=new Monkey(); https://www.doczj.com/doc/ea18901425.html,="猪猪"; monkey2.weight=50;

实验二 类和对象的使用_参考答案

实验二类和对象的使用 班级:学号:姓名:成绩: 一.实验目的 1.掌握类和对象的概念、定义和使用方法。 2.掌握不同特性对象成员的访问方法。 二.使用的设备和仪器 计算机+Windows XP +Visual C++6.0 三.实验内容及要求 1.定义一个Book类,在该类定义中包括以下数据成员和成员函数: 数据成员:bookname(书名)、price(价格)、number(存书数量) 成员函数:set()输入图书信息;display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。 在主函数中,要求创建某一图书对象,并对该图书进行简单的显示、借阅和归还等管理。 2.定义一个中国好声音歌手类。其中,包括每个歌手的名字、年龄、来自哪个省份、所唱的曲目等。可以实现报名、显示、修改等功能。 3.定义一个时间类,实现课堂中第五节中的例2.2。 数据成员:时、分、秒 成员函数:输入时间、设置时间、按12小时制显示时间、按24小时制显示时间、增加1小时、减少1小时等功能。 4.定义一个学生类Student,要求如下: (1)数据成员包括学号、姓名、数学成绩、英语成绩和C++成绩;要求对所输入的成绩的合法性进行判断。 成员函数包括:设置学生的信息函数;输入学生的信息函数;输出学生的信息函数; 计算学生平均成绩的函数。 (2)添加新的数据成员:出生年月日;实现多个学生信息的添加、成绩的修改(一次只能修改一科成绩)等功能。要求单独定义一个日期类,并对所输入的出生年月日的合法性进行判断。 (3)设计一个菜单函数。 ****************************************************************** * * * 1.添加 2.设置 3.显示 4.修改成绩 5.计算平均分0.退出* * *

实验二 类与对象

实验二类与对象(2) 一、实验目的 1、掌握类的定义和使用。 2、掌握类声明和类体。 3、掌握成员变量和局部变量的区别和使用方法。 4、多维数组的使用。 二、实验设备 1、硬件:PC机。 2、软件:DOS运行环境、EditPlus编辑软件。 三、实验预习要求 1、阅读3.2节类的定义和使用。 2、阅读3.2.2 成员变量和局部变量的区别的使用方法。 3、预习程序【例3-1】【例3-2】 4、多维数组的使用。熟悉程序【例2-32】 四、实验内容和步骤 1、展示简单数据类型与引用数据的区别 import java.io.*; public class PassTest { float ptValue; public void changeInt(int value) { value = 55; // 在方法内部对值参数进行了修改 } public void changeObjValue(PassTest ref) { ref.ptValue = 99f; // 在方法内部对引用参数进行了修改 } public static void main(String args[]) { int val; PassTest pt = new PassTest(); val = 11; System.out.println("初始的整型值是: " + val); pt.changeInt(val); // 值参数 System.out.println("改变后整型值是: " + val); // 值参数值的修改,没有影响值参数的值 pt.ptValue = 101f; System.out.println("初始的整型值是: " + pt.ptValue); pt.changeObjValue(pt); // 引用类型的参数 System.out.println("改变后整型值是: " + pt.ptValue); // 引用参数值的修改,改变了引用参数的值 } } 2、展示局部变量和类成员变量作用域 class Variable { int x = 0, y = 0, z = 0; //类的成员变量

实验二 类与对象

实验二类与对象 一、实验目的 1、学习类与对象的定义,掌握类与对象的使用方法。 2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。 3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。 4、掌握用指针和引用向函数传递参数。 5、掌握静态数据成员和静态成员函数的使用。 6、理解友元与友元函数的作用与使用方法。 二、实验内容 1、下面是一个计算器类的定义,请完成该类成员函数的实现。 class Counter { public: Counter(int number); void increment(); //给原值加1 void decrement(); //给原值减1 int getValue(); //取得计数器值 int print(); //显示计数 private: int value; }; #include class count { public: counter(int number); void increment(); void decrement(); int getvalue(int); int print();

private: int value; }; void count::increment() { int a=value+1; } void count::decrement() { int b=value-1; } int count::getvalue(int s) { value=s; return 0; } int count::print() { cout<

cout<<"Copy initianization constructor is called."< class Date{ public: void printDate(); //显示日期 void setDay(int); //设置日的值 void setMonth(int); //设置月的值 void setYear(int); //设置年的值

实验二-类与对象(二)

实验二-类与对象(二)

实验三类与对象(2) 【实验类型】验证性实验【实验课时】2学时 【实验目的】 (1)掌握对象数组定义与使用方法。 (2)理解对象指针的概念,学会用指针引用对象。 (3)了解this指针的工作方式。 (4)掌握静态数据成员和静态成员函数的基本使用方法。 (5)理解友元与友元函数的作用,掌握其使用方法。 【实验环境】 硬件:计算机 软件:Microsoft Visual C++ 6.0 【实验内容】 1、按要求阅读、修攺、调试和运行以下程序。 (1)实验内容 ① 定义一个类Stock,记录一支股票交易的基本信息,信息包括交易日序号(表示本月的第几个交易日,用整数表示)、当日最高价、当日

最低价、当日开盘价和当日收盘价。尽量发挥想象力,为该类设计成员函数。 ② 在主函数中建立两个股票对象,分别存储该股票昨天和今天两天的信息,以当日收盘价计算该股票今天的涨幅。 ③ 使用股票类Stock,定义一个对象数组存放连续5个交易日的股票信息。编写一个主函数,计算两个Stock对象(前后两日)的当日收盘价计算当日涨幅。用指针引用对象数组中的两个对象。在主函数中调用该函数计算从第2个交易日开始每天的当日涨幅。 ④ 在Stock类中定义一个静态数据成员,记录当前Stock对象的数量。 ⑤ 设计一个成员函数Assign_stock为对象赋值,其中的形式参数是对另一个Stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用Assign_stock赋值的对象。 ⑥ 定义一个友元函数计算Stock对象的当日开盘价是否高于当日收盘价。若是,返回真,否则,返回假。 (2)实验程序及运行结果(参考) ①以当日收盘价计算该股票今天的涨幅

实验二类和对象

实验二类和对象 1.实验目的: (1) 掌握Visual C++6.0基本操作 (2) 了解C++程序运行环境; (3) 掌握简单的C++程序的开发过程(编辑、编译、连接和运行)。 (4) 掌握类及其成员的定义方法; (5) 掌握对象的创建方法; 2.实验内容: 2.1按要求分析程序指出程序运行的结果: 1)分析下面的程序,并给出程序运行的结果: #include class change {char c1,c2; public: void set(char a){c2=((c1=a)-32);} void print() {cout< class pair {char c1,c2; public: void set(char b) {c1=1+(c2=b);} unsigned where_am_I() {return((unsigned)this);}

实验4 类和对象(三)

实验4 类和对象(三) 实验时间:2012年10月11日,星期四,3、4节 地点:5428 实验目的 (1)进一步加深对类和对象的理解 (2)掌握类的构造函数和析构函数的概念和使用方法(3)掌握对象数组、对象指针及其使用方法 (4)掌握友元概念和使用。 (5)了解模板的使用方法 主要仪器设备 电脑一台,安装Visual C++ 6.0 实验内容 有以下程序: #include using namespace std; class Date; class Time {public: Time(int,int,int); void display(const Date&); private: int hour; int minute; int sec; }; class Date {public:

Date(int,int,int); friend void Time::display(const Date &); private: int month; int day; int year; }; Time::Time(int h,int m,int s) {hour=h; minute=m; sec=s; } void Time::display(const Date &da) {cout< using namespace std; class Date; class Time {public:

实验二、类和对象

实验二、类和对象 一、对象的创建和使用。编写一个圆环类Ring的Java程序。圆环类有3个数据成员,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性可以查看get也可以重新设置set,另外,圆环还可以返回其面积area。程序清单如5-1,完成其中的代码1~代码4。 二、修改上题程序。现在请为该圆环类Ring再添加两个方法以返回内圆和外圆的周长,然后在主函数main()中分别创建两个对象ring1,ring2以显示周长。 三、类的静态成员与实例成员。编写一个圆类Circle,其中有圆周率,半径和圆对象个数,其中圆周率和圆对象个数为static成员。此外,Circle中还有两个static方法分别是设置圆周率和显示当前圆对象个数的,其余都是实例成员。 四、方法重载。编写一个Java程序,反映出方法重载的使用特点,该程序包含多个重载的加法运算,例如:整型加法、实型加法、以及混合加法运算等。程序清单如5-3,完成其中的代码1~代码5。 1、public class Lesson1{ private double innerRadius; private double outerRadius; public String color; public Lesson1(double iRadius,double oRadius,String c){ innerRadius=iRadius; outerRadius=oRadius; //初始化外半径 color=c; } public double getInnerRadius(){ return innerRadius; //返回内半径 } public double getOuterRadius(){ return outerRadius; } public void setInnerRadius(double iRadius){ innerRadius=iRadius; } public void setOuterRadius(double oRadius){ outerRadius=oRadius; } public void setColor(String c){ this.color=c; //设置颜色 } public double getArea(){ return (outerRadius*outerRadius- innerRadius*innerRadius)*3.1415; } public double getzhouchangwai(){ return (outerRadius*outerRadius)*3.1415*2; } public double getzhouchangnei(){ return (innerRadius*innerRadius)*3.1415*2; } public static void main(String[] args){ Lesson1 ring=new Lesson1(5,8,"red"); System.out.println("圆环的内半径:"+ring.getInnerRadius()); System.out.println("圆环的外半径:"+ring.getOuterRadius()); System.out.println("圆环的颜色:"+ring.color); System.out.println("圆环的面积:"+ring.getArea()+"\n"); ring.setInnerRadius(4); ring.setOuterRadius(6); //设置圆环ring的外半径为6 ring.setColor("blue"); System.out.println("圆环的内半径:"+ring.getInnerRadius()); System.out.println("圆环的外半径:"+ring.getOuterRadius());

实验三 类与对象(一)

实验三类与对象(一) 一、【实验目的】 1、掌握类和对象的定义,并能通过对象调用成员函数完成简单的程序设计 2、初步掌握用类和对象编制基于对象的程序。 二、【实验要求】 1.硬件基本配置:Intel PentiumIII以上级别的CPU,大于64MB的内存。 2.软件要求:Window 2000操作系统,Visual Studio 6.0或更高版本开发环境。 3.实验学时:2学时 4.实现实验内容中的题目。 5.写实验报告 三【实验内容】 1.1 一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏造价为$35/m,过道造价为$20/m2。过道宽度为3m,现在给出游泳池半径要求编程计算并栅栏和过道的造价。(圆周率PI定义为3.14159);另外,对于题目中涉及的“圆”,请使用“类”实现,现规定如下: { public: double Set(double s);// Circle(double s); double Circumference( ) const; double Area( ) const; private: double r;

}; 【输入】 输入由键盘输入,共1行,这一行有一个实数r,代表给定的游泳池半径。 【输出】 输出共2行 cout << "Fencing(栅栏)Cost is $" << FenceCost << endl; cout << "Concrete (过道)Cost is $" << ConcreteCost << endl; 【样例输入】 5 【样例输出】 Fencing Cost is $1759.29 Concrete Cost is $2450.44 1.2设计一个做加减乘除基本运算的类,实现在主函数中输入要计算的两个数,通过菜单的形式选择做加减乘除运算后,计算输出相应的计算结果。 1.3 设计str类,实现对字符串的初始化(Init()),拷贝(copy()),输出(output()),在主函数中进行测试并输出。 class S{public : char *strp; int length; void Ini(char *s); void Print(void); void Copy(S &s);

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