利用Java编写超市系统1.3的所有代码

超市1.3代码

1.Order类

public class Order {

    double totalMoney;
    //价格
    User user;
    //用户
    Product product;
    //产品
    int sales;
    //销量
   

}

2. Product类

public class Product {

    int price ;
    //价格
    String name;
    //名称
    int serNum;
    //序号
    int kuc;
    //库存

    int cost;
    //成本


}

3. User类

public class User {
    String name;
    //存放用户名
    String pwd;
    //存放密码
    int type;
    //用户1 或者管理员 2
    int vip;
    //0不是,1是
    double money;
    //用户余额

}

4. shopping类

import java.util.Scanner;

public class Shoping {
    User USER;
    Product [] products = new Product[10];
    User [] users = new User[10];
    Order [] orders=new Order[10];
    Scanner scanner = new Scanner(System.in);
    Order [] orders1 = new Order[10];
    //boolean falg =true;

    /**
     *  进入主页面
     */

    /**
     * 初始页面,可以进行选择登录或者注册
     */
    public void sp(){
        System.out.println("***欢迎来到超市***");
        System.out.println("输入1 代表登录,输入2 代表注册 输入其他代表退出");
        int n = scanner.nextInt();
        switch(n){

            case 1:{
                //用户登录
                userLogIn();

                if(USER.type==1){
                    //用户界面
                    shopUser();

                }else {
                    //管理员界面
                    admPage();
                    sp();
                }
                break;
            }
            case 2:{
                //用户注册
                register();
                sp();
            }

            default:{
                System.out.println("退出超市");

            }
        }
    }


    /**
     * 注册页面
     */

    /**
     * 分为管理员注册和用户注册。
     * 输入账号密码后会判断账号名是否重复,重复会让重新注册
     * 不重复会让再输一次密码,然后密码都相同会注册成功
     * 在注册时根据用户选择直接分为管理员和用户,用标志位type判断
     */
    public void register(){
        User user =new User();
        System.out.println("****欢迎来到注册页面****");
        System.out.println("请选择你是管理员注册还是用户注册");
        System.out.println("输入1代表用户注册,输入2代表管理员注册");
        user.type = scanner.nextInt();
        //判断是用户还是管理员
        System.out.println("请输入账户名称");
        user.name = scanner.next();
        System.out.println("请输入账户密码");
        user.pwd = scanner.next();
        boolean flag =true;
        boolean choose =true;
        //判断用户名没有被使用过
        for(int j=0;j<=users.length-1;j++){
            if(users[j]!=null&&users[j].name.equals(user.name)){
                choose =false;
                System.out.println("此用户名已被注册,请重新注册:");
                register();
            }
        }
        //用户名没有被注册时执行
        if(choose){
            System.out.println("请再次输入密码保证密码不是误输");
            //验证密码正确
            String pwd =scanner.next();
            if(pwd.equals(user.pwd)){

                for(int i=0;i<=users.length-1;i++){
                    if(users[i]==null){
                        users[i]=user;
                        // USER=users[i];
                        flag =false;
                        System.out.println("用户注册成功!");
                        break;
                    }
                }

            }else{
                System.out.println("两次密码不一致,请重新注册");
                register();
            }

            if(flag){

                System.out.println("用户已注册满,无法添加");

            }
        }


    }

    /**
     * 登录界面
     */

    /**
     * 管理员和用户统一一个登录界面,判断密码正确然后成功登录
     */
    public void userLogIn(){
        System.out.println("请输入用户账号");
        String name = scanner.next();
        System.out.println("请输入用户密码");
        String pwd = scanner.next();
        //遍历
        boolean falg =true;
        for(int i =0;i<=users.length-1;i++){
            if(users[i]!=null){
                //判断用户账户密码是否正确
                if(name.equals(users[i].name)&&pwd.equals(users[i].pwd)){
                    System.out.println("登录成功!");
                    USER=users[i];
                    falg =false;
                    break;
                }

            }
        }
        if(falg){

                System.out.println("用户名或者密码错误!");
                USER = null;//?
        }

    }

