当前位置: 代码迷 >> J2SE >> 如何编写简单计算机的java程序在dos下运行
  详细解决方案

如何编写简单计算机的java程序在dos下运行

热度:11   发布时间:2016-04-23 20:51:04.0
怎么编写简单计算机的java程序在dos下运行
编写一个java计算机程序,在dos下运行,运行结果如下:比如输入1,按回车,输出1,输入5,按回车输出5,输入加号,按回车输出加号,输入2,按回车输出2,输入等于号按回车输出17.
------解决方案--------------------
用io实现吧!
------解决方案--------------------
这个很好实现的吧  随便看看书  上网上一搜就写出来了
------解决方案--------------------
我的方法比较笨,不知道你们还有没有什么好的方法,顺便介绍给我

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;
}

}
}


------解决方案--------------------
引用:
Quote: 引用:

用io实现吧!

我有了大题方向和编程思路,但具体实现的时候总出问题,而且不怎么怎么改,大神能给个核心代码吗

可以先参考一下楼上的;
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

用io实现吧!

我有了大题方向和编程思路,但具体实现的时候总出问题,而且不怎么怎么改,大神能给个核心代码吗

可以先参考一下楼上的;
楼上的没有考虑其他情况,比如在数字的状态下再输入一个数字怎么办,如果输入的是符号又怎么办。整个逻辑要清楚。


嗯,楼主都考虑到了,可以在楼上的基础上自己试着去修改,把该加上的都加上;
  相关解决方案