案例2-2 小明都可以买什么

文章展示了一个用Java编写的简单购物计算小程序,用户输入资金和商品编号,程序会计算能购买的商品数量和剩余金额。程序使用了switch语句进行商品选择判断,并考虑了资金不足的情况。

题目

编写一个智能购物计算小程序,在一家商店有书本、铅笔、橡皮、可乐、零食5种商品,商品价格如表

假如你带了20元,且必须购买一本书,剩余的钱还可以购买哪种商品?可以购买几件,购买完后又能剩余多少钱?

个人思路:

1.设计一个菜单,给商品编号

2.需要利用switch语句进行判断

3.利用取余、取模求得可购买数量和剩余

代码实现:
import java.util.Scanner;

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

        int pencil = 1;//铅笔
        int rubber = 2;//橡皮
        int cola = 3;//可乐
        int snacks = 5;//零食

        System.out.println("书本的价格是12元,你总共带了20元");
        System.out.println("1.铅笔的价格是1元");
        System.out.println("2.橡皮的价格是2元");
        System.out.println("3.可乐的价格是3元");
        System.out.println("4.零食的价格是5元");
        System.out.print("请输入你还想购入的商品编号:");

        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();

        switch(x)
        {
            case 1:
                System.out.println("购买完书本后还可以购买铅笔"+8/pencil+"支,还剩"+8%pencil+"元");
                break;
            case 2:
                System.out.println("购买完书本后还可以购买橡皮"+8/rubber+"块,还剩"+8%rubber+"元");
                break;
            case 3:
                System.out.println("购买完书本后还可以购买可乐"+8/cola+"瓶,还剩"+8%cola+"元");
                break;
            case 4:
                System.out.println("购买完书本后还可以购买零食"+8/snacks+"袋,还剩"+8%snacks+"元");
                break;

        }

    }
}

运行结果:

举一反三:

可改变题目条件,输入一个资金数目,然后选择一项商品,求得最多可买该商品多少件,剩余多少钱。

个人思路:
  1. 在原有基础上,设一个变量代表资金数

  1. 考虑特殊情况,需要判断资金是否足够最少买一个(在case中加入if语句进行判断)

代码实现:
import java.util.Scanner;

public class Example2_2_new {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        System.out.print("请输入你的资金数:");
        int w=sc.nextInt();
        int book = 12;//书本
        int pencil = 1;//铅笔
        int rubber = 2;//橡皮
        int cola = 3;//可乐
        int snacks = 5;//零食

        System.out.println("0.书本的价格是12元");
        System.out.println("1.铅笔的价格是1元");
        System.out.println("2.橡皮的价格是2元");
        System.out.println("3.可乐的价格是3元");
        System.out.println("4.零食的价格是5元");
        System.out.print("请输入你还想购入的商品编号:");
        int x=sc.nextInt();

        switch(x)
        {
            case 0:
                if(w-book<0) {
                    System.out.println("对不起,对于该商品,您的资金一个也买不起0.0");
                    break;
                }
                else
                System.out.println("您可以购买书本"+w/book+"本,还剩"+w%book+"元");
                break;
            case 1:
                if(w-pencil<0) {
                System.out.println("对不起,对于该商品,您的资金一个也买不起0.0");
                    break;
                }
                else
                System.out.println("您可以购买铅笔"+w/pencil+"支,还剩"+w%pencil+"元");
                break;
            case 2:
                if(w-rubber<0) {
                    System.out.println("对不起,对于该商品,您的资金一个也买不起0.0");
                    break;
                }
                else
                System.out.println("您可以购买橡皮"+w/rubber+"块,还剩"+w%rubber+"元");
                break;
            case 3:
                if(w-cola<0) {
                    System.out.println("对不起,对于该商品,您的资金一个也买不起0.0");
                    break;
                }
                else
                System.out.println("您可以购买可乐"+w/cola+"瓶,还剩"+w%cola+"元");
                break;
            case 4:
                if(w-snacks<0) {
                    System.out.println("对不起,对于该商品,您的资金一个也买不起0.0");
                    break;
                }
                else
                System.out.println("您可以购买零食"+w/snacks+"袋,还剩"+w%snacks+"元");
                break;

        }

    }
}

运行结果实例:

  • 特殊情况:

  • 细节

System.out.print("请输入你的资金数:");

一般情况下,请输入xxxxx:时使用print而不适用println排版更舒适。

【新案例 5-3】小明的算术题卡 小明的老师为了帮助他提高数学计算能力,给他布置了一项任务:每天完成一定数量的算术题卡。小明的任务包括加法、减法、乘法和除法四种基本运算。每种运算的题目数量和难度各不相同。 为了完成这项任务,小明需要编写一个程序来生成这些算术题卡。以下是程序的基本需求: 1. **题目生成**:程序需要生成指定数量的加法、减法、乘法和除法题目。 2. **难度设置**:每种运算的题目难度可以通过操作数的范围来设置。例如,加法和减法的操作数范围可以是1到100,而乘法和除法的操作数范围可以是1到20。 3. **答案验证**:程序需要能够验证用户输入的答案是否正确,并给出相应的反馈。 4. **记录成绩**:程序需要记录小明的答题情况,包括正确题数和错误题数。 以下是一个简单的Python程序示例,实现了上述功能: ```python import random def generate_question(operation, num_questions, range_start, range_end): questions = [] for _ in range(num_questions): if operation == 'addition': a = random.randint(range_start, range_end) b = random.randint(range_start, range_end) question = f"{a} + {b} = ?" answer = a + b elif operation == 'subtraction': a = random.randint(range_start, range_end) b = random.randint(range_start, range_end) question = f"{a} - {b} = ?" answer = a - b elif operation == 'multiplication': a = random.randint(range_start, range_end) b = random.randint(range_start, range_end) question = f"{a} * {b} = ?" answer = a * b elif operation == 'division': b = random.randint(range_start, range_end) a = b * random.randint(range_start, range_end) question = f"{a} / {b} = ?" answer = a / b questions.append((question, answer)) return questions def main(): num_addition = int(input("请输入加法题的数量: ")) num_subtraction = int(input("请输入减法题的数量: ")) num_multiplication = int(input("请输入乘法题的数量: ")) num_division = int(input("请输入除法题的数量: ")) addition_questions = generate_question('addition', num_addition, 1, 100) subtraction_questions = generate_question('subtraction', num_subtraction, 1, 100) multiplication_questions = generate_question('multiplication', num_multiplication, 1, 20) division_questions = generate_question('division', num_division, 1, 20) total_correct = 0 total_questions = num_addition + num_subtraction + num_multiplication + num_division for question, answer in addition_questions + subtraction_questions + multiplication_questions + division_questions: user_answer = float(input(question)) if user_answer == answer: print("正确!") total_correct += 1 else: print(f"错误,正确答案是: {answer}") print(f"你总共答对了 {total_correct} 道题。") print(f"你的正确率是: {total_correct / total_questions * 100:.2f}%") if __name__ == "__main__": main() ``` 这个程序根据用户输入的题目数量生成相应的算术题卡,并验证用户的答案,记录正确题数和错误题数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值