    /**
     * 用户界面
     */

    /**
     * 用户登录后,进入用户界面。然后通过选择每个选项调用方法
     */
    public void shopUser(){
        System.out.println("欢迎进入超市页面,我们有以下功能");
        System.out.println("1.购物 2.查询 3.充值 4.查看个人信息 5.vip办理 6.热销 7.查看账单 8.更改密码 9.退出");
        int a = scanner.nextInt();
        switch(a){
            case 1:{

                //购物

                userBuy();
                shopUser();
                break;
            }
            case 2:{

                //查询

                selectProduct();
                shopUser();
                break;
            }
            case 3:{

                //充值页面
                userRecharg();
                shopUser();
                break;
            }
            case 4:{
                //System.out.println("请查看个人信息");
                userInfor();
                shopUser();

                break;
            }
            case 5:{
                //System.out.println("vip办理");
                userVip();
                shopUser();

                break;
            }
            case 6:{
                //System.out.println("热销排行榜");
                bestProduct();
                shopUser();
                break;
            }
            case 7:{
                //System.out.println("查看账单");
                bill();
                shopUser();

                break;
            }
            case 8:{
                //System.out.println("更改密码");
                changePwd();
                shopUser();

                break;
            }
            default:{
                System.out.println("返回登录界面");
                sp();
                break;
            }
        }
    }


    /**
     * 管理员页面
     */

    /**
     * 管理员登录后,进入管理员界面。然后通过选择每个选项调用方法
     */
    public  void admPage(){
       // Product product = new Product();
        System.out.println("欢迎进入管理员界面请选择以下操作");
        System.out.println("1.增加商品 2.查询商品 3.修改商品 4.更改密码 5.查看利润 6.删除产品 7.退出");
        int choose = scanner.nextInt();

            switch (choose){
                case 1:{

                    //增加商品
                    addProduct();
//
                    admPage();
                    break;
                }
                case 2:{

                    //查询产品目录
                    selectProduct();
//
                    admPage();
                    break;
                }
                case 3:{

                    //修改产品信息
                    //selectProduct();
                    revise();
                    admPage();
//
                    break;
                }
                case 4:{

                    //更改密码
                    changePwd();
                    admPage();
                    break;
                }
                case 5:{

                    //查看订单利润
                    //selectProduct();
                    profit();
                    admPage();
//
                    break;
                }
                case 6:{

                    //删除产品
                    //selectProduct();
                    delete();
                    admPage();
//
                    break;
                }

                default:{
                    System.out.println("退出操作");
                    break;
                }
            }
    }


    /**
     * 添加产品页面
     */

    /**
     * 管理员界面功能
     * 输入产品名称,价格,库存
     * 数组进行判断,满了退出
     */

    public void addProduct(){
        boolean flag =true;
        Product product = new Product();
        System.out.println("请输入产品名称");
        product.name = scanner.next();
        System.out.println("请输入产品价格");
        product.price = scanner.nextInt();
        System.out.println("请输入产品库存量");
        product.kuc = scanner.nextInt();
        System.out.println("请输入产品进货价");
         int cost =scanner.nextInt();
         if(cost<=product.price){
             for(int i =0;i<=products.length-1;i++){
                 if(products[i]==null){
                     flag =false;
                     product.serNum=i;
                     products[i]=product;
                     break;
                 }

             }
             if(flag){
                 System.out.println("仓库已满,无法添加");
             }else{
                 System.out.println("添加成功");
             }
         }else{
             System.out.println("你输入的进货价错误,请重新添加");
             addProduct();
         }


    }



    /**
     * 查询产品页面
     */

    /**
     * 用户和管理员共同功能
     * 通过遍历输出所有产品
     */

