设计一个Windows应用程序,该程序定义平面图形抽象类和其派生类圆、矩形和三角形。该程序实现的功能包括:输入相应图形的参数,如矩形的长和宽,单击相应的按钮,根据输入参数创建图形类并输出该图形的面积。
(1)常见一个Windows应用程序——Myproject6_1
(2)添加控件,输入框的name属性分别为:txtdata1、txtdata2、txtdisplay,按钮的name分别为:btnCircle、btnRect、btnTran。如图:
(3)代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Myproject6_1
{

public partial class Form1 : Form
{public Form1(){InitializeComponent();}
//“圆”按钮单击事件private void btnCircle_Click(object sender, EventArgs e){if (txtdata1.Text == "")MessageBox.Show("请输入圆的半径!!");else{int data1 = Convert.ToInt32(txtdata1.Text);Circle shape1 = new Circle(data1);txtdisplay.Text += shape1.Display("圆");txtdata1.Text = "";}}//“矩形”按钮的单击事件private void btnRect_Click(object sender, EventArgs e){if (txtdata1.Text == ""  )MessageBox.Show("请输入矩形的长!!");else if(txtdata2.Text == "")MessageBox.Show("请输入矩形的宽!!");else{int data1 = Convert.ToInt32(txtdata1.Text);int data2 = Convert.ToInt32(txtdata2.Text);Rectangle shape2 = new Rectangle(data1,data2);txtdisplay.Text += shape2.Display("矩形");txtdata1.Text = "";txtdata2.Text = "";}}

//“三角形”按钮的单击事件
private void btnTran_Click(object sender, EventArgs e)
{
if (txtdata1.Text == “” )
MessageBox.Show(“请输入三角形的底!!”);
else if(txtdata2.Text == “”)
MessageBox.Show(“请输入三角形的高!!”);
else
{
int data1 = Convert.ToInt32(txtdata1.Text);
int data2 = Convert.ToInt32(txtdata2.Text);
Trangle shape3 = new Trangle(data1, data2);
txtdisplay.Text += shape3.Display(“三角形”);
txtdata1.Text = “”;
txtdata2.Text = “”;
}
}
}

//平面图形抽象类
public abstract class Shape
{
public abstract double Area();
public string Display(string type)
{
string str;
if (type == “圆”)
str = string.Format(“圆的面积为:”+Area());
else if (type == “矩形”)
str = string.Format(“矩形的面积为:”+Area());
else
str = string.Format(“三角形的面积为:”+Area());
return str+"\r\n";

    }
}

//图形派生类——圆形类
public class Circle : Shape
{
private int data1;
public Circle(int data1)
{
this.data1 = data1;
}
public override double Area()
{
const double PI = 3.14;
double s = PI * data1 * data1;
return s;
}
}
//图形派生类——矩形类
public class Rectangle : Shape
{
private int data1;
private int data2;
public Rectangle(int data1,int data2)
{
this.data1 = data1;
this.data2 = data2;
}
public override double Area()
{
double s = data1data2;
return s;
}
}
//图形派生类——三角形类
public class Trangle : Shape
{
private int data1;
private int data2;
public Trangle(int data1,int data2)
{
this.data1 = data1;
this.data2 = data2;
}
public override double Area()
{
double s = data1
data2/2;
return s;
}
}
}
(4)运行结果:
输入圆半径——10:

输入矩形的长——4,宽——5:
输入三角形底——6,高——6:
提示输入框:
直接单击“圆”按钮:
输入矩形长——6,宽未输入:
输入三角形的高——8,底未输入:

