类和对象练习题

类和对象练习题
类和对象练习题

类和对象

一、选择题

1、下面对方法的作用描述不正确的是:( d )

A、使程序结构清晰

B、功能复用

C、代码简洁

D、重复代码

2、方法定义的变量:( b )

A 、一定在方法所有位置可见B、可能在方法的局部位置可见

C、在方法外可以使用

D、在方法外可见

3、方法的形参:(a)

A、可以没有

B、至少有一个

C、必须定义多个形参

D、只能是简单变量

4、方法的调用:(c)

A、必须是一条完整的语句

B、只能是一个表达式

C、可能是语句,也可能是表达式

D、必须提供实际参数

5、return 语句:( d)

A、不能用来返回对象

B、只可以返回数值

C、方法都必须含有

D、一个方法中可以有多个return 语句

6、void 的含义:(d)

A、方法体为空

B、方法体没有意义

C、定义方法时必须使用

D、方法没有返回值

7、main()方法的返回类型是:( c )

A 、boolean B、int C、void D、static

8、方法重载所涉及的方法:( a )

A、有相同的名字

B、参数个数必须不同

C、参数类型必须不同

D、返回类型必须不同

9、下面关于类和对象之间关系的描述,正确的是( c )

A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化

10、下面关于java中类的说法哪个是不正确的( c )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造方法是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

11、下列哪个类声明是正确的( d)

A、public void H1{…} B 、public class Move(){…}

C、public class void number{}

D、public class Car{…}

12、下面的方法声明中,哪个是正确的(c)

A、public class methodName(){}

B、public void int methodName(){}

C、public void methodName(){}

D、public void methodName{}

13、下述哪些说法是不正确的?( b )

A、实例变量是类的成员变量

B、实例变量是用static关键字声明的

C、方法变量在方法执行时创建

D、方法变量在使用之前必须初始化

14、下面对构造方法的描述不正确是( b)。

A、系统提供默认的构造方法

B、构造方法可以有参数,所以也可以有返回值

C、构造方法可以重载

D、构造方法可以设置参数

15、定义类头时,不可能用到的关键字是( b)。

A、class

B、private

C、extends

D、public

16、下列类头定义中,错误的是( )。

A、public x extends y {...}

B、public class x extends y {...}

C、class x extends y implements y1 {...}

D、class x {...}

17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。

A、float A a;

B、public A a=A( );

C、A a=new int( );

D、static A a=new A( );

18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。

A、void X(int k ){ i=k; }

B、X(int k ){ i=k; }

C、X(int m, int n ){ i=m; j=n; }

D、X( ){i=0;j=0; }

19、有一个类A,以下为其构造方法的声明,其中正确的是

( b )。

A、void A(int x){...}

B、public A(int x){...}

C、public a(int x){...}

D、static A(int x){...}

20、下列方法定义中,不正确的是( c )。

A、float x( int a,int b ) { return (a-b); }

B、int x( int a,int b) { return a-b; }

C、int x( int a,int b ); { return a*b; }

D、int x(int a,int b) { return 1.2*(a+b); }

21、设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( a )。

A、double X(double k ){ i=k; return i; }

B、X( ){i=6;j=8; }

C、X(double m, double n ){ i=m; j=n; }

D、X(double k ){ i=k; }

22、设ClassA为已定义的类名,下列声明Class A类的对象ca的语句中正确的是( a )。

A、public ClassA ca=new ClassA( );

B、public ClassA ca=ClassA( );

C、ClassA ca=new class( );

D、ca ClassA;

23、设m , n为类A中定义的int型变量名,下列A类的构造方法中不正确的是( a )。

A、void A(int k ){ m=k; }

B、A(int k ){ m=k; }

C、A(int m, int n ){m=i; n=j; }

D、A( ){m=0;n=0; }

24、设i、j、k为类School中定义的int型变量名,下列类School的构造方法中不正确的是( b )。

A、School ( int m){ ... }

B、void School ( int m){ ... }

C、School ( int m, int n){ ... }

D、School ( int h,int m,int n){ ... }

25、下列选项中,哪个是java语言所有类的父类( c )