    public void selectProduct(){
        if(USER.type==2){
            System.out.println("***以下是查询商品页面***");
            System.out.println("产品序号   产品名称  产品价格  产品库存 进货价 ");
            for(int i= 0;i<=products.length-1;i++){
                if(products[i]!=null){
                    System.out.println(products[i].serNum+"\t\t   "+products[i].name+"\t   "
                            +products[i].price+"\t   "+products[i].kuc+"   "+products[i].cost);
                }else{
                    break;
                }
            }
        }else{
            System.out.println("***以下是查询商品页面***");
            System.out.println("产品序号   产品名称  产品价格  产品库存  ");
            for(int i= 0;i<=products.length-1;i++){
                if(products[i]!=null){
                    System.out.println(products[i].serNum+"\t\t   "+products[i].name+"\t   "
                            +products[i].price+"\t   "+products[i].kuc);
                }else{
                    break;
                }
            }
        }
    }


    /**
     * 商品修改页面
     */

    /**
     * 管理员功能
     * 选择序号进行修改产品,重新输入产品信息
     */

    public void revise(){
        Product product = new Product();
        System.out.println("这是修改商品信息页面,请选择要修改的商品序号");
        int ser =scanner.nextInt();
        if(products[ser]!=null){
            //当输入的序号存在时
            System.out.println("请输入更改后的商品名");
            product.name = scanner.next();
            System.out.println("请输入更改后的商品价格");
            product.price = scanner.nextInt();
            System.out.println("请输入更改后的商品库存");
            product.kuc = scanner.nextInt();
        }else{
            System.out.println("商品序号不存在,请检查后重新输入");
            revise();
        }
    }


    /**
     * 用户购物界面
     */

    /**
     * 用户功能
     * 通过输入产品序号进行产品选择,选择完然后输入数量进行购买
     * 购买时进行判断库存数是否够需求以及用户余额是否够交易、
     * 购买时会判断是不是会员,会员会进行打折操作
     * 购买成功后更新库存量,用户余额,以及更新账单
     * 当用户余额不够购买时,选择是否跳转到充值界面
     * 购买完成后并输出账单以及用户余额
     */

    public void userBuy(){
        Order order =new Order();
        System.out.println("欢迎选购商品,以下是我们的所有产品");
        selectProduct();
        System.out.println("请输入想要购买的产品序号");
        int ser = scanner.nextInt();
        System.out.println("产品序号   产品名称   产品价格   产品库存");
        System.out.println(products[ser].serNum+"  "+products[ser].name+"   "+products[ser].price+
                "   "+products[ser].kuc);
        System.out.println("请输入想要购买数量");
        int num =scanner.nextInt();
            //判断库存够不够

        if(products[ser].kuc>=num){
            //判断钱够不够
            if(USER.vip!=1){
                if(USER.money>=num*products[ser].price){

                    USER.money=USER.money-num*products[ser].price;
                    //更新用户余额
                    order.sales=order.sales+num;
                    //更新销售量
                    //order.cost =(products[ser].price-)
                    order.user=USER;
                    //更新账单
                    order.totalMoney =num*products[ser].price;
                    //更新库存
                    products[ser].kuc= products[ser].kuc - num;
                    order.product=products[ser];

                    //将值存进orders中
                    for(int i=0;i<=orders.length-1;i++){
                        if(orders[i]==null){
                            orders[i]=order;
                            break;
                        }
                    }
                    System.out.println("你本次消费:"+order.totalMoney+" 还剩余额:"+USER.money);

                }else{
                    System.out.println("剩余钱不够,是否进行充值,充值请输入1");
                    int a =scanner.nextInt();
                    if(a==1){
                        //充值
                        userRecharg();
                    }
                    //跳转
                    userBuy();
                }
            }else{
                System.out.println("您是尊贵的VIP会员,享受八折优惠");
                if(USER.money>=0.8*num*products[ser].price){
                    //用户余额
                    USER.money=USER.money-0.8*num*products[ser].price;
                    //热销
                    order.sales=order.sales+num;
                    order.user=USER;
                    order.totalMoney =0.8*num*products[ser].price;
                    //将值存进orders中
                    products[ser].kuc= products[ser].kuc - num;
                    order.product=products[ser];
                    for(int i=0;i<=orders.length-1;i++){
                        if(orders[i]==null){
                            orders[i]=order;
                            break;
                        }
                    }
                    System.out.println("您本次消费:"+order.totalMoney+" 还剩余额:"+USER.money);

                }else{
                    System.out.println("剩余钱不够,是否进行充值,充值请输入1");
                    int a =scanner.nextInt();
                    if(a==1){
                        //充值
                        userRecharg();
                    }
                    //跳转
                    userBuy();
                }

            }

        }else{
            System.out.println("库存不够");
        }

    }


