控制台计算器(类,枚举,继承)
来源:互联网 发布:淘宝不清洗订单会怎样 编辑:程序博客网 时间:2024/06/02 16:24
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public class Calculate:IPrint
{
int result = 0;
public int FirstValue { get; set; }
public int SecondValue { get; set; }
bool flag = false;
public void Operate(Operand operand)
{
switch (operand)
{
case Operand.Addition:
result = FirstValue + SecondValue;
break;
case Operand.Subtraction:
result = FirstValue - SecondValue;
break;
case Operand.Multiplication:
result = FirstValue * SecondValue;
break;
case Operand.Division:
result = FirstValue / SecondValue;
flag = true;
break;
default:
break;
}
}
#region IPrint 成员
public void Print()
{
if (flag && FirstValue % SecondValue!=0)
{
Console.WriteLine("结果为" + FirstValue + "/" + SecondValue);
flag = false;
}
else
{
Console.WriteLine("结果为:{0}", result);
}
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public interface IPrint
{
void Print();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public class Menu:IPrint
{
string choice = string.Empty;
string inputValue = string.Empty;
string inputValue1 = string.Empty;
bool flag = false;
#region IPrint 成员
ValidationMenu validationMenu = new ValidationMenu();
ValidationByZero validationByZero = new ValidationByZero();
ValidationInputFormat validationInputFormat = new ValidationInputFormat();
public void Print()
{
do
{
Console.WriteLine("+-------------------------------------------+");
Console.WriteLine("|-加法计算 选择 1 减法计算 选择2 -|");
Console.WriteLine("|-乘法计算 选择 3 除法计算 选择4 -|");
Console.WriteLine("|-退出 选择 0 -|");
Console.WriteLine("+-------------------------------------------+");
Console.WriteLine("请输入要选择的项: ");
choice = Console.ReadLine();
flag=validationMenu.Check(choice);
if (choice != "0" && flag)
{
Calculate calculate = new Calculate();
Console.WriteLine("请输入第一个数");
inputValue =Console.ReadLine();
if (!validationInputFormat.Check(inputValue))
{
validationInputFormat.Print();
}
else
{
Console.WriteLine("请输入第二个数");
inputValue1 = Console.ReadLine();
if (!validationInputFormat.Check(inputValue1))
{
validationInputFormat.Print();
}
else
{
calculate.FirstValue = int.Parse(inputValue);
calculate.SecondValue = int.Parse(inputValue1);
//second Value
switch (choice)
{
case "1":
calculate.Operate(Operand.Addition);
calculate.Print();
break;
case "2":
calculate.Operate(Operand.Subtraction);
calculate.Print();
break;
case "3":
calculate.Operate(Operand.Multiplication);
calculate.Print();
break;
case "4":
if (!validationByZero.Check(calculate.SecondValue))
{
break;
}
else{
calculate.Operate(Operand.Division);
calculate.Print();
break;
};
default:
break;
}
}
}
}
else if (choice == "0")
{
Console.WriteLine("你是否要真的退出?Y/N");
string a = Console.ReadLine();
if(a=="Y")
break; ;
}
} while (true);
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public enum Operand
{
Addition=1,
Subtraction=2,
Multiplication=3,
Division=4
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
class Program
{
static void Main(string[] args)
{
Menu menu = new Menu();
menu.Print();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public abstract class Validation
{
//验证输入
public abstract bool Check(object value);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public class ValidationByZero:Validation,IPrint
{
public override bool Check(object value)
{
Int32 num = Convert.ToInt32(value);
if (num == 0)
{
Print();
return false;
}
else
{
return true;
}
}
#region IPrint 成员
public void Print()
{
Console.WriteLine("除数为0不能做除法");
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public class ValidationMenu : Validation, IPrint
{
public override bool Check(object value)
{
string value2 = Convert.ToString(value);
Int32 value1 = 0;
//TODO: 检查用户输入是否正确
System.Text.RegularExpressions.Regex rex =
new System.Text.RegularExpressions.Regex(@"^[0-9]*$");
if (!rex.IsMatch(value2))
{
Print();
return false;
}
else
{
value1 = Convert.ToInt32(value);
}
if (value1 != Convert.ToInt32(Operand.Addition) && value1 != Convert.ToInt32(Operand.Subtraction) && value1 != Convert.ToInt32(Operand.Multiplication) && value1 != Convert.ToInt32(Operand.Division) && value1 != 0)
{
Print();
return false;
}
else
{
return true;
}
}
#region IPrint 成员
public void Print()
{
Console.WriteLine("菜单选择项录入的不合法合法,请重新操作");
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Calculator
{
public class ValidationInputFormat : Validation, IPrint
{
public override bool Check(object value)
{
string value1 = Convert.ToString(value);
//TODO: 检查用户输入是否正确
System.Text.RegularExpressions.Regex rex =
new System.Text.RegularExpressions.Regex(@"^[0-9]*$");
if (rex.IsMatch(value1))
{
return true;
}
else
return false;
}
#region IPrint 成员
public void Print()
{
Console.WriteLine("您输入的格式不正确!");
}
#endregion
}
}
- 控制台计算器(类,枚举,继承)
- 枚举类如何继承
- Delphi计算器控制台版(含括号)
- Java 枚举类 继承Interface
- 简易Java控制台计算器
- console calc 控制台 计算器
- 控制台的四则运算计算器
- C# 控制台应用程序 计算器
- C++版控制台计算器
- 【win32程序控制台】练习题:简易计算器(液晶显示屏显示)
- c++学习笔记,一个简单的计算器(控制台)
- 人品计算器控制台版本4.0
- 人品计算器控制台版本1.
- C语言控制台简易计算器
- 计算器源码~控制台C语言
- 三角函数计算器(窗体程序,包含继承的运用)
- Javascript面向对象的几种代码实例(对象,继承,重用,委托,类,事件,枚举)
- 新瓶旧酒ASP.NET AJAX(2) - 客户端脚本编程(命名空间、类、成员、接口、继承、枚举)
- ThinkPad E520下CentOS 6.2配置指南 --安装无线网卡RTL8188CE驱动、ATI6630显卡驱动、配置更新源、挂载NTFS
- 连续子数组的最大和
- SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
- SQL学习笔记
- oracle 多个字段去重复
- 控制台计算器(类,枚举,继承)
- C++库一览
- 下载英文书的网站
- XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
- U盘被格式化数据怎么恢复
- Java 正则表达式教程
- 异常介绍、自定义异常、异常面试题
- node.js学习笔记(1)---win7 64位MongoDB安装及使用及可视化工具使用
- 内存池中如何保存内存块大小信息