A、String

B、Vector

C、Object

D、KeyEvent

26、Java中所有的类都是通过直接或间接地继承(a )类得到的。()

A、https://www.360docs.net/doc/18856021.html,ng.Object

B、https://www.360docs.net/doc/18856021.html,ng.Class

C、任意类

D、

以上答案都不对

27、对于任意一个类,用户所能定义的构造方法的个数至多为( d )。

A、0个

B、1个

C、2个

D、任意个

28、构造方法何时被调用(b )

A、类定义时

B、创建对象时

C、调用对象方法时

D、使用对象的变量时

29、类Test1定义如下

public class Test1{

public float aMethod(float a,float b){ }

( b )

}

将以下哪种方法插入()是不合法的。()

A、 public float aMethod(float a,float b,float c){ }

B、 public float aMethod(float c,float d){ }

C、 public int aMethod(int a,int b){ }

D、public int aMethod(int a,int b,int c){ }

30、用来导入已定义好的类或包的语句是( b )

A、main

B、import

C、public class

D、class

31、类是具有相同( a )的集合,是对对象的抽象描述。()

A、属性和方法

B、变量和方法

C、变量和数据

D、对象和属性

32、一个对象的生命周期分( c )3个阶段。()

A、使用、生成和清除

B、清除、使用和生成

C、生成、使用和清除

D、生成、清除和使用

33、以下(a )是专门用于创建对象的关键字。()

A、new

B、double

C、class

D、int

34、表达式(c)将返回当前的系统时间和日期()

A、DataFormat.getDataTime B 、new Data C 、DataFormat.getDataTimeInstance() D、new CurrentData

35、()为程序员提供了一些可完成通用任务的现有类(A)

A、Java类库 B 、preExisting C、java 代码 D 、library关键字

36、程序员通常会使用( C )

A 、程序员定义的方法

B 、现有的方法

C 、程序员定义的得带以及现有的方法

D 、既不是程序员定义的方法也不是现有的方法

37、利用方法中的()语句可为调用方法返回一个值( A )

A、return B 、back C、end D 、以上答案都不对

38、(A)方法用做返回两个参数中的较大值()

A 、max

B 、maximum C、larger D、greater

39、(D )将被传送至一个被调用的方法()

A、返回值

B、返回类型

C、参数表

D、参数列表

40、方法的参数可以是( D )

A、常量

B、表达式

C、变量 D 、以上答案都对

41、()是位于方法头中的一个以逗号分隔的声明列表( B )

A、参数表B、参数列表C、值表D、变量表

42、方法的定义是由()组成的( D )

A、一个方法 B 、一个方法体 C 、一对花括号 D 、以上答案都对

43、一个(D)对象将包括int型数据()

A、IntegerObject

B、Int

C、IntData

D、Integer

44、在方法调用过程中。位于方法名之后圆括号的变量被称为( B )

A、变元 B 、参数 C 、语句 D 、声明

45、一条return语句将给调用程序返回(D)个值()

A 、0 B、 1 C、任意数量D、A和B

46、方法的第一行被称为方法的( D )

A 、方法体B、标题C、调用者D、方法头

47、实例变量的作用域整个的( C )

A、语句块 B 、方法 C 、类 D 、以上答案都不对

48、在某个方法部定义的变量被称为(B )

A 、实例变量B、局部变量C、类变量D、隐藏变量

49、在一个类的部声明,但又处于该类方法外部的变量被称为(C )

A、局部变量

B、隐藏变量

C、实例变量

D、常量

50、从定义局部变量语句的外部访问该局部变量,会导致()出现(A )

A、逻辑出错 B 、编译错误C、运行错误 D 、以上答案都不对

51、实例变量( D )

A 、是在一个类的部声明的变量

B 、的作用域为整个类

C 、可被同一类中的任何方法所访问

D 、以上答案都对

52、当方法传递一个参数时,将该参数值的一个拷贝传递给方法的传递方式称为( B )

A、调用传递

B、值传递

C、引用传递 D 、方法传递

53、当一个变量在应用程序的整个生命周期中被使用,且整个过程中的其他值也不能被改变时,那么将他声明为一个( B )

