.NET实验二
实验名称:实验二 面向对象程序设计
一、 实验目的
1. 理解类的定义、继承等面向对象的的基本概念;
2. 掌握 C#语言定义类及其各种成员(字段,属性,方法)的方法;
3. 掌握方法覆盖的应用;
4. 掌握接口的定义和实现方法。
二、实验要求
根据要求,编写 C#程序,并将程序代码和运行结果写入实验报告。
二、 实验内容
- 设计编写一个控制台应用程序,输入某个成年人的性别、身高和体重,计算其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实验二的更多相关文章
- 20145215&20145307《信息安全系统设计基础》实验二 固件设计
20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...
- FPGA与simulink联合实时环路系列——实验二LED
实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...
- 20145204&20145212信息安全系统实验二
20145204&20145212信息安全系统实验二 链接
- 20145204&20145212实验二报告
实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...
- 20145215实验二 Java面向对象程序设计
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...
- 实验二 用C语言表示进程的调度
实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...
- 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 实验二 PHP基本语法实验
实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l 操作系统:Windowsxp l Web服务器:Apache ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
随机推荐
- select选项中的内容和其他输入框不对齐
有时候总会遇见莫名其妙的问题,如图中(为了清除的表示问题,我又用画图将偏离更夸张些).为了解决这个问题,只好取消样式优化,同时自己加小箭头.但是为什么会有这样的问题啊 /*取消iphone样式优化*/ ...
- python中使用to_excel时如何不覆盖原有数据来新建sheet页
经常通过各种三方库操作Excel时,会遇到各种问题.这个库不支持这个方法,那个库支持但是又会丢失原来的数据....都是问题! . . . import openpyxl import pandas a ...
- 模块一:时间模块、random模块、hashlib模块、日志模块
模块:就是一系列功能的集合体,有以下分类:*解释器内建模块*python标准库(位于python解释器安装目录的lib文件夹下)*第三方模块(通过(pip install 模块名)语法下载到pytho ...
- Sql Server 服务无法正常启动,126异常
SQL Server 一记 异常信息 方法/步骤 打开[开始菜单]找到软件SQL Server下面的[配置管理器] 可以看到数据库主服务是 '停止' 状态: ![数据库主服务 展开[SQL Serve ...
- Ant Design 抽屉(tabel)
效果图如下,因部分涉及到人员隐私,所以打码了,就是一些图片文字信息. 有不足的地方可以麻烦提出来的,一起学习的. <template> <a-drawer v-model:visib ...
- 小凡的Python之路——启航
小凡,经过自己的努力考上了一所普通的二本大学.高考填写志愿的时候,根本不知道选择什么专业,稀里糊涂的被调剂到"应用统计学". 老师和同学都说,现在是大数据时代,数据分析现在是热门岗 ...
- 1.2 Git&Github
Git&GitHub 一.必做部分 1.Git的安装与命令学习 下载&安装 PC端科学经费不足所以Github下载一直失败,最后去官网https://gitforwindows.org ...
- 定长线程池Demo
1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 4 /** 5 * ...
- Linux python后台任务
Ubuntu 后台持续运行python服务 一般使用 nohup python -u app.py>t.log 2>&1 & nohup python3 -u app.py ...
- 配置SASS过程
1.首先在电脑上安装Node.js 2.其次在命令行配置npm,命令:npm init.运行后会创建一个package.json文件 3.然后输入命令配置npm中可以使用SASS的包,命令:npm i ...