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

一、如图所示:

 

二、具体步骤:

   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();

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


 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值