A 、局部变量B、常量C、实例变量D、以上答案都不对

54、关键字()表示一个类定义的开始( C )

A、declare

B、new

C、class

D、以上答案都不对

55、类的定义必须包含在一对()( B )

A、方括号

B、花括号

C、逗号

D、圆括号

56、实例变量的初始化( B )

A 、是在他们声明时完成

B 、将被设置为默认值

C 、是在一个构造方法中完成的

D 、以上答案都对

57、某个方法,在保证参数值有效性的前提下设置其实例变量number,该方法的方法名最好取( C )

A、number B、set C、setNumber

D、setValue

58、某个方法,在保证参数值有效性的前提下获取其实例变量number,该方法的方法名最好取( C )

A、number B、get C、getNumber D、getValue

59、通过使用关键字()创建对象( D )

A、object B 、instantiate C、create D、new

60、参照以下Java代码,以下四个叙述中最确切的是(C)

class A{

int x; static int y;

void fac(String s){System. out. println("字符串:"+s);}

}

A、x、y和s都是成员变量

B、x是实例变量、y 是类变量、s是局部变量

C、x和y是实例变量、s是参数

D、x、y和s都是实例变量

61、下列关于变量作用域的描述中,不正确的一项是

( C )

A、变量属性是用来描述变量作用域的

B、局部变量作用域只能是它做在的方法代码段

C、类变量能在类的方法中声明

D、类变量的作用域是整个类

62、下列关于变量作用域的说法中,正确的一项是

( B )

A、方法参数的作用域是方法外部代码段

B、异常处理参数的作用域是方法外部代码段

C、局部变量的作用域是整个类

D、类变量的作用域是类的某个方法

63、System类在哪个包中?( D )

A 、java.util

B 、java.io

C 、java.awt

D 、https://www.360docs.net/doc/18856021.html,ng

64、给出下面代码段

1) public class Test {

2) int m, n;

3) public Test() {}

4) public Test(int a) { m=a; }

5) public static void main(String arg[]) {

6) Test t1,t2;

7) int j,k;

8) j=0; k=0;

9) t1=new Test();

10) t2=new Test(j,k);

11) }

12) }

哪行将引起一个编译时错误?( D )

A 、line 3 B、line 5 C、line 6 D、line

10

65、对于下列代码、

1) class Person {

2) public void printValue(int i, int j) {//... }

3) public void printValue(int i){//... }

4) }

5) public class Teacher extends Person {

6) public void printValue() {//... }

7) public void printValue(int i) {//...}

8) public static void main(String args[]){

9) Person t = new Teacher();

10) t.printValue(10);

11) }

第10行语句将调用哪行语句?()

A 、line 2 B、line 3 C 、line 6 D、line 7

66、下列关于构造方法的说话正确的是( B )

A、类中的构造方法不可省

B、构造方法必须与类同名,但方法不能与class同名

C 、类的构造方法在一个对象被创建时自动执行

D、一个类只能定义一个构造方法

67、下列语句中,对构造方法的描述错误的是(D )

A、构造方法的名称必须和类名相同

B、构造方法没有返回值,返回类型也不能用void

C、构造方法在一个类中可以多次出现

D、当重写了带参数的构造方法,系统默认的不带参数的构造方法依然存在

68、下面关于java中类的说法哪个是不正确的( A )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句

B、构造方法是类中的特殊方法

C、类一定要声明为public 的,才可以执行

D、一个java文件中可以有多个class定义

69、下列哪个不是面向对象的三大特性之一( D )

A、封装性

B、继承性

C、多态性

D、重载

70、下面哪种语言不是面向对象语言? ( C )

A、java

B、C++ C 、 C D、Smalltalk

71、在创建对象时必须( D )

A、先声明对象,然后才能使用对象

B、先声明对象,为对象分配存空间,然后才能使用对象

C、先声明对象,为对象分配存空间,对对象初始化,然后才能使用对象

D、上述说法都对

72、以下叙述不正确的是( D )

