java作业(2022/11/26)

一、小结:

  • 1-这些题目:大部分是用到"while循环和switch"来配合的,也打破了我以前只在意for,以为for是万能的想法。写了着7道题,收获还是很多的。

  • 2-对7道题目的小结:1-遇到需要按"序号"来选择执行方式的情况,先想到switch。2-遇到在循环内,要判断完再退出的情况,先想放在"while循环"里面

  • 3-while和switch结合也是一种解决方法的途径,不要思维被for限制了

二、题目和代码块

package learn_java_net;

import java.util.Random;
import java.util.Scanner;


public class homeWork {
/*
1.需求说明:
【案例2-1】  商品入库
现要对华为和小米两种手机产品进行入库,本案例要求编写一个模拟商品入库的程序,
可以在控制台输入入库商品的数量,最后打印出仓库中所有商品详细信息以及所有商品的总库存数和库存商品总金额。
商品信息如下:
● 品牌型号
● 尺寸
● 价格
● 配置
● 库存
● 总价
 */
}

class Goods {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String huawei = "华为手机";
        double size = 6.1;
        double money = 1000;
        String configuration = "8 + 128";
        System.out.println("品牌:" + huawei);
        System.out.println("尺寸:" + size);
        System.out.println("价格:" + money);
        System.out.println("配置:" + configuration);
        int number = scanner.nextInt();
        System.out.println("商品的个数" + number);
        double total = number * money;
        System.out.println("华为的总价" + total);

        System.out.println("-------------------------");

        String xiaoMi = "小米手机";
        double xiaoMiSize = 6.1;
        double xiaoMiMoney = 1900.9;
        String xiaoMiConfiguration = "8 + 128";
        System.out.println("品牌:" + xiaoMi);
        System.out.println("尺寸:" + xiaoMiSize);
        System.out.println("价格:" + xiaoMiMoney);
        System.out.println("配置:" + xiaoMiConfiguration);
        int xiaoMiNumber = scanner.nextInt();
        System.out.println("商品的个数" + xiaoMiNumber);
        double xiaoMiTotal = number * money;
        System.out.println("Xiaomi的总价" + xiaoMiTotal);
    }
}


/*
2. 需求说明:
【案例2-2】  小明都可以买什么?
编写一个智能购物计算小程序,在一家商店有书本、铅笔、橡皮、可乐、零食五种商品,商品价格如下表所示。
假如小明带了20元,且必须购买一本书,剩余的钱还可以购买哪种商品,可以购买几件,购买完后又能剩余多少钱?
 */
class Buy {
    public static void main(String[] args) {
        int sumMoney = 20;
        int book = 12;
        int pencil = 1;
        int rubber = 2;
        int kele = 3;
        int snacks = 5;
        int i = sumMoney - book;
        System.out.println("必须买书本12元" + "剩下 " + (sumMoney - book) + " 元");
        System.out.println("请输入pencil、rubber、kele、snacks");
        Scanner goods = new Scanner(System.in);
        String good = goods.next();
        switch (good) {
            case "pencil":
                System.out.println("你还可以购买pencil" + "" + (i / pencil) + "支");
                break;
            case "rubber":
                System.out.println("你还可以购买rubber" + "" + (i / rubber) + "个");
                break;
            case "kele":
                System.out.println("你还可以购买kele" + "" + (i / kele) + "罐");
                break;
            case "snacks":
                System.out.println("你还可以购买snacks" + "" + (i / snacks) + "包");
                break;
            default:
                System.out.println("输入错误");
        }
    }
}

/*
3. 需求说明
【案例2-3】  超市购物
编写一个超市购物程序,在一家超市有牙刷、毛巾、水杯、苹果和香蕉五种商品,
用户输入商品序列号进行商品购买,用户输入购买数量后计算出所需要花费的钱,
一次购买结束后,需要用户输入“Y”或“N”,“Y”代表继续购买,“N”代表购物结束。商品价格如下表所示。
toothbrush、towel, water glass, apple and banana
 */
