用Java实现,求教大佬

໊ۖ͡✾ۖ͡黎夏ೄ೨ 2019-06-17 10:24:20
1. 图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买不足100本,则没有优惠;如果客户一次性购买100本以上(包括100本),则每本的价格打9折;如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户。
说明:
(1)从键盘输入购买书的数量;
(2)分别计算输出购买8本、150本、600本的应付金额。

...全文
3937 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷风DMW 2019-06-25
  • 打赏
  • 举报
回复
优化了一下代码 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num; System.out.println("请输入购买的数量:"); num = scanner.nextInt(); if (num > 0) { if (num < 100) { double a = num * 26.5; System.out.println(a); } else if (num >= 100 && num < 500) { double b = num * 26.5 * 0.9; System.out.println(b); } else { double c = (num * 26.5 * 0.8) - 1000; System.out.println(c); } } else { System.out.println("购买失败"); return; } }
冷风DMW 2019-06-25
  • 打赏
  • 举报
回复
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num; System.out.println("请输入购买的数量:"); num = scanner.nextInt(); if (num < 100) { double a = num * 26.5; System.out.println(a); } else if (num >= 100 && num < 500) { double b = num * 26.5 * 0.9; System.out.println(b); } else { double c = (num * 26.5 * 0.8) - 1000; System.out.println(c); } }
柚子先生~ 2019-06-23
  • 打赏
  • 举报
回复
public class Price {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(true) {
System.out.println("请输入购买本数量");
final double count=26.5;
double sum;
int num;
num =s.nextInt();
if(num<100) {
sum=count*num;
System.out.println("价格为"+sum);
}else if(num<500) {
sum=count*num*0.9;
System.out.println("价格为"+sum);
}else {
sum=(count*num*0.8)-1000;
System.out.println("价格为"+sum);
}
}
}
}
weixin_45130931 2019-06-22
  • 打赏
  • 举报
回复
package youxi; import java.util.Scanner; //1. 图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买不足100本 //,则没有优惠;如果客户一次性购买100本以上(包括100本),则每本的价格打9折 //;如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元 //给客户。 //说明: //(1)从键盘输入购买书的数量; //(2)分别计算输出购买8本、150本、600本的应付金额。 public class no1 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入要买多少本"); Scanner s=new Scanner(System.in); int num=s.nextInt(); double sum=0; if(num<100&&num>0) { sum=26.5*num; }else if(num>=100&&num<500) { sum=26.5*num*0.9; }else if(num>500) { sum=26.5*num*0.8-1000; }else { System.out.println("输入有误"); return; } System.out.println("买"+num+"需要"+sum+"元"); } }
jiaojiaw 2019-06-21
  • 打赏
  • 举报
回复
引用 10 楼 ໊ۖ͡✾ۖ͡黎夏ೄ೨ 的回复:
[quote=引用 6 楼 Gemini_Kanon的回复:]
Scanner scan = new Scanner(System.in);
System.out.println("你要买多少本?");
double price = 26.5;
double num;
num = scan.nextInt();
double sum = 0;
if(num < 100){
sum = price * num;
System.out.println("共消费" + sum + "元钱");
}else if(num < 500){
sum = (price * 0.9) * num;
System.out.println("共消费" + sum + "元钱");
}else{
sum = ((price * 0.8) * num) - 1000;
System.out.println("共消费" + sum + "元钱");
}
大佬,这代码打上去全部都是错呀[/quote]你新建一个工程再建一个包 然后写上 pubic static void main(String []args){ 把上边的代码复习过来 } 应该就对了
小然然呀 2019-06-19
  • 打赏
  • 举报
回复
引用 17 楼 aw277866304的回复:
还真有给别人写代码赚分的,这是在帮他还是在害他? 可能你们彼此都觉得无伤大雅吧,那请随意。
他这样的基本也不是写代码的料了,你又何必认真
  • 打赏
  • 举报
回复
编程起码的基础要知道啊!
qq_39936465 2019-06-19
  • 打赏
  • 举报
回复
引用 26 楼 Call me YfZ 的回复:
算法不对 不全面啊