    /**
     * 充值页面
     */

    /**
     * 用户界面
     * 通过选择进行判断,将金额加上,并将金额存到用户余额里
     */
    public void userRecharg(){
        System.out.println("******欢迎来到充值界面*****");
        System.out.println("本着爱民原则,我们超市优惠大酬宾,充值有优惠");
        System.out.println("充值100送10元,充值200送25,充值1000送150,超过1500,每超100送16");
        System.out.println("******请输入充值金额******");
        int money = scanner.nextInt();
        if(money<100){
            USER.money=USER.money+money;
            System.out.println("目前账目上余额为"+USER.money);
        }else if(money>=100&&money<200){
            USER.money=USER.money+money+10;
            System.out.println("目前账目上余额为"+USER.money);
        }else if(money>=200&&money<1000){
            USER.money=USER.money+money+25;
            System.out.println("目前账目上余额为"+USER.money);
        }else if(money>=1000&&money<1500){
            USER.money=USER.money+money+150;
            System.out.println("目前账目上余额为"+USER.money);
        }else{
            int k = (money-1500)/100;
            USER.money=USER.money+money+16*k;
            System.out.println("目前账目上余额为"+USER.money);
        }

    }


    /**
     * 查看个人信息页面
     */

    /**
     * 用户界面
     * 输出用户的所有信息
     */

    public  void userInfor(){
        System.out.println("****欢迎查看个人信息****");
        System.out.println("用户名:  "+USER.name);
        System.out.println("用户密码: "+USER.pwd);
        System.out.println("用户余额   "+USER.money);
        if(USER.vip==1){
            System.out.println("你是尊贵的vip会员");
        }else{
            System.out.println("你目前还不是vip会员");
        }
    }


    /**
     * vip界面
     */

    /**
     * 用户界面
     * 通过将标志位vip赋值为1进行判断
     * 当已经成为vip时再充值vip会失败
     * 充值完vip会进行扣钱操作,如果余额不够会选择是否跳转到充值界面
     * 结束时输出用户余额
     */

    public void userVip(){
        System.out.println("欢迎进入VIP页面");
        System.out.println("请问是否办理VIp会员,办理会员需要支付10元");
        System.out.println("输入1办理");
        int num =scanner.nextInt();
        if(USER.vip!=1){
            if(num==1){
                if(USER.money>=10){
                    System.out.println("您已成功办理VIP会员,感谢您的加入");

                    USER.vip=1;
                    USER.money=USER.money-10;
                    System.out.println("你目前的余额还有"+USER.money);
                }else{
                    System.out.println("余额不足,是否进行充值,输入1进入充值界面,输入其他退出");
                    int i=scanner.nextInt();
                    if(i==1){
                        userRecharg();
                    }
                }
            }
        }else{
            System.out.println("你已经是尊贵的VIP用户,无需再充值VIP");
        }
    }


    /**
     * 账单查看页面
     */

    /**
     * 用户界面
     *
     */