A、面向对象方法追求的目标是、尽可能地运用人类自然的思维方式来建立问题空间的模型,构造尽可能直观、自然的表达求解方法的软件系统。

B、面向对象方法的优点有、易于维护,可重用性好,易于理解、扩充和修改。

C、面向对象=对象+分类+继承+消息通信。

D、面向对象的基本特征是封装性、继承性和并行性。

73、对于构造函数,下列叙述不正确的是( B )。

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。

D、一般在创建新对象时,系统会自动调用构造函数。

二、填空题

1、通常用关键字NEW 来新建对象,通过类创建对象的基本格式为:类名对象名=new 构造方法(); 。

2、通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现Myclass obj=new Myclass(); 。

3、面向对象程序设计的主要特点是继承、多态和封装。

4、构造方法是类中的一种特殊方法,它用来定义对象的初始化。

5、在Java程序中定义的类中包括有两种成员,分别是:成员变量、成员方法。

6、用static修饰的方法,称为静态方法。它们不是对象的方

法,而是整个类的方法。静态方法只能处理用关键字修饰的数据。

7、列举三个常用类库的包、java.util

、java.io 和java.awt 。

8、Java中所有类都是类Object 的子类。

9、Java中类成员的限定词有以下几种:private、public、friendly、protected其中,public 的限定的围最大。

10、被关键字final /private 修饰的方法是不能被当前类的子类重新定义的方法。

11、JA V A程序的基本元素是类。

12、class 是JA V A语言中定义类时必须使用的关键字。

13、定义在类中方法之外的变量称为成员变量。

14、方法声明包括方法头和方法体两部分。

15、方法头确定方法的方法名,形式参数的名字和类型、返回值的类型和绯闻限制。

16、方法体由包括在花括号的声明部分和语句部分组成,描述方法的功能。

17、类头定义的基本格式要求为__修饰符__ _、__class关键字_ __、_____ 类名__和__ 花括号__。

18、对象是指Java程序通过规则引擎调用此规则包时,将数据存储在Java的类中,以对象的形式传入。

19、在Java类对象的编辑窗口中直接输入需要导入的类的完成类名。

20、类是Java的核心容,是用来创建对象的模板。

21、类有两种基本成员是方法和成员变量。

22、一个Java源文件就是由若干个类构成的。

23、类是抽象,而对象是具体。

24、.对象的创建、创建对象的过程就是类的实例化的过程

25、对象的创建的步骤对象的声明、及对象的实例化。

26、使用new运算符实例化一个已经声明的类

27、实例化一个对象时,会同时调用类的构造方法对它进行。

28、类的是特殊的类方法,它必须和类同名,并且不能有返回类型,也不能用void来标注。

29、构造方法是具有特殊地位的方法,不可以调用构造方法。

30、一个类中可以有多个

31、类里面如果没有,系统会调用默认的构造方法,默认的构造方法是不带任何参数的。

32、包主要来解决的问题。

33、既是命名机制,又是可见度控制机制。

34、java语言的属性与方法的引用均使用__ _运算符。

35、定义类时通常使用关键字____ ,,___。

36、写出成员变量的定义格式__ _______。

37、对象的生命周期包括三个阶段、、。

38、Java中类成员的访问控制符有以下几种、private, public,__ ___, __ ____。其中,__ ______的限定的围最大。

39、Java中所有类都是类__ _的子类。Applet类是系统类_ __类的子类,存在于_ ___包中。

40、按作用域分类,变量有局部变量、__ _____、方法变量和异常处理参数。

41、JA V A语言通过接口支持_____ ____继承,使类继承具有更灵活的扩展性。

42、JA V A语言中___ ___类是所有类的根。

三、程序填空

1、请写出下面程序的运行结果。

package .gem.j2SE03;

abstract class A {

private int x = 100;

public A(){

this.print();

}

public abstract void print();

}

class B extends A {

private int x = 200;

public B(int x){

this.x = x;

}

public void print(){

System.out.println("x=" + x);

}

}

public class TestJava {

private void mian() {

A a = new B(20);

}

}

程序运行结果为:

2、请写出下面程序的运行结果。

