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.hqwc.cn/news/124354.html

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

相关文章

java飞机大战

一、 概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏&#xff0c;应用Swing编程&#xff0c;完成一个界面简洁流畅、游戏方式简单&#xff0c;玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。 1…

【Java】多态

概念 多态 是面向对象三大特征之一。 同一个对象&#xff0c;在不同的时刻表现出来的不同形态。 举例&#xff1a;狗 狗就是狗 狗 dog new 狗&#xff08;&#xff09;&#xff1b; 我们也可以说 动物 animal new 狗&#xff08;&#xff09;&#xff1b; 这里狗在不…

【MySQL教程】| (1-1) 2023MySQL-8.1.0 安装教程

文章目录 一、安装包下载二、安装配置1、解压安装包2、编写MySQL配置文件3、初始化MySQL数据库3、安装mysql服务并启动4、MySQL服务5、连接MySQL6、修改密码 三、配置环境变量四、防止mysql自启动拖慢开机时间 近日有粉丝问到mysql在win11的安装中遇到一些问题&#xff0c;应粉…

智慧工地源代码 SaaS模式云平台

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 什么是智慧工地&#xff1f; 伴随着技术的不断发展&#xff0c;信息化手段、移…

C/C++学习 -- 分组加密算法(DES算法)

数据加密标准&#xff08;Data Encryption Standard&#xff0c;DES&#xff09;是一种对称密钥加密算法&#xff0c;是信息安全领域的经典之作。本文将深入探讨DES算法的概述、特点、原理&#xff0c;以及提供C语言和C语言实现DES算法的代码案例。 一、DES算法概述 DES算法是…

数据库存储引擎和数据类型详细介绍

目录 一、数据库存储引擎&#xff08;了解&#xff09;1.了解MySQL体系结构2.存储引擎&#xff08;了解&#xff09;2.1.存储引擎的介绍2.2.存储引擎分类2.3.如何选择引擎&#xff1f; 3.事务控制语言(TCL)事务的四个特性(ACID) 二、数据类型&#xff08;了解&#xff09;1.整型…

JavaScript系列从入门到精通系列第十二篇:JavaScript中对象的简介和对象的基本操作以及JavaScript中的属性值和属性名

文章目录 前言 一&#xff1a;对象分类 1&#xff1a;内建对象 2&#xff1a;宿主对象 3&#xff1a;自建对象 二&#xff1a;对象的基本操作 1&#xff1a;创建对象 2&#xff1a;向对象中添加属性 3&#xff1a;读取对象中的属性 4&#xff1a;修改对象中的属性 三…

《幸福之路》罗素(读书笔记)

目录 作者简介 作者的感悟 经典摘录 一、不幸福的成因 1、一部分要归咎于社会制度 2、一部分则得归咎于个人心理——当然&#xff0c;你可以说个人心理是社会制度的产物。 二、欠缺某些想要的东西&#xff0c;是快乐的必要条件 三、无聊与刺激 四、现代人的精神疲劳 五…

FFmpeg 命令:从入门到精通 | ffplay 播放控制选项

FFmpeg 命令&#xff1a;从入门到精通 | ffplay 播放控制选项 FFmpeg 命令&#xff1a;从入门到精通 | ffplay 播放控制选项选项表格图片 FFmpeg 命令&#xff1a;从入门到精通 | ffplay 播放控制选项 选项表格 项目说明Q&#xff0c;Esc退出播放F&#xff0c;鼠标左键双击全…

Vue实现Hello World

<div id"aa"> <p>{{h}}</p> </div> <script src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"></script> <script> const hello new Vue({ el:#aa, data:{ h : Hello World } }) </script>

Appleid苹果账号自动解锁改密(自动解锁二验改密码)

目前该项目能实现以下功能&#xff1a; 多用户使用&#xff0c;权限控制多账号管理账号分享页&#xff0c;支持设置密码、有效期、自定义HTML内容自动解锁与关闭二步验证自动/定时修改密码自动删除Apple ID中的设备代理池与Selenium集群&#xff0c;提高解锁成功率允许手动触发…

python二次开发CATIA:为选中元素上色

先打开一个零件文档&#xff0c;然后用鼠标选中元素&#xff0c;再运行如下python程序&#xff1a; import win32com.client import pywintypes # 导入pywintypes模块 import random # 启动CATIA应用 catia win32com.client.Dispatch(CATIA.Application) catia.visible1try:…