首页 > 其他分享 >11月12每日打卡

11月12每日打卡

时间:2023-11-12 16:56:07浏览次数:25  
标签:11 12 Console decimal Employer void WriteLine 打卡 public

实验二  面向对象程序设计

一、实验目的 

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

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

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

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

二、实验要求 

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

三、实验内容 

1. 设计编写一个控制台应用程序,练习类的继承。

(1) 编写一个抽象类 People,具有”姓名”,”年龄”字段,”姓名”属性,Work 方法。

(2) 由抽象类 People 派生出学生类 Student 和职工类 Employer,继承 People 类,并

覆盖Work 方法。

(3) 派生类 Student 增加”学校”字段,派生类 Employer 增加”工作单位”字段。

(4) 在 Student 和 Employer 实例中输出各自不同的信息。

 

源码:

using System;

 

abstract class People

{

    private string name;

    public string Name

    {

        get { return name; }

        set { name = value; }

    }

    public int Age { get; set; }

 

    public abstract void Work();

}

创建学生类 Student 和职工类 Employer

class Student : People

{

    public string School { get; set; }

 

    public override void Work()

    {

        Console.WriteLine("我是学生,我的工作是学习。");

    }

}

 

class Employer : People

{

    public string Company { get; set; }

 

    public override void Work()

    {

        Console.WriteLine("我是职工,我的工作是……(填写具体工作内容)。");

    }

}

创建实例并输出各自不同的信息

class Program

{

    static void Main(string[] args)

    {

        Student student = new Student { Name = "小明", Age = 18, School = "ABC 学校" };

        Employer employer = new Employer { Name = "张三", Age = 30, Company = "XYZ 公司" };

 

        Console.WriteLine("学生信息:");

        Console.WriteLine("姓名:" + student.Name);

        Console.WriteLine("年龄:" + student.Age);

        Console.WriteLine("学校:" + student.School);

        student.Work();

 

        Console.WriteLine("\n职工信息:");

        Console.WriteLine("姓名:" + employer.Name);

        Console.WriteLine("年龄:" + employer.Age);

        Console.WriteLine("工作单位:" + employer.Company);

        employer.Work();

    }

}

 

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

