1. 、设计一个控制台应用程序,定义一个MyPoint类,该类能表示二维平面空间的点,完成点类及运算符重载等相关功能。具体要求如下:
  2. ()MyPoint类中定义2个私有字段xy及相应的构造函数。
  3. ()MyPoint类中重载ToString方法输出坐标xy的值。
  4. ()MyPoint类中重载一元运算符“-”。
  5. ()MyPoint类中重载二元运算符“+”和“-”。
  6. ()MyPoint类中重载二元运算符“>”和“<”。
  7. ()MyPoint类中重载二元运算符“==”和“!=”。
  8. ()在Main方法中测试上述运算符。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Myproject
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Mypoint a = new Mypoint(, );
  14. Mypoint b = new Mypoint(, );
  15. Mypoint c = new Mypoint(, );
  16. Console.WriteLine( "Check: a+b " + (a + b) );
  17. Console.WriteLine( "Check: a-b " + (a - b) );
  18.  
  19. Console.WriteLine( "Check: < , > , != , == " );
  20. if (a < c) Console.WriteLine("a < c ");
  21. if( c > a) Console.WriteLine("c > a" );
  22.  
  23. if( a + b != a)
  24. {
  25. Console.WriteLine("a + b != a");
  26. }
  27.  
  28. if ( a + b == c)
  29. {
  30. Console.WriteLine("a + b == c");
  31. }
  32. }
  33. }
  34. public class Mypoint
  35. {
  36. int x, y;
  37.  
  38. public Mypoint(int x, int y)
  39. {
  40. this.x = x;
  41. this.y = y;
  42. }
  43. public Mypoint() : this(, ) { }
  44. public int X { get { return x; } set { x = value; } }
  45. public int Y { get { return y; } set { y = value; } }
  46. public override string ToString()
  47. {
  48. return string.Format("({0},{1})", x, y);
  49. }
  50.  
  51. public static Mypoint operator - (Mypoint u)
  52. {
  53. Mypoint p = new Mypoint();
  54. p.X = -u.X;
  55. p.Y = -u.Y;
  56. return p;
  57. }
  58.  
  59. public static Mypoint operator + (Mypoint u, Mypoint v)
  60. {
  61. Mypoint p = new Mypoint();
  62. p.X = u.X + v.X;
  63. p.Y = u.Y + v.Y;
  64. return p;
  65. }
  66.  
  67. public static Mypoint operator -(Mypoint u, Mypoint v)
  68. {
  69. Mypoint p = new Mypoint();
  70. p.X = u.X - v.X;
  71. p.Y = u.Y - v.Y;
  72. return p;
  73. }
  74.  
  75. public static bool operator >(Mypoint u, Mypoint v)
  76. {
  77. bool status = false ;
  78. if( u.X >= v.X && u.Y >= v.Y)
  79. {
  80. status = true;
  81. }
  82. return status;
  83. }
  84.  
  85. public static bool operator <(Mypoint u, Mypoint v)
  86. {
  87. bool status = false;
  88. if (u.X <= v.X && u.Y <= v.Y)
  89. {
  90. status = true;
  91. }
  92. return status;
  93. }
  94.  
  95. public static bool operator ==(Mypoint u, Mypoint v)
  96. {
  97. bool status = false;
  98. if (u.X == v.X && u.Y == v.Y)
  99. {
  100. status = true;
  101. }
  102. return status;
  103. }
  104.  
  105. public static bool operator !=(Mypoint u, Mypoint v)
  106. {
  107. bool status = false;
  108. if (u.X != v.X || u.Y != v.Y)
  109. {
  110. status = true;
  111. }
  112. return status;
  113. }
  114.  
  115. }
  116.  
  117. }

  1. 、设计一个控制台应用程序,定义一个Box类,该类表示一个立方体,完成该类运算符重载等相关功能。具体要求如下:
  2. ()Box类中定义3个私有字段(代表长、宽、高)及相应的构造函数
  3. ()MyPoint类中重载ToString方法输出长宽高的值。
  4. ()Box类中重载一元运算符“-”。
  5. ()Box类中重载二元运算符“+”和“-”。
  6. ()Box类中重载二元运算符“>”和“<”。
  7. ()Box类中重载二元运算符“==”和“!=”。
  8. ()在Main方法中测试上述运算符。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Myproject
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Box b1 = new Box(, , );
  14. Box b2 = new Box(, , );
  15. Box b3 = new Box(, , );
  16.  
  17. Console.WriteLine("Check: b1 + b2 " + (b1 + b2));
  18. Console.WriteLine("Check: -b1 " + b1);
  19. Console.WriteLine("Check: > , < , == , != ");
  20. if (b2 > b1) Console.WriteLine("b2 > b1");
  21. if (b1 < b2) Console.WriteLine("b1 < b2");
  22.  
  23. if (b1 + b2 == b3) Console.WriteLine("b1 + b2 == b3 ");
  24. if (b1 + b2 != b1) Console.WriteLine("b1 + b2 != b1 ");
  25. }
  26. }
  27. class Box
  28. {
  29. private int length, width, height;
  30.  
  31. public Box(int length, int width, int height)
  32. {
  33. this.length = length;
  34. this.width = width;
  35. this.height = height;
  36. }
  37.  
  38. public Box() : this(, , ) { }
  39. public int Length { get { return length; } set { length = value; } }
  40. public int Width { get { return width; } set { width = value; } }
  41. public int Height { get { return height; } set { height = value; } }
  42.  
  43. public override string ToString()
  44. {
  45. return string.Format("( {0} , {1} , {2} )",length,width,height);
  46. }
  47. public static Box operator +(Box rhs)
  48. {
  49. Box res = new Box();
  50. res.height = - rhs.height;
  51. res.length = - rhs.length;
  52. res.width = - rhs.width;
  53. return res;
  54. }
  55.  
  56. public static Box operator + (Box lhs , Box rhs)
  57. {
  58. Box res = new Box();
  59. res.height = lhs.height + rhs.height;
  60. res.length = lhs.length + rhs.length;
  61. res.width = lhs.width + rhs.width;
  62. return res;
  63. }
  64.  
  65. public static Box operator - (Box lhs, Box rhs)
  66. {
  67. Box res = new Box();
  68. res.height = lhs.height - rhs.height;
  69. res.length = lhs.length - rhs.length;
  70. res.width = lhs.width - rhs.width;
  71. return res;
  72. }
  73.  
  74. public static bool operator >(Box lhs, Box rhs)
  75. {
  76. bool status = false;
  77. if (lhs.length > rhs.length &&
  78. lhs.width > rhs.width &&
  79. lhs.height > rhs.height)
  80. {
  81. status = true;
  82. }
  83. return status;
  84. }
  85.  
  86. public static bool operator <(Box lhs, Box rhs)
  87. {
  88. bool status = false;
  89. if (lhs.length < rhs.length &&
  90. lhs.width < rhs.width &&
  91. lhs.height < rhs.height)
  92. {
  93. status = true;
  94. }
  95. return status;
  96. }
  97.  
  98. public static bool operator == (Box lhs, Box rhs)
  99. {
  100. bool status = false;
  101. if (lhs.length == rhs.length &&
  102. lhs.width == rhs.width &&
  103. lhs.height == rhs.height)
  104. {
  105. status = true;
  106. }
  107. return status;
  108. }
  109.  
  110. public static bool operator !=(Box lhs, Box rhs)
  111. {
  112. bool status = false;
  113. if (lhs.length != rhs.length ||
  114. lhs.width != rhs.width ||
  115. lhs.height != rhs.height)
  116. {
  117. status = true;
  118. }
  119. return status;
  120. }
  121. }
  122. }

