C#上机实验(三)

源码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
CalOprs co = new CalOprs();
co.GetOpr("3+2");
co.GetOpr("3*2");
co.GetOpr("3-2");
co.GetOpr("3/2");
}
}
interface Icalt
{
double CalResult();
}
class Cal : Icalt
{
private double op1;
private double op2;
public double Op1
{
get {
return op1;
}
set {
op1 = value;
}
}
public double Op2
{
get
{
return op2;
}
set
{
op2 = value;
}
}
public Cal() {
this.op1 = 0;
this.op2 = 0;
}
public Cal(double op1, double op2)
{
this.op1 = op1;
this.op2 = op2;
}
public virtual double CalResult()
{
return 0;
}
}
class CalAdd : Cal {
public CalAdd() : base()
{
}
public CalAdd(double op1, double op2) :base(op1,op2)
{
}
public override double CalResult()
{
return this.Op1 + this.Op2;
}
}
class CalSub : Cal
{
public CalSub()
: base()
{
}
public CalSub(double op1, double op2)
: base(op1, op2)
{
}
public override double CalResult()
{
return this.Op1 - this.Op2;
}
}
class CalMul : Cal
{
public CalMul()
: base()
{
}
public CalMul(double op1, double op2)
: base(op1, op2)
{
}
public override double CalResult()
{
return this.Op1 * this.Op2;
}
}
class CalDiv : Cal
{
public CalDiv()
: base()
{
}
public CalDiv(double op1, double op2)
: base(op1, op2)
{
}
public override double CalResult()
{
return this.Op1 / this.Op2;
}
}
class CalOprs {
public Cal GetOpr(string s) {
int i=0;
char op=' ';
for (; i < s.Length; i++)
{
if (!(s.ElementAt(i) >= '0' && s.ElementAt(i) <= '9'))
op = s.ElementAt(i);
}
Cal ca = new Cal();
ca.Op1 = double.Parse(s.Split(op)[0]);
ca.Op2 = double.Parse(s.Split(op)[1]);
switch (op) {
case '+':
CalAdd caa = new CalAdd(ca.Op1, ca.Op2);
Console.WriteLine("{0}",caa.CalResult());
break;
case '-':
CalSub cas = new CalSub(ca.Op1, ca.Op2);
Console.WriteLine("{0}", cas.CalResult());
break;
case '*':
CalMul cam = new CalMul(ca.Op1, ca.Op2);
Console.WriteLine("{0}", cam.CalResult());
break;
case '/':
CalDiv cad = new CalDiv(ca.Op1, ca.Op2);
Console.WriteLine("{0}", cad.CalResult());
break;
}
return ca;
}
}
}
C#上机实验(三)的更多相关文章
- 【C#】上机实验三
实验1: 定义一个 TimePeiod 类 包含: hour , minute , second 实现时间的在 时分秒上的加法. using System; using System.Collecti ...
- 《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 ...
随机推荐
- js with All In One
js with All In One 不推荐,要废弃 function f(x, o) { with (o) { console.log(x); } } function f(foo, values) ...
- Apple iPhone 12 Pro 数据迁移方式 All In One
Apple iPhone 12 Pro 数据迁移方式 All In One iPhone 12 Pro https://mp.weixin.qq.com/s/US1Z_69zVQIhV-cNW1E6A ...
- node.js 中间件
node.js 中间件 node.js middleware Express middleware body-parser cookie-parser cookie-session cors csur ...
- CSS border gradient color All In One
CSS border gradient color All In One CSS Gradient Borders border-image-source & border-image-sli ...
- Proxifier
Proxifier 使用教程 https://www.proxifier.com/ Proxifier允许不支持通过代理服务器工作的网络应用程序通过SOCKS或HTTPS代理和链进行操作. confi ...
- Online analog video interview
Online analog video interview 在线模拟视频面试 English 口语 https://www.pramp.com/#/ https://www.pramp.com/faq ...
- 新手如何通过SPC算力生态获得多重收益?
DeFi市场在去年的一波又一波热潮之后,在今年余温有些褪去.而资本市场也将目光从DeFi市场中转移开来,他们将目光对准了新的市场,即算力市场.算力,其实从区块链技术在大范围普及以来,就是一个常见的话题 ...
- 从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用
尽人事,听天命.博主东南大学研究生在读,热爱健身和篮球,正在为两年后的秋招准备中,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 C ...
- 用一次就会爱上的cli工具开发
本文转载自用一次就会爱上的cli工具开发 写在前面 最近接手任务--使用nodejs开发一个公司内部使用的cli工具,简而言之就是输入一行命令快速搭建好项目结构,也可以通过不同的命令引入不同的文件. ...
- 1098 Insertion or Heap Sort——PAT甲级真题
1098 Insertion or Heap Sort According to Wikipedia: Insertion sort iterates, consuming one input ele ...