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

时间:2022-06-26 09:17:24
编写一个java计算机程序,在dos下运行,运行结果如下:比如输入1,按回车,输出1,输入5,按回车输出5,输入加号,按回车输出加号,输入2,按回车输出2,输入等于号按回车输出17.

9 个解决方案

#1


用io实现吧!

#2


这个很好实现的吧  随便看看书  上网上一搜就写出来了

#3


我的方法比较笨,不知道你们还有没有什么好的方法,顺便介绍给我

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

}
}

#4


编一个计算器,要考虑到很多情况,分几个类进行,不是一马平川就到底了。

#5


引用 1 楼 u012724379 的回复:
用io实现吧!

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

#6


引用 5 楼 u011997289 的回复:
Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

可以先参考一下楼上的;

#7


引用 6 楼 u012724379 的回复:
Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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

#8


引用 7 楼 u011997289 的回复:
Quote: 引用 6 楼 u012724379 的回复:

Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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


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

#9


引用 8 楼 u012724379 的回复:
Quote: 引用 7 楼 u011997289 的回复:

Quote: 引用 6 楼 u012724379 的回复:

Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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


嗯,楼主都考虑到了,可以在楼上的基础上自己试着去修改,把该加上的都加上;
就是搞不出来啊。本人新手。

#1


用io实现吧!

#2


这个很好实现的吧  随便看看书  上网上一搜就写出来了

#3


我的方法比较笨,不知道你们还有没有什么好的方法,顺便介绍给我

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

}
}

#4


编一个计算器,要考虑到很多情况,分几个类进行,不是一马平川就到底了。

#5


引用 1 楼 u012724379 的回复:
用io实现吧!

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

#6


引用 5 楼 u011997289 的回复:
Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

可以先参考一下楼上的;

#7


引用 6 楼 u012724379 的回复:
Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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

#8


引用 7 楼 u011997289 的回复:
Quote: 引用 6 楼 u012724379 的回复:

Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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


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

#9


引用 8 楼 u012724379 的回复:
Quote: 引用 7 楼 u011997289 的回复:

Quote: 引用 6 楼 u012724379 的回复:

Quote: 引用 5 楼 u011997289 的回复:

Quote: 引用 1 楼 u012724379 的回复:

用io实现吧!

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

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


嗯,楼主都考虑到了,可以在楼上的基础上自己试着去修改,把该加上的都加上;
就是搞不出来啊。本人新手。