实验二类和对象
实验二:类与对象

} class MyBox {
private int x, y, width, height; MyBox() {
x=0;
}
}
y=0;
width=0;
height=0;
MyBox(int xPos, int yPos, int w, int h) {
(二)创建对象并使用对象
1.编写 Applet 程序 程序功能:这个 Applet 程序要在页面上输出两个矩形,并 伴有文字输出。 SY2_2.java 程序的源代码如下: import java.awt.*; import java.applet.Applet; public class SY2_2 extends Applet { MyBox b1=new MyBox();//创建对象 b1 MyBox b2=new MyBox(170,20,60,60); //创建对象 b2 public void paint(Graphics g) { b1.setPosition(20,20); b1.setSize(60,60); b1.draw(g); g.drawString("矩形 1 的 X 位置 : "+b1.getX(), 20,
public void actionPerformed(ActionEvent e) { // 处理按钮事件
int x=Integer.parseInt(field1.getText())+Integer.parseInt(field 2.getText());
field3.setText(Integer.toString(x)); // 数值 转换为字符串
实验2 类和对象基础

实验2 类和对象基础【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.5以上,JCreator 等编辑工具。
【实验目的】1.理解数据封装和隐藏2.能够创建类3.能够创建和使用对象4.能够控制对实例变量和方法的访问5.理解面向对象的价值【实验要求】1.源程序编辑要遵循教材中强调的间隔和缩进约定。
2.掌握调试方法【实验内容】1. 三角形、梯形和圆形的类封装。
编写一个 Java 应用程序,该程序中有3 个类:Trangle,Lader 和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:(1)Trangle 类具有类型为double 的三个边以及周长、面积属性,Trangle 类具有返回周长、面积以及修改三个边的功能,另外,Trangle 还具有一个boolean 类型的属性,该属性用来判断三个数是否构成一个三角形;(2)Lader 类具有类型为double 的上底、下底、高、面积属性,就有返回面积的功能;(3)Circle 类具有类型为double 的半径、周长和面积属性,具有返回周长、面积的功能。
[程序模版]class Trangle {double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c) {【代码1】 // 参数a,b,c 分别赋值给sideA,sideB,sideC。
if(【代码2】) { // a,b,c 构成三角形的条件表达式。
【代码3】 // 给boo 赋值。
}else {【代码4】 // 给boo 赋值。
}}double getLength() {【代码5】 // 方法体,要求计算出length 的值并返回。
}public double getArea() {if(boo) {double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else {System.out.println("不是一个三角形,不能计算面积"); return 0;}}public void setABC(double a,double b,double c) {【代码6】 // 参数a,b,c 分别赋值给sideA,sideB,sideC。
实验二 类的定义与对象的使用

实验 2 面向对象编程练习(1)
一、实验目的
1.理解类、对象的概念以及两者之间的联系和区别
2. 能够熟练的根据应用要求定义类和创建对象
2.理解面向对象的封装性,熟练掌握private、缺省、protected、public这四个权限访问限定词的用法。
二、实验要求
1.编写体现一个学生信息的JavaBean。
(1) 用private关键字来修饰Student中的属性:学号、姓名、年龄、籍贯、专业和班级。
(2) 用public关键字来修饰对每一个属性进行设置和获取的方法(setXXX()和getXXX()方法)。
2.编写一个用于描述梯形的类(Trapezoidal)
属性:上底、下底、高
方法:计算面积、计算周长
定义测试类,创建梯形对象,对属性进行赋值(通过构造方法完成),输出该梯形的面积和周长。
3.private关键字所定义的属性和方法只能在本类中使用。
dafault(缺省)关键字所定义的属性能够在本类中,以及与该类在同一个包中的类访问。
protected关键字所修饰的属性能够被本类、同一个包中的类、及其子类访问。
public 关键字所修饰的属性在任何类中都能够被访问。
自己动手编写小程序,对上述的四句话进行验证。
实验二 类和对象_ 参考答案

实验二类和对象(参考答案)班级:学号:姓名:成绩:一.实验目的1.理解面向对象程序设计的基本思想;2.掌握类和对象的概念、定义和使用方法。
3.掌握不同特性对象成员的访问方法。
二.使用的设备和仪器计算机+Windows XP +Visual C++6.0三.实验内容及要求1、定义一个表示长方体类Cuboid,数据成员包括length(长)、width(宽)、height(高),成员函数包括长方体的输入、输出、计算体积和表面积等。
在主函数中,定义3个长方体的对象,并调用成员函数完成其功能。
2、定义一个学生类Student,数据成员包括学号、姓名、数学成绩、英语成绩和C++成绩,成员函数包括:输入学生的信息函数;输出学生的信息函数;设置学生的信息函数;计算学生的平均成绩的函数。
在main函数中调用以上函数实现相应功能。
3、定义一个图书类Book,在该类中包括以下数据成员和成员函数:数据成员:id(书号)、bookname(书名)、price(价格)、total(总存书数量)、number(当前剩余图书数量)成员函数:Input()——图书信息输入;Output()——图书信息输出;Borrow()——借阅图书,并显示当前剩余图书数量;Restore()——归还图书,并显示当前剩余图书数量。
在主函数中,要求创建某种图书对象,并对该图书进行简单的输入、输出、借阅和归还管理。
选择题:4、根据以下要求类的编写。
1)定义一个日期类Date,数据成员包括年、月、日,成员函数包括:Input()——日期信息输入;Output()——日期信息输出;Set()——设置日期信息2)在第2题Student类中增加一个出生日期成员,使用Date类来定义。
然后修改相应的成员函数,并增加一个成员函数GetAge,用来计算并返回学生的年龄。
在主函数中定义对象,测试以上功能。
四.实验步骤1、程序代码:#include <iostream>using namespace std;class Cuboid{public:void Input();void Show();float Volume();float Area();private:float length;float width;float height;};void Cuboid::Input(){cout<<"please input length,width,height:";cin>>length>>width>>height;}void Cuboid::Show(){cout<<"length="<<length<<" width="<<width<<" height="<<height<<endl;}float Cuboid::Volume(){return(length*width*height);}float Cuboid::Area(){return (length*width+length*height+height*width)*2;}int main(){Cuboid Cuboid1,Cuboid2;Cuboid1.Input();cout<<"Cuboid1 Information:"<<endl;Cuboid1.Show();cout<<"V olmue="<<Cuboid1.V olume()<<endl;cout<<"Area="<<Cuboid1.Area()<<endl;cout<<endl;Cuboid2.Input();cout<<"Cuboid2 Information:"<<endl;Cuboid2.Show();cout<<"V olmue="<<Cuboid2.V olume()<<endl;cout<<"Area="<<Cuboid2.Area()<<endl;cout<<endl;return 0;}运行结果:2、程序代码://student.h 学生信息的头文件#include <iostream>#include<string>using namespace std;class Student{public:void Input_Stu(); //输入学生信息函数void Show_Stu(); //输出学生信息函数void Set(int n,string nm,double m,double e,double c); //设置学生信息函数 double Ave_Stu(); //计算并返回学生平均成绩函数private:int num;string name;double math,english,cprogram;};//student.cpp 学生信息的源文件#include"student.h"void Student::Input_Stu()cout<<"请输入学生的学号、姓名、数学、英语、C++的成绩:"<<endl; cin>>num>>name>>math>>english>>cprogram;}void Student::Show_Stu(){cout<<"********Student Info********"<<endl;cout<<"num="<<num<<endl;cout<<"name="<<name<<endl;cout<<"math="<<math<<endl;cout<<"english="<<english<<endl;cout<<"cprogram="<<cprogram<<endl;}void Student::Set(int n,string nm,double m,double e,double c){num=n; name=nm;math=m; english=e; cprogram=c;}double Student::Ave_Stu(){return (math+english+cprogram)/3;}//main.cpp 主函数所对应的源文件#include"student.h"int main(){Student s1;s1.Input_Stu ();s1.Show_Stu ();cout<<"Average Score="<<s1.Ave_Stu ()<<endl;cout<<endl;s1.Set(2001,"Tom",70,80,90);s1.Show_Stu ();cout<<endl<<"Average Score="<<s1.Ave_Stu ()<<endl;cout<<endl;return 0;}运行结果:3、程序代码:#include<iostream>#include<string>using namespace std;class Book{public:void Input(); //图书信息输入;void Output(); //图书信息输出;void Borrow(); //借阅图书,并显示当前剩余图书数量;void Restore(); //归还图书,并显示当前剩余图书数量。
实验2 类和对象

实验2 类和对象(1)班级学号(最后两位)姓名成绩一、实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对象的定义,对象的初始化;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;二、实验内容1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。
#include<iostream.h>class one{ int a1,a2;public:one(int x1=0, x2=0);};void main(){one data(2,3);cout<<data.a1<<endl;cout<<data.a2<<endl;}2.分析以下程序的错误原因,给出修改方案使之能正确运行。
#include <iostream.h>class Amplifier{float invol,outvol;public:Amplifier(float vin,float vout){invol=vin;outvol=vout;}float gain();};Amplifier::float gain() { return outvol/invol; }void main(){ Amplifier amp(5.0,10.0);cout<<"\n\nThe gain is =>"<<gain()<<endl;}3.定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
4.定义计数器类Counter。
要求具有以下成员:计数器值;可进行增值和减值计数;可提供计数值。
实验二---类与对象的定义与使用

}
void paixuYuwen() //按语文成绩排序;
{
Student str[50],*p,q;
int i,j;
p=stu;
for(p=stu,i=0;i<n;i++)
{ str[i]=*p;
*p++;
}
for(i=0;i<n-1;i++,p++)
{
for(j=0;j<n-1-igt;str[j+1].yuwen)
{
q=str[j];
str[j]=str[j+1];
str[j+1]=q;
}
}
}
for(i=0;i<n;i++)
{
printf("学号:%d姓名:%s数学:%.2f语文:%.2f英语:%.2f总成绩:%.2f平均成绩:%.2f\n",str[i].num,str[i].name,str[i].shuxue,str[i].yuwen,str[i].yingyu,str[i].zongcj,str[i].avg);
}
}
void paixuCJ()
{
int flag;
printf("1->按数学成绩排序\n2->按语文成绩排序\n3->按英语成绩排序\n4->按总成绩排序\n5->按总分\n");
printf("请选择成绩由低到高的排序方式:");
scanf("%d",&flag);
switch(flag){
case 0:paixuShuxue();break;
上机实践2 类与对象

实验二类与对象一.实验目的学会使用类来封装对象的属性和功能;掌握类变量与实例变量,以及类方法与实例方法的区别;掌握使用package和import语句。
二.实验要求实验前,应事先熟悉相关知识点,拟出相应的实验操作步骤,明确实验目的和要求;实验过程中,服从实验指导教师安排,遵守实验室的各项规章制度,爱护实验仪器设备;实验操作完成后,认真书写实验报告,总结实验经验,分析实验过程中出现的问题。
三.实验内容1、三角形、梯形和圆形的类封装编写一个Java应用程序,该程序中有3个类:Trangle、Lader、Circle,分别用来画“三角形”、“梯形”和“圆形”。
具体要求如下:Trangle类具有类型为double的三个边,以及周长、面积属性,具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形;Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能;Circle类具有类型为double 的半径、周长和面积属性,具有返回周长、面积的功能;创建3个类Trangle、Lader、Circle 的对象,分别求出“三角形”、“梯形”和“圆形”的周长和面积。
2、实例成员与类成员按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。
程序模板:Example.javaclass A{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,即static变量bvoid setA(float a){【代码3】//将参数a的值赋值给成员变量a}void setB(float b){【代码4】//将参数b的值赋值给成员变量b}float getA(){return a;}float getB(){return b;}void inputA(){System.out.println(a);}static void inputB(){System.out.println(b);}}public class Example{public static void main(String args[]){【代码5】//通过类名操作类变量b,并赋值100【代码6】//通过类名调用方法inputB()A cat=new A();A dog=new A();【代码7】//cat象调用方法setA(int a)将cat的成员a的值设置为200【代码8】//cat调用方法setB(int b)将cat的成员b的值设置为400【代码9】//dog象调用方法setA(int a)将dog的成员a的值设置为150 【代码10】//dog调用方法setB(int b)将dog的成员b的值设置为300【代码11】//cat调用inputA()。
c++实验二 类和对象(附答案)

实验二类和对象一、实验目的1、理解类和对象的概念。
2、掌握类的定义和使用方法。
二、实验内容以下是一个采用类结构的方式求n! 的程序,请填空完成程序。
# include <iostream.h>class factorial{int n;int fact;public:factorial(int); //带参的构造函数void calculate();void display();};factorial:: factorial(int val){n=val;(1)}void factorial::calculate(){int i=n;while(i>1)(2)or (3)}void factorial::display(){cout<<n<<"!="<< (4) <<endl;}void main(){int n;cout<<"请输入n的值: ";cin>>n;factorial A(n);A.calculate();(5)}要求:编译调试运行程序,得到正确结果。
在填空处加上注释。
设计题给出类的定义,构造一个完整的程序。
程序输出如下结果:a-b=c的值程序的主函数为:Int main(){ int a,b;cin>>a>>b;Ctest c;c.init(a,b);c.print();return 0;}//以下内容作为作业,做到作业本上。
3. 程序填空。
(测试静态成员的使用方法)(本科班必做!)#include<iostream>using namespace std;class Test{private;Static int count;public;Test() {count++;}static void Show() {cout<<”共有”<<count<<”个对象!”<<endl;}}(1) ;int main(void){Test obj1,obj2,obj3;(2);system(“PAUSE”);restuen 0;}4. 改正下面程序中的错误,使其正常运行。
C++试验2_类和对象程序设计

实验2 类和对象程序设计【实验目的】运用C++实现类和对象的程序编写、调试与运行【实验内容】1、例程调试练习例1 类和对象的简单实例#include <iostream.h>#include <math.h>class complex{private:double real; //复数的实部double imag; //复数的虚部public:void init(double r,double i) //给real和imag赋初值{real=r;imag=i;}double realcomplex() //求复数的实部值{return real;}double imagcomplex() //求复数的虚部值{return imag;}double abscomplex() //求复数的绝对值{double t;t=real*real+imag*imag;return sqrt(t);}};int main(){complex A;A.init(1.1,2.2);cout<<"real of complex A="<<A.realcomplex( )<<endl;cout<<"imag of complex A="<<A.imagcomplex( )<<endl;cout<<"abs of complex A="<<A.abscomplex( )<<endl;A.real=5.5;A.imag=8.8;;return 0;}例2 构造函数与析构函数#include <iostream.h>#include <math.h>class complex{private:double real;double imag;public:complex(double r=0.0,double i=0.0); //含有缺省参数的构造函数 ~complex( );double abscomplex( );};complex::complex(double r,double i){cout<<"constructing "<<endl;real=r;imag=i;}~complex( ){cout<<"destructing "<<endl;}double complex::abscomplex( ){double t;t=real*real+imag*imag;return sqrt(t);}int main( ){complex A(1.1,2.2);cout<<"abs of complex A="<<A.abscomplex( )<<endl;return 0;}例3 对象数组#include<iostream.h>class exam{private:int x;public:exam(int n){x=n;}int get_x(){return x;}};int main(){exam ob[4]={11,22,33,44}; //通过初始值表给对象数组赋值for(int i=0;i<4;i++) cout<<ob[i].get_x( )<<' ';cout<<endl;return 0;}例4 对象指针class exe{private:int x;public:void set_a(int a){x=a;}void show_a(){cout<<x<<endl;}};main(){exe ob,*p //声明类exe的对象ob和类exe的对象指针p ob.set_a(2);ob.show_a( );p=&ob; //将p指针指向对象obp->show_a( );return 0;}例5 对象作为函数参数#include<iostream.h>class tr{private:int i;public:tr(int n){i=n;void set_i(int n){i=n;}int get_i(){return i;}};void sqr_it(tr *ob){cout<<"Copy Of Obj has i value Of"<<ob->get_i();ob->set_i(ob->get_i( )*ob->get_i( ));cout<<endl;}int main(){tr obj(10);sqr_it(&obj);cout<<"Now,Obj.i in main() has been changed:";cout<<obj.get_i( )<<endl;return 0;}例6 友元#include<iostream.h>#include<string.h>class girl;class boy{private:char *name;int age;public:boy(char*n,int d){name=new char[strlen(n)+1];strcpy(name,n);age=d;}void disp(girl &); //声明disp()为类boy的成员函数 ~boy(){delete name;}class girl{private:char *name;int age;public:girl(char *n,int d){name=new char[strlen(n)+1];strcpy(name,n);age=d}friend void boy::disp(girl &); //声明类boy的成员函数disp()为类girl 的友元函数~girl(){delete name;}};void boy::disp(girl &x) //定义友元函数disp(){cout<<"boy \'s name is:"<<name<<age:"<<age<<"\n"; //访问本类对象成员cout<<"girl\'s name is:"<<<<"age:"<<x.age<<endl; //访问友类对象成员}void main(){boy b("chen hao",25);girl e("zhang wei",18);b.disp(e);return;}例7 类对象成员#include<iostream.h>#include<string.h>class string{ //声明类stringprivate:char *str;public:string(char *s) //定义类string的构造函数{str=new char[strlen(s)+1];strcpy(str,s);void print(){cout<<str<<endl;}~string(){delete str;}};class girl //声明类girl{private:string name; //name为类girl的对象成员int age;public:girl(char *st,int ag):name(st) //定义类girl的构造函数{age=ag;}void print(){name.print(); //调用类string的对象name的成员函数cout<<"age:"<<age<<endl;}~girl(){}};int main( ){girl obj{"Chenhao",25};obj.print();return 0;}2、编程练习练习1(必作题)试定义一个字符串类string,使其至少具有内容(contents)和长度(1ength)两个数据成员,并具有显示字符串、求字符串长度、给原字符串后添加一个字符串等功能,要求程序必须完成,即必须包含主函数。
实验2 类与对象

实验2 面向对象编程(类与对象)一、实验目的:1.掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现;2.掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法;3.掌握类变量与实例变量,以及类方法与实例方法的区别。
二、实验要求1. 正确地定义类、方法和属性;2. 学会方法的参数传递和返回值的用法;3. 熟练使用类及其成员修饰符;4. 使用构造函数创建类的对象;5. 类变量与实例变量,以及类方法与实例方法的使用;6. 程序应包括各个被调用方法的执行结果的显示。
7. 写出实验报告。
要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
三、实验内容1.编写3个基本类:Triangle,Ladder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”,1个主类:Compute。
要求:计算每个形状的面积和周长。
主类和3个基本类属于不同的包。
2.定义一个复数(z=x+iy)类Complex,包含:•两个属性:实部x和虚部y•默认构造函数 Complex(),设置x=0,y=0•构造函数:Complex(int i,int j)•显示复数的方法:showComp()•求两个复数的和:public Complex addComp(Complex C1,Complex C2) •求两个复数的差:public Complex subComp(Complex C1,Complex C2)比较两个复数是否相等:public boolean equalComp(ComplexC1,Complex C2)实部x和虚部y可由键盘或main方法参数提供输入。
3.定义一个学生类(Student),属性有private的名字(name), public的年龄(age),专业(specialty)和封装name属性的方法:setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄age)。
实验二 类与对象

实验二类与对象一、实验目的1、学习类与对象的定义,掌握类与对象的使用方法。
2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。
3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。
4、掌握用指针和引用向函数传递参数。
5、掌握静态数据成员和静态成员函数的使用。
6、理解友元与友元函数的作用与使用方法。
二、实验内容1、下面是一个计算器类的定义,请完成该类成员函数的实现。
class Counter{public:Counter(int number);void increment(); //给原值加1void decrement(); //给原值减1int getValue(); //取得计数器值int print(); //显示计数private:int value;};#include<iostream.h>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<<value<<"+1="<<value+1<<endl;cout<<value<<"-1="<<value-1<<endl;return 0;}void main(){count s;s.getvalue(5);s.print();}//2、根据注释语句的提示,实现类Date的成员函数。
Java实验报告2 类和对象

实验报告【实验名称】第二章类和对象【实验目的】1.学习Java的基本语法2.学习Java的运算符和控制语句3.学习类和对象的概念【实验原理】1.Java程序设计基本原理2.面向对象程序设计基本原理【实验内容】一、填空题1. System.out.println(“12”+ 5);语句的输出结果是 125 。
2. Java语言中“2.5%1.2”的运算结果是 0.1 。
二、简答1. 为什么类成员方法只能操作类成员变量,而不能操作实例变量?[解答]因为类方法是静态方法,静态方法在加载class的时候就会初始化,而非静态成员(实例成员)还未进行初始化,所以类成员方法只能操作类成员变量,而不能操作实例变量。
2. 简述指针和引用有什么区别?[解答]指针表示的是地址,引用表示的也是地址,但是指针可以进行修改,引用则不能进行改动。
并且使用指针具有三大缺点,指针指向的内存并不是我们所需要的内存、指针所访存的内存空间是不允许被访存的、指针访存的空间并不存在。
三、实验题1. 指出程序中的错误,并修正public class Example{public static void main(String args[]){int a=1.0;float fa=216;float fb=21.656f;double da=125e45d;double db=123.45;float fc=0.1;}}[解答]:int a=1.0 修改为 double a=1.0 (float型比int型级别高)float fc=0.1 修改为 double fc=0.1 (double的类型比float级别高)2.写出如下程序输出结果,并说明原因public class E_c{public static void main(String args[]){String sx1="my";String sx2="god";char cx='a';System.out.println(sx1+sx2);System.out.println(sx2+cx);System.out.println(sx1+5);System.out.println(cx+5);}}结果:mygodgodamy5102原因:因为在输出内容包含字符串的时候,输出结果就全部为字符串,因此前三个结果为字符,第四个并不是,c的ascii为97,所以结果为1023、把如下程序改成从键盘输入两个整数,并判断大小。
实验2 类与对象(1) (1)

实验2 类与对象一、实验目的(1)掌握类的声明和使用。
(2)掌握类的声明和对象的声明。
(3)观察构造函数和析构函数的执行过程二、实验内容及步骤1.定义一个Book(图书)类,在该类定义中包括:数据成员:bookname(书名)、price(价格)和number(存书数量);成员函数:display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。
在main函数中,要求创建某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。
将程序补充完整。
#include <iostream.h>#include <string.h>#include <stdlib.h>class Book{ public:void setBook(char*,float,int);void borrow();void restore();void display();private:char bookname[40];float price;int number;};//在类外定义Book类的成员函数void Book::setBook(char *name, float pri, int num){price=pri;number=num;}void Book::borrow(){ if ( ){ cout << "已没存书,退出!" << endl;abort();//中止当前的过程,返回一个错误代码。
}number = number - 1;cout << "借一次,现存书量为:" << number << endl;}void Book::restore(){ number = number + 1;cout << "还一次,现存书量为:" << number << endl;}void Book::display(){ cout << "存书情况:" << endl<< "bookname:" << bookname << endl<< "price:" << price << endl<< "number:" << number << endl;}void main(){ char flag, ch;Book computer;computer.setBook( "c++程序设计基础" , 32, 1000 );computer.display();ch = 'y';while ( ch == 'y' ){ cout << "请输入借阅或归还标志(b/r):";cin >> flag;switch ( ){ case 'b': computer.borrow(); break;case 'r': computer.restore();}cout << "是否继续?(y/n)";cin >> ch;}computer.display();}2.下列代码使用结构类型表示复数,输入两个复数,可以选择进行复数的+、-、×或÷运算,并输出结果,请设计复数类,实现+、-、×或÷运算并在主函数中使用复数对象进行测试。
实验二 类和对象

实验二类和对象(一)一、实验目的1、掌握类的概念以及定义类的方法;2、掌握类的构造函数和析构函数的概念和使用方法;3、学习简单面向对象程序的编写;二、实验内容题目1 图形类设计设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形);1.Circle 类基本信息:圆心坐标、半径;Rectangle 类基本信息:长、宽;Triangle 类基本信息:三个顶点坐标;其中:成员变量为 private 属性,成员函数为public 属性;2、每个图形类有计算图形的面积GetArea(),显示图形的基本信息函数Show(),设置基本信息的函数Set(形参)。
以Circle 类为例:通过GetArea()计算圆的面积,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(int x,int y, int r)函数可以设置圆心坐标和半径。
【实验提示】当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误;【测试数据】1、Circle 类测试数据:圆心:(20,30)半径:5(-20,40)30(40,-10)-52、Rectangle 类测试数据:顶点坐标:20,5040,5-9,1043,-83、Triangle 类测试数据:顶点:(20,30)、(40,50)、(40,20)(10,10)、(50,10)、(35,10)题目2 学生类设计设计一个Student (学生) 类1、基本信息:学号、姓名、性别、出生日期、年级、班级、院系、专业;其中:基本信息为private 属性,成员函数为public 属性;2、基本功能:1)可以从键盘输入学生的基本信息;3)SetInfo (形参表) 函数可以输入学生的基本信息函数,例如:班级、专业等;4)Show() 函数显示学生信息;【实验提示】当输入数据为不合理数据时,提示用户输入错误;【测试数据】1、学号:2005001 姓名:zhangesan 出生日期:85 年11 月年级:05 级班级:jy01 院系:computer 专业:application2、学号:2005002 姓名:lihuan 出生日期:84 年11 月3、学号:2005003 姓名:wang 出生日期:85 年7 月年级:05 级班级:jy01 院系:computer 专业:software4、学号:2005004 姓名:zhan 出生日期:85 年11 月年级:05 级班级:jy025、学号:2005005 姓名:song 出生日期:85 年11 月题目3 人员管理设计某小型公司的employee(人员)类1、类1)employee 类:基本信息:编号、姓名、性别、出生日期、职位等;出生日期使用自定义的Date(日期)类;其中:基本信息为private 属性,成员函数为public 属性;2)Date 类:成员变量:年、月、日成员函数:SetYear(int year)、SetMonth(int month)、SetDay(int day)、GetYear()、GetMonth()、GetDay()2、基本功能及要求:1)职工信息的录入;2)职工信息的显示;3) 将类的定义放在头文件employee.h中,将成员函数的定义放在employee.cpp中,主函数放在main.cpp中。
实验二 类的定义和对象的创建

