实验二面向对象的程序设计

  • 格式:docx
  • 大小:109.80 KB
  • 文档页数:30

* *

实验二 面向对象的程序设计

(2课时)

一、 实验目的

1 )熟悉类的定义和使用。

2) 掌握创建对象的方法。

3) 掌握只读字段的声明及使用。

4) 学习定义和使用带参数构造函数。

5) 熟悉访问权限控制符。

6) 掌握属性的定义和使用。

7) 掌握关键字this。

8) 理解继承的概念,学会定义和使用派生类。

9) 学会定义和使用接口。

10) 掌握继承过程中的方法重写,区分它与方法隐藏、方法重载的不同。

11) 掌握多态。

12) 熟悉关键字base。

二、 实验要求

1) 程序结构清晰、语句完整,包含有头文件和 main函数;

2) 格式正确,语句采用缩进格式;

3) 设计子函数实现题目要求的功能;

4) 编译、连接通过,熟练使用命令键;

5) 运行结果正确,输入输出有提示,格式美观。

三、 实验设备、材料和工具 * *

1)奔腾2计算机或以上机型

2) C#.NET2008

四、实验内容和步骤

实验内容:

1、创建一个描述图书信息的类并测试。类中应保存有图书的书号、标题、作者、出版社、价格 等信息。

步骤:

1) 定义图书类 Book, Book类中包含isbn(书号)、title (标题)、author(作者)、press (出版

社)、price (价格)等私有字段。由于对一本书来说,书号是唯一的,因此, isbn字段应声

明为只读的。

2) 为Book类中的每个字段定义相应的属性,由于 isbn字段只读的,其相应属性也应该是只 读的。

3) 为Book类定义两个构造函数,其中,一个构造函数将所有字段都初始化为用户指定的值, 另一个构造函数只要求用户指定有关书号的信息,它将调用上一个构造函数初始化对象,初 始化时,价格取0,除书号的其他信息取“未知”。

4) 为Book类定义方法Show,Show方法用于显示图书的所有信息。

5) 编写Main方法测试Book类,Main方法中分别使用上述两个构造函数创建 Book对象。

2、根据几何图形的组合与继承关系定义用于描述点、直线、三角形、四边形、正方形、圆等几何图 形的类(或结构)。要求首先定义一个几何图形接口描述所有几何图形的共有特性,上述几何图形都 必须现实该接口,并且其中用于描述点的类型最好定义为结构。

步骤:

1)定义几何图形接口 Shape。 Shape接口中包含属性 Color,用于读取和设置几何图形的颜色; 包含方法Draw、Erase、Move,用于绘制、擦拭、移动几何图形。由于属性 Color的类型无

法用基本数据类型准确描述,程序中还需要另外定义一个表示颜色的枚举类型 CColor (实验 * *

上, .NET框架类库中定义有一个 Color结构,它可以更好地表示颜色, 你们可以直接使用它)

2) 定义点结构Point实现Shape接口。Point结构中除实现 Shape接口的所有成员外,还必须

包含两个int型私有字段x、y及相应属性,它们用于表示点的坐标。另外,还应为 Point结构

定义构造函数,并重写方法 ToString 。

3) 定义直线类Line实现Shape接口。Line类中除实现Shape接口的所有成员外,还必须包含

两个Point型私有字段point1、point2 及相应属性,它们用于表示直线两个顶点的坐标。另 夕卜,还应为Line类定义构造函数,并重写方法 ToString 。

4) 定义三角形类 Triange实现Shape接口。Triangle类中除实现Shape接口的所有成员外,还

必须包含三个 Point型私有字段及相应属性,它们用于表示三角形三个顶点的坐标。另外,还 应为triangle 类定义方法 Area (求面积)和构造函数,并重写方法 ToString 。

5) 定义四边形类 Quadrilateral 实现Shape接口。Quadrilateral 类中除实现 Shape接口中的所

有成员外,还必须包含四个 Point型私有字段及相应属性,它们用于表示四边形四个顶点的坐

标。另外,还应为Quadrilateral 类定义方法 Area (求面积)和构造函数,并重写方法ToString 。 由于程序后面还需要在 Quadrilateral 类的基础上派生出正方形类, 因此,实现Shape接口时,

应该将方法 Draw、Erase、Move声明为虚拟的,另外,重写方法 ToString时,不妨将它声

明为密封的。

6) 定义圆类Circle实现Shape接口。Circle类中除实现Shape接口的所有成员外,还必须包含

一个Point型私有字段、一个int型私有字段及相应属性,它们分别用于表示圆的圆心坐标及 半径;另外,还应为 Circle类定义Area (求面积)和构造函数,并重写方法 ToString 。

7) 定义正方形类 Square继承Quadrilateral 类。Square类中应重写方法 Draw、Erase、Move 并定义构造函数。

8) 定义Main方法测试上面定义的类。 * *

3、编写一个实现复数加法程序。

写出实验步骤,并编写调试程序。

五、实验报告要求

1. 实验前需填写好实验的名称和实验目的;

2. 根据实验内容初步设计好程序,并从理论上排除错误;

3. 针对程序的健壮性准备好测试数据;

4. 结果分析中如实填写运行后的结果,并记录调试过程中产生的重要问题和解决方法。

六、根据实验过程填写程序和实验结果

实验1程序:class Book{

private read only stri ng isb n; //书号

private string title; // 标题

private string author; //作者

private stri ng press; // 出版社

private int price; //价格

public Book(string isbn):this(isbn," 未知","未知","未知",0){

public Book(string isbn,string title,string author,string press,int price){ this.isb n=isb n;

this.title=title;

this.author=author;

this.press=press;

this.price=price;* *

}

public stri ng ISBN{

get{

return isb n;

}

}

public string Title{

get{

return title;

}

set{

title=value;

}

}

public stri ng Author{

get{

retur n author;

set{* *

author=value;

}

}

public stri ng Press{

get{

return press;

}

set{

press=value;

}

}

public int Price{

get{

return price;

}

set{

price=value;

}

}

public void Show(){

Console.WriteLine("书号:{0}",isbn);

Console.WriteLine("标题:{0}",title);* *

book 仁new Book("978-7-302-15800-4","Java 程序设计","温秀梅","清华大学出版社

Co nsole.WriteLi ne(" 作者:{0}",author);

Co nsole.WriteLi

ne(" 出版社:{0}",press);

Co nsole.WriteLi

ne(" 价格:{0}",price);

class Test5_1{

static void Mai n(){

Book book 仁new Book("978-7-111-23423-4");

book1.Show();

Con sole.WriteLi ne();

book1.Title="C# 程序设计(C#2.0 版)";

book1.Author=" 刘慧宁";

book1.Press=" 机械工业出版社";

book1.Price=32;

book1.Show(); * *

Con sole.WriteLi ne();

",29);

book1.Show();

}

}

结果:

调试过程中产生的重要问题和解决方法:

实验2程序:

//定义一个颜色的枚举

enum CColor{

BLACK,BLUE,BROWN,CYAN,GRAY,GREEN,ORANGE,PINK,RED,WHITE,YELLOW

}

//定义一个几何图形接口

in terface Shape{

CColor Color{

get;

set;

}

//绘制的方法