【C#】上机实验三
实验1:
定义一个 TimePeiod 类
包含: hour , minute , second
实现时间的在 时分秒上的加法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyProject
{
class Program
{
static void Main(string[] args)
{
// 显示"08:47:00"
TimePeriod time = new TimePeriod(, , );
Console.WriteLine( time ); // 显示"12:00:00"
time.Hour = ;
time.Minute = ;
time.Second = ;
time.Add_Hour();
time.Add_Minute();
time.Add_Second();
Console.WriteLine( time ); // 显示"01:02:03"
time.Hour = time.Minute = time.Second = ;
time.Add_Second( + + );
Console.WriteLine(time); // 显示"Day + 1 , 01:02:03"
time.Hour = time.Minute = time.Second = ;
time.Add_Second( * + + );
Console.WriteLine(time);
}
}
class TimePeriod
{
//类中定义 时,分,秒 3个私有字段
private int hour;
private int minute;
private int second; //类中定义3个公有属性 分别对应上述3个字段
public int Hour { get { return hour; } set { hour = value; } }
public int Minute { get { return minute; } set { minute = value; } }
public int Second { get { return second; } set { second = value; } } //类中定义3个公有方法分别将时间增加n秒,n分,n时.
public void Add_Hour( int hour)
{
this.hour += hour ;
if( this.hour >= )
{
Console.Write( "Day + {0} ," , this.hour/ );
this.hour %= ;
}
}
public void Add_Minute( int minute)
{
this.minute += minute;
if( this.minute >= )
{
Add_Hour(this.minute / );
this.minute %= ;
}
}
public void Add_Second( int second)
{
this.second += second;
if( this.second >= )
{
Add_Minute(this.second / );
this.second %= ;
}
} //类中定义3个参数的构造函数,初始化3个私有字段
public TimePeriod( int hour , int minute, int second)
{
this.hour = hour;
this.minute = minute;
this.second = second;
}
public TimePeriod() : this(, , ) { } //类中定义公有方法输出:时,分,秒,3个字段的值
public override string ToString()
{
return string.Format( "{0:d2}:{1:d2}:{2:d2}",hour,minute,second);
}
}
}
时间类的练习
实验2:
实现Shape类,以及Box类的继承以及多态的练习
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyProject
{
class Program
{
static void Main(string[] args)
{
#region 测试Shape类及方法
/* 1、默认构造函数 对Length,breadth进行赋值
* 2、利用属性进行输出后,再利用属性进行赋值
* 3、最后利用ToString 输出对应的对象信息
*/
#endregion Shape s1 = new Shape(, );
Console.WriteLine("s1->Length:{0} , breadth:{1}",s1.Length,s1.Breadth);
s1.Length = ;
s1.Breadth = ;
Console.WriteLine(s1); #region 测试Box类及方法
/* 1、默认构造函数 对Length,breadth,height进行赋值
* 2、利用属性进行输出后,再利用属性进行赋值
* 3、最后利用ToString 输出对应的对象信息
*/
#endregion Box b1 = new Box(, , );
Console.WriteLine("b1->Length :{0}\tbreadth :{1}\theight :{2}",b1.Length,b1.Breadth,b1.Height);
b1.Length = ;
b1.Breadth = ;
b1.Height = ;
Console.WriteLine(b1); #region 测试多态
/*
* 多态体现在,父指针,将子类实例化.
*/
#endregion
Shape b2 = new Box(, , );
Console.WriteLine(b2); }
} public class Shape
{
private int length;
private int breadth; public int Length { get => length; set => length = value; }
public int Breadth { get => breadth; set => breadth = value; } public Shape ( int length , int width)
{
this.Length = length;
this.Breadth = Breadth;
}
public Shape():this(, ) { }
public override string ToString()
{
return string.Format("Shape -> length:{0}\t Breadth:{1}", length, Breadth);
}
#region 主要注释
/*
* 类中的字段属性封装
* 构造函数 : 两参数,零参数
* 重载ToString类
*/
#endregion
} public class Box : Shape
{
private int height;
public int Height { get => height; set => height = value; }
public Box(int length, int Breadth, int height):base(length, Breadth)
{
this.height = height;
}
public Box() : this(, , ) { }
public override string ToString()
{
return string.Format("Box -> length:{0}\t breadth:{1}\t height:{2}", Length, Breadth, height);
}
#region Box类
/*
* Box继承了Shape的所有结构
*
* 1、无法直接访问父类的字段,但可通过"属性"间接访问
* 2、在重载 构造函数时,可以直接调用父类的构造函数实现部分字段的赋值
*
*/
#endregion
}
}
类及继承练习
【C#】上机实验三的更多相关文章
- 《Java语言程序设计》上机实验
实验一 Java环境演练 [目的] ①安装并配置Java运行开发环境: ②掌握开发Java应用程序的3个步骤:编写源文件.编译源文件和运行应用程序: ③学习同时编译多个Java源文件. [内容 ...
- 实验三 CC2530平台上CC2530平台上定时器组件的
实验三 CC2530平台上CC2530平台上定时器组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530定时器的PWM功能,及其TinyOS ...
- oracle上机实验内容
这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...
- 软件测试技术lab2——Selenium上机实验
Selenium上机实验说明 1.安装SeleniumIDE插件 2.学会使用SeleniumIDE录制脚本和导出脚本 3.访问http://121.193.130.195:8080/使用学号登录系统 ...
- 2019 SDN上机第三次作业
2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 ...
- FPGA与simulink联合实时环路系列——实验三 按键key
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...
- Java实验三
20145113 20145102实验三 实验步骤 编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性 ...
- Verilog HDL那些事_建模篇笔记(实验三:按键消抖)
实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...
- 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植
实验封面 实验内容 1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下) 2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 3.把整个GIV ...
随机推荐
- HTML5 离线应用
一.离线应用cache manifes文件 HTML5中构建了一个离线(无网络状态)应用,只需创建一个cache manifest文件 可以配置需要的缓存的资源,网络无连接应用任然可以使用,本地读取缓 ...
- vue transition实现页面切换效果
我们都知道vue可以做成单页应用 点击的时候就能切换 如果我们要添加一些视觉效果 比如页面切换的时候有一个缓冲效果 这个时候就需要用到vue里的transition这个标签 在使用这个标签之前需要了 ...
- C++之Lambda研究
目录 目录 1 1. 前言 1 2. 示例1 1 3. 示例2 2 4. 示例3 3 5. 示例4 3 6. 示例5 6 7. 匿名类规则 6 8. 参考资料 7 1. 前言 本文代码测试环境为“GC ...
- python基础代码
from heapq import *; from collections import *; import random as rd; import operator as op; import r ...
- mysql mod() 获取余数
mysql> ,); +-----------+ | mod(,) | +-----------+ | | +-----------+ row in set (0.00 sec)
- el-table里面的列需要对比两个返回参数
需求是这样的--- 已发布时间超过30分钟,显示黄色,超过一个钟显示红色 现在后台返回的时间的格式是2018-10-22 11:23:23的格式 做法是: 第一步: 先将后台返回的格式转化为时间戳,然 ...
- python安装redis库
pip install redis 没有相应的资源 可以到redisio上找到clients, https://redis.io/clients 如下所示 下图中带黄五角星的为官方推荐的: 下 ...
- java.lang.Error: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
有时候出现这种怪异的问题,是由于多个版本的class存在. 比如说:某个java编译成class后,放到classes下面,然后lib目录下,也有这个class所在的jar包,这样就导致classpa ...
- javacpp, javacv: 封装了FFmpeg、OpenCV等计算机视觉编程人员常用库的接口
jvavacpp: 一个java调用jni的库,支持安卓. javacv: 封装了FFmpeg.OpenCV等计算机视觉编程人员常用库的接口,可以通过其中的Utility类方便的在包 ...
- Aspect切面的使用实例
一.导入切面库 以maven工程为例,除了springmvc基础的库,需要导入切面库,本例aspectj为例. <properties> <aspectj.version>&l ...