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,一经查实,立即删除!

相关文章

Flink Data Source

Flink Data Source 一、内置 Data Source Flink Data Source 用于定义 Flink 程序的数据来源,Flink 官方提供了多种数据获取方法,用于帮助开发者简单快速地构建输入流,具体如下: 1.1 基于文件构建 1. readTextFile(path):按照 TextInputFormat 格式读取文本文件,并将…

pytorch_神经网络构建1

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

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

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

抑郁了怎么办?改变抑郁情绪的几个建议

如今抑郁已经是个很常见的名词了&#xff0c;不论是校园还是职场&#xff0c;内卷无处不在&#xff0c;在这个抑郁高发的时代&#xff0c;需要我们正确的认识抑郁&#xff0c;找到适合自己的解决方法&#xff0c;将抑郁消灭在萌芽状态。 如果感觉自己有了抑郁情绪怎么办&#…

项目进展(五)-修复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;不能出一…

CSS 常用样式-文本属性

一、水平对齐 text-align CSS中的text-align属性用于水平对齐文本。它可以应用于块级元素和表格单元格。 常见的属性值包括&#xff1a; left&#xff1a;左对齐&#xff0c;文本在容器的左侧。right&#xff1a;右对齐&#xff0c;文本在容器的右侧。center&#xff1a;居中…

大模型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;首先要做的…

【redis学习笔记】主从的docker-compose脚本

编排 redis 主从节点 version: 3.7 services:master:image: redis:5.0.9container_name: redis-masterrestart: alwayscommand: redis-server --appendonly yesports:- 6379:6379slave1:image: redis:5.0.9container_name: redis-slave1restart: alwayscommand: redis-server …

C++学习第二十八天----引用变量的特别之处

1.引用变量 应用变量和指针十分相似&#xff0c;但是要注意二者的区别&#xff1b;例如&#xff0c;引用变量在声明引用时也要初始化&#xff0c;而不能像指针那样先声明再赋值。引用更接近const 指针。 int rat&#xff1b; int & rats rat&#xff1b; //int & rat…

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

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