C#实现简单点餐系统

本文实例为大家分享了C#实现简单点餐系统的具体代码,供大家参考,具体内容如下

实现简单点餐系统剖析

1、设计界面(给菜品的序号(index),名称(name),单价(money)加上Tag以便获取此控件中的数据)、设计界面所涉及到的控件(FlowLayoutPAnel,label,button)
2、根据菜品数量来添加对应的菜品序号按钮(有几个菜品添加几个按钮)(用到foreach遍历循环)
3、通过2个foreach遍历控件来获取菜品的序号并将菜品的序号添加到按钮中
4、添加按钮单击事件(代码实现添加事件)(实现单击按钮将按钮序号对应的菜名和菜品价格分别添加到需要的位置)
5、添加已点菜单中菜名的单击事件(实现点击已点菜单中的菜品让其删除并且减少相应的消费金额)

此案例中所用到Tag属性以及sender参数解释:

  • Tag:获取或设置包含有关控件的数据的对象
  • sender:事件发起者是谁,谁就是sender

注意:要用sender参数必须先用sender参数的类型接收sender

代码创建对象以及代码添加事件

  • 代码创建对象Label lb = new Label();
  • 代码添加事件btn.Click += But_Click;步骤:先键入需要添加事件的对象然后键入点选择需要的事件+=Tab

Tag的用法(先存后取):

1、需要的属性添加到Tag中
2、在需要时只需把Tag赋值给对象即可获取到需要的属性

设计界面

具体代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test_Order_system
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.CenterToScreen();//将窗体显示在屏幕中央
            //先设计界面
            //获取FlowLayoutPanel中的控件对应数据以及区分各个控件则需要给FlowLayoutPanel中控件加tag标签
            //   序号:index    菜名:name    价格:money
            //根据菜品数量来添加对应的菜品序号按钮(有几个菜品添加几个按钮)
            foreach (Control item in flowLayoutPanel1.Controls)//获取FlowLayoutPanel1中的控件
            {
                //创建对象(new)按钮
                Button btn = new Button();//实例化
                btn.Size = new Size(70,45);//设置按钮的大小
                btn.Font = new Font("黑体",20f);//设置按钮文本颜色
                btn.Tag = item;//将item控件装进tag中
                //要将菜品的序号添加到but中,但是菜品序号在item的控件中,则需要再次获取item中的控件
                foreach (Control lab in item.Controls)//在item控件集合中寻找控件命名为lab
                {
                    if (lab.Tag.ToString()=="index")
                    {
                        btn.Text = lab.Text;//将获取到的菜品序号添加到btn中
                    }
                }
                flowLayoutPanel2.Controls.Add(btn);//将按钮添加到FlowLayoutPanel2中
                btn.Click += But_Click;//添加单击事件
            }
        }
        int count = 0;
        //单击相应按钮时将该按钮序号所对应的菜品名称添加到FloowLayoutPanel3中,将总金额添加到label33中
        private void But_Click(object sender, EventArgs e)
        {
            //因为菜品名称以及单价在item控件中,所以需要获取到item控件
            //在当前事件中不能直接获取item控件所以需要给btn添加标签,将item控件装进btn标签中
            //然后在当前事件中通过对sender接收其次来获取item控件
            //sender:事件发起者是谁谁就是sender(当点击第一个按钮,第一个按钮就是sender)
            Button clickbtn=(Button)sender;//先将sender用button接收
            //通过Tag间接拿到item控件
            Control item2 = (Control)clickbtn.Tag;//将item用控件接收
            Label lb = new Label();
            lb.Font = new Font("黑体",12f,FontStyle.Bold);
            foreach (Control lab3 in item2.Controls)
            {
                if (lab3.Tag.ToString()=="name")
                {
                    lb.Text=lab3.Text;//将获取到的菜名添加到lb中
                }
                if (lab3.Tag.ToString()=="money")
                {
                    count+=int.Parse(lab3.Text);
                    lb.Tag = lab3.Text;
                }
            }
            flowLayoutPanel3.Controls.Add(lb);//将lb添加到FlowLayoutPanel3中
            label33.Text = count+"元";//将count赋值给label33
            lb.Click += Lb_Click;
        }
        //实现点击已点菜单中的菜品让其删除并且减少相应的消费金额
        private void Lb_Click(object sender, EventArgs e)
        {
            Label lb2=(Label)sender;//sender就是事件发起者lb,所以用Label接收
            //删除已点菜品
            lb2.Dispose();
            //减少相应的消费金额
            count-=int.Parse(lb2.Tag.ToString());
            label33.Text = count+"元";//将count赋值给label33
        }
    }
}

效果图

加载时

点击按钮后

