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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

龙sama

中级黑马

  • 黑马币:-17

  • 帖子:54

  • 精华:0

© 龙sama 中级黑马   /  2015-12-8 21:08  /  2751 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

使用到的知识点:ArrayList、for循环、数组、Scanner输入、类的定义和封装、函数的定义和使用
有哪里可以改进的更好请大家指教,代码有点长要分两次
import java.util.Scanner;
import java.util.ArrayList;
public class ShoppingSystem
{       
        ArrayList<Fruit> fruitItem=new ArrayList<Fruit>();
        Scanner sc=new Scanner(System.in);
        ArrayList<Integer> totalPriceSystem=new ArrayList<Integer>();
        public static void main(String[] args)
        {
                ShoppingSystem ss=new ShoppingSystem();
        }
        ShoppingSystem()
        {
                shoppingSystem();
        }
        public void shoppingSystem()
        {
                init();
                System.out.println("欢迎使用《水果超市管理系统》");
                doBusiness();
        }
        public void init()
        {
                Fruit liulian=new Fruit("泰国空运大榴莲","9056",120.0,"个");
                fruitItem.add(liulian);

                Fruit strawBerry=new Fruit("昌平农家有机草莓","3025",20.0,"斤");
                fruitItem.add(strawBerry);

        Fruit hamigua=new Fruit("新疆原产哈密瓜","2012",7.0,"斤");
                fruitItem.add(hamigua);
        }
        public void doBusiness()
        {
                System.out.println("请输入您的身份:");
                System.out.println("1、我是顾客   2、我是老板  3、退出系统");
                int custom=enterNumber();
                int[] number=new int[fruitItem.size()];
                if(custom==1)
                {
                        System.out.println("          欢迎光临   ");
                        purchase(number);
                }
                else if(custom==2)
                {
                        check();
                }
                else if(custom==3)
                {
                        System.out.println(" ");
                        System.out.println(" ");
                        System.out.println("感谢您使用本系统");
                        System.exit(0);
                }
                else
                {
                        System.out.println("身份选择错误,请重新选择身份:");
                        doBusiness();
                }
        }
        public  void purchase(int[] number)
        {
                System.out.println("请输入您的操作:");
                System.out.println("1、购物(或继续购物)  2、付款(打印小票) 3、放弃购买");
               
                int activity=enterNumber();
                if(activity==1)
                {
                        buy(number);
                }
                else if(activity==2)
                {
                        printTicket(number);
                }
                else if(activity==3)
                {
                        number=null;
                        System.out.println("");
                        System.out.println("欢迎使用《水果超市管理系统》");
                        doBusiness();
                }
                else
                {
                        System.out.println("");
                        System.out.println("    输入错误,请重新输入您的操作!");
                        System.out.println("");
                        System.out.println("欢迎使用《水果超市管理系统》");
                        doBusiness();
                }
        }
        public void buy(int[] number)
        {
                showFruitList();
                System.out.println("     好消息!年底大促销:");
                System.out.println("满300,打九五折!");
                System.out.println("满600,打九折!!");
                System.out.println("满1000,打八折!!!");
                System.out.println("满1000且榴莲购买超过10个,立减50元!!!!!");
                for(int i=0;i<fruitItem.size();i++)
                {
                        System.out.println("请输入购买"+fruitItem.get(i).getName()+"的数量:");
                        number[i]+=enterNumber();
                }
                System.out.println("购物完成,如无异议请结算:");
                purchase(number);
        }
        public void showFruitList()
        {
                System.out.println("          水果报价单");
                System.out.println("水果编号       水果名称      水果单价     计价单位    ");
                for(int i=0;i<fruitItem.size();i++)
                {
                        System.out.println("  "+fruitItem.get(i).getId()+"     "+fruitItem.get(i).getName()+"       "+fruitItem.get(i).getPrice()+"        "+fruitItem.get(i).getUnit());
               
                }
        }
        void printTicket(int[] number)
        {       
                double totalPrice=0.0;
                int totalItem=0;
                int totalNumber=0;
                int liulianNumber=0;
                int discountPrice=0;
                System.out.println("      欢   迎   光   临  ");
                System.out.println("======================================================================");
                System.out.println("水果编号       水果名称      水果单价     计价单位    购买数量     金额");
                for(int i=0;i<fruitItem.size();i++)
                {
                   double price=fruitItem.get(i).getPrice()*number[i];
                   System.out.println("  "+fruitItem.get(i).getId()+"     "+fruitItem.get(i).getName()+"      "+fruitItem.get(i).getPrice()+"          "+fruitItem.get(i).getUnit()+"      "+number[i]+"     "+price);
                   totalPrice+=price;
                   totalItem++;
                   totalNumber+=number[i];
                   if(fruitItem.get(i).getName().equals("泰国空运大榴莲"))
                   {
                     liulianNumber=number[i];
                   }
                }
                discountPrice=discount(totalPrice,liulianNumber);

                System.out.println("======================================================================");
                System.out.println("  "+totalItem+" 项商品 ,共计"+totalNumber+" 件");
                System.out.println("总价   "+discountPrice+" 元   折扣为"+(totalPrice-discountPrice)+"  元");
                totalPriceSystem.add(discountPrice);
                number=null;
                System.out.println(" ");
                System.out.println(" ");
                System.out.println(" ");
                System.out.println("欢迎使用《水果超市管理系统》");
                doBusiness();
        }
        public int discount(double totalPrice,int liulianNumber)
        {
                if(totalPrice>=1000&&liulianNumber>10)
                {
                        return (int)Math.round(totalPrice*0.8-50);
                }
                else if(totalPrice>=1000&&liulianNumber<=10)
                {
                        return (int)Math.round(totalPrice*0.8);
                }
                else if(totalPrice>=600)
                {
                        return (int)Math.round(totalPrice*0.9);
                }
                else if(totalPrice>=300)
                {
                        return (int)Math.round(totalPrice*0.95);
                }
                else
                {
                        return (int)Math.round(totalPrice);
                }
        }
        public void check()
        {
            System.out.println("老板、请输入您的操作:");
                System.out.println("1、流水查询  2、总收入查询 3、查询货物 4、添加新货物");
                System.out.println("5、删除货物  6、修改货物   7、退出查询 ");
                int activity=enterNumber();
                if(activity==1)
                {
                        flowSearch();
                }
                else if(activity==2)
                {
                        totalSearch();
                }
                else if(activity==3)
                {
                        fruitSearch();
                }
                else if(activity==4)
                {
                        fruitAdd();
                }
                else if(activity==5)
                {
                        fruitDelete();
                }

13 个回复

倒序浏览
                else if(activity==6)
                {
                        fruitUpdate();
                }
                else if(activity==7)
                {
                        System.out.println("");
                        System.out.println("");
                        System.out.println("欢迎使用《水果超市管理系统》");
                        doBusiness();
                }
                else
                {
                        System.out.println("");
                        System.out.println("    输入错误,请重新输入您的操作!");
                        System.out.println("");
                        System.out.println("欢迎使用《水果超市管理系统》");
                        doBusiness();
                       
                }
        }
        public void flowSearch()
        {
                System.out.println("");
                System.out.println("");
                System.out.println("今天共"+totalPriceSystem.size()+"笔交易");
                for(int i=0;i<totalPriceSystem.size();i++)
                {
                        System.out.println("第 "+(i+1)+"笔交易收入:"+totalPriceSystem.get(i)+"  元");
                }
                System.out.println("");
                System.out.println("");
                check();

        }
        public void totalSearch()
        {       
                double totalPrice=0.0;
                for(int i=0;i<totalPriceSystem.size();i++)
                {
                        totalPrice+=totalPriceSystem.get(i);
                }
        System.out.println("");
                System.out.println("");       
                System.out.println("今天总收入 "+totalPrice+" 元");
                System.out.println("");
                System.out.println("");
                check();
        }
        public void fruitSearch()
        {
                System.out.println("");
                System.out.println("");       
                showFruitList();
                System.out.println("");
                System.out.println("");
                check();
        }
        public void fruitAdd()
        {
                Fruit newfruit=new Fruit();
                System.out.println("请输入水果名称");
                newfruit.setName(sc.next());
                System.out.println("请输入水果编号");
                newfruit.setId(sc.next());
                System.out.println("请输入水果单价");
                newfruit.setPrice(sc.nextDouble());
                System.out.println("请输入计价单位");
                newfruit.setUnit(sc.next());
                fruitItem.add(newfruit);
                fruitSearch();
        }
        public void fruitDelete()
        {
           System.out.println("");
           showFruitList();
           System.out.println("");
           System.out.println("请输入要删除的水果编号(或者输入no返回):");
           String deleteId=sc.next();
           boolean ifexist=false;
           if(deleteId.equals("no"))
           {
           check();
           }
           for(int i=0;i<fruitItem.size();i++)
           {
                        if(fruitItem.get(i).getId().equals(deleteId))
                   {
                           ifexist=true;
                   }
           }
           if(ifexist==true)
           {
                fruitdelete:for(int i=0;i<fruitItem.size();i++)
                {
                        if(fruitItem.get(i).getId().equals(deleteId))
                        {
                                fruitItem.remove(i);
                                break fruitdelete;
                        }
               
                }
            System.out.println("删除完毕!!!");
            showFruitList();
            System.out.println("");
            check();
           }
           else
           {
           System.out.println("水果编号输入错误,请重新输入:");
           fruitDelete();
           }
        }
        public void fruitUpdate()
        {
           System.out.println("");
           showFruitList();
           System.out.println("");
           System.out.println("请输入要修改信息的水果编号(或者输入no返回):");
           String deleteId=sc.next();
           boolean ifexist=false;
           if(deleteId.equals("no"))
           {
           check();
           }
           for(int i=0;i<fruitItem.size();i++)
           {
                        if(fruitItem.get(i).getId().equals(deleteId))
                   {
                           ifexist=true;
                   }
           }
            if(ifexist==true)
           {
                fruitdelete:for(int i=0;i<fruitItem.size();i++)
                {
                        if(fruitItem.get(i).getId().equals(deleteId))
                        {
                        System.out.println("您要修改的水果项目为:");
                        System.out.println("水果编号       水果名称      水果单价     计价单位    ");
            System.out.println("  "+fruitItem.get(i).getId()+"     "+fruitItem.get(i).getName()+"       "+fruitItem.get(i).getPrice()+"        "+fruitItem.get(i).getUnit());
                        System.out.println("==============================================================");
                        System.out.println("请输入新的水果名称");
                      fruitItem.get(i).setName(sc.next());
                    System.out.println("请输入新的水果编号");
                    fruitItem.get(i).setId(sc.next());
                    System.out.println("请输入新的水果单价");
                    fruitItem.get(i).setPrice(sc.nextDouble());
                    System.out.println("请输入新的计价单位");
                        fruitItem.get(i).setUnit(sc.next());
                        }
                }
            System.out.println("修改完毕!!!");
            showFruitList();
            System.out.println("");
            check();
           }
           else
           {
           System.out.println("水果编号输入错误,请重新输入:");
           fruitUpdate();
           }
       
        }
        int enterNumber()
        {
                int i=sc.nextInt();
                return i;
        }
         String enterString()
        {
                String i=sc.next();
                return i;
        }
        double enterDouble()
        {
                double i=sc.nextDouble();
                return i;
        }
}
class Fruit
{
        private String name;
        private String id;
        private double price;
        private String unit;
        Fruit()
        {

        }
        Fruit(String name,String id,double price,String unit)
        {
                this.name=name;
                this.id=id;
                this.price=price;
                this.unit=unit;
        }
        void setName(String name)
        {
                this.name=name;
        }
        String getName()
        {
                return this.name;
        }
        void setId(String id)
        {
                this.id=id;
        }
        String getId()
        {
                return this.id;
        }
        void setPrice(double price)
        {
                this.price=price;
        }
        double getPrice()
        {
                return this.price;
        }
        void setUnit(String unit)
        {
                this.unit=unit;
        }
        String getUnit()
        {
                return this.unit;
        }
}
回复 使用道具 举报
牛人啊
同样是基础班差距怎么那么大呢
应为我写不出来
回复 使用道具 举报
牛呀。同样都学了,我就写不出开,差距呀
回复 使用道具 举报
厉害厉害,这么就写出来了,我也写不出来。
回复 使用道具 举报
加油,黑马!明天属于你!
回复 使用道具 举报
不错!!!!!!!
回复 使用道具 举报
不错不错
回复 使用道具 举报
赞一个...........
回复 使用道具 举报
学习一下!!!
回复 使用道具 举报
膜拜下{:2_42:}{:2_42:}
回复 使用道具 举报
厉害。。赞
回复 使用道具 举报
我还没有学到EE
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马