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.mzph.cn/news/94180.shtml

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

相关文章

pytorch_神经网络构建1

文章目录 pytorch简介神经网络基础分类问题分析:逻辑回归模型逻辑回归实现多层神经网络多层网络搭建保存模型 pytorch简介 为什么神经网络要自定义数据类型torch.tensor? tensor可以放在gpu上训练,支持自动求导,方便快速训练,同时支持numpy的运算,是加强版,numpy不支持这些 为…

【网络通信三要素】TCP与UDP快速入门

网络通信三要素 1.什么是网络编程&#xff1f; 可以让设备中的程序&#xff0c;与网络上其他设备中的程序进行数据交互&#xff0c;从而实现网络通信的手段&#xff0c;java.net.*包下提供了网络编程的解决方案 2.基本的通信架构 基本的通信架构有2种形式&#xff1a;CS架构…

项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285

一、前言 上个月29号放假了&#xff0c;和朋友一起去了南京(人是真滴多)&#xff0c;师兄晚放假几天&#xff0c;结果在测试时不小心把12V和GND碰触到一起了&#xff0c;导致12V短路&#xff0c;电路板几乎瘫痪了。 今天下午到学校之后就开始着手寻找问题和修复&#xff0c;最…

手机自动直播系统源码交付与代理加盟注意事项解析!

随着直播行业的不断发展&#xff0c;手机自动直播已经成为了人们生活中不可或缺的一部分。手机无人直播软件成了香饽饽&#xff0c;各类手机实景直播APP大批量涌现。因为创业和技术门槛低&#xff0c;市场需求高&#xff0c;所以成了最火热创业赛道。那么如果是不懂技术的人群&…

Matlab随机数的产生

目录 1、常见分布随机数的产生 1.1 二项分布 1.2 泊松分布 1.3 几何分布 1.4 均匀分布&#xff08;离散&#xff0c;等可能分布&#xff09; 1.5 均匀分布&#xff08;连续型等可能&#xff09; 1.6 指数分布&#xff08;描述“寿命”问题&#xff09; 1.7 正态分布 1.8…

SpringBoot结合Redisson实现分布式锁

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…

C#,数值计算——Ranq2的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Backup generator if Ranq1 has too short a period and Ran is too slow.The /// period is 8.5E37. Calling conventions same as Ran, above. /// </summary> …

基于Matlab求解高教社杯全国大学生数学建模竞赛(CUMCM2004A题)-奥运会临时超市网点设计(附上源码+数据)

文章目录 题目思路源码数据下载 题目 2008年北京奥运会的建设工作已经进入全面设计和实施阶段。奥运会期间&#xff0c;在比赛主场馆的周边地区需要建设由小型商亭构建的临时商业网点&#xff0c;称为迷你超市&#xff08;Mini Supermarket, 以下记做MS&#xff09;网&#xf…

提升您的工作效率:TechSmith Snagit for Mac:强大的屏幕截图软件

在当今数字化的时代&#xff0c;屏幕截图已成为我们日常生活和工作中必不可少的一部分。无论是为了保存重要的信息、分享有趣的内容&#xff0c;还是为了制作教程和演示文稿&#xff0c;一款优秀的屏幕截图软件都能极大地提升我们的效率。而在所有的屏幕截图软件中&#xff0c;…

JavaScript:从入门到进阶的旅程

JavaScript是一种广泛使用的编程语言&#xff0c;为网页和应用程序提供了交互性和动态性。从初学者到资深开发者&#xff0c;JavaScript都是一项值得掌握的技能。在本文中&#xff0c;我们将探讨JavaScript的基础知识&#xff0c;以及一些进阶的概念和技巧。 一、JavaScript简…

机器视觉工程师,努力方向错了,白费

努力方向错了&#xff0c;白费。 在这个知识经济&#xff0c;知识付费&#xff0c;知识大V横行的时代&#xff0c;知识似乎遍地都是。但你有没有想过&#xff0c;微博里的段子是不是知识&#xff1f;微信里的爆款文章是不是知识&#xff1f;得到App里的音频是不是知识&#xf…

博物馆藏品管理系统-美术馆藏品管理系统

一、项目背景 文物作为前史留存下来最为珍贵的遗物&#xff0c;具有非常高的科学价值和艺术价值&#xff0c;博物馆的存在便是为了保存这些珍贵的前史文化遗产&#xff0c;所以对博物馆的建造必定要重视品质问题。对博物馆的库存办理工作也必定要注意细节&#xff0c;不能出一…

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

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

OpenGLES:绘制一个混色旋转的3D球体

一.概述 前面几篇博文讲解了如何使用OpenGLES实现不同的3D图形 本篇博文讲解怎样实现3D世界的代表图形&#xff1a;一个混色旋转的3D球体 二.球体解析 2.1 极限正多面体 如果有学习过我前几篇3D图形绘制的博文&#xff0c;就知道要想绘制一个3D图形&#xff0c;首先要做的…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一&#xff1a;函数的简介 1&#xff1a;概念和简介 2&#xff1a;创建一个函数对象 3&#xff1a;调用函数对象 4&#xff1a;函数对象的普通功能 5&#xff1a;使用函数声明来创建一个函数对象 6&#xff1a;使用函数声明创建一个匿名函数 一&#xff1a;函…

【AI视野·今日Sound 声学论文速览 第十七期】Tue, 3 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 3 Oct 2023 Totally 15 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers DiffAR: Denoising Diffusion Autoregressive Model for Raw Speech Waveform Generation Authors Roi Benita, Michael Elad, Joseph Kes…

mybatis项目启动报错:reader entry: ���� = v

问题再现 解决方案一 由于指定的VFS没有找&#xff0c;mybatis启用了默认的DefaultVFS&#xff0c;然后由于DefaultVFS的内部逻辑&#xff0c;从而导致了reader entry乱码。 去掉mybatis配置文件中关于别名的配置&#xff0c;然后在mapper.xml文件中使用完整的类名。 待删除的…

css自学框架之选项卡

这一节我们学习切换选项卡&#xff0c;两种切换方式&#xff0c;一种是单击切换选项&#xff0c;一种是鼠标滑动切换&#xff0c;通过参数来控制&#xff0c;切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

python模拟表格任意输入位置

在表格里输入数值&#xff0c;要任意位置&#xff0c;我找到了好方法&#xff1a; input输入 1. 行 2. 列输入&#xff1a;1 excel每行输入文字input输入位置 3.2 表示输入位置在&#xff1a;3行个列是要实现一个类似于 Excel 表格的输入功能&#xff0c;并且希望能够指定输入…

概率密度函数,概率分布函数

概率密度函数&#xff1a;描述信号的取值在某个确定的取值点附近的概率的函数&#xff1b;概率分布函数的导数。 以幅值大小为横坐标&#xff0c;以每个幅值间隔内出现的概率为纵坐标进行统计分析。反映了信号落在不同幅值强度区域内的概率情况。 直方图&#xff1a;对每个幅…