    public  void bill(){
        System.out.println("欢迎进入账单查看页面");
        System.out.println("以下是"+USER.name+"用户的账单");
        //遍历
        //boolean falg = true;
        System.out.println("产品序号  产品名  产品价格   消费价格   操作");
        for(int i =0; i<=orders.length-1;i++){
            if(orders[0]!=null){//判断数组第一个数是否为空
                                //为空表示用户未购买东西

                    if(orders[i]!=null){//找数组不为空的部分
                        // falg = false;
                        //输出信息
                        if(orders[i].user==USER){
                            System.out.println(i + "\t\t"+orders[i].product.name+"\t\t"+orders[i].product.price+
                                    "\t\t"+orders[i].totalMoney+"\t\t");
                        }
                    }else{
                        break;
                    }

            }else{
                System.out.println("你还未进行购物,是否跳转到购物页面?");
                System.out.println("输入1代表跳转");
                int mun = scanner.nextInt();
                if(mun==1){
                    //跳转
                    userBuy();
                }
            }
        }
    }

    /**
     * 热销界面
     */

    /**
     * 用户界面
     * 通过查看订单1然后了解热销榜单
     * 先判断订单中有几个不为空
     * 然后将订单引用给订单1
     * 将订单1以销量冒泡排序
     */

    public void bestProduct(){
        Order order =new Order();
        System.out.println("欢迎进入热销排行榜");
        System.out.println("畅销序列  产品名称  产品价格  销量");
        int j = 0;
        //判断数组中有几个不为空

        for(int i=0;i<=orders.length-1;i++){
            if(orders[i]!=null){
                j++;
            }else{
                break;
            }
        }
        //boolean falg = true;
        //将orders的数组不为空的部分引用给orders1
        for (int i =0; i<j;i++){
            if(orders1[i]==null){
                orders1[i]=orders[i];
                //falg = false;
            }

        }

        //冒泡排序

        Order order1;
        for(int i = 0;i<j;i++){
           for (int s=0; s<j-i;s++){
            if(orders1[s+1]!=null){
                if(orders1[s].sales<=orders1[s+1].sales){
                    order1=orders1[s+1];
                    orders1[s+1]=orders1[s];
                    orders1[s]=order1;
                }
            }else{
                break;
            }
           }
        }
        //boolean falg;
        for (int i=0;i<=j;i++){
            if(orders1[i]!=null){
                System.out.println("TOP"+i+"\t\t"+orders1[i].product.name+"\t\t"+
                orders1[i].product.price+"\t\t"+orders1[i].sales);
            }else{
                break;
            }
        }

    }

    /**
     * 更改密码界面
     */

    /**
     * 用户和管理员界面
     * 通过输入原始密码然后进行判断,
     * 密码正确之后,输入新密码,将新密码赋值给原来的账户
     */
    public void changePwd(){
        System.out.println("欢迎来到更改密码界面");
        System.out.println("请输入当前密码以确定是本人操作");
        String pwd = scanner.next();
        //判断当前用户密码是否输入正确
        if(USER.pwd.equals(pwd)){
            System.out.println("密码输入正确,请输入新密码");
            System.out.println("请不要和之前密码相同");
            String pwd1 = scanner.next();
            //判断更改后的密码与之前不同
            if(!pwd1.equals(USER.pwd)){
                System.out.println("密码修改成功");
                //将密码重新赋值
                USER.pwd=pwd1;

                System.out.println("当前用户名为"+USER.name);
                System.out.println("当前密码为"+USER.pwd);
            }else{
                System.out.println("与之前输入密码相同,操作失败");
                System.out.println("是否放弃更改密码操作,是输入1,否输入2");
                int a = scanner.nextInt();
                if(a==1){
                    System.out.println("退出更改密码界面");
                    sp();
                }else{
                    changePwd();
                }
            }

        }else{
            System.out.println("密码输入错误,是否退出更改密码操作,退出请输入1");
            int choose = scanner.nextInt();
            if(choose==1){
                System.out.println("退出更改密码界面");
                sp();
            }else{
                changePwd();
            }

        }

    }

    /**
     *利润界面
     */

