51Testing软件测试论坛

标题: Java编程 [打印本页]

作者: 博海一秋    时间: 2018-8-2 18:03
标题: 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[0]);
                p=Double.parseDouble(args[1]);
                w=Double.parseDouble(args[2]);
                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);       
        }
}
执行:[attach]117802[/attach]



作者: puchonghui    时间: 2018-8-3 08:56
一般情况下,浮点型不能用来运算,尤其牵涉到价格,会产生误差

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

作者: 博海一秋    时间: 2018-8-3 18:31
是这样的

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

作者: 博海一秋    时间: 2018-8-5 18:32
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;

                }
        }     
}
}

[attach]117848[/attach]
[attach]117849[/attach]


作者: 博海一秋    时间: 2018-8-8 15:22
* 程序随意给定一个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+"次,已经超过了允许竞猜的最大次数!游戏结束!!!");
                 
         }
}
}






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2