class shop {
    public static void main(String[] args) {
        double sumMoney = 0;
        double toothbrush = 8.8;
        double towel = 10.0;
        double glass = 18.8;
        double apple = 12.5;
        double banana = 15.5;
        Scanner scanner = new Scanner(System.in);
        boolean flag = true;
        while (flag) {
            System.out.println("请输入商品序列号1-5");
            int id = scanner.nextInt();
            switch (id) {
                case 1:
                    System.out.println("你准备购买牙刷,请输入你购买牙刷的数量:");
                    int i = scanner.nextInt();
                    System.out.println("你已经购买了" + i + "个牙刷");
                    System.out.println("你还需要购买其他商品吗?需要输入'Y',不需要继续购买输入'N' or 'other'");
                    String next1 = scanner.next();
                    if (next1.equals("Y")) {
                        sumMoney += i * toothbrush;
                        continue;
                    } else {
                        sumMoney += i * toothbrush;
                        flag = false;
                        break;
                    }

                case 2:
                    System.out.println("你准备买毛巾,请输入你购买毛巾的数量:");
                    int i2 = scanner.nextInt();
                    System.out.println("你已经购买了" + i2 + "个毛巾");
                    System.out.println("你还需要购买其他商品吗?需要输入'Y',不需要继续购买输入'N' or 'other'");
                    String next2 = scanner.next();
                    if (next2.equals("Y")) {
                        sumMoney += i2 * towel;
                        continue;
                    } else {
                        sumMoney += i2 * towel;
                        flag = false;
                        break;
                    }

                case 3:
                    System.out.println("你准备购买水杯,请输入你购买水杯的数量:");
                    int i3 = scanner.nextInt();
                    System.out.println("你已经购买了" + i3 + "个水杯");
                    System.out.println("你还需要购买其他商品吗?需要输入'Y',不需要继续购买输入'N' or 'other'");
                    String next3 = scanner.next();
                    if (next3.equals("Y")) {
                        sumMoney += i3 * glass;
                        continue;
                    } else {
                        sumMoney += i3 * glass;
                        flag = false;
                        break;
                    }

                case 4:
                    System.out.println("你准备购买苹果,请输入你购买苹果的数量:");
                    int i4 = scanner.nextInt();
                    System.out.println("你已经购买了" + i4 + "个苹果");
                    System.out.println("你还需要购买其他商品吗?需要输入'Y',不需要继续购买输入'N' or 'other'");
                    String next4 = scanner.next();
                    if (next4.equals("Y")) {
                        sumMoney += i4 * apple;
                        continue;
                    } else {
                        sumMoney += i4 * apple;
                        flag = false;
                        break;
                    }

                case 5:
                    System.out.println("你准备购买香蕉,请输入你购买香蕉的数量:");
                    int i5 = scanner.nextInt();
                    System.out.println("你已经购买了" + i5 + "个香蕉");
                    System.out.println("你还需要购买其他商品吗?需要输入'Y',不需要继续购买输入'N' or 'other'");
                    String next5 = scanner.next();
                    if (next5.equals("Y")) {
                        sumMoney += i5 * banana;
                        continue;
                    } else {
                        sumMoney += i5 * banana;
                        flag = false;
                        break;
                    }

                default:
                    System.out.println("输入错误");
            }
            System.out.println("你一共需要付 " + sumMoney);
        }
    }
}

/*
4.需求说明
【案例2-4】  为新员工分配部门
某公司现有java程序开发部门、C#程序开发部门、asp.net程序测试部门、前端程序开发部门四个部门。
编写一个程序实现新入职的员工的部门分配,要求根据用户输入的员工姓名和应聘语言确定员工应该分配到哪个部门。
若公司没有与输入的语言匹配的部门,则进行相关提示。
 */

class Department {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = scanner.next();
        System.out.println("请输入你的部门:");
        String department = scanner.next();
        switch (department) {
            case "java程序开发部门":
                System.out.println(name + "你是" + department + "部门的");
                break;
            case "C#程序开发部门":
                System.out.println(name + "你是" + department + "部门的");
                break;
            case "asp.net程序测试部门":
                System.out.println(name + "你是" + department + "部门的");
                break;
            case "前端程序开发部门":
                System.out.println(name + "你是" + department + "部门的");
                break;
            default:
                System.out.println("没有这个部门");
                break;
        }
    }
}

