首页 > 编程语言 >C#面向对象程序设计

C#面向对象程序设计

时间:2023-12-18 10:46:37浏览次数:33  
标签:Console People C# decimal Work 面向对象 void 程序设计 public

实验二 面向对象程序设计
一、实验目的

  1. 理解类的定义、继承等面向对象的的基本概念;
  2. 掌握C#语言定义类及其各种成员(字段,属性,方法)的方法;
  3. 掌握方法覆盖的应用;
  4. 掌握接口的定义和实现方法。
    二、实验要求
    根据要求,编写 C#程序,并将程序代码和运行结果写入实验报告。
    三、实验内容
  5. 设计编写一个控制台应用程序,练习类的继承。
    (1) 编写一个抽象类 People,具有”姓名”,”年龄”字段,”姓名”属性,Work 方法。
    (2) 由抽象类 People 派生出学生类 Student 和职工类 Employer,继承 People 类,并
    覆盖Work 方法。
    (3) 派生类 Student 增加”学校”字段,派生类 Employer 增加”工作单位”字段。
    (4) 在 Student 和 Employer 实例中输出各自不同的信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{

class Program
{
    static void Main(string[] args)
    {
        People p1, p2;
        p1 = new Student();
        p1.Work();
        p2 = new Employer();
        p2.Work();
    }
}
abstract class People
{
    public String name;
    public int age;
    public abstract void Work();
}
class Student : People
{
    public String school;
    public override void Work()
    {
        Console.WriteLine("StudentInfo!");
    }
}
class Employer : People
{
    public String workaddress;
    public override void Work()
    {
        Console.WriteLine("EmployerInfo!");
    }
}

}

  1. 编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出。
    (1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea。分
    别进行初始化、获取边长和面积,其返回值均为 decimal。接口 IDisplayresult 显示计算结果。
    (2) 编写两个类,Square(正方形)和 Circle(圆形),实现 IShape 和 IDisplayresult
    接口。

using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
Square s = new Square();
Circle c = new Circle();
s.initialize();
s.disPlay();
c.initialize();
c.disPlay();
Console.ReadKey();
}
}
interface IShape
{
decimal initialize();
decimal getPerimeter();
decimal getArea();
}
interface IDisplayresult
{
void disPlay();
}
class Square : IShape, IDisplayresult
{
public decimal a;
public decimal initialize()
{
Console.WriteLine("请输入边长:");
a = Convert.ToDecimal(Console.ReadLine());
return a;
}

    public decimal getPerimeter()
    {
        return a * 4;
    }

    public decimal getArea()
    {
        return a * a;
    }

    public void disPlay()
    {
        Console.WriteLine("周长为:" + getPerimeter());
        Console.WriteLine("面积为:" + getArea());
    }

}
class Circle : IShape, IDisplayresult
{
    public decimal l;
    public decimal initialize()
    {
        Console.WriteLine("请输入半径R:");
        l = Convert.ToDecimal(Console.ReadLine());
        return l;
    }

    public decimal getPerimeter()
    {
        return l * 2m * 3.14m;
    }

    public decimal getArea()
    {
        return l * l * 3.14m;
    }

    public void disPlay()
    {
        Console.WriteLine("周长为:" + getPerimeter());
        Console.WriteLine("面积为:" + getArea());
    }

}

}
四、实验总结
第一问的C#代码定义了一个基类 People 和两个派生类 Student 和 Employer,其中基类包含姓名和年龄字段以及抽象的 Work 方法,两个派生类分别扩展了基类,提供了自己的字段和 Work 方法实现,最后在 Main 方法中创建了两个对象,分别属于 Student 和 Employer 类,调用它们的 Work 方法输出不同的信息。
第二问的C#代码是一个简单的面向对象编程示例,它包含两个形状类,即 Square 和 Circle,这两个类都实现了两个接口,IShape 和 IDisplayresult。在 Main 方法中,首先创建了一个 Square 对象 s 和一个 Circle 对象 c,然后依次对它们进行初始化,计算周长和面积,最后使用 disPlay 方法展示计算结果。用户需要提供正方形的边长或圆的半径作为输入数据。这段代码演示了接口的使用,通过接口规定了形状类必须提供的方法,从而实现了对不同形状的周长和面积计算,并将计算结果展示给用户。这有助于提高代码的可重用性和扩展性,因为可以轻松地添加其他形状类并实现相同的接口。