点击已点菜单中的烤腰花和烤板筋

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#实现一个控制台的点餐系统

    本文实例为大家分享了C#点餐系统的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 控制台操作尝试 { class Program { static void Main(string[] args) { int price = 0; Console.WriteL

  • C#实现在线点餐系统

    这个是C#大作业,写作业很用心,写了很久,所以留存一下.不是现在的是之前的的期末作业,现在才想着整理一下 实现功能: 1.商家登录:客户的登录.注册. 2.商家界面实现了对菜单的增.删.改.查:还有订单的查看.查询.结账(删除订单).查看已结账订单.关闭:退出系统. 3.用户界面实现了菜单的查看,查询,新建订单,选择餐桌,保存订单,增加菜品,退出. C#语言实现在线点餐系统,具体功能如下图 登录界面 using System; using System.Collections.Generic;

  • C#实现简单点餐系统

    本文实例为大家分享了C#实现简单点餐系统的具体代码,供大家参考,具体内容如下 实现简单点餐系统剖析 1.设计界面(给菜品的序号(index),名称(name),单价(money)加上Tag以便获取此控件中的数据).设计界面所涉及到的控件(FlowLayoutPAnel,label,button) 2.根据菜品数量来添加对应的菜品序号按钮(有几个菜品添加几个按钮)(用到foreach遍历循环) 3.通过2个foreach遍历控件来获取菜品的序号并将菜品的序号添加到按钮中 4.添加按钮单击事件(代码

  • C#框架winform实现简单点餐系统

    本文实例为大家分享了C#框架winform实现简单点餐系统的具体代码,供大家参考,具体内容如下 一.编程思想 1.构思界面并进行设计 2.思考需要用到的控件以及控件需要更改的属性 3.构思将要触发的事件以及部分业务流程 4.通过点击菜品,进行添加,并计算价格 5.界面的美化以及功能的完善 二.编程核心 1.如何获取控件中的内容 2.点击按钮,查找并添加查找的内容 3.添加按钮对应的点击事件 4.如何一次性取出控件中的内容 5.主要用forEach遍历控件 6.数据类型的转换 7.控件Tag属性的

  • Java实现简单点餐系统

    用Java实现简单点餐系统,供大家参考,具体内容如下 程序控制分析: 1.欢迎页循环:do-while2.Scanner 控制输入3.选择页循环:switch-case 要求: 订单信息:String 二维数组序号.姓名.餐品名称.份数.价格.总价.地址.时间(10-20).状态(已预定.已完成).热度(int型) 签收订单:改变订单状态,已预定可以签收,如果已经完成则不能再次签收. 删除订单:不能删除未完成订单,序号要随之改变. 我要点赞:对相应的餐品点赞,并展示. package Pract

  • C#实现简单的点餐系统

    本文项目为大家分享了C#实现点餐系统,供大家参考,具体内容如下 项目介绍:一家店铺使用的外卖点餐系统本项目分三大模块:登录注册模块,用户模块,店家模块 1.登录注册模块 登录分为用户登录和管理员登录(店家),管理员有且只有一个账号可以登录.用户登录需要先注册,注册必须用手机号注册. 登录界面效果图 登录主要就是判断,多加些判断就行了 登录代码展示: #region 窗体效果         public class Win32         {             public const

  • C语言实现简单餐饮管理与点餐系统

    本文实例为大家分享了C语言实现餐饮管理与点餐系统的具体代码,供大家参考,具体内容如下 /*     项目名称:南航餐饮管理系统     组员:梁文新,刘青林,刘艺,施瑞文(组长) */     //当注册用户名为:root,密码为:root的账号时,系统默认为初始管理员   //头文件  #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<wi

  • 基于C语言实现点餐系统

    这是一个很简单的点餐系统,用到的知识也不复杂,所以对新手学习还是很有作用,贴上来给大家参考下. 完成了如下功能: 1.显示餐厅提示语: 2.打印菜单(输出菜品分类:主食.甜点.饮料.主菜.开胃菜): 3.选择ID进入菜品分类子目录: 4.进行具体选择(可重复选择同一样菜): 5.返回上级菜单(进行其他分类的选择): 6.完成点餐: 7.打印点餐信息(菜名.单价.数量.价格). 代码如下: #include <stdio.h> void main_munu(){ //打印主菜单 char a[6

  • 基于C语言代码实现点餐系统

    这是一个很简单的点餐系统,用到的知识也不复杂,所以对新手学习还是很有作用,贴上来给大家参考下. 完成了如下功能: 1.显示餐厅提示语: 2.打印菜单(输出菜品分类:主食.甜点.饮料.主菜.开胃菜): 3.选择ID进入菜品分类子目录: 4.进行具体选择(可重复选择同一样菜): 5.返回上级菜单(进行其他分类的选择): 6.完成点餐: 7.打印点餐信息(菜名.单价.数量.价格). 代码如下: #include <stdio.h> void main_munu(){ //打印主菜单 char a[6

  • C语言实现餐厅点餐系统

    本文实例为大家分享了C语言实现餐厅点餐系统的具体代码,供大家参考,具体内容如下 这应该是比较简单的c语言程序了,因为学校c语言结课结的早,我当时才学到结构体指针,所以我就把我当时能运用的知识点全用在这个程序上了.虽说这个程序对当时的我来说是天花板,但是当我继续学习,我逐渐发现这个程序能升级的点实在是太多了.但我也一直没去完善.所以就硬着头皮把他发出来了. 代码涉及的知识点:顺序结构,选择分支结构,循环结构,数组,自定义函数,指针和结构体. 主要思路: 定义的一个结构体数组,包含了三个成员,分别是

  • 基于CakePHP实现的简单博客系统实例

    本文实例讲述了基于CakePHP实现的简单博客系统.分享给大家供大家参考.具体实现方法如下: PostsController.php文件: <?php class PostsController extends AppController { public $helpers = array('Html', 'Form', 'Session'); public $components = array('Session'); public function index() { $this->set

  • 构建一个简单的CaaS系统

    在CaaS系统出现前企业应用架构基本被IaaS/SaaS/PaaS等模式垄断,直到Docker的出现为我们打开了另一个扇大门,废话不说了,我们直奔主题. 我们先了解下一个简单的CaaS系统是如何为用户提供服务的: 企业用户上传它的应用代码或其他代码托管方式,我们生成用户应用的镜像,或者用户直接上传镜像,或者用户直接使用我们提供的基础服务镜像 用户部署他的镜像应用,启动它的镜像容器 用户访问他的应用服务 OK,需求确定了,该搬砖了. 用户镜像制作 既然是一个简单的CaaS系统,我们就不让用户上传代

随机推荐