实验二类的定义和对象的创建
实验目的
1、学习定义类和使用类
2、学习创建的对象和使用对象
实验内容
1、定义一个Student类。
其中定义有“学号”“姓名”“班级”“性别”“年龄”等属性,定
义一个无参数的构造器和至少一个有参数的构造器,定义“获得学号”“获得姓名”“获得班级”“获得性别”“获得年龄”“修改年龄”等方法。
另外定义一个方法:
public String toString( ) 把Student类的对象的所有属性信息组合成一个字符串,并检验这个功能的程序体现。
2、定义一个平面图形类。
其中包含有周长方法和面积方法,并有圆周率常数。
3、定义一个平面图形接口。
其中包含有周长方法和面积方法,并有圆周率常数。
4、定义一个正方形类,其实现平面图形接口;定义一个圆形类,其实现平面图形接口。
5、生成两个正方形类对象和两个圆形类对象,求它们的周长之和以及面积之和。
实验2类和对象

实验 2 类和对象(一)1、实验目的(1)掌握声明类的方法,类和类的成员的的概念以及定义对象的方法。
(2)初步掌握用类和对象编制基于对象的程序。
(3)学习检查和调试基于对象的程序。
2、实验内容(1)有以下程序:#include <iostream>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<<t1.hour<< “ : ” <<t1.minute<< “ : ” <<t1.sec<<endl; // 输出时间return 0;}改写程序,要求:①将数据成员改为私有的;②将输入和输出的功能改为由成员函数实现;③在类体内定义成员函数。
然后编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义?在类体内定义:#include <iostream>using namespace std;class Time // 定义 Time 类{private: // 数据成员为私有的int hour;int minute;int sec;public:void input()cin>>hour>>minute>>sec;}void display(){ cout<<hour<<":"<<minute<< ":"<<sec<<endl;}};int main( ){ Time t1; // 定义 t1 为 Time 类对象t1.input();t1.display();return 0;}在类体外定义:#include <iostream>using namespace std;class Time // 定义 Time 类{private: // 数据成员为私有的int hour;int minute;int sec;public:void input();void display();};int main( ){ Time t1; // 定义 t1 为 Time 类对象t1.input();t1.display();return 0;}void Time::input(){ cin>>hour>>minute>>sec;}void Time::display(){cout<<hour<<":"<<minute<< ":"<<sec<<endl;(2)分别给出如下的 3 个文件: ①含类定义的头文件 student.h , //student.h class Student{ public: void display( ); private: int num; char name[20];char sex; }; ②包含成员函数定义的源文件 student.cpp //student.cpp #include <iostream>using namespace std; #include “ student.h ” void Student::display( ) { cout<< “ num:” <<num<<endl; cout<< “name:” <<name<<endl;cout<< “ sex: ” <<sex<<endl; } ③包含主函数的源文件 main.cpp 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二类和对象
1.实验目的:
(1) 掌握Visual C++6.0基本操作
(2) 了解C++程序运行环境;
(3) 掌握简单的C++程序的开发过程(编辑、编译、连接和运行)。
(4) 掌握类及其成员的定义方法;
(5) 掌握对象的创建方法;
2.实验内容:
2.1按要求分析程序指出程序运行的结果:
1)分析下面的程序,并给出程序运行的结果:
#include<iostream.h>
class change
{char c1,c2;
public:
void set(char a){c2=((c1=a)-32);}
void print()
{cout<<c1<<" can be upwritten as "<<c2<<endl;}
};
void main()
{change a,b;
a.set('a');
b.set('b');
a.print();
b.print();
}
运行结果:
a can be upwritten as A
b can be upwritten as B
Press any key to continue
程序分析:
由主函数可知,创建的类名为change,两个类对象为a,b,类中含有两个公有成员函数set(char a)和print(),利用函数set(char a)对两个私有成员数据赋值,即为减数与被减数的数值,利用函数print()对两个运算后的类对象进行输出。
2)分析下面的程序,并给出输出结果:
#include<iostream.h>
class pair
{char c1,c2;
public:
void set(char b)
{c1=1+(c2=b);}
unsigned where_am_I()
{return((unsigned)this);}
{cout<<c1<<"+"<<c2<<"\t";}
};
void main()
{pair a,b,c;
a.set('A');
b.set('B');
c.set('C');
a.print();
cout<<"is at "<<a.where_am_I()<<'\n';
b.print();
cout<<"is at "<<b.where_am_I()<<'\n';
c.print();
cout<<"is at "<<c.where_am_I()<<'\n';
}
运行结果:
B+A is at 1245052
C+B is at 1245048
D+C is at 1245044
Press any key to continue
程序分析:
由主函数可知,创建的类名为pair,三个类对象为a,b,c,类中含有,三个公有成员函数set(char b)和where_am_I()和print(),利用函数set(char b)对两个私有成员数据赋值,利用函数where_am_I() this 是一个指针,这个返回语句的功能是把this指针指向的对象的地址用无符号数的类型返回。
例如如果this 指向对象的地址是0x0000ffff,则返回值就是这个。
+ 利用函数print()对两个运算后的类对象进行输出。
2.2编写并调试程序:
1)下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88-32=56
给定的主函数为:
void main()
{
Tst t;
t.init(88,32);
t.print();
}
2)编程分析
由主函数可知,要创建的类名为Tst,一个类对象为t,类中含有两个公有成员函数init()和print(),利用函数init()对两个私有成员数据赋值,即为减数与被减数的数值,为了程序的实现需要定义第三个成员数据作为减法之差。
#include<iostream.h>
class Tst
{ int x,y,z;
public:
void init(int a,int b){
z=((x=a)-(y=b));
}
void print()
{cout<<x<<"-"<<y<<"="<<z<<endl;} };
void main()
{
Tst t;
t.init(88,32);
t.print();
}
4)运行结果
88-32=56
5)调试情况分析
3.实验结论:。