【C#】上机实验五的更多相关文章

  1. SDN第五次上机实验

    1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解. 1.通过源码安装RYU控制器 sudo apt-get install python3-pip git clo ...

  2. 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...

  3. 实验五 CC2530平台上ADC组件的TinyOS编程

    实验五 CC2530平台上ADC组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握传感器的ADC组件应用方法 学生通过本实验能够初步的了解和掌握CC ...

  4. oracle上机实验内容

    这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...

  5. SDN上机第五次作业

    2019 SDN上机第五次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.1描述官方教程实现了一个什么样的交换机功能? 答:官方教程实 ...

  6. 20145215&20145307《信息安全系统设计基础》实验五 网络通信

    小组成员:20145215卢肖明.20145307陈俊达 实验报告链接:信息安全系统设计基础--实验五实验报告

  7. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

  8. 20145208《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验

    20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验 20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验

  9. 20145315&20145307《信息安全系统设计基础》实验五

    20145315&20145307<信息安全系统设计基础>实验五 北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1453 1452 姓名:陈俊达 ...

随机推荐

  1. mariadb启动不了

    提示地址已经被使用,是否有其他的进程正在使用 /var/run/sdata/mysql.sock 查询该文件,发现没有,sdata目录都不存在,应该是上次mysql意外关闭导致这个目录丢失了, 使用r ...

  2. 58、Spark Streaming: DStream的output操作以及foreachRDD详解

    一.output操作 1.output操作 DStream中的所有计算,都是由output操作触发的,比如print().如果没有任何output操作,那么,压根儿就不会执行定义的计算逻辑. 此外,即 ...

  3. 阿里云部署自己的web服务器

    阿里云部署自己的web服务器 [外链图片转存失败(img-GIKNTPPx-1564287221547)(https://upload-images.jianshu.io/upload_images/ ...

  4. nRF51822 主从断开连接Reason,HCI ERROR CODE :0x003E

    最近在给一个客户调主从一体的模块,基于S130,距离稍微远一点就会出现连接上后立马又断开连接的现象, 追踪了一下原因,给出的 HCI Error code 是 0x003E,暂且不知道这是什么鬼,查了 ...

  5. Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题

    今天在打包项目的过程中出现了编译问题,奇怪的是这个项目已经好久没有修改过了,报错如下. 找不到符号 [ERROR] 符号: 方法 intent(java.lang.String) [ERROR] 位置 ...

  6. 腾讯云手动搭建nginx+php-fpm并自启动

    自己一点小爱好,搭建了一个小网站植物大战僵尸百科, 使用的是腾讯云,市场里的镜像不好用,所以自己手动搭建一波. centos 7 编译安装 php-7.2.11的步骤 在官网下载php-7.2.11的 ...

  7. linux学习(2):linux服务器常用操作和命令

    linux服务器常用操作和命令 目录 1. 什么是linux服务器load average?2. 如何查看linux服务器负载3. 服务器负载高怎么办?4. 如何查看服务器内存使用率?5. 如何查看单 ...

  8. Win10提示“无法打开此计算机上的组策略对象”如何解决

    为了更好地管理电脑,很多朋友都会去编辑Windows10的组策略.不过,有部分用户反馈自己在打开组策略的时候,遇到了“无法打开此计算机上的组策略对象”提示,无法打开组策略,这是怎么回事呢?下面,小编就 ...

  9. [LINUX] 快速回收连接

    i /etc/sysctl.conf 编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_r ...

  10. Linux下使用iptables配置防火墙端口转发

    1.背景 一些情况下,在linux上面我们想使用80-1024之间的端口,这个时候需要root权限. 当时root权限容易被提权,特别是早起那些Struct2,漏洞爆出的时候,一抓一个准-root权限 ...