简单计算器的开发

  • 格式:doc
  • 大小:164.50 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单计算器的开发

假设有这么一个问题:请用C++、Java、C#任意一种面向对象程序设计语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。你会怎么写?下面以C#为例说明。

一、看下面一个程序:

class Program

{

static void Main(string[] args)

{

Console.Write("请输入数字A:");

string A = Console.ReadLine();

Console.Write("请选择运算符号(+、-、*、/):");

string B = Console.ReadLine();

Console.Write("请输入数字B:");

string C = Console.ReadLine();

string D = "";

if (B == "+")

D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C));

if (B == "-")

D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C));

if (B == "*")

D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C));

if (O == "/")

D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C));

Console.WriteLine("结果是:" + D);

}

}

二、代码是否规范、重构

class Program

{

static void Main(string[] args)

{

try

{

Console.Write("请输入数字A:");

string strNumberA = Console.ReadLine();

Console.Write("请选择运算符号(+、-、*、/):");

string strOperate = Console.ReadLine();

Console.Write("请输入数字B:");

string strNumberB = Console.ReadLine();

string strResult = "";

switch (strOperate)

{

case "+":

strResult = Convert.ToString

(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB));

break;

case "-":

(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB)); break;

case "*":

strResult = Convert.ToString

(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); break;

case "/":

if (strNumberB != "0")

strResult = Convert.ToString

(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB));

else

strResult = "除数不能为0";

break;

}

三、复制、重用

现在要求你再写一个windows的计算器,你现在的代码能不能复用?

应该考虑:这段代码,有哪些是和控制台无关的,而只是和计算器有关的?”

四、封装

class Program

{

static void Main(string[] args)

{

try

{

Console.Write("请输入数字A:");

string strNumberA = Console.ReadLine();

Console.Write("请选择运算符号(+、-、*、/):");

string strOperate = Console.ReadLine();

Console.Write("请输入数字B:");

string strNumberB = Console.ReadLine();

string strResult = "";

Operation.GetResult(Convert.ToDouble(strNumberA),

Convert.ToDouble(strNumberB), strOperate));

Console.WriteLine("结果是:" + strResult);

Console.ReadLine();

}

catch (Exception ex)

{

Console.WriteLine("您的输入有错:" + ex.Message);

}

}

}

public class Operation

{

public static double GetResult(double numberA, double numberB, string operate) {

double result = 0d;

switch (operate)

{

case "+":

result = numberA + numberB;

break;

case "-":

result = numberA - numberB;

break;

case "*":

result = numberA * numberB;

break;

case "/":

result = numberA / numberB;

break;

}

return result;

}

}

五、体现面向对象思想的完整程序

class Operation

{

private double _numberA = 0;

private double _numberB = 0;

///

/// 数字A

///

public double NumberA