博海一秋 发表于 2018-8-2 18:03:10

Java编程

1、要求:
       * 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d;
       * s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%;
       * 3000<=s,优惠15%;

实现一:
package com.task02;
        /*
       * 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d
       * s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%
       * 3000<=s,优惠15%
       */
public class ComputePriceIF {

       public static void main(String[] args) {
                // TODO Auto-generated method stub
                //使用命令行参数进行对数组赋值
                int c,s;
                double p,w,f,d;
                s=Integer.parseInt(args);
                p=Double.parseDouble(args);
                w=Double.parseDouble(args);
                if(s<250){
                        c=0;
                }else if(s<500){
                        c=2;
                }else if(s<1000){
                        c=5;
                }else if(s<2000){
                        c=8;
                }else if(s<3000){
                        c=10;
                }else c=15;
                d=(double)c/100;        //将int型变量c强制转换成 Double型,然后运算后,赋值给变量d
                f=s*p*w*(1-d);
                System.out.println("距离为:"+s);
                System.out.println("基本运费为:"+p);
                System.out.println("重量为:"+w);
                System.out.println("优惠:"+d);
                System.out.println("运费为:"+f);
               
        }
}

实现二
package com.task02;

import javax.swing.JOptionPane;
        /*
       * 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d
       * s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%
       * 3000<=s,优惠15%
       */
public class ComputePriceIF {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                                //通过java.swing.JOptionPane类实现对话框方式向用户发出输入或输出消息
                               //showInputDialog()方法:用于提示要求某些输入
                                //showMessageDialog()方法:告知用户某事已经发生
                                int c,s = 0;
                                double p = 0,w = 0,f,d;
                                s=Integer.parseInt(JOptionPane.showInputDialog("请输入运输的距离",new Integer(s)));
                                p=Double.parseDouble(JOptionPane.showInputDialog("请输入运输公司的基本单价",new Double(p)));
                                w=Double.parseDouble(JOptionPane.showInputDialog("请输入运输公司的货物重量",new Double(w)));
                                if(s<250){
                                        c=0;
                                }else if(s<500){
                                        c=2;
                                }else if(s<1000){
                                        c=5;
                                }else if(s<2000){
                                        c=8;
                                }else if(s<3000){
                                        c=10;
                                }else c=15;
                                d=(double)c/100;        //将int型变量c强制转换成 Double型,然后运算后,赋值给变量d
                                f=s*p*w*(1-d);
                                System.out.println("距离为:"+s);
                                System.out.println("基本运费为:"+p);
                                System.out.println("重量为:"+w);
                                System.out.println("优惠:"+d);
                                System.out.println("运费为:"+f);       
        }
}
执行:


puchonghui 发表于 2018-8-3 08:56:43

一般情况下,浮点型不能用来运算,尤其牵涉到价格,会产生误差

lz 可以试试10 2.22.2
看看返回结果对不对

博海一秋 发表于 2018-8-3 18:31:16

是这样的

距离为:10
基本运费为:2.2
重量为:2.2
优惠:0.0
运费为:48.400000000000006

博海一秋 发表于 2018-8-5 18:32:44

1、要求
         * 程序中给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
       * 未猜中时,提示数量过大或多小;猜中时,指出猜的次数


实现

package com.task02;

import javax.swing.JOptionPane;

public class GuessGame {

        /*
       * 程序中给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
       * 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
       *
       */
        public static void main(String[] args) {
                // TODO Auto-generated method stub

                int realnumber=20;
          int guessnumber=0;
          int count=0;
          boolean guessflag=false;
               
       while(guessflag!=true){
                guessnumber=Integer.parseInt(JOptionPane.showInputDialog("请输入一个整数进行猜想!",new Integer(guessnumber)));
               
                if(guessnumber != realnumber){
                       
                        if(guessnumber > realnumber){
                                count++;
                                System.out.println("您输入的数字太大了,请重新猜!");
                               
                               
                        }else if(guessnumber < realnumber){
                                count++;
                                System.out.println("您输入的数字太小了,请重新猜!");
                               
                        }
                          
                }else {
                       
                  count++;
                        System.out.println("恭喜您猜对了,您共猜了:"+count+"次。");
                        guessflag=true;

                }
        }   
}
}




博海一秋 发表于 2018-8-8 15:22:27

* 程序随意给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
* 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
* 允许最大竞猜次数为3次

package com.task02;

import javax.swing.JOptionPane;

public class GuessGame {

        /*
       * 程序随意给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
       * 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
       * 允许最大竞猜次数为3次
       */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
          //随机给定1-100的整数,Math.random() 为0-1 Double类型。需要强制转换int类型
                int realnumber=(int) (Math.random()*100+1);   
          int guessnumber=0;
          int count=0;
          boolean guessflag=false;
               
       while(guessflag!=true && count<3){
                guessnumber=Integer.parseInt(JOptionPane.showInputDialog("请输入一个整数进行猜想,允许最大竞猜次数为3次!",new Integer(guessnumber)));
               
                if(guessnumber != realnumber){
                       
                        if(guessnumber > realnumber){
                                count++;
                                System.out.println("您输入的数字太大了,请重新猜!");
                               
                               
                        }else if(guessnumber < realnumber){
                                count++;
                                System.out.println("您输入的数字太小了,请重新猜!");
                               
                        }
                          
                }else {
                       
                  count++;
                        System.out.println("恭喜您猜对了,您共猜了:"+count+"次。");
                        guessflag=true;

                }
        }   
       if(guessflag !=true && count==3){
                System.out.println("您共猜了"+count+"次,已经超过了允许竞猜的最大次数!游戏结束!!!");
               
       }
}
}

页: [1]
查看完整版本: Java编程