日期:2014-05-17 浏览次数:21047 次
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:继承 * 作 者:薛广晨 * 完成日期:2011 年 10 月 14 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: 把定义平面直角坐标系上的一个点的类CPoint作为基类, 派生出描述一条直线的类Cline,再派生出一个矩形类CRect。 要求成员函数能求出两点间的距离、矩形的周长和面积等。 设计一个测试程序,并构造完整的程序。 * 程序输出: * 程序头部的注释结束 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace xue { class Program { static void Main(string[] args) { CPoint cp1 = new CPoint(3,3); CPoint cp2 = new CPoint(); CPoint cp3 = new CPoint(); cp1.display_CPoint(); cp2.display_CPoint(); cp3.display_CPoint(); cp3.set_x(3); cp3.display_CPoint(); Cline cl1 = new Cline(); Console.WriteLine("两点之间的距离为:{0}", cl1.distance(cp1, cp3)); Cline cl2 = new Cline(); cl2.distance(cp2, cp3); CRect cr = new CRect(); Console.WriteLine("矩形的周长为:{0}", cr.perimeter(cl1, cl2)); Console.WriteLine("矩形的面积为:{0}", cr.area(cl1, cl2)); Console.ReadKey(true); } } class CPoint { private double x; private double y; public CPoint() { x = 0; y = 0; } public CPoint(double x, double y) { this.x = x; this.y = y; } public void set_x(double x) { this.x = x; } public void set_y(double y) { this.y = y; } public double get_x() { return this.x; } public double get_y() { return this.y; } public void display_CPoint() { Console.WriteLine("({0}, {1})", this.x, this.y); } } class Cline : CPoint { private double length; public double distance(CPoint c1, CPoint c2) { this.length = Math.Sqrt((c1.get_x() - c2.get_x()) * (c1.get_x() - c2.get_x()) + (c1.get_y() - c2.get_y()) * (c1.get_y() - c2.get_y())); return this.length; } public double getLength() { return this.length; } public void set_length(CPoint c1, CPoint c2) { this.length = distance(c1, c2); } } class CRect : Cline { public double perimeter(Cline c1, Cline c2) { double pm = c1.getLength() * 2 + c2.getLength() * 2; return pm; } public double area(Cline c1, Cline c2) { return c1.getLength() * c2.getLength(); } } }
运行结果: