soso移动营业厅,项目作业 面向对象思维


import java.util.ArrayList;

public class User {
    private int uid;
    private String username;
    private String password;
    private String name;
    private String phone;
    private String cardId;
    private ArrayList<Business> mybusiness;
    private int money;

    public User() {
    }


    public User(int uid, String username, String password) {
        this.uid = uid;
        this.username = username;
        this.password = password;
    }

    public User(int uid, String username, String password, String name, String phone, String cardId, ArrayList<Business> mybusiness, int money) {
        this.uid = uid;
        this.username = username;
        this.password = password;
        this.name = name;
        this.phone = phone;
        this.cardId = cardId;
        this.mybusiness = mybusiness;
        this.money = money;
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public ArrayList<Business> getMybusiness() {
        return mybusiness;
    }

    public void setMybusiness(ArrayList<Business> mybusiness) {
        this.mybusiness = mybusiness;
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }



    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", 用户名='" + username + '\'' +
                ", 密码='" + password + '\'' +
                ", 姓名='" + name + '\'' +
                ", 手机号='" + phone + '\'' +
                ", 身份证号='" + cardId + '\'' +
                ", 我的业务=" + mybusiness +
                ", 余额=" + money +
                '}';
    }
}

===============public class Business {
    private int Bid;//业务标号
    private String title;//业务标题
    private String desc;//描述,详情
    private int price;//业务价格
    private String Stats;//业务状态1.正常业务0.已经下架业务

    @Override
    public String toString() {
        return "Business{" +
                "Bid=" + Bid +
                ", title='" + title + '\'' +
                ", desc='" + desc + '\'' +
                ", price=" + price +
                ", Stats='" + Stats + '\'' +
                '}';
    }

    public Business(int bid, String title, String desc, int price, String stats) {
        Bid = bid;
        this.title = title;
        this.desc = desc;
        this.price = price;
        Stats = stats;
    }

    public int getBid() {
        return Bid;
    }

    public void setBid(int bId) {
        this.Bid = bId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getStats() {
        return Stats;
    }

    public void setStats(String status) {
        this.Stats = status;
    }
}

=========================package soso项目;


import java.security.MessageDigest;
public class MD5Util {

    public static String getMD5(String str) {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");

            char[] charArray = str.toCharArray();
            byte[] byteArray = new byte[charArray.length];

            for (int i = 0; i < charArray.length; i++) {
                byteArray[i] = (byte) charArray[i];
            }
            byte[] md5Bytes = md5.digest(byteArray);

            StringBuffer hexValue = new StringBuffer();
            for (int i = 0; i < md5Bytes.length; i++) {
                int val = ((int) md5Bytes[i]) & 0xff;
                if (val < 16) {
                    hexValue.append("0");
                }
                hexValue.append(Integer.toHexString(val));
            }
            return hexValue.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
}
===================
测试类==================

package soso项目;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class soso {
    static Scanner sc = new Scanner(System.in);
    static List<User> users = new ArrayList<>();

    //用户集合
    static ArrayList<Business> businesses = new ArrayList<>();     //业务集合
    static ArrayList<Business> busines = new ArrayList<>();       //用户的业务集合
    static User loginId;

    static {
        User user1 = new User(0, "admin", "21232f297a57a5a743894a0e4a801fc3");//admin
        User user2 = new User(1, "zhangsan", "202cb962ac59075b964b07152d234b70");//123
        User user3 = new User(2, "lili", "698d51a19d8a121ce581499d7b701668");//111
        users.add(user1);
        users.add(user2);
        users.add(user3);

        Business business1 = new Business(1, "3元百分百包你出金", "想多了还是看你运气 ", 3, "1");
        Business business2 = new Business(2, "3元特价统统三块钱", "抽奖中了全场不要钱 ", 3, "1");
        Business business3 = new Business(3, "3元买不了吃亏上当", "三块钱你懂我意思吗 ", 3, "0");
        businesses.add(business1);
        businesses.add(business2);
        businesses.add(business3);
    }

    public static void main(String[] args) {
        index();
    }

    //主页面
    private static void index() {
        System.out.println("--欢迎来到soso移动商城--");
        System.out.println("--1:注册--");
        System.out.println("--2:登录--");
        System.out.println("--0:退出--");
        System.out.println("--请选择:--");
        String num = sc.next();

        switch (num) {
            case "1":
                register();
                break;
            case "2":
                login();
                break;
            case "0":
                System.out.println("谢谢使用,程序退出");
                System.exit(0);
                break;
            default:
                System.out.println("输入有误,请重新输入");
                index();
        }
    }


    //登录  //==============================================================分隔符========================================================
    private static void login() {
        System.out.println("输入用户名:");
        String myName = sc.next();
        System.out.println("输入密码:");
        String pwd = sc.next();
        String myPwd = MD5Util.getMD5(pwd);
        boolean volidLogin = volidLogin(myName, myPwd);//登录判断的方法

        if (volidLogin) {
            String code = getcode();
            System.out.println("请输入验证码" + code);
            String ucode = sc.next();
            if (ucode.equals(code)) {
                if ("admin".equals(myName)) {
                    adminview();
                } else {
                    for (User user : users) {
                        if (user.getUsername().equals(myName)) {
                            loginId = user;
//                            System.out.println(loginUser);
                            customSystem();
                        }
                    }
                }
            } else {
                System.out.println("验证码错误");
                index();
            }
        } else {
            System.out.println("登录失败");
            index();
        }
    }
    //==============================================================分隔符========================================================
    //用户管理的方法
    private static void customSystem() {
        System.out.println("***欢迎你" + loginId.getUsername() + "用户***");
        System.out.println("1. 查看个人信息");
        System.out.println("2. 修改个人信息");
        System.out.println("3. 充值");
        System.out.println("4. 查看我的业务");
        System.out.println("5. 查看业务大厅");
        System.out.println("6. 业务办理");
        System.out.println("7. 业务终止");
        System.out.println("请选择:");
        String num = sc.next();
        switch (num) {
            case "1":
                lookInformation();
                break;
            case "2":
                alterInformation();
                break;
            case "3":
                chargemani();
                break;
            case "4":
                lookbusiness();
                break;
            case "5":
                businessHall222();
                break;
            case "6":
                handlingbusiness();
                break;
            case "7":
                ceasepBusiness();
                break;
            default:
                System.out.println("输入有问题,重新输入");
                customSystem();
        }
    }

    //返回的方法
    public static void goback1() { //返回的方法
        System.out.println("1.返回 ,0.程序退出");
        String num = sc.next();
        switch (num) {
            case "1":
                customSystem();
                break;
            case "0":
                System.out.println("程序以退出");
                System.exit(0);
            default:
                System.out.println("输入有误重新输入");
                goback1();
        }
    }

    //111111111111111111查看个人信息的方法
    private static void lookInformation() {
        System.out.println(loginId.toString());
        goback1();
    }

    //2222222222222修改个人信息
    private static void alterInformation() {
        //先输入一次原密码 然后在输入两次新密码 如果一致的话则成功修改 并返回一下修改后的信息
        System.out.println("请输入原来的密码:");
        String oldpwd = sc.next();
        String md5oldpwd = MD5Util.getMD5(oldpwd); //获取加密文件------比较原密码
        if (loginId.getPassword().equals(md5oldpwd)) {   //加密文件对比原加密密码密码
            System.out.println("请输入你的新密码:");
            String newpwd1 = sc.next();
            System.out.println("请确定你所输入的新密码:");
            String newpwd2 = sc.next();
            //两次输入一致可以修改掉原来的密码  先进行加密处理
            if (newpwd1.equals(newpwd2)) {
                String md5newpwd = MD5Util.getMD5(newpwd1); //获取加密文件------比较原密码
                loginId.setPassword(md5newpwd);
                System.out.println(loginId);

            } else {
                System.out.println("两次密码需要一致");
            }
        } else {
            System.out.println("原密码输入错误");
        }
        goback1();
    }

    //333333333333333333333333 充钱
    private static void chargemani() {
        try {
            System.out.println("请输入你要氪多少(只能是1-200之间):");
            int mani = sc.nextInt();
            if (mani <= 200 && mani >= 1) {
                loginId.setMoney(mani);
                System.out.println(loginId);
                goback1();
            }
        } catch (Exception e) {
            System.out.println("不能输入字母或其他");
            sc.next();
            chargemani();
        }
    }

    // 4444444444444444444查看已办理业务
    private static void lookbusiness() {
        loginId.setMybusiness(busines);

        busines = loginId.getMybusiness();
        if (busines == null || busines.size()==0) {
            System.out.println("还没有办理过业务");
        } else {
                System.out.println(loginId.getMybusiness());
        }
        goback1();
    }

    //555555555555555555555555查看业务
    private static void businessHall222() {
        System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
        for (Business business : businesses) {
            if (business.getStats().equals("1")) {
                System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
                        business.getStats()); //获取每一个可以查看的业务
            }
        }
        goback1();
    }

    //66666666666666666666666666业务办理
    private static void handlingbusiness() {
        //写给if判断钱够不够
        businessHall1();
        boolean fl = false;
        System.out.println("请则你要办理的业务:");
        int num = sc.nextInt();

        Business business =null;//用来接收b
        for (Business b : businesses) {
            if (num == b.getBid() && b.getStats().equals("1")) {
                fl =true;          //办理成功
                business=b;
            }
        }

        if (fl){
            //写扣钱
           int price =  business.getPrice();
           int mani =loginId.getMoney();

           if (price<mani){
               busines.add(business);
               loginId.setMybusiness(busines);
           }else {
               System.out.println("钱不够");
               chargemani();
           }
            System.out.println("办理成功");
        }else {
            System.out.println("办理失败");
        }
        goback1();
    }

    public static void businessHall1() {
        System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
        for (Business business : businesses) {
            if (business.getStats().equals("1")) {
                System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
                        business.getStats()); //获取每一个可以查看的业务
            }
        }
    }

    //7777777777777777777777777业务终止
    private static void ceasepBusiness() {
        System.out.println("已有业务");
        System.out.println(loginId.getMybusiness());
        try {
            if (busines == null) {
                System.out.println("你没有办理过业务");
            } else {
                System.out.println("请输入终止业务id:");
                int num = sc.nextInt();
                boolean flag = false;
                if (busines.size() != 0) {
                    for (Business b : busines) {
                        if (num == b.getBid()) {
                            busines.remove(b);
                            flag = true;
                            break;
                        }
                    }
                    if (flag) {
                        System.out.println("删除成功");
                    } else {
                        System.out.println("删除失败 需要终止的id不存在");
                    }
                } else {
                    System.out.println("还没有办理过业务");
                }
                goback1();
            }
        } catch (Exception e) {
            System.out.println("请输入正确的业务id不能输入字母或者其他");
            sc.next();
            ceasepBusiness();

        }
    }


    //管理员方法admin  //=========================================================分隔符========================================================
    private static void adminview() {
        System.out.println("欢迎你:admin");
        System.out.println("1: 查看所有用户信息");
        System.out.println("2: 展示现有业务");
        System.out.println("3: 添加新业务");
        System.out.println("4 :删除业务");


        System.out.println("5: 修改业务价格");
        System.out.println("6: 发布业务");
        System.out.println("请选择:");
        String num = sc.next();
        switch (num) {
            case "1":
                userinfo();
                break;
            case "2":
                businessHall();
                break;
            case "3":
                addBusiness();
                break;
            case "4":
                removeBusiness();
                break;
            case "5":
                modifyThePrice();
                break;
            case "6":
                publishBusines();
                break;
            default:
                System.out.println("输入有问题,重新输入");
                adminview();
        }
    }


    //给添加业务编号的方法
    public static int getUserId2() {
        Business business = businesses.get(businesses.size() - 1);//获取集合 busi最后一个对象
        int uid = business.getBid();
        uid++;
        return uid;
    }

    //结束时是不是返回的方法
    public static void goback() { //返回的方法
        System.out.println("1.返回 ,0.程序退出");
        String num = sc.next();
        switch (num) {
            case "1":
                adminview();
                break;
            case "0":
                System.out.println("程序以退出");
                System.exit(0);
            default:
                System.out.println("输入有误重新输入");
                goback();
        }
    }

    //11111查看用户信息
    private static void userinfo() {
        System.out.println(businesses);
        goback();
    }

    //222222查看现有业务
    private static void businessHall() {
        System.out.println("业务编号\t业务标题\t\t\t业务描述\t\t业务价格\t\t业务状态");
        for (Business business : businesses) {
            if (business.getStats().equals("1")) {
                System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
                        business.getStats()); //获取每一个可以查看的业务
            }
        }
        goback();
    }

    //333333添加新业务
    private static void addBusiness() {
        try {
            int uid = getUserId2();
            System.out.println("请输入业务标题:");
            String titles = sc.next();
            System.out.println("请输入业务描述:");
            String descs = sc.next();
            System.out.println("请输入业务价格:");
            int prices = sc.nextInt();


            Business business = new Business(uid, titles, descs, prices, "1");
            businesses.add(business);
            System.out.println(businesses);
            goback();
        } catch (Exception e) {
            System.out.println("请价格不要输入字母 ");
            sc.next();
            addBusiness();
        }
    }

    //444444删除业务 变成0
    private static void removeBusiness() {
        try {
            System.out.println("请输入需要下架业务ID:");
            int id = sc.nextInt();
            System.out.println("你确定要下架此业务吗 “n”");//确定是否下架 n确定
            String flag = sc.next();
            boolean flag1 = false;
            if ("n".equals(flag)) {         //如果用户输入n遍历然后找到id的那个 把stats改成0
                for (Business b : businesses) {
                    if (id == b.getBid()) {
                        b.setStats("0");
                        flag1 = true;
                    }
                }
                if (flag1) {
                    System.out.println("业务下架成功");
                } else {
                    System.out.println("业务编号未被找到");
                }
            } else {
                System.out.println("你取消了下架业务");
            }
            goback();
        } catch (Exception e) {
            System.out.println("请输入正确的业务id不能输入字母或者其他");
            sc.next();
            removeBusiness();
        }
    }

    //5555555555 改价格的价格
    private static void modifyThePrice() {
        try {
            System.out.println(businesses);
            System.out.println("请选择你要修改的价格编号");
            int id = sc.nextInt();
            //首先说出原来编号的价格
            for (Business b : businesses) {
                if (id == b.getBid()) {
                    System.out.println("原来的价格是:" + b.getPrice());
                    break;
                }
            }
            //让用户输入修改价格 遍历数组 找到id的那个价价格 用set进行赋值
            System.out.println("请输入修改价格");
            int price = sc.nextInt();
            if (price < 100 && price > 0) {
                for (Business b : businesses) {
                    if (id == b.getBid()) {
                        b.setPrice(price);
                    }
                }
            } else {
                System.out.println("请输入正确的价格0-100之间");
            }
            goback();
        } catch (Exception e) {
            System.out.println("不能输入字母或者其他");
            sc.next();
            modifyThePrice();
        }
    }

    //6666666 发布的方法
    private static void publishBusines() {
        System.out.println(businesses);
        System.out.println("编号");
        for (Business business : businesses) {
            if (business.getStats().equals("0")) {
                System.out.println(business.getBid() + "\t" + business.getTitle() + "\t" + business.getDesc() + "\t" + business.getPrice() + "\t" +
                        business.getStats());
            }
        }
        boolean f = false;
        System.out.println("请选择你要上架的编号");
        int id = sc.nextInt();
        for (Business b : businesses) {
            if (id == b.getBid()) {
                b.setStats("1");
                f = true;
            }
        }
        if (f) {
            System.out.println("上架成功");
        } else {
            System.out.println("你输入的编号没有找到 请输入正确编号");
        }
        goback();
    }

    //登录判断的方法
    private static boolean volidLogin(String myName, String myPwd) {
        boolean flag = false;
        for (User user : users) {
            if (user.getUsername().equals(myName) && user.getPassword().equals(myPwd)) {
                flag = true;
                break;
            }
        }
        return flag;
    }
//  //==============================================================分隔符========================================================


//注册  //==============================================================分隔符========================================================
    private static void register() {
        System.out.println("请输入你要注册的用户名");
        String uname = sc.next();
        System.out.println("请输入你要注册的密码");
        String pwd1 = sc.next();
        System.out.println("请再次输入你要注册的密码");
        String pwd2 = sc.next();

        boolean n = volidUsername(uname);//获取用户方法的 boolean是不是ture;
        boolean v = volidpwd(pwd1, pwd2);//获取密码方法的 boolean是不是ture;
//        System.out.println("用户"+n);
//        System.out.println("密码"+v);
        if (v && n) {//验证用户名和密码后 执行验证码
            String code = getcode();
            System.out.println("请输入验证码" + code);
            String ucode = sc.next();
            if (ucode.equals(code)) {
                System.out.println("恭喜你!!注册成功了");
                String md5pwd1 = MD5Util.getMD5(pwd1);//获取密码的md5解析
                int userId = getUserId();//获取主键0123
                User user4 = new User(userId, uname, md5pwd1);
                users.add(user4);
                System.out.println(users);
                index();
            } else {
                System.out.println("验证码错误");
                index();
            }
        } else {
            System.out.println("注册失败返回");
            index();
        }
    }

    //编号的方法
    public static int getUserId() {//6.生成用户ID其实就是求最大值,list,最大值在最后
        User user = users.get(users.size() - 1);//从集合中获取最后一个用户对象
        int uid = user.getUid();
        uid++;//自增1
        return uid;
    }

    //验证码的方法
    private static String getcode() {
        String random = Math.random() + "";
        return random.substring(random.length() - 4);
    }

    //验证密码的方法
    private static boolean volidpwd(String pwd1, String pwd2) {
        boolean flag = false;
        if (pwd1.equals(pwd2) && pwd1.length() >= 4 && pwd1.length() <= 10) {
            flag = true;
            System.out.println("密码符合");
        }
        return flag;
    }

    //判断用户是否可以注册的方法
    private static boolean volidUsername(String name) {
        boolean flag = true;
        //长度
        if (name.length() >= 4 && name.length() <= 10) {
            //有没有重复
            for (User u : users) {
                //循环集合所有的username 和输入的name比较
                if (name.equals(u.getUsername())) {
                    System.out.println("用户名重复");
                    flag = false;
                    break;
                }
            }
        } else {
            System.out.println("长度不对");
            flag = false;//长度不满足就直接false
        }
        return flag;
    }
}









  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值