我觉得就这样一个小程序,没必要考虑负数吧,谁买东西买负数本你到买买看?
大叔家的宝贝 2019-06-19
  • 打赏
  • 举报
回复
你的程序没问题,你点ctrl+s保存一下,然后双击点中main之后再run就可以了,保证你运行的是你的这个程序
  • 打赏
  • 举报
回复
慢慢来。加油。最好找个基础教学视频看看。
JavaBoyoc 2019-06-18
  • 打赏
  • 举报
回复
好的呢,谢谢大佬
weixin_42355328 2019-06-18
  • 打赏
  • 举报
回复
多看看教材这个真不是问题噢
  • 打赏
  • 举报
回复
引用 楼主 ໊ۖ͡✾ۖ͡黎夏ೄ೨的回复:
1. 图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买不足100本,则没有优惠;如果客户一次性购买100本以上(包括100本),则每本的价格打9折;如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户。
说明:
(1)从键盘输入购买书的数量;
(2)分别计算输出购买8本、150本、600本的应付金额。
public static void main(String[] args) { //书的价格 double book=26.5; //书九折优惠价格 double jiu=book*0.9; //书八折优惠价格 double ba=book*0.8; //动态输入 Scanner input=new Scanner(System.in); //控制循环流程 String why=null; //总价格 int zong=0; //do-while循环 do { System.out.println("书的价格是"+book); //动态输入购买书的数量 System.out.println("请输入要购买的数量:"); int shuliang=input.nextInt(); //判断数量是否大于0 大于0 则继续向下判断计算价格 if (shuliang>0) { //多重if if (shuliang>=500) { //累加 计算总价格 zong+=ba*shuliang; zong-=1000; //输入的是本次购买的金额 System.out.println("优惠一千元,本次购买应付:"+((ba*shuliang)-1000)); }else if(shuliang>=100){ //累加 zong+=jiu*shuliang; //计算本次购买的金额 System.out.println("本次购买应付:"+(jiu*shuliang)); }else { //累加 zong+=book*shuliang; //计算本次购买的金额 System.out.println("本次购买应付:"+(book*shuliang)); } }else { //红色提示信息 System.err.println("购买数量不能为0或者负数"); } //控制循环的动态输入 System.out.println("是否继续购买(y/n)"); why=input.next(); //判断why值是否为y 是的话 继续循环 } while (why.equals("y")); //输出总金额 System.out.println("总金额:"+zong); //动态输入付款金额 System.out.println("请输入付款金额:"); int fu=input.nextInt(); //判断付款金额是否大于等于总金额 是的话 找钱 否则便继续付款 if (fu>=zong) { System.out.println("付款成功"); System.out.println("找钱:"+(fu-zong)); }else { do { System.err.println("付款金额不足,请重新输入付款金额:"); fu=input.nextInt(); //判断付款金额小于总金额的话 继续循环 大于等于总金额 退出循环 执行循环下面的找钱语句 } while (fu<zong); System.out.println("找钱:"+(fu-zong)); } }
C_minus 2019-06-18
  • 打赏
  • 举报
回复
想起了我刚学java的时候
叁金Coder 2019-06-18
  • 打赏
  • 举报
回复
main方法
小灰狼 2019-06-18
  • 打赏
  • 举报
回复
算算时间,大学一个学期马上就要结束了,楼主给的八成是课程设计的题 不过,相比一般的伸手党,楼主值得表扬的地方是,至少把需求描述清楚了
「已注销」 2019-06-18
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465 的回复:
[quote=引用 楼主 ໊ۖ͡✾ۖ͡黎夏ೄ೨ 的回复:]
1. 图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买不足100本,则没有优惠;如果客户一次性购买100本以上(包括100本),则每本的价格打9折;如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户。
说明:
(1)从键盘输入购买书的数量;
(2)分别计算输出购买8本、150本、600本的应付金额。



import java.util.Scanner;

public class test5 {

public static void main(String[] args) {
// TODO Auto-generated method stub
final double cost=26.5,sum;
int num;
Scanner input=new Scanner(System.in);
num=input.nextInt();
if(num<100) {
sum=cost*num;
}else if(num<500) {
sum=cost*num*0.9;
}else {
sum=cost*num*0.8-1000;
}
System.out.println("共买了"+num+"本总价为:"+sum);

}

}

[/quote]买 -100 本,多少钱?
a1337258320 2019-06-18
  • 打赏
  • 举报
回复
你这问题实在有意思,我想看看
Call me YfZ 2019-06-18
  • 打赏
  • 举报
回复
引用 2 楼 ໊ۖ͡✾ۖ͡黎夏ೄ೨的回复:
[quote=引用 1 楼 qq_39936465的回复:][quote=引用 楼主 ໊ۖ͡✾ۖ͡黎夏ೄ೨ 的回复:]
1. 图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买不足100本,则没有优惠;如果客户一次性购买100本以上(包括100本),则每本的价格打9折;如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户。
说明:
(1)从键盘输入购买书的数量;
(2)分别计算输出购买8本、150本、600本的应付金额。



import java.util.Scanner;

public class test5 {

public static void main(String[] args) {
// TODO Auto-generated method stub
final double cost=26.5,sum;
int num;
Scanner input=new Scanner(System.in);
num=input.nextInt();
if(num<100) {
sum=cost*num;
}else if(num<500) {
sum=cost*num*0.9;
}else {
sum=cost*num*0.8-1000;
}
System.out.println("共买了"+num+"本总价为:"+sum);

}

}

[/quote] 在类中找不到main方法,请将main定义为:public static void main(String[] args) 大佬,这个什么意思?[/quote] 算法不对 不全面啊
tq1086 2019-06-18
  • 打赏
  • 举报
回复
把自己写晕了
import java.util.*;
    
interface Condition {
    public boolean meet(int bookCount);
}

class ConditionLess100 implements Condition {
    public boolean meet(int bookCount) {
        return bookCount < 100;
    }
}

class ConditionBetween100And500 implements Condition {
     public boolean meet(int bookCount) {
        return (100 <= bookCount) && (bookCount < 500);
    }
}

class ConditionGreaterThan500 implements Condition {
     public boolean meet(int bookCount) {
        return 500 <= bookCount;
    }
}

interface Discount {
     public double discount(double originPrice);
}

class Discount90 implements Discount {
     public double discount(double originPrice) {
        return originPrice * 0.9;
    }
}

class DiscountReturn1000 implements Discount {
     public double discount(double originPrice) {
        if (originPrice > 1000) {
            return originPrice - 1000;
        }
        return 0.0;
    }
}

class DiscountChain implements Discount {
    private ArrayList<Discount> discounts = new ArrayList<>();
    
    DiscountChain addDiscount(Discount discount) {
        discounts.add(discount);
        return this;
    }

     public double discount(double price) {
        for (Discount d: discounts) {
            price = d.discount(price);
        }

        return price;
    }
}

class DiscountSystem {
    HashMap<Condition, Discount> discountTable = new HashMap<>();
    void add(Condition condition, Discount discount) {
        discountTable.put(condition, discount);
    }

    double getPrice(double unitPrice, int count) {
        double price = unitPrice * count;
        
        for (Map.Entry<Condition, Discount> entry: discountTable.entrySet()) {
            if (entry.getKey().meet(count)) {
                price = entry.getValue().discount(price);
                break;
            }
        }

        return price;
    }
}

public class A {
    public static void main(String[] args) {

        DiscountSystem discountSystem = new DiscountSystem();
        discountSystem.add(new ConditionBetween100And500(), new Discount90());
        discountSystem.add(new ConditionGreaterThan500(), new DiscountChain().addDiscount(new Discount90()).addDiscount(new DiscountReturn1000()));

        for (double x: new double[] {
                discountSystem.getPrice(26.5, 8),
                discountSystem.getPrice(26.5, 150),
                discountSystem.getPrice(26.5, 600)
            }) {
            System.out.println(x);
        }
    }
}
加载更多回复(19)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