黑马程序员技术交流社区

标题: 控制台简易计算器。 [打印本页]

作者: chulangren2    时间: 2014-7-16 22:59
标题: 控制台简易计算器。
如何实现一个控制台简易计算器代码如下:

import java.util.Scanner;
class Homework6
{
        public static void main(String[] args)
        {
                System.out.println("******************************");
                System.out.println("*  欢迎使用控制台计算器程序  *");
                System.out.println("*  作者:XXX 2014-07-16  *");
                System.out.println("******************************");
      
                Scanner s= new Scanner(System.in);
               
            System.out.print("请您输入整数数:");
                int result = s.nextInt();
                String str="("+result;
                boolean flag=true;
               
                do{
                  System.out.print("1(+) , 2(-) , 3(*) , 4(/) 请您选择运算符:");
                  int op =s.nextInt();
                  System.out.print("请您输入整数:");
                  int num= s.nextInt();
                  switch(op){
                   case 1: str+="+"+num;
                               result+=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                   case 2:  
                           str+="-"+num;
                               result-=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
           case 3:
                           str+="*"+num;
                               result*=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                   case 4:  
                                   if(num==0)
                               {System.out.print("您输入的数字是非法的!请从新输入:");
                                    num=s.nextInt();
                                   }
                                   str+="/"+num;
                               result/=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                                  
           default: System.out.println("亲 请您输入 1或者2或者3或者4!");
                            break;
                 }
                     System.out.print("1(继续) 2(退出) 3(清除) 请您选择接下来要进行的操作:");
                     int op1=s.nextInt();
                 switch(op1){//操作
                   case 1:
                               break;
                   case 2: flag=false;
                               break;
                   case 3: str="";
                           result=0;
                           System.out.println("已清空历史,请您继续使用……");
                                   System.out.print("请您输入整数数:");
                                   result = s.nextInt();
                                   str="("+result;
                               break;
                 }
        }while(flag);
        }
}
感觉自己做的还太粗糙,希望各路大神能给更好的建议。
作者: ╄Tracyぺ    时间: 2014-7-17 00:37
main方法里可以不要这么胖,把do..while()可以写成一个方法,这样会简洁很多
作者: chulangren2    时间: 2014-7-18 21:13
╄Tracyぺ 发表于 2014-7-17 00:37
main方法里可以不要这么胖,把do..while()可以写成一个方法,这样会简洁很多

是啊,我们正在努力朝这个方向来。
作者: chulangren2    时间: 2014-7-18 21:14
其实可以做更多的限制,获得更好的体验感,正在努力。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2