[csharp]
/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙台大學計算機學院學生
* All rights reserved.
* 文件名稱:定義一個描述坐標點的CPoint類,派生出直線類Cline,在派生出矩形類CRect,求兩點之間的距離以及矩形的面積與周長。
* 作 者: 雷恆鑫
* 完成日期: 2012 年 09 月 22 日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:
* 程序輸出:
* 程序頭部的注釋結束
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Four__week
{
class Program
{
static void Main(string[] args)
{
CPoint c1 = new CPoint();
CPoint c2 = new CPoint();
CPoint c3 = new CPoint();
c1.setpoint(1, 1);
c2.setpoint(4, 5);
c3.setpoint(4, 1);
Cline m = new Cline();
Console.WriteLine("兩點之間的距離為:{0}", m.distence(c1, c2));
Cline m1 = new Cline();
m.set_length(c3, c2);
m1.set_length(c1, c3);
CRect CR = new CRect();
Console.WriteLine("矩形的周長為:{0}", CR.perimeter(m, m1));
Console.WriteLine("矩形的面積為:{0}", CR.area(m, m1));
Console.ReadKey(true);
}
}
class CPoint
{
private int x;
private int y;
public CPoint(int x1,int y2)
{
x = x1;
y = y2;
}
public CPoint()
{
x = 60;
y = 75;
}
public void display()
{
Console.WriteLine("x = {0} y = {1}",x,y);
}
public void setpoint(int x1, int y1)
{
x = x1;
y = y1;
}
public int get_x()
{
return x;
}
public int get_y()
{
return y;
}
}
class Cline:CPoint
{
public double a;
public Cline(int a1)
{
a = a1;
}
public Cline()
{
a = 0;
}
public double distence(CPoint c1,CPoint c2)
{
return a = Math.Sqrt((Math.Pow((c1.get_x()-c2.get_x()),2)+Math.Pow((c1.get_y()-c2.get_y()),2)));
}
public double get_length()
{
return a;
}
public void set_length(CPoint c1, CPoint c2)
{
a = distence(c1,c2);
}
}
class CRect:Cline
{
public double m;
public double n;
public CRect(double a1,double b1)
{
m = a1;
n = b1;
}
public CRect()
{
m = 0;
n = 0;
}
public double perimeter(Cline c1,Cline c2)
{
return m = 2 * (c1.get_length() + c2.get_length());
}
public double area(Cline c1, Cline c2)
{
return n = c1.get_length() * c2.get_length();
}
}
}
運行結果:
經驗積累
1.上面的程序還有一點點沒有完善,主要是派生類構造函數那一塊,因為涉及了Base ,說以學了Base 和This之間的區別之後再繼續完善。
2.感覺和C++大同小異。