C# 类的继承问题 正方形周长面积计算问题
1. 设计编写一个控制台应用程序,练习类的继承。
(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 Testing2_1
{
abstract class People
{
public String name; //姓名
public String Name //姓名属性
{
get;
set;
}
public String age; //年龄
public abstract void work(); //work方法
}
class Stu:People
{
public String school; //增加学校的字段
public override void work()
{
Console.WriteLine("这是Student类!");
}
}
class Employer :People //Empoyer类
{
public String workplace;
public override void work()
{
Console.WriteLine("这是Employer类!");
}
}
class Program
{
static void Main(string[] args)
{
Stu stu = new Stu();
Console.WriteLine("请输入学生的姓名:");
stu.name=Console.ReadLine();
Console.WriteLine("请输入学生的小名:");
stu.Name = Console.ReadLine();
Console.WriteLine("请输入学生的年龄:");
stu.age = Console.ReadLine();
Console.WriteLine("请输入学生的学校:");
stu.school = Console.ReadLine();
Console.WriteLine("学生的姓名:{0}", stu.name);
Console.WriteLine("学生的小名:{0}", stu.Name);
Console.WriteLine("学生的年龄:{0}", stu.age);
Console.WriteLine("学生的学校:{0}", stu.school);
stu.work();
Employer emp = new Employer();
Console.WriteLine("请输入员工的姓名:");
emp.name = Console.ReadLine();
Console.WriteLine("请输入员工的年龄:");
emp.age = Console.ReadLine();
Console.WriteLine("请输入员工的工作地点:");
emp.workplace = Console.ReadLine();
Console.WriteLine("员工的姓名:{0}", emp.name);
Console.WriteLine("员工的年龄:{0}", emp.age);
Console.WriteLine("员工的工作地点:{0}", emp.workplace);
emp.work();
Console.ReadLine();
Console.ReadLine(); }
}
}
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 Testing2_2
{
public interface IShape
{
void initalize(); //初始化
decimal getPerimeter(); //获取边长
decimal getArea(); //获取面积
}
public interface IDisplayresult
{
void show(); //结果显示
}
public class Square:IShape,IDisplayresult
{
public decimal sidelength;
public void initalize()
{
Console.WriteLine("请输入正方形边长:");
do
{
sidelength = decimal.Parse(Console.ReadLine());
if (sidelength <= 0)
{
Console.WriteLine("输入错误!请重新输入:"); } }while (sidelength <= 0); }
public decimal getPerimeter() //正方形获取面积的实现
{
return 4 * sidelength;
}
public decimal getArea()
{
return sidelength * sidelength;
}
public void show()
{
Console.WriteLine("正方形周长:{0}", getPerimeter());
Console.WriteLine("正方形面积:{0}", getArea());
}
}public class Circle:IShape,IDisplayresult
{
decimal radius;
const decimal pi = 3.14M;
public void initalize() //圆形初始化实现
{
Console.WriteLine("请输入圆形半径:");
do
{
radius = decimal.Parse(Console.ReadLine());
if(radius<=0)
{
Console.WriteLine("输入错误!请重新输入!"); }
} while (radius <= 0);
}
public decimal getPerimeter()
{
return 2 * pi * radius;
}
public decimal getArea()
{
return pi * radius * radius;
}
public void show()
{
Console.WriteLine("圆形周长:{0}", getPerimeter());
Console.WriteLine("圆形面积:{0}", getArea());
}
}
class Program
{
static void Main(string[] args)
{
Square squ = new Square();
Circle cir = new Circle();
int i = 0;
Console.WriteLine("欢迎进入正方形圆形周长面积计算系统!");
do
{
Console.WriteLine("菜单选择;");
Console.WriteLine("1、正方形 2、圆形 3、退出");
Console.WriteLine("请输入操作:");
i = int.Parse(Console.ReadLine());
switch (i)
{
case 1:
squ.initalize();
squ.show();
break;
case 2:
cir.initalize();
cir.show();
break;
case 3:
Console.WriteLine("感谢您的使用!");
break;
default:
Console.WriteLine("输入错误!请重新输入!");
break;
} } while (i != 3);
}
}
}
C# 类的继承问题 正方形周长面积计算问题的更多相关文章
- 第八次 Java 作业 重写正方形周长方法
# 题目 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法. 再创建一个矩形类的子类——正方形类,类中定义求面积方法.重写求周长的方法. 在主类中,输入一个正方形边长,创建正 ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- 第六周&Java实验报告四(类的继承)
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- (转)Java:类与继承
原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...
- iBatis.net 类的继承extends和懒加载
<resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...
- python 类定义 继承
0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
随机推荐
- CF20B Equation 题解
Content 解方程 \(ax^2+bx+c=0\). 数据范围:\(-10^5\leqslant a,b,c\leqslant 10^5\). Solution 很明显上求根公式. 先来给大家推推 ...
- CF652B z-sort 题解
Content 定义一个数组是 \(\text{Z}\) 排序过的,当且仅当: 对于所有的 \(i=2k+1(k\in\mathbb Z)\),\(a_i\leqslant a_{i-1}\). 对于 ...
- MVC三种分页方法
View部分: @using WebApplication1.Models;分页方法1引包 @*@using PagedList.Mvc; @using WebApplication1.Models; ...
- Python+Robot Framework实现UDS诊断自动化测试
一.环境搭建 1.概述 由于项目需要进行UDS诊断测试,所以对这方面进行了研究学习,网上很少能查询到相关资料,故记录一下UDS自动化测试开发过程,由于保密原则,案例都是Demo,希望能帮到感兴趣的朋友 ...
- Amazing!!CSS 也能实现极光?
在上次写完这篇文章 -- 巧用渐变实现高级感拉满的背景光动画 之后,文章下面的评论有同学留言,使用 CSS 可以实现极光吗? 像是这样: emmm,这有点难为人了.不过,最近我也尝试着去试了下,虽然不 ...
- Java 数据类型:集合接口Map:HashTable;HashMap;IdentityHashMap;LinkedHashMap;Properties类读取配置文件;SortedMap接口和TreeMap实现类:【线程安全的ConcurrentHashMap】
Map集合java.util.Map Map用于保存具有映射关系的数据,因此Map集合里保存着两个值,一个是用于保存Map里的key,另外一组值用于保存Map里的value.key和value都可以是 ...
- 制作一个文档同步工具,自动同步到gitee中。。。
之所以要做这个工具是为了让自己可以随时用电脑时能记录日常工作或生活.一般只需要简单记录下就行了.这样我在家里的和公司里的记录都能同步看到. 这样后期整理的时候看到几个关键词就能想起来具体的事情,有的也 ...
- JAVA结合 JSON Web Token(JWT) 工具类
引入java-jwt-3.3.0.jar . jjwt-0.9.0.jar .jackson-all-1.7.6.jar 或者maven <!-- https://mvnrepository. ...
- FastAPI 学习之路(六十)打造系统的日志输出
我们要搭建日志系统,我们使用loguru,挺不错的一个开源的日志系统.可以使用 pip install loguru 我们在common创建log.py使用方式也很简单 import os impor ...
- 【LeetCode】339. Nested List Weight Sum 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 dfs 日期 题目地址:https://leetcod ...