黑马程序员技术交流社区

标题: JavaEE基础班 水果超市管理系统 [打印本页]

作者: 龙sama    时间: 2015-12-8 21:08
标题: JavaEE基础班 水果超市管理系统
使用到的知识点: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();
                }

作者: 龙sama    时间: 2015-12-8 21:09
                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;
        }
}
作者: bbaijiajinger    时间: 2015-12-8 21:22
牛人啊
同样是基础班差距怎么那么大呢
应为我写不出来
作者: Rocky_zhang    时间: 2015-12-8 22:07
牛呀。同样都学了,我就写不出开,差距呀
作者: xiaoaonuanhu    时间: 2015-12-8 23:10
厉害厉害,这么就写出来了,我也写不出来。
作者: 阳光下的枫叶    时间: 2015-12-8 23:20
加油,黑马!明天属于你!
作者: 阳光下的枫叶    时间: 2015-12-8 23:35
不错!!!!!!!
作者: 仙风道骨    时间: 2015-12-9 00:46
不错不错
作者: 554512097    时间: 2015-12-9 00:54
赞一个...........
作者: 潘中辉    时间: 2015-12-9 01:22
学习一下!!!
作者: 蔡泽杰    时间: 2015-12-9 17:53
膜拜下{:2_42:}{:2_42:}
作者: 高云    时间: 2015-12-9 18:08
厉害。。赞
作者: 梦我天堂    时间: 2015-12-9 18:11
我还没有学到EE




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2