日期:2014-05-20 浏览次数:20709 次
import java.util.Scanner;
/*
* 题目:编写一个java计算机程序,在dos下运行,运行结果如下:比如输入1,按回车,
* 输出1,输入5,按回车输出5,输入加号,按回车输出加号,输入2,按回车输出2,
* 输入等于号按回车输出17.
*/
/*
* 思路:先用String类型数组strnumA[],strnumB[]读取每一位数字,然后把数字
* 集合在char类型数组charnumA[],charnumB[]中,再调用
* Integer.parseInt(String.valueOf(charnumA))转化为整形进行加减。
*/
public class 输出15加2等于17 {
public static void main(String args[])
{
Scanner reader = new Scanner(System.in);
String strnumA[] = new String[10];
String strnumB[] = new String[10];
int intnumA;
int intnumB;
int i = 0,j = 0; //记录下数值A和数值B的位数
int m = 0,n = 0; //循环变量
boolean flag = false; //最为退出输入转到计算结果的标志
//输入数字
while(true)
{
strnumA[i] = reader.nextLine();
if( (strnumA[i].equals("+"))
------解决方案--------------------
(strnumA[i].equals("-"))
------解决方案--------------------
(strnumA[i].equals("*"))
------解决方案--------------------
(strnumA[i].equals("/")) )
{
System.out.println(strnumA[i]);
while(true)
{
strnumB[j] = reader.nextLine();
if(strnumB[j].equals("="))
{
flag = true;
break;
}
System.out.println(strnumB[j++]);
}
}
if(flag)
{
break;
}
System.out.println(strnumA[i++]);
}
//把数值转化成int类型
char temp[] = new char[10];
char charnumA[] = new char[i];
char charnumB[] = new char[j];
for(m = 0; m < i; ++m)
{
temp = strnumA[m].toCharArray();
charnumA[m] = temp[0];
}
for(n = 0; n < j; ++n)
{
temp = strnumB[n].toCharArray();
charnumB[n] = temp[0];
}
intnumA = Integer.parseInt(String.valueOf(charnumA));
intnumB = Integer.parseInt(String.valueOf(charnumB));
//计算
switch(strnumA[i])
{
case "+":
System.out.println(intnumA + intnumB);
break;
case "-":
System.out.println(intnumA - intnumB);
break;
case "*":
System.out.println(intnumA * intnumB);
break;
case "/":
System.out.println(intnumA / intnumB);
break;
}
}
}
楼上的没有考虑其他情况,比如在数字的状态下再输入一个数字怎么办,如果输入的是符号又怎么办。整个逻辑要清楚。
用io实现吧!
我有了大题方向和编程思路,但具体实现的时候总出问题,而且不怎么怎么改,大神能给个核心代码吗
可以先参考一下楼上的;