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# 类的继承问题 正方形周长面积计算问题的更多相关文章

  1. 第八次 Java 作业 重写正方形周长方法

    # 题目 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法. 再创建一个矩形类的子类——正方形类,类中定义求面积方法.重写求周长的方法. 在主类中,输入一个正方形边长,创建正 ...

  2. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  3. 第六周&Java实验报告四(类的继承)

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...

  4. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  5. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  6. (转)Java:类与继承

    原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...

  7. iBatis.net 类的继承extends和懒加载

    <resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...

  8. python 类定义 继承

    0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...

  9. JS原型继承和类式继承

    前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...

随机推荐

  1. CF420A Start Up 题解

    Content 给定一个长度为 \(n\) 的字符串,求这个字符串整个反转过来后是否和原字符串一样. 数据范围:\(1\leqslant n\leqslant 10^5\). Solution 众所周 ...

  2. 七层LB-NGINX 客户端获取协议Proxy Protocol介绍

    协议诞生背景 在Web分布式系统中,一般会搭建复杂的load blance系统来提供高性能的web服务. 7层的SLB 有基于nginx/淘宝变种tengine的.后端RS会无法获取真实客户端IP. ...

  3. mysql联合查询更新数据库例子

    mysql联合查询更新数据库例子,用户表,部门表,把用户表中的部门属性更新为部门表的主键UPDATE user_table AS utINNER JOIN belongdept AS bd ON bd ...

  4. ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器。用springframework自带的便可

    ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器.用springframework自带的便可

  5. windows生成ssh上传git代码

    打开 执行 ssh-keygen -t rsa -C "email@email.com" #换成你的git登录账号 中间肯会有提示确认的 然后在 C:\Users(用户)\你电脑用 ...

  6. 【LeetCode】1170. Compare Strings by Frequency of the Smallest Character 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双重循环 日期 题目地址:https://leetc ...

  7. 【LeetCode】212. Word Search II 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 前缀树 日期 题目地址:https://leetco ...

  8. 【LeetCode】82. Remove Duplicates from Sorted List II 解题报告(Python&C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/remove-du ...

  9. 【Java笔记】Java使用mysql包注意

    注意 安装的mysql5.x版本对应 5.x版本的驱动包 安装的mysql8.x版本对应 8.x版本的驱动包 如果安装的MySQL版本和驱动包版本不符合,则Java的连接不了数据库

  10. MySQL8.0的下载与安装

    下载 进入官网的下载页面 点击下图中的链接 可以选择上边的 Community Server ,那样会下载压缩包,这里我选择下边的 Installer for Windows ,下载的是安装包 点击下 ...