C# 用OO来实现超市的购买结账

来源:互联网 发布:java的继承和多态定义 编辑:程序博客网 时间:2024/06/11 16:19

一、如图所示:

 

二、具体步骤:

   1) 商品类(商品ID,商品Name,商品Price)

class Goods    {        //商品编号        private int id;        public int Id        {            get { return id; }            set { id = value; }        }        //商品名称        private string name;        public string Name        {            get { return name; }            set { name = value; }        }        //单价        private double price;        public double Price        {            get { return price; }            set { price = value; }        }    }

    2)  购物类(初始化商品,菜单,打印小票)

<strong>    </strong>//商品数组      Goods[] goods = new Goods[3];        /// <summary>        /// 初始化        /// </summary>        public void Initial()        {            goods[0] = new Goods();            goods[0].Id = 1;            goods[0].Name = "农夫山泉";            goods[0].Price = 1.03;            goods[1] = new Goods();            goods[1].Id = 2;            goods[1].Name = "方便面";            goods[1].Price = 3.50;            goods[2] = new Goods();            goods[2].Id = 3;            goods[2].Name = "火腿";            goods[2].Price = 12.63;        }       /// <summary>       /// 显示所有的商品       /// </summary>        public void ShowGoods()        {            Initial();            Console.WriteLine("编号\t商品名\t\t单价");            foreach (Goods item in goods)            {                Console.WriteLine("{0,-4}\t{1,-8}\t{2:0.00}",item.Id,item.Name,item.Price);                            }            Console.WriteLine();        }        /// <summary>        /// 菜单        /// </summary>        public void ShowMenu()        {            string buy = string.Empty;            string str = "\n\n----------欢迎光临大润发超市----------";            str = string.Format("{0}\n{1,-8}\t{2,-4:F2}\t{3,-4}\t{4,-4:F2}", str, "商品名称", "单价", "数量", "小计");            double sum = 0;            do            {                Console.Write("输入商品编号:");                int id = Convert.ToInt32(Console.ReadLine());                //声明变量                bool flag = false;                Goods gg = null;                int count = 0;                //循环判断是否有这个商品                foreach (Goods item in goods)                {                    if (item.Id == id)                    {                        Console.Write("输入购买数量:");                        count = Convert.ToInt32(Console.ReadLine());                        flag = true;                        //保存商品                        gg = item;                        break;  //结束循环                    }                    else                    {                        flag = false;                                         }                }//for end                if (!flag)                {                    Console.WriteLine("请重新输入编号!\n");                    continue;                }                // 添加购物信息到购物小票                str =string.Format("{0}\n{1,-8}\t{2,-4:F2}\t{3,-4}\t{4,-4:C2}",str,gg.Name,gg.Price,count,gg.Price*count);                // 计算购物总额                sum += gg.Price * count;                               Console.Write("输入e停止购物,输入其他任意继续购物:");                buy = Console.ReadLine();                Console.WriteLine();            } while (!buy.Equals("e"));            // 添加购物总额到购物小票            Console.WriteLine("{0}\n\n总计:{1:C2}",str,sum);   }}}

3)测试类

            Shopping sh = new Shopping();            sh.ShowGoods();            sh.ShowMenu();

  总结:使用了类与对象,数组对象,循环,分支语句,逻辑判断,字符的格式等等知识点!


 

0 0
原创粉丝点击