/*
5.需求说明
【案例2-5】剪刀石头布
“剪刀石头布”的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序。
程序启动后会随机生成1~3的随机数,分别代表剪刀、石头和布,玩家通过键盘输入剪刀、石头和布与电脑进行5轮的游戏,
赢的次数多的一方为赢家。若五局皆为平局,则最终结果判为平局。
1-石头  2-剪刀  3-步
 */
class Game {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        int[] ints = new int[5];
        for (int i = 0; i < 5; i++) {
            int number = random.nextInt(3) + 1;
            ints[i] = number;
        }
        //测试数组
        // for (int i = 0; i < 5; i++) {
        //    System.out.println(Arrays.asList(ints[i]));
        //}
        int win = 0;
        boolean flag = true;
        System.out.println("请输入1-3");
        while (flag) {
            int one = scanner.nextInt();
            if (one == ints[0]) {
                System.out.println("第1局平局");
            } else if (one > ints[0]) {
                win++;
                System.out.println("第一局你赢了");
            } else {
                System.out.println("第一局你输了");
            }

            int two = scanner.nextInt();
            if (two == ints[1]) {
                System.out.println("第2局平局");
            } else if (two > ints[1]) {
                win++;
                System.out.println("第2局你赢了");
            } else {
                System.out.println("第2局你输了");
            }

            int three = scanner.nextInt();
            if (three == ints[2]) {
                System.out.println("第3局平局");
            } else if (three > ints[2]) {
                win++;
                System.out.println("第3局你赢了");
            } else {
                System.out.println("第3局你输了");
            }

            int four = scanner.nextInt();
            if (four == ints[3]) {
                System.out.println("第4局平局");
            } else if (four > ints[3]) {
                win++;
                System.out.println("第4局你赢了");
            } else {
                System.out.println("第4局你输了");
            }

            int five = scanner.nextInt();
            if (five == ints[4]) {
                System.out.println("第5局平局");
                flag = false;
            } else if (five > ints[4]) {
                win++;
                System.out.println("第5局你赢了");
                flag = false;
            } else {
                System.out.println("第5局你输了");
                flag = false;
            }
        }
//-------
        System.out.println("比赛结束");
        if (win >= 3) {
            System.out.println("你赢了");
        } else {
            System.out.println("电脑赢了");
        }
    }
}

/*
6.需求说明
【案例2-6】  登录注册
编写程序实现简单的登录注册功能。程序包含以下4个功能:
(1)登录功能,用户输入正确的账号密码进行成功;
(2)注册功能,输入用户名和密码进行注册;
(3)查看功能,查看所有的用户名与密码;
(4)退出功能,退出系统。
用户可以输入对应的编号进行相应的功能操作。例如,输入2进入注册功能,输入用户名和密码进行注册。
 */

class Register {
    private String account;
    private String password;

