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 ...
随机推荐
- JVM学习路线
JVM探究 请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...
- 虚拟环境之间批量pip安装包"迁移"
在某个虚拟环境中通过 pip freeze > requirements.txt 将该环境下所有的包写入文档, 然后切换至另一虚拟环境, pip install -r requirements. ...
- 如何在手机上实现 H5 页面全屏显示
如何在手机上实现 H5 页面全屏显示 fullscreen 隐藏头部地址栏 隐藏底部导航栏 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才 ...
- macOS & pbcopy
macOS & pbcopy copy from command line pbcopy $ whoami | pbcopy # xgqfrms-mbp $ echo "hello, ...
- self-publishing ebook guide all in one
self-publishing ebook guide all in one 自助出版电子书指南 第1课:让我们自己出版一本书! 与您会想到的很多人相反,自我出版并不容易. 您不仅必须写书,而且还必须 ...
- npm-run-all
npm-run-all npm scripts https://www.npmjs.com/package/npm-run-all A CLI tool to run multiple npm-scr ...
- 智能货柜 & 技术原理 (动态视觉识别 + 重力感应)
智能货柜 & 技术原理 (动态视觉识别 + 重力感应) 智能货柜 拥有智能化.精细化运营模式的智能货柜成为代替无人货架继前进的方式. 相比无人货架来说,智能货柜的技术门槛更高,拥有 RFID. ...
- macOS finder show hidden files
macOS finder show hidden files 显示 MacOS 上的隐藏文件和文件夹 https://zh.wikihow.com/显示Mac-OS-X上的隐藏文件和文件夹 $ def ...
- windows driver 简单的驱动和通信
sysmain.c #pragma once #pragma warning(disable: 4100) #include <ntifs.h> #include <ntddk.h& ...
- 基本的DOS命令
基本的DOS命令 打开CMD的方法 菜单+系统+命令提示符 WIN+R后输入CMD 桌面或文件夹任意位置按住SHIFT后鼠标右键 常见的DOS命令 #盘符切换 直接输入要切换的盘符名称 如输入&quo ...