public class Test extends TT{

public void main(String args[]){

Test t = new Test("Tom");

}

public Test(String s){

super(s);

System.out.println("How do you do?");

}

public Test(){

this("I am Tom");

}

}

class TT{

public TT(){

System.out.println("What a pleasure!");

}

public TT(String s){

this();

System.out.println("I am "+s);

}

}

程序运行结果为:

3、阅读下列程序,写出程序运行的结果:public class Test {

public static void main (String[] args) {

String s1=new String("Hello");

String s2="Hello";

String s3="Hello";

System.out.println(s1==s2);

System.out.println(s1.equals(s2));

System.out.println(s2==s3);

System.out.println(s2.equals(s3));

String s4=s1;

System.out.println(s1==s4);

System.out.println(s1.equals(s4));

}

}

程序运行结果为:

4、public class Test {

private static void printArray(int[] arr) {

for(int i=0;i< arr.length;i++)

System.out.print(arr[i]+",");

System.out.println("\n");

}

private static void changeValue(int value) {

value*=2;

}

private static void changeValue(int[] arr) { for(int i=0;i

arr[i]*=2;

}

public static void main (String[] args) {

int[] arr={1,2,3,4,5};

changeValue(arr[0]);

printArray(arr);

changeValue(arr);

printArray(arr);

}

}

程序运行结果为:

5、class MyException extends Exception {

public MyException(String message) {

super(message);

}

}

public class Test {

private static void fun1() throws MyException {

throw new MyException("An MyException object is thrown in fun1().");

}

private static void fun2() throws MyException {

try {

fun1();

}

catch(NullPointerException ex) {

System.out.println("NullPointerException、"+ex.getMessage());

}

finally {

System.out.println("Go through finally code in fun2().");

}

}

public static void main (String[] args) {

try {

fun2();

}

catch(MyException ex) {

System.out.println("MyException:"+ex.getMessage() );

}

catch(Exception ex) {

System.out.println("Exception:"+ex.getMessage());

}

}

}

程序运行结果为:

6、下面是一个类的定义,请完成程序填空。

public class ___ _______

{

int x, y;

Myclass ( int ,int ) // 构造方法

{

x=i; y=j;

}

}

程序运行结果为:

7、下面是一个类的定义,请将其补充完整。

class ___ __ {

String name;

int age;

Student( ___ __s, int i) {

name=s;

age=i;

}

}

程序运行结果为:

8、下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将其补充完整。

public class Class1{

public static void main( String args[] ){

int i1=1234,i2=456,i3=-987;

System.out.println("三个数的最大值、"+ );

}

public static int max(int x,int y,int z)

{ int temp1,max_value;

temp1=x>y?x:y;

max_value=temp1>z?temp1:z;

return max_value;

}

}

程序运行结果为:

9、写出下列程序的输出结果

public class Test{

public static void main(String[] args){

Count myCount = new Count();

int times = 0;

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

increment(myCount , times);

System.out.println(“count is”+ myCount.count);

System.out.println(“time is”+ times);

}

public static void increment(Count c , int times){

c.count++;

times++;

}

}

class Count{

public int count;

Count(int c){

count =c;

}

Count(){

count =1;

}

}

程序运行结果为:

10、阅读下列程序,写出程序运行的结果:

class Circle {

double radius;

public Circle(double r){

this.radius=r;

}

}

public class Test{

public static void main(String[] args){

Circle circle1 = new Circle(1);

Circle circle2 = new Circle(2);

System.out.println("Before swap:circle1 ="+circle1.radius+" circle2 = "+circle2.radius);

swap(circle1,circle2);

System.out.println("After swap:circle1 = "+circle1.radius+" circle2 = "+circle2.radius);

}

public static void swap(Circle x , Circle y){

System.out.println("Before swap: x = "+x.radius+" y = "+y.radius);

Circle temp = x;

x = y;

y = temp;

System.out.println("Before swap: x = "+x.radius+" y = "+y.radius);

}

}

程序运行结果为:

11、下列程序的输出结果是什么?

public class Foo{

static int i=0;

static int j=0;

public static void main(String[] args){

int i=2;

int k=3;

int j=3;

System.out.println(“i + j is ”+ i + j);

k = i +j;

System.out.println(“k is ”+k);

System.out.println(“j is ”+ j);

}

}

程序运行结果为:

12、运行类C的输出结果是什么?

class A{

public A(){

System.out.println("The default constructor of A is

invoked");

}

}

class B extends A{

public B(){

System.out.println("The default constructor of B is invoked");

}

}

public class C{

public static void main(String[] args){

B b = new B();

}

}

程序运行结果为:

13、阅读下列程序写出输出结果:

class A{

String s="class A";

void show(){

System.out.println(s);

}

}

class B extends A{

String s="class B";

void show() {

System.out.println(s);

}

}

public class TypeConvert{

public static void main(String args[]){

B b1;

B b2=new B();

A a1,a2;

a1=(A)b2;

a2=b2;

System.out.println(a1.s);

a1.show();

System.out.println(a2.s);

a2.show();

b1=(B)a1;

System.out.println(b1.s);

b1.show();

System.out.println(b2.s);

b2.show();

}

}

程序运行结果为:

14、阅读下列程序,写出程序运行的结果:

class A {

int i, j;

public A(){

this.i=0;

this.j=0;

}

public void print(){ System.out.println ("i="+i+""+"j="+j);} }

class B extends A{

int m;

public B (int i, int j, int m){

super ();

this.m=m;

}

public void print (){System.out.println ("i="+i +" m="+m);} }

public class C{

public static void main(String args[]){

A a=new A();

B b=new B(1, 2, 3);

a.print ();

b.print ();

}

}}

程序运行结果为:

15、阅读下列程序,写出程序运行的结果:class Demo {

public void test ()

{System.out.println ("NO");}

public void test (int i)

{System.out.println (i);}

public void test (int a, int b)

{System.out.println (a+b);}

}

public class Test {

public static void main(String args[]){

Demo de=new Demo();

de.test();

de.test(5);

de.test(6,8);

}

}

程序运行结果为:

16、阅读下列程序,写出程序运行的结果:class Cube{

int width;

int height;

int depth;

Cube(int x,int y,int z){

this.width=x;

this.height=y;

this.depth=z;

}

public int vol(){

return width*height*depth;}}

public class UseCube {

public static void main(String[] args) { Cube a=new Cube(3,4,5);

System.out.println("长度="+a. width);

System.out.println("体积="+a.vol());

}

}

实验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.360docs.net/doc/18856021.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){

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

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两个类的对象的私有数据,输出年、月、日和时、分、秒。 修改后上机调试和运行。

实验四 类与对象

宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告

}*/ // ~CPU() {cout<<"析构了一个CPU!"<