    @Override
    public String toString() {
        return "Register{" +
                "account='" + account + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

class TestRegister {
    public static void main(String[] args) {
        int testVerificationCode = 0;
        Random random = new Random();
        int[] ints = new int[5];
        Scanner scanner = new Scanner(System.in);
        Register register = new Register();
        boolean flag = true;
        while (flag) {
            System.out.println("请输入序号");
            System.out.println("1-登陆系统");
            System.out.println("2-注册系统");
            System.out.println("3-查看账号密码");
            System.out.println("4-退出系统");
            int i = scanner.nextInt();
            switch (i) {
                case 1:
                    System.out.println("登入你的账号");
                    String account = scanner.next();
                    System.out.println("输入你的密码");
                    String password = scanner.next();
                    if (account.equals(register.getAccount()) && password.equals(register.getPassword())) {
                        System.out.println("为了你的账号安全,请再输入一次密码");
                        String password2 = scanner.next();
                        if (password.equals(password2)) {
                            System.out.println("密码验证成功");
                            System.out.println();
                            int number1 = random.nextInt(8) + 1;
                            int number2 = random.nextInt(8) + 1;
                            int number3 = random.nextInt(8) + 1;
                            int number4 = random.nextInt(8) + 1;
                            testVerificationCode = number1 + number2 + number3 + number4;
                            System.out.println();
                            System.out.println("请输入验证码...");
                            System.out.println("验证码 :请输出" + number1 + " + " + number2 + " + " + number3 + " + " + number4 + "等于多少");
                            int verificationCode = scanner.nextInt();
                            if (verificationCode == testVerificationCode) {
                                System.out.println("登入成功...");
                            } else {
                                System.out.println("你的密码输入错误,请重新登录...");
                                continue;
                            }
                        } else {
                            System.out.println("你的密码输入错误,系统判断你非法登入,已退出程序,请重新登录...");
                            break;
                        }
                        System.out.println("------------------------");
                        continue;
                    } else {
                        System.out.println("登录失败");
                        System.out.println("因为你登录失败,系统判定你为非法登入,请重修启动系统");
                        flag = false;
                        break;
                    }
                case 2:
                    System.out.println("注册你的账号");
                    String setAccount = scanner.next();
                    register.setAccount(setAccount);
                    System.out.println("注册你的密码");
                    String setPassword = scanner.next();
                    register.setPassword(setPassword);
                    System.out.println("------------------------");
                    continue;
                case 3:
                    System.out.println("你的账号: " + register.getAccount());
                    System.out.println("你的密码:" + register.getPassword());
                    System.out.println("------------------------");
                    continue;
                case 4:
                    System.out.println("你还需要操作吗?需要输入'Y',不需要输入'N'");
                    String next4 = scanner.next();
                    if (next4.equals("Y")) {
                        continue;
                    } else if (next4.equals("N")) {
                        flag = false;
                        break;
                    } else {
                        System.out.println("因为你不按规定输入,系统默认你不再继续操作");
                        flag = false;
                        break;
                    }
            }
        }
    }
}

/*
7.需求说明
【案例2-7】  抽取幸运观众
在一些节目活动中,经常会有抽取幸运观众环节。本案例要求编写程序实现幸运观众的抽取,在指定人群中随机抽取一名幸运观众。
案例功能要求如下:
(1)从键盘输入3名观众。
(2)存储观众姓名。
(3)总览观众姓名。
(4)随机选取一名观众,并打印出该观众姓名。
 */
class LuckUser {
    private String name1;
    private String name2;
    private String name3;

    @Override
    public String toString() {
        return "LuckUser{" +
                "name1='" + name1 + '\'' +
                ", name2='" + name2 + '\'' +
                ", name3='" + name3 + '\'' +
                '}';
    }

    public String getName1() {
        return name1;
    }

    public void setName1(String name1) {
        this.name1 = name1;
    }

    public String getName2() {
        return name2;
    }

    public void setName2(String name2) {
        this.name2 = name2;
    }

    public String getName3() {
        return name3;
    }

    public void setName3(String name3) {
        this.name3 = name3;
    }
}

class ChooseUser {
    public static void main(String[] args) {
        LuckUser luckUser = new LuckUser();
        Scanner scanner = new Scanner(System.in);

        System.out.println("输入三位观众名字");
        System.out.println("第一位");
        String name1 = scanner.next();
        luckUser.setName1(name1);
        System.out.println("第二位");
        String name2 = scanner.next();
        luckUser.setName2(name2);
        System.out.println("第三位");
        String name3 = scanner.next();
        luckUser.setName3(name3);

        System.out.println("------------------");

        System.out.println("查看观众信息");
        System.out.println(luckUser.getName1());
        System.out.println(luckUser.getName2());
        System.out.println(luckUser.getName3());

        System.out.println("------------------");

        Random random = new Random();

        int number = random.nextInt(3) + 1;
        switch (number) {
            case 1:
                System.out.println("抽到的是:" + name1);
                break;
            case 2:
                System.out.println("抽到的是:" + name2);
                break;
            case 3:
                System.out.println("抽到的是:" + name3);
                break;
            default:
                System.out.println("系统出故障,请重启");
                break;
        }
    }
}

posted on 2022-11-24 20:55  陈嘻嘻-  阅读(906)  评论(0编辑  收藏  举报

导航