C#基础--面向对象计算器
static void Main(string[] args)
{
//new个对象
Calculator cal = new Calculator();
//做事情
cal.Run();
}
///////////////////////////////
Calculator类: 这里还有点小问题没有进行处理,就是运算符输入的不符合要求的话,没有让它继续输入(没有让它直到输入成功为止才可以),而直接出现了判断是否退出的提示
public void Run()
{
//循环的进行输入-运算
while(true)
{
//输入数字
double firstNumber = ReadDouble();
double secondNumber = ReadDouble();
Console.WriteLine("请输入运算符: ");
string oper = Console.ReadLine();
//开始计算
//要异常进行处理: 除数不能为0,运算符的符号不正确
try
{
double dResult = Calculation(firstNumber, secondNumber, oper);
Console.WriteLine("{0} {1} {2} = {3}", firstNumber, oper, secondNumber, dResult);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
//打印是否退出
Console.WriteLine("\r\n是否继续计算(y/n)");
if (Console.ReadLine().ToLower() == "n")
{
break;
}
//Console.ReadKey();
}
}
/// <summary>
/// 判断输入的内容
/// </summary>
/// <returns></returns>
public static double ReadDouble()
{
double dNmber;
while (true)
{
Console.WriteLine("请输入第一个数字: ");
string input = Console.ReadLine();
//把用户输入的内容转城字符串
if (double.TryParse(input, out dNmber))
{
break;
}
else
{
Console.WriteLine("对不起, 您输入的不是一个数字,请重新输入...");
}
}
return dNmber;
}
/// <summary>
/// 计算的方法
/// </summary>
/// <param name="firstNumber"></param>
/// <param name="secondNumber"></param>
/// <param name="oper"></param>
/// <returns></returns>
public static double Calculation(double firstNumber, double secondNumber, string oper)
{
double sum;
//用switch case进行多条件的定值的判断
switch (oper)
{
case "+": sum = firstNumber + secondNumber;
break;
case "-": sum = firstNumber - secondNumber;
break;
case "*": sum = firstNumber * secondNumber;
break;
case "/":
//在代码运行的过程中,实际条件与预期条件可能不一致的时候,可以抛个异常
if (secondNumber == 0)
{
throw new Exception("除数不能为 0");
}
sum = firstNumber / secondNumber;
break;
default:
throw new Exception("请输入正确的运算符...");
}
return sum;
}
最新文章
- Oracle 增删改查
- IE和firefox火狐在JS、css兼容区别
- 【.NET】传智播客第【19】期就业班视频(高清无加密)
- POI 简单合并单元格
- yii2源码学习笔记(十三)
- javascript 学习笔记之面向对象编程(一):类的实现
- GridView获取单个单元格的值
- 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题
- 第一个输出程序 Console.WriteLine
- Docker 安装命令
- HTMLTestRunner测试报告中文乱码问题解决
- css3动画结束捕捉事件整理
- #1 初识Python
- Oracle 数据库、实例、用户、表空间、表之间的关系
- Mybatis Generator 使用com.mysql.cj.jdbc.Driver遇到的问题
- windows 8,关闭随意窗体都提示“已停止工作”的解决的方法
- sublime + emmet(Zen Coding)
- net网站发布-允许更新此预编译站点 及修改发布后内容
- Metapackage包
- springboot项目中文件的下载(解决中文乱码问题)