设计Windows应用程序,该程序定义平面图形抽象类和其派生类圆、矩形和三角形。相关推荐

  1. C#设计一个Windows应用程序,在该程序中首先构造中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”“中学生”“大学生”)将分别创建不同的学生对象,并输入当前的学生总人数,该学生的

    设计一个Windows应用程序,在该程序中首先构造中学生.大学生等派生类,当输入相关数据,单击不同的按钮("小学生""中学生""大学生")将 ...

  2. java 创建水果_java程序题:定义一个抽象类-水果,其中包括getWeight()方法,编写程序分别创建苹果、...

    java程序题:定义一个抽象类-水果,其中包括getWeight()方法,编写程序分别创建苹果. 关注:286  答案:3  信息版本:手机版 电脑版 解决时间 2021-01-17 06:08 提问 ...

  3. PTA习题 7-4 定义抽象类Person、派生类Student和类Teacher

    7-4 定义抽象类Person.派生类Student和类Teacher 分数 10 设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测 ...

  4. 定义一个名为Rectangle的类表示矩形,其中含有length和width两个double型的成员变量表示长和宽。要求为每一个变量定义访问方法和修改方法......

    标题定义一个名为Rectangle的类表示矩形,其中含有length和width两个double型的成员变量表示长和宽.要求为每一个变量定义访问方法和修改方法,定义求矩形周长的方法getPerimet ...

  5. PTA---C++实现,定义抽象类Person、派生类Student和类Teacher

    问题描述:设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测试. 数据成员定义: Person [ID,姓名,生日] Student ...

  6. 定义抽象类Person、派生类Student和类Teacher

    设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测试. 数据成员定义: Person [ID,姓名,生日] Student [专业,成 ...

  7. 7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)

    7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形) ...

  8. Essential C++学习记录笔记整理35(定义一个派生类)

    目录 派生类: 一些机制的说明 纯虚函数和虚函数的补充 类继承的一些原则和注意(对于继承过来的数据成员/成员函数) 跳过虚函数机制 派生类同名成员优先被调用机制 如何在派生类调用基类的成员函数(该成员 ...

  9. 设计一个Windows应用程序,要求如下: 构造一个产品基类。 分别定义家电、日用百货、衣服等派生类,具体要求有不同的特征和行为。 定义一个泛型货架类,约束参数类型为产品

    设计一个Windows应用程序,要求如下: 构造一个产品基类. 分别定义家电.日用百货.衣服等派生类,具体要求有不同的特征和行为. 定义一个泛型货架类,约束参数类型为产品类.该泛型的货架类包括一个泛型 ...

最新文章

  1. 常用memcached命令详解
  2. 解决 Virtual PC 在 XP PAE模式下无法运行的问题
  3. HTML常见小问题2
  4. 数字锁相环的matlab仿真
  5. 全球农业资源利用与粮食安全研讨会 国际农民丰收节贸易会
  6. windbg学习-----n(Set Number base)
  7. elasticsearch api中的delete操作
  8. 福建省计算机学会 noip比赛,重磅!福州一三附学生领衔全省前九名!他们将代表福建参加全国比赛!...
  9. 读取无线手柄数据_xbox series x/s 手柄开箱
  10. VS2008 JS脚本调试总是调试旧代码 真不知道怎么回事?谁能帮帮我呀!
  11. CISO的真正挑战:密码管理、IoT安全合规性
  12. oracle主键从键怎么看,分析Oracle主键的跳号现象
  13. 你缺的不是时间而是专注力
  14. 解析几何 | 吕子根 设三平行平面 $\pi_i:\ Ax+By+Cz+D_i=0\,(i=1,2,3),L,M,N$ 依次是平面 $\pi_1,\pi_2,\pi_3$ 上的任意点,求 $\tria
  15. 从零开始Android游戏编程(第二版) 第九章 游戏程序的生命周期
  16. 3、NDK下载、安装
  17. 代数法化简逻辑函数方法集合
  18. UiPath PDF拆分与合并
  19. java中常用的摘要算法
  20. 大数据查询语句SQL

热门文章

  1. 关于JVM调优的工具及JVM 常见调优参数
  2. 《元宇宙工程》南京首发 落地实用是关键
  3. 怎么下载python3.5.2_Python3.5.2
  4. 【BIM模型生成点云数据】revit转obj格式,全网最详细最简单的步骤了!
  5. comment.html手机文件,comment HTML元素
  6. “东方神眼”张国桢为阿里云人工智能ET授课
  7. el-calendar日历组件
  8. H2数据库缓存设置上限
  9. MySQL(十):分库分表方案
  10. python之声明变量