标签:Console,People,C#,decimal,Work,面向对象,void,程序设计,public
From: https://www.cnblogs.com/yzx-sir/p/17910496.html

相关文章

  • 神奇的 SQL 高级处理之 Window Functions → 打破我们的局限
    什么是窗口函数 WindowFunction 也称为 OLAP(OnlineAnalyticalProcessing)函数 对数据库数据进行实时分析处理,例如市场分析、财务报表等,是标准的SQL功能中文翻译过来,叫 窗口函数 ,或者 开窗函数 ,在 Oracle 中也称 分析函数 与 聚合函数 一样......
  • oracle日期加减的三种方式
    直接加减数字selectsysdate当前时间,sysdate+1加一天,sysdate-1减一天,sysdate+(1/24)加一小时,sysdate+(1/24/60)加一分钟fromdual;使用a......
  • Rethinking and Improving Relative Position Encoding for Vision Transformer: ViT
    RethinkingandImprovingRelativePositionEncodingforVisionTransformer*Authors:[[KanWu]],[[HouwenPeng]],[[MinghaoChen]],[[JianlongFu]],[[HongyangChao]]初读印象comment::(iRPE)提出了专门用于图像的相对位置编码方法,code:Cream/iRPEatmain·mi......
  • "the tx doesn't have the correct nonce":使用hardhat调用ganache上部署的合约遇到的
    完整的报错==================>查询存证请求存证请求内容,datahash:0xaad2171441bd73b773e9a9e062753909360bdfcabbddbe93c6c58b13c5c0feaa,创建人:0xF7A1938Fecc594aaF126d46fd173cE74A659ad9A,附加信息:0x66656974757a6920616920646f756368757a69,已投票:0n,共需投票:2n==......
  • C#如何实现文件上传与下载
    这篇文章主要介绍C#如何实现文件上传与下载,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#实现文件上传代码: public ActionResult Upload()    {      // var pathUrl = "http://" + Request.Url.Authority;      var file ......
  • Educational Codeforces Round 131 (Rated for Div. 2)
    基本情况AB秒了。C知道是二分答案,check死活写不出来。C.ScheduleManagementProblem-C-Codeforces错误分析这题比较绕,搞了一个对应关系,大脑转不过来。写check的时候完全想不出合理的思路。很明显的要用桶来计数,但是怎么用不知道了。看了题解后发现,check不能遍历任......
  • 持续性能优化,从容应对挑战——澜起科技全新第五代津逮®CPU上市!
    澜起科技于今日正式向外界发布其全新第五代津逮®CPU,旨在以多方面的性能优化应对AI、HPC、数据服务、网络/5G、存储等严苛工作负载的挑战。 澜起科技第五代津逮®CPU,基于英特尔®第五代至强®可扩展处理器内核(代号:EmeraldRapids),通过了澜起科技安全预检测(PrC)测试,是面向本土市场的x......
  • Remote Dictionary Server
    Redis7.0源码环境搭建与阅读技巧 天下武功,无坚不摧,唯快不破!我的名字叫Redis,全称是RemoteDictionaryServer。有人说,组CP,除了要了解她外,还要给机会让她了解你。那么,作为开发工程师的你,是否愿意认真阅读此心法抓住机会来了解我,运用到你的系统中提升性能。我遵守BSD......
  • Oceanbase部分参数学习与验证
    Oceanbase部分参数学习与验证字符集等参数查看yuminstallobclient-y然后使用客户端连接:obclient-h172.24.110.175-P2881-uroot-p'Testxxxx'-Doceanbase-Amysql方式连接:mysql-h127.0.0.1-P2881-pTestxxxx#查看字符集:mysql>showvariableslike'%chara......
  • SslSugar导航查询与EF Core导航查询
    SqlSugar:当我们在SQLSugar中定义了两个实体类之间的关联关系时,可以使用导航属性进行关联查询。导航属性是表示一个实体对象与其他实体对象之间关联的属性。通过导航属性,我们可以方便地在查询中访问和检索相关联的实体数据。在SQLSugar中,导航属性需要满足以下条件:导航属性必须......