实验名称:实验二 面向对象程序设计

一、 实验目的

1. 理解类的定义、继承等面向对象的的基本概念;

2. 掌握 C#语言定义类及其各种成员(字段,属性,方法)的方法;

3. 掌握方法覆盖的应用;

4. 掌握接口的定义和实现方法。

二、实验要求

 

根据要求,编写 C#程序,并将程序代码和运行结果写入实验报告。

 

二、 实验内容

  1. 设计编写一个控制台应用程序,输入某个成年人的性别、身高和体重,计算其BMI体重指数,并得出结论。

 

(1) 编写一个抽象类 Adult,具有Height、Weight属性,CalculateBMI方法及Conclusion 抽象方法。

(2) 编写两个类 Man 和 Woman,继承 Adult 类,并覆盖 Conclusion 方法。

(3) 编写控制流程,输入某个成年人的性别、身高和体重。

1)源程序

using System;

using System.Globalization;

namespace Experiment_Two

{

abstract class Adult

{

public float Height;

public float Weight;

public Adult()

{

Height = 1.7F;

Weight = 60.0F;

}

public float CalculateBMI()

{

return Weight / (Height * Height);

}

public abstract void Conclusion();

}

class Man : Adult

{

public override void Conclusion()

{

float BMI = CalculateBMI();

if (BMI < 20)

{

Console.WriteLine("过轻");

}

else if (BMI < 25 && BMI >= 20)

{

Console.WriteLine("适中");

}

else if (BMI < 30 && BMI >= 25)

{

Console.WriteLine("过重");

}

else if (BMI < 35 && BMI >= 30)

{

Console.WriteLine("肥胖");

}

else

{

Console.WriteLine("非常肥胖");

}

}

}

class Woman : Adult

{

public override void Conclusion()

{

float BMI = CalculateBMI();

if (BMI < 19)

{

Console.WriteLine("过轻");

}

else if (BMI < 24 && BMI >= 19)

{

Console.WriteLine("适中");

}

else if (BMI < 29 && BMI >= 24)

{

Console.WriteLine("过重");

}

else if (BMI < 34 && BMI >= 29)

{

Console.WriteLine("肥胖");

}

else

{

Console.WriteLine("非常肥胖");

}

}

}

class Program

{

static void Main(string[] args)

{

Console.WriteLine("请输入某个成年人的性别(0代表男性):");

int a = int.Parse(Console.ReadLine());

Console.WriteLine("请输入身高(米为单位):");

string string_A = Console.ReadLine();

float value1 = float.Parse(string_A, CultureInfo.InvariantCulture.NumberFormat);

Console.WriteLine("请输入体重(千克为单位):");

string string_B = Console.ReadLine();

float value2 = float.Parse(string_B, CultureInfo.InvariantCulture.NumberFormat);

if (a == 0)

{

Man man = new Man();

man.Weight = value2;

man.Height = value1;

man.Conclusion();

}

else

{

Woman woman = new Woman();

woman.Weight = value2;

woman.Height = value1;

woman.Conclusion();

}

}

}

}

 

2) 运行结果

 

 

2.编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出。

(1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea。分别进行初始化、获取边长和面积,其返回值均为 decimal。接口 IDisplayresult 显示计算结果。

(2) 编写两个类,Square(正方形)和 Circle(圆形),实现 IShape和IDisplayresult接口。

1)源程序

using System;

public interface IShape

{

public decimal initialize(decimal l);

public decimal getPerimeter();

public decimal getArea();

}

public interface IDisplayresult

{

void showResult();

}

public class Square : IShape, IDisplayresult

{

public decimal length;

public decimal area;

public decimal initialize(decimal l)

{

length = l;

area = l;

return length;

}

public decimal getPerimeter()

{

return length;

}

public decimal getArea()

{

area = length * length;

return area;

}

public void showResult()

{

Console.WriteLine("正方形的面积是:" + getArea());

}

}

public class Circle : IShape, IDisplayresult