实验报告_实验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 目录结构

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<

实验五类与对象

实验五类和对象(一) 一、目的和要求 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"<

实验四 类与对象

实验四类与对象 一、实验目的 1. 掌握类的声明和使用。 2. 掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4. 观察构造函数和析构函数的执行过程。 5.学习类的组合使用方法。 6. 使用 VC++的debug 调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验任务 1. 声明一个 CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank 为枚举类型CPU_Rank,声明为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是 MHz 的整型数,voltage为 浮点型的电压值。观察构造函数和析构函数的调用顺序。 2. 声明一个简单的 Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数 run、stop。cpu 为 CPU类的一个对象,ram为RAM 类的 一个对象,cdrom为 CDROM 类的一个对象,声明并实现这个类。 3. (选做)设计一个用于人事管理的 People(人员)类。考虑到通用性,这里只抽象 出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员 函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、 内联成员函数、组合。 三、参考程序 1、#include using namespace std; enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private: ?CPU_Rank rank; ?int frequency; ?float voltage; public: CPU (CPU_Rank r, intf, float v) ?{ ?rank = r; ?frequency = f; ?voltage = v; ?cout << "构造了一个CPU!" << endl; ?}

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++面向对象程序设计实验五 类与对象之三

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, 返回操作系统}

实验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. 下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试

C实验报告第四章类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序:

实验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;

实验四-类与对象

实验四类与对象 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="<

相关文档
最新文档