C/C++经典程序训练3---模拟计算器

Problem Description

简单计算器模拟:输入两个整数和一个运算符,输出运算结果。
Input

第一行输入两个整数,用空格分开;
第二行输入一个运算符(+、-、*、/)。
所有运算均为整数运算,保证除数不包含0。
Output

输出对两个数运算后的结果。
Sample Input

30 50
*
Sample Output

1500
先用面向对象分析解题:


import java.util.Scanner;

public class Main
{

	public static void main(String[] args)
{
	Scanner reader = new Scanner(System.in);
	int m=reader.nextInt();
	int n=reader.nextInt();
	String op=reader.next();
	Calculator Cal= new  Calculator(m,n);//在栈空间中调用对象
	char ch=op.charAt(0);
	switch(ch)
	{
	  case'+':
	  {
		  System.out.println(Cal.add());//输出对象中的add方法结果
		  break;
	  }
	  case'-':
	  {
		  System.out.println(Cal.sub());
		  break;
	  }
	  case'*':
	  {
		  System.out.println(Cal.mul());
		  break;
	  }
	  case'/':
	  {
		  System.out.println(Cal.div());
		  break;
	  }
	
	}
	reader.close();

}
}
 class Calculator//创建一个类
 {
	 int a;
	 int b;//定义成员变量
	 public Calculator(int a,int b)//构造方法的建立
	 {
		 this.a=a;
		 this.b=b;
	 }
	 public int  add()//方法的建立
	 {
		 return a+b;
	 }
	 public int sub()
	 {
		 return a-b;
	 }
	 public int mul()
	 {
		 return a*b;
	 }
	 public int div()
	 {
		 return a/b;
	 }
 }

再来看传统的解题思路:面向过程:


import java.util.Scanner;

public class Main
{

	public static void main(String[] args)
{
	Scanner reader = new Scanner(System.in);
	int m=reader.nextInt();
	int n=reader.nextInt();
	String S=reader.next();
	char c=S.charAt(0);
	if(c=='+')
	{
		System.out.println(m+n);
	}
	else if(c=='-')
	{
		System.out.println(m-n);
	}
	else if(c=='*')
	{
		System.out.println(m*n);
	}
	else if(c=='/')
	{
		System.out.println(m/n);
	}
	reader.close();

}
}
 
import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{
		Scanner reader =new Scanner(System.in);
		int n=reader.nextInt();
		int m=reader.nextInt();
		String string=reader.next();
		JiSuanQi jiSuanQi =new JiSuanQi(n, m);
		if(string.charAt(0)=='+')
			System.out.println(jiSuanQi.add());
		if(string.charAt(0)=='-')
			System.out.println(jiSuanQi.sub());
		if(string.charAt(0)=='*')
			System.out.println(jiSuanQi.mul());
		if(string.charAt(0)=='/')
			System.out.println(jiSuanQi.div());
		reader.close();
	}
}
class JiSuanQi
{
	int n;
	int m;
	public JiSuanQi(int n,int m)
	{
		this.n=n;
		this.m=m;
	}
	public int add()
	{
		return n+m;
	}
	public int sub()
	{
		return n-m;
	}
	public int mul()
	{
		return n*m;
	}
	public int div()
	{
		return n/m;
	}
}

你可能感兴趣的:(JAVA,SE)