{

public decimal radius;

public decimal area;

private decimal pi = 3.141592653M;

public decimal initialize(decimal r)

{

radius = r;

area = 1;

return radius;

}

public decimal getPerimeter()

{

return radius;

}

public decimal getArea()

{

area = pi * radius * radius;

return area;

}

public void showResult()

{

Console.WriteLine("圆形的面积是:" + getArea());

}

}

class InterfaceImplementer : Square

{

static void Main()

{

Square square = new Square();

Console.WriteLine("请输入正方形的边长");

decimal length = decimal.Parse(Console.ReadLine());

square.initialize(length);

square.showResult();

Circle circle = new Circle();

Console.WriteLine("请输入圆形的半径");

decimal radius = decimal.Parse(Console.ReadLine());

circle.radius = radius;

circle.getArea();

circle.showResult();

}

}

2)运行结果

 

.NET实验二的更多相关文章

  1. 20145215&20145307《信息安全系统设计基础》实验二 固件设计

    20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...

  2. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  3. 20145204&20145212信息安全系统实验二

    20145204&20145212信息安全系统实验二 链接

  4. 20145204&20145212实验二报告

    实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...

  5. 20145215实验二 Java面向对象程序设计

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...

  6. 实验二 用C语言表示进程的调度

    实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...

  7. 20145218&20145240 《信息安全系统设计基础》实验二 固件设计

    20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...

  8. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  9. 实验二 PHP基本语法实验

    实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l  操作系统:Windowsxp l  Web服务器:Apache ...

  10. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

随机推荐

  1. Cplex-opl解决网络路由选择和资源分配问题

    安装Cplex 注意事项:全英文系统.安装路径.代码,会减少软件运行设置错误.(该软件对中文支持性不好) opl语言基础 [转载]CPLEX学习笔记二 – OPL的数据类型 - 知乎 (zhihu.c ...

  2. Uncaught ReferenceError: Vue is not defined(之二)

    背景最近开发的一个项目,前段时间开发过程中还好好的,最近一次打包部署后,浏览器访问一直是打不开: 打开控制台,看到的一个报错如下: 作为一个前端不太熟练的后端研发,我在网上根据关键字:Vue is n ...

  3. 312. 戳气球 (Hard)

    问题描述 312. 戳气球 (Hard) 有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获 ...

  4. es6数组去重、数组中的对象去重 && 删除数组(按条件或指定具体元素 如:id)&& 筛选去掉没有子组件的父组件

    // 数组去重 { const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,false,true,'中文' ...

  5. ES6 - 参数默认值

    1.形参初始值, 具有默认值的参数,一般位置要靠后(潜规则) function add(a,b,c=10){ return a + b + c; } let resutl = add(1,2); // ...

  6. maven install 报错 The POM for com.oracle:ojdbc6:jar:11.2.0.7.0 is missing, no dependency information available

    The POM for com.oracle:ojdbc6:jar:11.1.0.7.0 is missing, no dependency information available The POM ...

  7. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台, 官网地址:http://smsow.zhenzikj.com 我 ...

  8. linux相关命令-linux查看头两行、查看最后两行-查找一个文件里包含的error信息并且把它输出到另一个文件里-查看滚动日志-在一个目录下查找大于50M的文件-根据端口号去杀死某一个进程

    1.linux查看头两行.查看最后两行 使用head(查看前几行).tail(查看末尾几行).eg:查看/home/wenjian1的前10行内容,应该是:# head -n 10 /home/wen ...

  9. Jmeter添加BeanShell后置处理程序保存响应结果

    对于某些请求,无法通过保存响应到文件这个组件来进行保存(会出现UNKNOW文件类型). 那么就可以通过BeanShell后置处理程序来进行将响应结果直接输出到文件,并可以直接指定文件名和后缀. imp ...

  10. 【python】绘图坐标轴标题中包含上标或下标

    plt.ylabel("流量($\mathregular{m^3}$/s)")          #绘图坐标轴添加上标$\mathregular{m^3}$,若是下标m_3 不加m ...