A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

自己写的,用了好几个方法嵌套,发现可以来回调用,方法中还可以调用本身方法,感觉很好玩
老师给的答案是写的while循环
/*
----------库存管理---------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号
*/
//导入Scanner包
import java.util.Scanner;
public class Demo04
{
        public static void main(String[] args)
        {
                //列入库存的基本数据
                String[] name={"MacBookAir","ThinkpadT450","ASUS-FL5800"};
                double[] chiCun={13.3,14.0,15.6};
                double[] price={6988.88,5999.99,4999.5};
                int[] num={5,10,18};
                //调用shouXuan方法,进入库存管理界面
                shouXuan(name,chiCun,price,num);                               
        }
        //库存管理界面
        public static void shouXuan(String[] name,double[] chiCun,double[] price,int[] num)
        {
                Scanner sc=new Scanner(System.in);
                System.out.println("---------库存管理---------");
                System.out.println("1.查看库存清单");
                System.out.println("2.修改商品库存数量");
                System.out.println("3.退出");
                System.out.println("请输入要执行的操作序号");
                int a=sc.nextInt();
                switch(a)
                {
                        case 1: //调用chaKan方法查看库存清单
                                        chaKan(name,chiCun,price,num);
                                        break;
                        case 2://调用xiuGai方法修改商品库存数量
                                        xiuGai(name,chiCun,price,num);
                                        break;
                        case 3:
                                        break;
                                       
                        default :
                                        System.out.println("您输入的序号有误");
                                        shouXuan(name,chiCun,price,num);
                }
        }
        //查看库存清单的方法
        public static void chaKan(String[] name,double[] chiCun,double[] price,int[] num)
        {
                System.out.println("----------库存清单---------");
                System.out.println("品牌型号        尺寸        价格        库存数");
                for(int i=0;i<name.length;i++){
                        System.out.println(name[i]+"        "+chiCun[i]+"        "+price[i]+"        "+num[i]);
                }
                shouXuan(name,chiCun,price,num);
               
        }
        //修改商品库存数量的方法
        public static void xiuGai(String[] name,double[] chiCun,double[] price,int[] num)
        {
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入要修改库存数量的编号");
                for(int i=0;i<name.length;i++){
                        System.out.println(i+" "+name[i]);
                }
                int a=sc.nextInt();
                if(a>=0&&a<name.length){
                        System.out.println("请输入要修改的数量为:");
                        int b=sc.nextInt();
                        num[a]=b;
                }else{
                        System.out.println("您输入的编号有误,请重新输入");
                        xiuGai(name,chiCun,price,num);
                }
                shouXuan(name,chiCun,price,num);
        }
}

4 个回复

倒序浏览
这是老师给的答案,我想知道方法嵌套方法,还有方法本身调用自己的方法会不会有什么问题

import java.util.Scanner;

public class Demo4 {

        public static void main(String[] args) {
                //记录库存商品信息
                //品牌型号
                String[] brands = new String[]{"MacBookAir", "ThinkpadT450"};
                //尺寸大小
                double[] sizes = new double[]{13.3, 14.0};
                //价格
                double[] prices = new double[]{6988.88, 5999.99};
                //库存个数
                int[] counts = new int[]{0, 0};
               
                //通过while循环模拟管理员进行功能重复选择操作
                while (true) {
                        //打印功能菜单操作,接收键盘输入的功能选项序号
                        int choose = chooseFunction();
                        //执行序号对应的功能
                        switch (choose) {
                        case 1://查看库存清单
                                printStore(brands, sizes, prices, counts);
                                break;
                        case 2://修改商品库存数量
                                update(brands, counts);
                                break;
                        case 3://退出
                                exit();
                                return;
                        default:
                                System.out.println("----------------------------------");
                                System.out.println("功能选择有误,请输入正确的功能序号!");
                                break;
                        }
                }
        }

        /**
         * 查看库存清单
         *
         * @param brands
         *            商品品牌型号
         * @param sizes
         *            商品尺寸大小
         * @param prices
         *            商品价格
         * @param counts
         *            商品库存个数
         */
        public static void printStore(String[] brands, double[] sizes, double[] prices, int[] counts) {
                // 统计总库存个数、统计库存总金额
                int totalCount = 0;
                double totalMoney = 0.0;
                for (int i = 0; i < brands.length; i++) {
                        totalCount += counts[i];
                        totalMoney += counts[i] * prices[i];
                }
                // 列表顶部
                System.out.println("---------------------------查看库存清单--------------------------");
                System.out.println("品牌型号                尺寸        价格        库存数");
                // 列表中部
                for (int i = 0; i < brands.length; i++) {
                        System.out.println(brands[i] + "        " + sizes[i] + "        " + prices[i] + "   " + counts[i]);
                }
                // 列表底部
                System.out.println("-------------------------------------------------------------");
                System.out.println("总库存数:" + totalCount);
                System.out.println("库存商品总金额:" + totalMoney);
        }

        /**
         * 修改商品库存数量
         *
         * @param brands
         *            商品品牌型号
         * @param counts
         *            商品库存个数
         */
        public static void update(String[] brands, int[] counts) {
                System.out.println("------------修改商品库存数量-----------");
                for (int i = 0; i < brands.length; i++) {
                        System.out.println("请输入" + brands[i] + "商品库存数");
                        counts[i] = new Scanner(System.in).nextInt();
                }
        }

        /**
         * 退出
         */
        public static void exit() {
                System.out.println("----------------退出---------------");
                System.out.println("您已退出系统");
        }

        /**
         * 库存管理功能菜单
         *
         * @return 管理员键盘输入的功能操作序号
         */
        public static int chooseFunction() {
                System.out.println("-------------库存管理------------");
                System.out.println("1.查看库存清单");
                System.out.println("2.修改商品库存数量");
                System.out.println("3.退出");
                System.out.println("请输入要执行的操作序号:");
                // 接收键盘输入的功能选项序号
                Scanner sc = new Scanner(System.in);
                int choose = sc.nextInt();
                return choose;
        }
}
回复 使用道具 举报
666666666666
回复 使用道具 举报
&天马星空ぁ 发表于 2016-9-8 23:29
这是老师给的答案,我想知道方法嵌套方法,还有方法本身调用自己的方法会不会有什么问题

import java.util ...

66666666666666
回复 使用道具 举报
我可以说代码些乱吗,不如while死循环调用的好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马