    /**
     * 管理员界面
     * 查看销售利润
     */
    public void profit(){
        System.out.println("欢迎来到利润界面");
        /*
        属性 将每个种类里的销量乘以利润然后加起来
        可以先输出每种利润,然后输出之和
         */
        System.out.println("产品名称  产品价格  产品销量  产品总利润");
        for (int i=0;i<orders.length-1;i++){
            if(orders[i]!=null){
                System.out.println(orders[i].product.name+"   "+orders[i].product.price+"  "+
                orders[i].sales+"  "+(orders[i].sales*orders[i].product.price-orders[i].sales*orders[i].product.cost));
            }
        }
    }
    /**
     * 删除操作
     */

    /**
     * 管理员页面
     * 通过输入序号将产品所有信息删除,并将其他产品序号往前排
     */
    public void delete(){
        Product product;

        System.out.println("欢迎进入删除操作");
        selectProduct();
        System.out.println("请输入想要删除的序列号");
        int ser = scanner.nextInt();
       // selectProduct();
        if(products[ser]!=null){
            System.out.println("确定要删除吗");
            System.out.println("确定请输入1");
            int choose =scanner.nextInt();
            if(choose==1){
                //System.out.println("已删除这个产品,产品序号已经重新自动排序");
                //products[ser]=null;
                //判断非空数组长度
                int j=0;
                for(int k=0;k<=products.length-1;k++){
                    if(products[k]!=null){
                        j++;
                    }else{
                        break;
                    }
                }
                //System.out.println("已删除这个产品,");

                //从要删除的那个开始,后面的往前排序
                if(ser==(j-1)){
                    products[j-1]=null;
                }else{
                    for(int i=ser;i<(j-1);i++){
                        product = products[i+1];
                        product.serNum = products[i+1].serNum-1;
                        products[i]=product;
                    }
                    products[j-1]=null;
                }

                System.out.println("已删除这个产品,");
                selectProduct();
            }
        }
    }
}

5. 启动类

public class ShoppingMain {
    public static void main(String[] args) {
        Shoping shoping =new Shoping();
        shoping.sp();
    }
}

6. 结尾

以上就是此次超市1.3的所有的代码,可以根据注释进行理解,如果有不理解的地方或者有其他的学习上的疑惑也可以私信我,博主会尽最大可能帮助。
如果这个代码看着有难度,可以看博主前面的博客,超市1.0和超市1.3

((16条消息) 利用Java编写超市系统1.0版本_丶丶丶丶。的博客-CSDN博客_java做一个超市系统)

((16条消息) 利用Java编写超市系统1.3版本_丶丶丶丶。的博客-CSDN博客)

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
好的,我可以为您提供一些基本的步骤来实现学生管理系统链接SQL数据库的功能: 1. 安装Java开发环境和SQL数据库。您可以使用Eclipse或IntelliJ IDEA等Java IDE来开发和调试Java程序,同时也需要安装MySQL、Oracle或SQL Server等SQL数据库。 2. 创建Java项目并导入相关的JDBC驱动程序。Java程序可以通过JDBC来连接SQL数据库,因此您需要导入相应的JDBC驱动程序,例如mysql-connector-java.jar。 3. 编写Java代码来连接SQL数据库。您可以使用JDBC API来连接SQL数据库,并执行SQL查询和更新操作。下面是一个示例代码: ``` import java.sql.*; public class StudentManager { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); // 加载JDBC驱动 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); // 创建数据库连接 stmt = conn.createStatement(); // 创建Statement对象 rs = stmt.executeQuery("SELECT * FROM student"); // 执行查询操作 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID:" + id + ", Name:" + name + ", Age:" + age); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } } ``` 在上面的代码中,我们首先加载了MySQL JDBC驱动程序,然后创建了一个数据库连接对象。接着,我们创建了一个Statement对象,并执行了一个查询操作,最后打印了查询结果。请注意,我们在最后使用了try-catch-finally块来处理异常和释放资源。 4. 编译和运行Java程序。在完成Java代码编写后,您可以使用Java编译器将其编译成.class文件,然后使用Java虚拟机运行它。如果一切正常,您应该可以看到从SQL数据库中检索到的学生信息输出到控制台上。 这些是连接SQL数据库的基本步骤,您可以根据实际需求进行修改和扩展。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶丶丶丶。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值