C#餐饮收银系统

一、引言

餐饮收银系统是一种用于管理餐馆、咖啡厅、快餐店等餐饮业务的计算机化工具。它旨在简化点餐、结账、库存管理等任务,提高运营效率,增强客户体验,同时提供准确的财务记录。C# 餐饮收银系统是一种使用C#编程语言开发的餐饮业务管理软件,具有以下主要功能:

二、需求分析

分析思维导图
在这里插入图片描述

三、程序截图

登录

在这里插入图片描述

管理员主界面

![在这里插入图片描述](https://img-blog.csdnimg.cn/2a4f8e78598f4be484b1e418e374e34d.png

添加食物界面

在这里插入图片描述

服务员订单界面

在这里插入图片描述

修改食物详情界面

在这里插入图片描述

未完成订单界面

在这里插入图片描述

支付成功界面

在这里插入图片描述

四、程序说明

管理员账号和密码:admin, admin
服务员账号和密码: test, test
注:可自行注册账号并登录,但是只能注册服务员账号

五、代码

AdminWindows.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;namespace Cashier
{/// <summary>/// AdminWindow.xaml 的交互逻辑/// </summary>public partial class AdminWindow : Window{public AdminWindow(){InitializeComponent();frame.Source = new Uri("MenuEditPage.xaml", UriKind.Relative);}private void textBlock2_Copy_Click(object sender, RoutedEventArgs e){Button btn = sender as Button;String choice = btn.Content.ToString();switch (choice){case "菜单编辑":LoadMenuEditPage();break;case "添加食物":LoadAddFoddPage();break;case "食物编辑":LoadFoodEditPage();break;case "已完成订单":LoadOderCompletedPage();break;case "未完成订单":LoadOderNotPage();break;}}private void LoadMenuEditPage(){frame.Source = new Uri("MenuEditPage.xaml", UriKind.Relative);}private void LoadAddFoddPage(){frame.Source = new Uri("AddFoodPage.xaml", UriKind.Relative);}private void LoadOderCompletedPage(){frame.Source = new Uri("OderCompletedPage.xaml", UriKind.Relative);}private void LoadOderNotPage(){frame.Source = new Uri("OderNotPage.xaml", UriKind.Relative);}private void LoadFoodEditPage(){frame.Source = new Uri("FoodEditPage.xaml", UriKind.Relative);}}
}

AddFoodPage.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;
namespace Cashier
{/// <summary>/// AddFoodPage.xaml 的交互逻辑/// </summary>///  public partial class AddFoodPage : Page{private String mysqlConnStr = "server=localhost;User Id=root;password=;Database=canyin";public AddFoodPage(){InitializeComponent();}private void btn_Click(object sender, RoutedEventArgs e){InsertFood();}private void InsertFood(){String foodName = foodNameBox.Text.ToString();String price = priceBox.Text.ToString();String category = categoryBox.Text;if(foodName.Equals("") || price.Equals("") || category.Equals("")){resultBox.Text = "请将食物信息填写完整";return;}// MessageBox.Show("食物名称是:" + foodName + ", 价格是: " + price + ", 种类是: " + category);try{MySqlConnection conn = new MySqlConnection(mysqlConnStr);conn.Open();String cmd = "insert into food(name, price, category) values('" + foodName + "','" + price + "','" + category + "')";MySqlCommand mycmd = new MySqlCommand(cmd, conn);if (mycmd.ExecuteNonQuery() > 0){           resultBox.Text = "食品添加成功";foodNameBox.Text = "";priceBox.Text = "";categoryBox.Text = "";conn.Close();}}catch (Exception e){resultBox.Text = "食品添加失败" + e.Message;}}}
}

CommonValue.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Cashier
{class CommonValue{public static int EDIT_FOOD_ID = 5;public static String mysqlConectString = "server=localhost;User Id=root;password=;Database=canyin";public static String USER_NAME;public static int FOOD_PAY_ID = 556;}
}

MainWindows.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;namespace Cashier
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{//用户账户private String user;private String password;public MainWindow(){InitializeComponent();}private void richTextBox_TextChanged(object sender, TextChangedEventArgs e){}private void textBox_TextChanged(object sender, TextChangedEventArgs e){}//监听注册按钮private void button1_Click(object sender, RoutedEventArgs e){Button btn = sender as Button;String choice = btn.Content.ToString();switch (choice){case "登录":UserLogin();break;case "注册":UserRegister();break;}}private void button1_Click_1(object sender, RoutedEventArgs e){}private void UserLogin(){//用户登录的逻辑代码user = userBox.Text.ToString();password = passwordBox.Text.ToString();if(user.Equals("")){MessageBox.Show("请输入用户名");}else if(password.Equals("")){MessageBox.Show("请输入密码");}else{CheckInfoAndLogin();}}private void UserRegister(){//跳转到登陆界面RegisterWindow register = new RegisterWindow();register.Show();this.Close();}//检查用户的数据,如果查询失败则返回密码错误private void CheckInfoAndLogin(){try{             MySqlConnection conn = new MySqlConnection(CommonValue.mysqlConectString);conn.Open();string cmd = "select * from user where user='" + user + "'";MySqlCommand myCmd = new MySqlCommand(cmd, conn);MySqlDataReader reader = myCmd.ExecuteReader();reader.Read();string dbUser = reader["user"].ToString();string dbPassword = reader["password"].ToString();if (password.Equals(dbPassword) && dbUser.Equals("admin")){OpenAdminWindow();CommonValue.USER_NAME = user;}else if (password.Equals(dbPassword)){OpenWaiterWindow();CommonValue.USER_NAME = user;}else{MessageBox.Show("密码输入错误,请重新输入!");}conn.Close();}catch(Exception e){String msg = e.Message;MessageBox.Show("数据库连接错误!" + msg);}}//打开管理员窗口private void OpenAdminWindow(){AdminWindow aw = new AdminWindow();aw.Show();this.Close();}//打开服务员窗口private void OpenWaiterWindow(){WaiterWindow ww = new WaiterWindow();ww.Show();this.Close();}}
}

OderNotPage.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
using System.Data;namespace Cashier
{/// <summary>/// OderNotPage.xaml 的交互逻辑/// </summary>public partial class OderNotPage : Page{public OderNotPage(){InitializeComponent();ShowOders();}private void ShowOders(){try{//获取表格DataTable data = new DataTable("oder");data.Columns.Add(new DataColumn("oder_id", typeof(string)));data.Columns.Add(new DataColumn("sum", typeof(string)));MySqlConnection conn = new MySqlConnection(CommonValue.mysqlConectString);conn.Open();string cmd = "select * from oder where complete=0";MySqlCommand myCmd = new MySqlCommand(cmd, conn);MySqlDataAdapter mda = new MySqlDataAdapter(cmd, conn);MySqlDataReader reader = myCmd.ExecuteReader();while (reader.Read()){string id = reader["oder_id"].ToString();string name = reader["sum"].ToString();data.Rows.Add(id, name);}listView.DataContext = data.DefaultView;conn.Close();}catch (Exception e){MessageBox.Show("查询订单失败:" + e.Message);}}private void button_Click(object sender, RoutedEventArgs e){CommonValue.FOOD_PAY_ID = int.Parse(idPayBox.Text.ToString());NavigationWindow window = new NavigationWindow();window.Source = new Uri("OderDetailPage.xaml", UriKind.Relative);window.Show();}}
}

六、交流与联系

q:969060742 文档、完整代码、sql、程序资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147851.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】微服务——Ribbon负载均衡(跟进源码分析原理)

添加LoadBalanced注解&#xff0c;即可实现负载均衡功能&#xff0c;这是什么原理 1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 2.源码跟踪 为什么我们只输入了service名称就可以访问了呢&#xff1f;之前还要获取…

MySQL - mysql服务基本操作以及基本SQL语句与函数

文章目录 操作mysql客户端与 mysql 服务之间的小九九了解 mysql 基本 SQL 语句语法书写规范SQL分类DDL库表查增 mysql数据类型数值类型字符类型日期类型 示例修改&#xff08;表操作&#xff09; DML添加数据删除数据修改数据 DQL查询多个字段条件查询聚合函数分组查询排序查询…

conda安装使用jupyterlab注意事项

文章目录 一、conda安装1.1 conda安装1.2 常见命令1.3 常见问题 二、jupyterlab2.1 jupyterlab安装和卸载2.2 常见错误2.2.1 版本冲突&#xff0c;jupyterlab无法启动2.2.2 插件版本冲突 2.3 常用插件2.3.1 debugger2.3.2 jupyterlab_code_formatter 2.4 jupyter技巧 一、conda…

iOS---生成证书文件的时候无法选择导出.p12文件

解决办法&#xff1a; 左栏有两个分类&#xff0c;一个钥匙串&#xff0c;一个是种类&#xff0c;要选择种类里面的【我的证书】或【证书】进行导出。选择【系统】找到【我的证书】这样导出不了"个人信息交换(.p12)" 正确做法是&#xff1a;选择【登录】找到【我的…

智能合约漏洞,BEVO 代币损失 4.5 万美元攻击事件分析

智能合约漏洞&#xff0c;BEVO 代币损失 4.5 万美元攻击事件分析 一、事件背景 北京时间 2023 年 1 月 31 日&#xff0c;在 twitter 上看到这样一条消息&#xff1a; BEVO 代币被攻击&#xff0c;总共损失 45000 美元&#xff0c;导致 BEVO 代币的价格下跌了 99%。 有趣的是…

2023蓝帽杯初赛电子取证部分

取证案情介绍&#xff1a; 2021年5月&#xff0c;公安机关侦破了一起投资理财诈骗类案件&#xff0c;受害人陈昊民向公安机关报案称其在微信上认识一名昵称为yang88的网友&#xff0c;在其诱导下通过一款名为维斯塔斯的APP&#xff0c;进行投资理财&#xff0c;被诈骗6万余万元…

CSS 语法

CSS 实例 CSS 规则由两个主要的部分构成&#xff1a;选择器&#xff0c;以及一条或多条声明: 选择器通常是您需要改变样式的 HTML 元素。 每条声明由一个属性和一个值组成。 属性&#xff08;property&#xff09;是您希望设置的样式属性&#xff08;style attribute&#x…

Raspberry Pi 5 新平台 新芯片组

Raspberry Pi 5 的 CPU 和 GPU 性能提高了两到三倍&#xff1b;内存和 I/O 带宽大约是两倍&#xff1b;并且是首款采用英国剑桥内部设计的芯片的 Raspberry Pi 计算机&#xff0c;4GB 型号的售价为 60 美元&#xff0c;8GB 版本的售价为 80 美元 主要特点包括&#xff1a; 2.4…

【C++】可变参数模板使用,在emplace中应用

&#x1f30f;博客主页&#xff1a; 主页 &#x1f516;系列专栏&#xff1a; C ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ &#x1f60d;期待与大家一起进步&#xff01; 文章目录 一、可变参数模板1.参数包的展开方式1.递归方式展开2.逗号表达式展开参数包 二、empl…

【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?

问题 这个问题困扰了我好久&#xff0c;一直感觉如果有其他的特征值没法证伪&#xff0c;不过一直存在思想的层面&#xff0c;没有实际解决&#xff0c;今天突然想到动笔来解决&#xff0c;遂得解&#xff0c;证明如下。 证明 总结 这个证明看似证明过后很直观&#xff0c;但…

AcWing算法提高课-5.6.1同余方程

宣传一下 算法提高课整理 CSDN个人主页&#xff1a;更好的阅读体验 原题链接 题目描述 求关于 x x x 的同余方程 a x ≡ 1 ( m o d b ) ax ≡ 1 \pmod b ax≡1(modb) 的最小正整数解。 输入格式 输入只有一行&#xff0c;包含两个正整数 a , b a,b a,b&#xff0c;用一…

CSS详细基础(五)选择器的优先级

本节介绍选择器优先级&#xff0c;优先级决定了元素最终展示的样式~ 浏览器是通过判断CSS优先级&#xff0c;来决定到底哪些属性值是与元素最为相关的&#xff0c;从而作用到该元素上。CSS选择器的合理组成规则决定了优先级&#xff0c;我们也常常用选择器优先级来合理控制元素…

MySQL优化、锁、总结常见问题

慢 SQL 如何定位呢&#xff1f; 慢 SQL 的监控主要通过两个途径&#xff1a; 慢查询日志&#xff1a;开启 MySQL 的慢查询日志&#xff0c;再通过一些工具比如 mysqldumpslow 去分析对应的慢查询日志&#xff0c;当然现在一般的云厂商都提供了可视化的平台。服务监控&#xf…

以太网的MAC层

以太网的MAC层 一、硬件地址 ​ 局域网中&#xff0c;硬件地址又称物理地址或MAC地址&#xff08;因为用在MAC帧&#xff09;&#xff0c;它是局域网上每一台计算机中固化在适配器的ROM中的地址。 ​ 关于地址问题&#xff0c;有这样的定义&#xff1a;“名字指出我们所要寻…

阿里云关系型数据库有哪些?RDS云数据库汇总

阿里云RDS关系型数据库大全&#xff0c;关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等&#xff0c;NoSQL数据库如Redis、Tair、Lindorm和MongoDB&#xff0c;阿里云百科分享阿里云RDS关系型数据库大全&#xff1a; 目录 阿里云RDS关系型数据库大全 …

PDF文件压缩软件 PDF Squeezer mac中文版​软件特点

PDF Squeezer mac是一款macOS平台上的PDF文件压缩软件&#xff0c;可以帮助用户快速地压缩PDF文件&#xff0c;从而减小文件大小&#xff0c;使其更容易共享、存储和传输。PDF Squeezer使用先进的压缩算法&#xff0c;可以在不影响文件质量的情况下减小文件大小。 PDF Squeezer…

【正点原子】无法打开 源 文件 “linux/time_types.h“ (dependency of “linux/ide.h“)

问题描述 在VS code中些驱动代码时显示&#xff1a; 检测到 #include 错误。请更新 includePath。已为此翻译单元(/home/alientek/linux/atk-mp1/Linux_Drivers/2_LED/led.c)禁用波形曲线。C/C(1696) 无法打开 源 文件 "linux/time_types.h" (dependency of "…

大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST

文章链接&#xff1a; https://arxiv.org/abs/2308.08998 大模型&#xff08;LLMs&#xff09;爆火的背后&#xff0c;离不开多种不同基础算法技术的支撑&#xff0c;例如基础语言架构Transformer、自回归语言建模、提示学习和指示学习等等。这些技术造就了像GPT-3、PaLM等基座…

代谢组学最常用到的数据分析方法(五)

代谢组学是一门对某一生物或细胞所有低分子质量代谢产物&#xff08;以相对分子质量<1000的有机和无机的代谢物为研究核心区&#xff09;进行分析的新兴学科。因此从复杂的代谢组学数据中确定与所研究的现象有关的代谢物&#xff0c;筛选出候选生物标记物成为代谢物组学研究…

集合-Map系列

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 4.数据结构-哈希表_喜欢吃animal milk的博客-CSDN博客 5.集合-set系列集合-CSDN博客 6.集合-Map系列-CSDN博客 文章目…