C#点餐系统_点餐系统数据库设计

C#点餐系统_点餐系统数据库设计一.编程思想1.首先考虑需要什么样的界面;2.界面中需要用到的控件,以及控件的简单设置;3.在不需要按钮控件的情况下,点击会生成按钮的实现;4.通过点击后生成的菜品统计以及价格的自动计算;二.编程核心1.获取控件中的内容;2.添加按钮点击事件;3.对控件中的内容封装传递后并在下一步取出;4.label控件和button控件的生成;5.主要用到了foreach进行遍历;三.实现……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.编程思想

1.首先考虑需要什么样的界面;
2.界面中需要用到的控件,以及控件的简单设置;
3.在不需要按钮控件的情况下,点击会生成按钮的实现;
4.通过点击后生成的菜品统计以及价格的自动计算;

二.编程核心

1.获取控件中的内容;
2.添加按钮点击事件;
3.对控件中的内容封装传递后并在下一步取出;
4.label控件和button控件的生成;
5.主要用到了foreach进行遍历;

三.实现过程

1.界面的设置

本次主要用到的控件有flowLayoutPanel1和label,

flowLayoutPanel:处理其组件的布局并在流局中自动排列它们; (文本内容可以自行设置)

在这里插入图片描述
但是必须对flowLayoutPanel进行边框设置,否则会不可见
在这里插入图片描述

2.控件的简单设置

tag:与对象关联的用户自定义数据,(主要用来获取控件的文本,tag内的内容可以自己设置,3个都要进行设置)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四.代码实现部分

1.在窗体加载时完成的操作

在加载时用代码进行对应菜品编号的获取并生成对应数字的按钮,代码如下:

 private void Form1_Load(object sender, EventArgs e)
        { 
   
            this.Text ="地方点餐系统";
            //为菜品添加点击后的按钮
            //采用foreach循环进行遍历
            //control:控件类型
            foreach (Control item in flowLayoutPanel1.Controls)//遍历 flowLayoutPanel1中的控件
            { 
   
                //实例化button
                Button bt = new Button();
                bt.Size = new Size(50,50);//设置按钮的大小
                bt.Font = new Font("楷体",20f);//设置按钮中的字体
                bt.Tag = item;//对item进行封装以便于点击按钮事件时可以获取想要的东西
                //遍历 flowLayoutPanel中的label对tag进行获取并生成对应文本的button按钮
                foreach (Control control in item.Controls)//遍历flowLayoutPanel1中对应的label控件
                { 
   
                    if (control.Tag.ToString()=="index")
                    { 
   
                        bt.Text =control.Text;//将获取到的control文本值赋给按钮bt
                     }
                }
                flowLayoutPanel10.Controls.Add(bt);//向要显示的flowLayoutPanel中添加对应的按钮
                bt.Click += Btn_Click;//添加点击事件
                bt.AutoSize = true;//自动适应内容的大小
            }
          
        }
2.当点击对应按钮时应该获取到的”菜名”
private void Btn_Click(object sender, EventArgs e)
        { 
   
            Button index = (Button)sender;//sender的对象是button
            Control fz = (Control)index.Tag;//对获取到的tag进行控件类型的转换
            //实例化label控件
            Label lb = new Label();
            lb.Font = new Font("楷体", 20f);//设置label中的字体
            foreach (Control item in fz.Controls)//对获取到tag内容的进行遍历
            { 
   
                if (item.Tag.ToString()=="name")//判断获取到的tag是否等于name,也就是菜名
                { 
   
                    lb.Text = item.Text;
                }
                lb.AutoSize = true;//显示完整的label名称
                flowLayoutPanel11.Controls.Add(lb);//向要显示的flowLayoutPanel中添加对应的label
        }
3.对应的菜品价格进行相加
 int count=0;//定义一个变量用于计算最下面的价格相加问题
 if (item.Tag.ToString()=="money")//判断获取到的tag是否等于money,也就是价格
                { 
   
                    count += int.Parse(item.Text);
                }
                label27.Text = count + "元";

五.运行结果

在这里插入图片描述


六.案例完成难点分析

1.对于生成按钮点击事件
//bt为你前面所实例化按钮的名称
 bt.Click += Btn_Click;//添加点击事件
 bt.Click -= Btn_Click;//取消点击事件
 Button index = (Button)sender;//sender的对象是button
2.对于tag的封装再进行获取
 bt.Tag = item;//对item进行封装以便于点击按钮事件时可以获取想要的东西
 Control fz = (Control)index.Tag;//对获取到的tag进行控件类型的转换

所谓熟能生巧,万事开头难,只要坚持不懈多多努力没有什么可以阻挡我们前进的步伐!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196227.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mysql数据库备份(一)——数据库备份和表备份[通俗易懂]

    一、Mysql中的数据备份:Mysql中数据备份使用的命令是:mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。1、Mys

    2022年4月4日
    71
  • linux如何安装nodejs_js 循环里面结束整个方法

    linux如何安装nodejs_js 循环里面结束整个方法方法一:源码包安装官网下载centos下载最新版10.9https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xzmkdir/opt/software/&&cd/opt/software/tar-xvfnode-v10.9.0-linux-x64.tar.xzmvnode-v10.9.0-linux-x64nodejs建立软连接,变为全局①ln-s/opt/software……

    2022年8月31日
    3
  • 补码加法运算溢出判断例题_补码加法溢出

    补码加法运算溢出判断例题_补码加法溢出补码加法运算溢出判断三种方法:[方法一]Xf、Yf分别两个数符号位,Zf为运算结果符号位。当Xf=Yf=0(两数同为正),而Zf=1(结果为负)时,负溢出;当出现Xf=Yf=1(两数同为负),而Zf=0(结果为正),正溢出.[方法二]Cs表示符号位的进位,Cp表示最高数值位进位,⊕表示异或。若Cs⊕Cp=0,无溢出;若Cs⊕Cp=1,有溢出。[方法三]用变形

    2022年9月22日
    2
  • 散列查找和哈希查找_散列检索

    散列查找和哈希查找_散列检索散列表相关概念散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。建立了关键字与存储位置的映射关系,公式如下:存储位置=f(关键字)这里把这种对应关系f称为散列函数,又称为哈希(Hash)函数。采用散列技术将记录存在在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表。那…

    2025年6月8日
    2
  • SpringBoot重点详解–使用Druid+Jpa

    SpringBoot重点详解–使用Druid+Jpa目录Druid简介添加依赖与配置配置数据源配置Druid监控统计功能方式一(基于Servlet3.0注解的配置)方式二(基于Spring注解的配置)配置JPA应用测试Druid简介Druid是阿里巴巴开源的数据库连接池,号称是Java语言中最好的数据库连接池,能够提供强大的监控和扩展功能。GitHub地址:https://github.com/al…

    2022年7月23日
    27
  • 【转载】【转自AekdyCoin的组合数取模】

    【转载】【转自AekdyCoin的组合数取模】本篇文章主要介绍了”【组合数求模】转自AekdyCoin”,主要涉及到【组合数求模】转自AekdyCoin方面的内容,对于【组合数求模】转自AekdyCoin感兴趣的同学可以参考一下。这个表示的是从n个元素中选取m个元素的方案数。(PS.组合数求模似乎只用在信息学竞赛和ACM竞赛等计算机编程设计大赛中……,求在现实中的运用)可以知道当n,m 取得比较大的

    2022年7月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号