(1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea。分

别进行初始化、获取边长和面积,其返回值均为 decimal。接口 IDisplayresult 显示计算结果。 

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

接口。 

 

源码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Lab06_2

{

    public interface Ishape

    {

        void initialize();

        decimal getPerimeter();

        decimal getArea();

    }

    public interface IDisplayresult

    {

        void showResult();

 

    }

    public class Square : Ishape, IDisplayresult

    {

        decimal l;

        public void initialize()

        {

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

            do

            {

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

                if (l <= 0)

                {

                    Console.WriteLine("输入数据错误,请重新输入:");

                }

            } while (l <= 0);

        }

        public decimal getPerimeter()

        {

            return 4 * l;

        }

        public decimal getArea()

        {

            return l * l;

        }

        public void showResult()

        {

            Console.WriteLine("该正方体的周长:{0}", getPerimeter());

            Console.WriteLine("该正方体的面积:{0}", getArea());

        }

    }

    public class Circle : Ishape, IDisplayresult

    {

        static decimal pi = 3.14M;

        decimal r;

        public void initialize()

        {

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

            do

            {

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

                if (r <= 0)

                {

                    Console.WriteLine("输入数据错误,请重新输入:");

                }

            } while (r <= 0);

        }

        public decimal getPerimeter()

        {

            return 2 * r * pi;

        }

        public decimal getArea()

        {

            return pi * r * r;

        }

        public void showResult()

        {

            Console.WriteLine("该圆形的周长:{0}", getPerimeter());

            Console.WriteLine("该圆形的面积:{0}", getArea());

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            int i;

            Square sq = new Square();

            Circle cr = new Circle();

            do

            {

                Console.WriteLine("请选择 1:正方形  2:圆形  3:退出");

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

                switch (i)

                {

                    case 1: sq.initialize(); sq.showResult(); break;

                    case 2: cr.initialize(); cr.showResult(); break;

                    case 3: Console.WriteLine("感谢您的使用!!!"); break;

                    default: Console.WriteLine("输入数据错误,请重新输入:"); break;

                }

                Console.Write("\n请按任意键继续...");

                Console.ReadKey();

                Console.Clear();

            } while (i != 3);

 

        }

    }

}

四、实验总结 

通过完成这个实验,你应该对类的定义、继承、成员的使用(字段、属性、方法)、方法覆盖和接口的实现有了更深入的了解。这些概念和技术是面向对象编程中非常重要的组成部分,对于构建灵活、可扩展和可维护的应用程序至关重要。继续进行练习和实践,不断加强对这些概念和技巧的理解和应用。

 

标签:11,12,Console,decimal,Employer,void,WriteLine,打卡,public
From: https://www.cnblogs.com/yunbianshangdadun/p/17827389.html

相关文章

  • 【11.0】Go语言基础之结构体
    【一】什么是结构体结构体是用户定义的类型,表示若干个字段(Field)的集合。有时应该把数据整合在一起,而不是让这些数据没有联系。这种情况下可以使用结构体。例如,一个职员有firstName、lastName和age三个属性,而把这些属性组合在一个结构体employee中就很合理。【二】......
  • 2023.11.12日报
    今天主要在做大数据实验三,有个问题记录一下代码如下packageTest3;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.*;importorg.apache.hadoop.hbase.client.*;importorg.apache.hadoop.hbase.util.Bytes;importjava.io.IOException;p......
  • Acwing.第 129 场周赛
    Acwing.第129场周赛比赛地址A.字符串题目思路:只需要用到reverse()反转函数就可以代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; reverse(s.begin(),s.end()); cout<<s<<endl; }intmain(){ intt=1; while(t--){ solv......
  • 20211314王艺达 学习笔记9
    第六章信号和信号处理摘要本章讲述了信号和信号处理;介绍了信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断,将进程从正常执行转移到信号处理;解释了信号的来源,包括来自硬件、异常和其他进程的信号;然后举例说明了信号在Unix/Linux中的常见用法;详细解释了Unix/L......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记9(必做)
    学习笔记9信号和中断Unix/Linux中的信号处理信号处理步骤与异常Linux中的IPC实践过程信号和中断“中断”是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。“信号”是发送给进程的请求,将进程从正常执行转移到中断处理。中断的概念和机制......
  • 每日总结11.9
    今天是一天紧张而充实的学习日程。上午的UML建模课程让我有机会在实验室进行实际的机器建模实验。这种实践性的学习使我更深入地理解了UML在软件开发中的应用,虽然有一些复杂,但也为我未来的工作奠定了坚实的基础。随后的乒乓球小组比赛带来了一些身体上的锻炼,尽管很累,但运动的......
  • 每日总结11.1
    今天上午参加了英语课,老师分享了一些有关英语四六级的应试技巧,让我受益匪浅。首先,老师强调了词汇的重要性,鼓励我们通过多读多记,积累更多单词。他建议使用词汇书、APP等工具,制定科学的记忆计划。其次,老师提到了阅读理解的策略。他建议在有限的时间内,先快速浏览全文,获取整体理解,然后......
  • 每日总结11.2
    今天是一天充实而有趣的学习日程。上午的体育课中,我们参加了一场激烈的比赛。我很高兴能获得第四名的好成绩,这也让我感受到了运动的快乐与成就感。体育活动不仅锻炼了身体,还增强了团队协作和竞争意识。下午的算法与数据结构课程更是让我受益匪浅。老师讲解内容非常认真,我成功地理......
  • 每日总结11.3
    今天是室友的生日,我们一起出去庆祝,选择了火锅作为晚餐的主题。在热腾腾的火锅台前,我们欢笑聊天,共度了一个温馨而愉快的时光。桌上摆满了各种食材,新鲜的肉类、蔬菜和各种调味料,使得整个聚餐变得更加丰富多彩。大家围坐在一起,互相分享着食材,增进了彼此之间的感情。在这个特殊的日子......
  • 每日总结11.6
    上周感染了风寒,这周一上午又着凉老寒腿犯了,结果是下午发烧,无奈和老师请假,还说是低烧,说实话生病的时候真的很容易玻璃心,想哭想回家,但是最后也同意我请假了,在宿舍自己躺着,又冷又疼,真的很讨厌这种感觉......