【C#】上机实验五
、设计一个控制台应用程序,定义一个MyPoint类,该类能表示二维平面空间的点,完成点类及运算符重载等相关功能。具体要求如下:
()MyPoint类中定义2个私有字段x和y及相应的构造函数。
()MyPoint类中重载ToString方法输出坐标x和y的值。
()MyPoint类中重载一元运算符“-”。
()MyPoint类中重载二元运算符“+”和“-”。
()MyPoint类中重载二元运算符“>”和“<”。
()MyPoint类中重载二元运算符“==”和“!=”。
()在Main方法中测试上述运算符。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Myproject
{
class Program
{
static void Main(string[] args)
{
Mypoint a = new Mypoint(, );
Mypoint b = new Mypoint(, );
Mypoint c = new Mypoint(, );
Console.WriteLine( "Check: a+b " + (a + b) );
Console.WriteLine( "Check: a-b " + (a - b) ); Console.WriteLine( "Check: < , > , != , == " );
if (a < c) Console.WriteLine("a < c ");
if( c > a) Console.WriteLine("c > a" ); if( a + b != a)
{
Console.WriteLine("a + b != a");
} if ( a + b == c)
{
Console.WriteLine("a + b == c");
}
}
}
public class Mypoint
{
int x, y; public Mypoint(int x, int y)
{
this.x = x;
this.y = y;
}
public Mypoint() : this(, ) { }
public int X { get { return x; } set { x = value; } }
public int Y { get { return y; } set { y = value; } }
public override string ToString()
{
return string.Format("({0},{1})", x, y);
} public static Mypoint operator - (Mypoint u)
{
Mypoint p = new Mypoint();
p.X = -u.X;
p.Y = -u.Y;
return p;
} public static Mypoint operator + (Mypoint u, Mypoint v)
{
Mypoint p = new Mypoint();
p.X = u.X + v.X;
p.Y = u.Y + v.Y;
return p;
} public static Mypoint operator -(Mypoint u, Mypoint v)
{
Mypoint p = new Mypoint();
p.X = u.X - v.X;
p.Y = u.Y - v.Y;
return p;
} public static bool operator >(Mypoint u, Mypoint v)
{
bool status = false ;
if( u.X >= v.X && u.Y >= v.Y)
{
status = true;
}
return status;
} public static bool operator <(Mypoint u, Mypoint v)
{
bool status = false;
if (u.X <= v.X && u.Y <= v.Y)
{
status = true;
}
return status;
} public static bool operator ==(Mypoint u, Mypoint v)
{
bool status = false;
if (u.X == v.X && u.Y == v.Y)
{
status = true;
}
return status;
} public static bool operator !=(Mypoint u, Mypoint v)
{
bool status = false;
if (u.X != v.X || u.Y != v.Y)
{
status = true;
}
return status;
} } }
、设计一个控制台应用程序,定义一个Box类,该类表示一个立方体,完成该类运算符重载等相关功能。具体要求如下:
()Box类中定义3个私有字段(代表长、宽、高)及相应的构造函数
()MyPoint类中重载ToString方法输出长宽高的值。
()Box类中重载一元运算符“-”。
()Box类中重载二元运算符“+”和“-”。
()Box类中重载二元运算符“>”和“<”。
()Box类中重载二元运算符“==”和“!=”。
()在Main方法中测试上述运算符。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Myproject
{
class Program
{
static void Main(string[] args)
{
Box b1 = new Box(, , );
Box b2 = new Box(, , );
Box b3 = new Box(, , ); Console.WriteLine("Check: b1 + b2 " + (b1 + b2));
Console.WriteLine("Check: -b1 " + b1);
Console.WriteLine("Check: > , < , == , != ");
if (b2 > b1) Console.WriteLine("b2 > b1");
if (b1 < b2) Console.WriteLine("b1 < b2"); if (b1 + b2 == b3) Console.WriteLine("b1 + b2 == b3 ");
if (b1 + b2 != b1) Console.WriteLine("b1 + b2 != b1 ");
}
}
class Box
{
private int length, width, height; public Box(int length, int width, int height)
{
this.length = length;
this.width = width;
this.height = height;
} public Box() : this(, , ) { }
public int Length { get { return length; } set { length = value; } }
public int Width { get { return width; } set { width = value; } }
public int Height { get { return height; } set { height = value; } } public override string ToString()
{
return string.Format("( {0} , {1} , {2} )",length,width,height);
}
public static Box operator +(Box rhs)
{
Box res = new Box();
res.height = - rhs.height;
res.length = - rhs.length;
res.width = - rhs.width;
return res;
} public static Box operator + (Box lhs , Box rhs)
{
Box res = new Box();
res.height = lhs.height + rhs.height;
res.length = lhs.length + rhs.length;
res.width = lhs.width + rhs.width;
return res;
} public static Box operator - (Box lhs, Box rhs)
{
Box res = new Box();
res.height = lhs.height - rhs.height;
res.length = lhs.length - rhs.length;
res.width = lhs.width - rhs.width;
return res;
} public static bool operator >(Box lhs, Box rhs)
{
bool status = false;
if (lhs.length > rhs.length &&
lhs.width > rhs.width &&
lhs.height > rhs.height)
{
status = true;
}
return status;
} public static bool operator <(Box lhs, Box rhs)
{
bool status = false;
if (lhs.length < rhs.length &&
lhs.width < rhs.width &&
lhs.height < rhs.height)
{
status = true;
}
return status;
} public static bool operator == (Box lhs, Box rhs)
{
bool status = false;
if (lhs.length == rhs.length &&
lhs.width == rhs.width &&
lhs.height == rhs.height)
{
status = true;
}
return status;
} public static bool operator !=(Box lhs, Box rhs)
{
bool status = false;
if (lhs.length != rhs.length ||
lhs.width != rhs.width ||
lhs.height != rhs.height)
{
status = true;
}
return status;
}
}
}
【C#】上机实验五的更多相关文章
- SDN第五次上机实验
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解. 1.通过源码安装RYU控制器 sudo apt-get install python3-pip git clo ...
- 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...
- 实验五 CC2530平台上ADC组件的TinyOS编程
实验五 CC2530平台上ADC组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握传感器的ADC组件应用方法 学生通过本实验能够初步的了解和掌握CC ...
- oracle上机实验内容
这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...
- SDN上机第五次作业
2019 SDN上机第五次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.1描述官方教程实现了一个什么样的交换机功能? 答:官方教程实 ...
- 20145215&20145307《信息安全系统设计基础》实验五 网络通信
小组成员:20145215卢肖明.20145307陈俊达 实验报告链接:信息安全系统设计基础--实验五实验报告
- 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验
20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...
- 20145208《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验
20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验 20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验
- 20145315&20145307《信息安全系统设计基础》实验五
20145315&20145307<信息安全系统设计基础>实验五 北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1453 1452 姓名:陈俊达 ...
随机推荐
- callbag js callback 标准-支持轻量级观测以及迭代
callbag 是一个js 的回调标准,方便开发支持观测以及迭代的代码 类似已经有好多的实现了 callbag-basics 比rxjs 以及xstream 还快 wonka 说明 基于标准的开发,对 ...
- 13-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,IEEE754规约
https://www.cnblogs.com/yangfengwu/p/11100552.html 这节做个上位机控制Wi-Fi引脚输出的PWM占空比信号,灯的亮度就可以用上位机控制了 大家可以自己 ...
- Postgresql 时间串转换格式
1. 时间:02-AUG-18 17:01:34 转成正常 年月日 时分秒 select to_char(to_timestamp('02-AUG-18 17:01:34', 'dd-mon-yy,h ...
- 我的Android前生今世之缘-学习经验-安卓入门教程(六)
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 据我所知,网上教学资料一堆一堆的,那么还有很多人说,如何学习? ...
- 小技巧--解决eclipse导入的jar文件后,无法使用默认包中的方法问题
问题:我已经导入了stdlib的jar文件,但是由于包是(default package)所以无法使用包中的方法 解决方法: 1.新建一个项目 2.新建一个文件夹 3.打开项目,新建一个包,然后导入j ...
- 使用pwn_deploy_chroot部署国赛pwn比赛题目
目录 使用pwn_deploy_chroot部署国赛pwn比赛题目 一.前言 二.Docker 三.部署镜像 四.pwn_deploy_chroot 五.check && exp 六. ...
- CEF拦截js层alert弹窗 OnJSDialog 《转》
一 引言 CEF3嵌入后,用JS 弹出Alert框,按钮错位,确定按钮勉强能看到.很难看.为了改善体验,决定重写提示框. 环境:VS2008 VC MFC. 二 原理 参看类 CefJSDia ...
- spring源码的设计模式
转:https://blog.csdn.net/huyang0304/article/details/82928900 接下来我们只介绍在Spring中常用的设计模式. 1.1.简单工厂模式(Fact ...
- matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...
- oracle 应用程序调用存储函数
package com.founder.ec.common.lucene; import java.sql.CallableStatement; import java.sql.Connection; ...