C#超市收银系统设计

本文实例为大家分享了C#超市收银系统设计的具体代码,供大家参考,具体内容如下

1.登录界面

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 梦之翼小组项目
{
 public partial class denglu : Form
 {
  public denglu()
  {
   InitializeComponent();
  }
  model db = new model(); //实例化数据库对象

  private void button1_Click(object sender, EventArgs e)
  {
   string strConn = "Data Source=.;Initial Catalog=shopInfo;Integrated Security=True"; //连接数据库
   SqlConnection Connection = new SqlConnection(strConn);

   try
   {

    string sqlStr = "select userName,userPassword from register where userName=@userName"; //查询
    DataSet ds = new DataSet();

    Connection.ConnectionString = Connection.ConnectionString;
    Connection.Open();

    SqlCommand cmd = new SqlCommand(sqlStr, Connection);
    cmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.VarChar, 30)); //传参
    cmd.Parameters["@userName"].Value = userName.Text;   //给user文本框赋值
    SqlDataReader dater = cmd.ExecuteReader();

    if (userName.Text.Trim() == "")   //如果user的值等于空
    {
     MessageBox.Show( "用户名不允许为空!");

    }
    else if (passWord.Text.Trim() == "")   //同上
    {
     MessageBox.Show( "密码不能为空!");
    }
    else if (!dater.Read())    //如果输入的用户名没有被dater读到,则用户名不存在
    {
     MessageBox.Show( "用户名不存在!");
     userName.Text = "";
     passWord.Text = "";
    }
    else if (dater["userPassWord"].ToString().Trim() == passWord.Text.Trim()) //输入密码等于数据库密码登录成功且弹出音乐框
    {
     MessageBox.Show( "登录成功!");
     userName.Text = "";
     passWord.Text = "";
     caozuoyemain frm = new caozuoyemain();
     frm.ShowDialog();
    }
    else
    {
     MessageBox.Show("密码错误!");  //否则密码错误
     userName.Text = "";
     passWord.Text = "";

    }
   }
   catch (Exception)
   {
    throw;    //抛出异常
   }
   finally
   {
    Connection.Close();  //关闭数据库
   }

  }

  private void label4_Click(object sender, EventArgs e)
  {
   zhuce fra = new zhuce();
   fra.ShowDialog();
  }

  private void label6_Click(object sender, EventArgs e)
  {
   zhaohuimima fra = new zhaohuimima();
   fra.ShowDialog();
  }

  private void denglu_Load(object sender, EventArgs e)
  {

  }
 }
}

2.操作界面:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 梦之翼小组项目
{
 public partial class caozuoyemain : Form
 {
  public caozuoyemain()
  {
   InitializeComponent();
  }
  public double totalPrice;//每种商品的总价
  public double total; //所有商品的总价
  public double shijijin;//顾客给的钱数
  public double yingzhao;// 找给顾客的钱数
  public string mingcheng;//每件商品的名称
  public double shuliang;//每件商品的数量
  public double jiage;//每件商品的价格
  public int i = 0; //商品收费的id

  model db = new model(); //实例化数据库对象

  public void fanli() //单件物品的返利方法
  {
   if (jiage * shuliang < 600 && jiage * shuliang > 300)
   {
    totalPrice = jiage * shuliang - 100;
   }
   else
   {
    totalPrice = jiage * shuliang;
   }
  }

  private void confirm_Click(object sender, EventArgs e) //单击确定按钮的事件
  {
   totalPrice = 0; //每一次商品的单个金额

   jiage = Convert.ToDouble(price.Text);
   shuliang = Convert.ToDouble(number.Text); //数据类型的转换

   switch (jisuanfangshi.SelectedIndex)
   {
    case 0:
     totalPrice = jiage * shuliang;

     break;
    case 1:
      totalPrice = jiage * shuliang*0.8;

     break;
    case 2:
     fanli(); //调用单个物品的返利方法

     break;
   }

   total = totalPrice + total; //所有商品的总金额

   zongjine.Text = total.ToString();//总金额转换数据类型,显示到文本框里面

   i++; //每一次的商品id加1,为了调出所有商品的最后一个数据

   db.dbcon();
   try
   {
    string insertInfo = "insert wupin values('" + i.ToString() + "','" + tradeName.Text + "','" + price.Text + "','" +
     number.Text + "','" + jisuanfangshi.Text + "','" + totalPrice.ToString() + "')";
    db.dbInsert(insertInfo);

    string selstr = "select top "+i+" * from wupin order by 物品ID desc";
    db.dbFill(selstr);
    dataGridView1.DataSource = db.dt;
   }
   catch (Exception)
   {
    MessageBox.Show("不好意思,信息有误,注册失败");
   }
  }  

  private void caozuoyemain_Load(object sender, EventArgs e)
  {
   db.dbcon();
   string qingkong = "TRUNCATE TABLE wupin";
   db.dbInsert(qingkong);
   jisuanfangshi.SelectedIndex = 0;
  }

  private void jiesuan_Click(object sender, EventArgs e)
  {
   shijijin = Convert.ToDouble(shishoujine.Text);
   yingzhao=Convert.ToDouble(zongjine.Text) ;
   yingzhao = shijijin - total;
   zhaojine.Text = yingzhao.ToString()+"元";
  }

  private void resetting_Click(object sender, EventArgs e)
  {
   tradeName.Text = "";
   price.Text = "";
   number.Text = "";
  }
 }
}

3.收银员注册界面:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 梦之翼小组项目
{
 public partial class zhuce : Form
 {
  public zhuce()
  {
   InitializeComponent();
  }
  public string sexValue; //接收性别的字段
  model db = new model(); //实例化数据库对象

  private bool testuserName(string strUsername) //检测用户名的方法
  {
   bool strResult;// 判断结果的接收
   Regex exStrUserName = new Regex(@"^[a-zA-Z][a-zA-Z0-9]{3,8}$");
   //正则表达式的书写
   if (strResult = exStrUserName.Match(strUsername).Success)
   {
    yonghuming_test.Text = "✔";
   }
   else
   {
    MessageBox.Show("用户名由3—6位的字母和数字组成,必须以字母开头");

   }
   return strResult;
  }

  private bool testPassWord(string strUsername) //检测密码的方法
  {
   bool strResult;// 判断结果的接收
   Regex exStrUserName = new Regex(@"^[\w\-~!@#$%^&*()+{}[ \]:]{6,16}");
   //正则表达式的书写
   if (strResult = exStrUserName.Match(strUsername).Success)
   {
    mima_test.Text = "✔";
   }
   else
   {
    mima_test.Text = "✘";
    MessageBox.Show("密码由6—16位的字母和数字或符号组成");

   }
   return strResult;
  }
  private bool testName(string strUsername) //检测姓名的方法
  {
   bool strResult;// 判断结果的接收
   Regex exStrUserName = new Regex(@"^([a-zA-Z0-9\u4e00-\u9fa5\·]{2,3})$");
   //正则表达式的书写
   if (strResult = exStrUserName.Match(strUsername).Success)
   {
    name_test.Text = "✔";
   }
   else
   {
    name_test.Text = "✘";
    MessageBox.Show("请文明用语,输入合法的中文姓名哦");

   }

   if (name_text.Text == "小猫" || name_text.Text == "小狗" || name_text.Text == "傻逼")
   {
    name_test.Text = "✘";
    MessageBox.Show("请文明用语,输入合法的中文姓名哦");
   }
   return strResult;
  }

  private bool testPhonnumber(string strUsername) //检测手机号的方法
  {
   bool strResult;// 判断结果的接收
   Regex exStrUserName = new Regex(@"^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$");
   //正则表达式的书写
   if (strResult = exStrUserName.Match(strUsername).Success)
   {
    phonnumber_test.Text = "✔";
   }
   else
   {
    phonnumber_test.Text = "✘";
    MessageBox.Show("请输入正确的手机号码");

   }
   return strResult;
  }

  private void nan_rb_CheckedChanged(object sender, EventArgs e) //选择性别的事件
  {
   sexValue = nan_rb.Text;
  }
  private void nv_rb_CheckedChanged(object sender, EventArgs e)
  {
   sexValue = nv_rb.Text;
  }

  private void zhuce_bt_Click(object sender, EventArgs e) //注册的点击事件
  {
   db.dbcon();
   try
   {
    string insertInfo = "insert register values('" + username_text.Text + "','" + password_text.Text+ "','" + name_text.Text+
      "','" + sexValue + "','" + phonnumber_text.Text + "')";
    db.dbInsert(insertInfo);
    DialogResult dr=MessageBox.Show("恭喜你注册成功,是否转到登录界面","注册成功对话框",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
    if (dr == DialogResult.OK)
    {
     this.Close();
     denglu fra = new denglu();
     fra.ShowDialog();

    }
    else if (dr == DialogResult.Cancel)
    {
     this.Close();
    }

   }
   catch (Exception)
   {
    MessageBox.Show("不好意思,信息有误,注册失败");
   }
  }

  private void username_text_Leave(object sender, EventArgs e) //用户名文本框的光标事件
  {
   if (username_text.Text == "")
   {
    MessageBox.Show("用户名不能为空");
   }
   else
   {
    testuserName(username_text.Text);
   }
  }

  private void password_text_Leave(object sender, EventArgs e)//密码文本框的光标事件
  {
   if (password_text.Text == "")
   {
    MessageBox.Show("密码不能为空");
   }
   else
   {
    testPassWord(password_text.Text);
   }
  }

  private void name_text_Leave(object sender, EventArgs e)//姓名文本框的光标事件
  {
   if (name_text.Text == "")
   {
    MessageBox.Show("姓名不能为空");
   }
   else
   {
    testName(name_text.Text);
   }
  }

  private void phonnumber_text_Leave(object sender, EventArgs e)//手机号文本框的光标事件
  {
   if (phonnumber_text.Text == "")
   {
    MessageBox.Show("手机号不能为空");
   }
   else
   {
    testPhonnumber(phonnumber_text.Text);
   }
  }

  private void chongzhi_bt_Click(object sender, EventArgs e) //重置按钮
  {
   username_text.Text = "";
   phonnumber_text.Text = "";
   name_text.Text = "";
   phonnumber_text.Text = "";
  }

  private void quxiao_bt_Click(object sender, EventArgs e)// 取消事件
  {
   this.Close();
  }

  private void zhuce_Load(object sender, EventArgs e)
  {

  }

 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。  

(0)

相关推荐

  • C#实现简单的汽车租赁系统

    最近学习了继承,多态,集合,设计模式,有一个汽车租凭系统,给大家分享一下: 我们首先来看看我们这个系统的效果 1.做一个项目,我们首先对项目进行分析 根据我们最近学的知识,我们可以看出继承,多态,集合,设计模式,我们都能用到 我们把所需要的类和简单模式中的"简单工厂"的工厂准备好 类图: 01.车辆类(父类) using System; using System.Collections.Generic; using System.Linq; using System.Text; usi

  • C#影院售票系统毕业设计(2)

    本文继续更新,动态绘制控件.票类型的切换以及数据在窗体中的展现. 先从简单的开始,票类型的切换. 分析: 1.当点击普通票时 学生折扣和赠送者是禁用的 2.点击赠票时 启用赠送者,禁用学生折扣 3.点击学生票时 启用学生折扣,禁用赠送者 学生折扣ComboBox下拉框可以选择折扣,根据折扣实时折扣计算价格到优惠价上. 需要注意的是: 如果没有选择ListView的电影场次(也就是时间),选择赠票和学生票是没有意义的甚至会引发学生票实时计算时的异常,所以我们要判断  if (this.treeVi

  • C#影院售票系统毕业设计(1)

    C#学习经历从基本语法结构到窗体再到面向对象终于走完了.NET初级程序员的道路,用了大概一天半的时间做完这个练手项目<影院售票系统>,先上效果截图一张 抽出时间做些这个对目前的我来说算不小的项目. 用到的知识点有:面向对象思想.TreeView.XML读取.File文件流.泛型集合,这里面对我来说难度最大的是面向对象与泛型集合的结合,看来学习一门编程语言的难点还是在设计思想上. 再来介绍一下项目需求:在影片列表中选择某个时段的一场电影,单击座位选择一个种类的电影票,并创建电影,计算价格并打印影

  • 基于C#编写经理评分系统

    先写需求: 01.显示员工信息 02.实现项目经理给员工评分的功能 第一步: 建立两个类,员工类和项目经理类 定义属性和方法 员工类:工号.年龄.姓名.人气值.项目经理年度评分.经理评价 项目经理类:ID.年龄.姓名.性别.资历,由于经理可以给员工评分,因此还有评分的方法 先上两张图再说: 查看窗体FrmShow 评分窗体FrmJudge 不说了,上代码 首先是员工类 using System.Text; using System.Threading.Tasks; namespace 经理评分系

  • C#影院售票系统毕业设计(4)

    回顾:上一篇文章总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息. 分析:退出程序时将已售出票集合中的对象循环写入到文本文件中,读取时循环读入并加入到已售出票集合中,下面看具体实现 public void Save() { //保存的文件 FileStream fs = new FileStream("soldTickets.txt", FileMode.OpenOrCreate); Stream

  • C#超市收银系统设计

    本文实例为大家分享了C#超市收银系统设计的具体代码,供大家参考,具体内容如下 1.登录界面 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.

  • C#实现简单超市收银系统

    本文实例为大家分享了C#实现简单超市收银系统的具体代码,供大家参考,具体内容如下 今天使用一直学习的抽象类等做了个简单的超市收银系统,不难,不过里面的逻辑要理清楚. 首先我们要知道我们要实现的功能. 超市一般有仓库,有收银台,有各种各样的商品,每一个商品都有Name,Price,Count等属性.我们可以写一个抽象父类,这样我们才能将每件商品属性设置一样.新建一个ProduckFather类作为商品的父类 并将属性和构造函数写好,每次新建商品时写好参数就会方便很多 abstract class

  • Java实战之超市收银管理系统的实现

    目录 一.项目简述 二.项目运行 三.效果图 四.核心代码 品类信息控制层 用户信息控制层 商品信息控制层 一.项目简述 本系统主要实现的功能有:收银.报表.用户管理.商品管理.销售管理.进货退货管理.仓库管 理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: Spring+ SpringMVC + MyBatis + ThymeLeaf

  • java Gui实现肯德基点餐收银系统

    大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java Gui模拟的肯德基收银系统. 1.系统介绍 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能

  • java实现肯德基收银系统

    参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠券购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件中). 小票信息保存 class print{ String s=""; //存订单信息 } 食物工厂 interface FoodFactory{ public Hambu

  • python+pyqt5实现KFC点餐收银系统

    本文实例为大家分享了python实现KFC点餐收银系统的具体代码,供大家参考,具体内容如下 这个kfc收银系统我实现了的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动 5.模拟打印小票的功能(写到文件中). 工程文件: 肯德基.py文件实现各功能.kfctip.txt文件用于打印小票.picture文件里存放界面所需的图片.其他四个文件为各界面布局. 主界面: 正常餐品点餐界面: 套餐点餐界面: 活动套餐点餐界面

  • 前端开发之便利店收银系统代码

    1+X前端初级JQ 社区便利店收银系统代码 <body> <input type="text" id="t" value="" disabled="disabled" /> <form id="main" action="" method=""> <span>4.5</span> <input type

  • 基于Mysql+JavaSwing的超市商品管理系统设计与实现

    目录 2.关键代码 2.1 主页功能 2.2 添加商品信息 2.3 数据库设计 商品表 前言: 随着小超市规模的发展不断扩大, 商品数量急剧增加, 有关商品的各种信息量也成倍增长. 超市时时刻刻都需要对商品各种信息进行统计分析. 而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率. 超市管理系统是市场上最流行的超市上常用的系统之一, 由于刚学Java知识.所有功能设计的比较简单.只有商品信息的增删改查.实现对商品信息全面. 动态.及时的管理.本文系统的分析了软件开发的背景以过程

  • c++中的单例类模板的实现方法详解

     1.什么是单例模式 在架构设计时,某些类在整个系统生命周期中最多只能有一个对象存在 ( Single Instance ).如超市收银系统,其外观主要由显示器(1个).扫描枪(1个).收款箱(1个)组成,在系统正常运行期间这三部分都是唯一存在的:也就是说,显示器.扫描枪.收款箱这三部分都应该有各自的类,并且每个类只能唯一地实例化一个对象,基于这种模式的程序设计,称为单例模式. !!!单例模式只能创建一个对象,且该对象的生命周期伴随系统的整个运行期间. 2.怎么实现单例模式 思考:如何定义一个类

  • 不可忽视的 .NET 应用5大性能问题

    实现有效 APM 策略所面临的挑战: 代码依赖 过度或不必要的日志 同步与锁 潜在数据库问题 潜在的基础架构问题 1.代码依赖 开发程序是一项具有挑战性的工作.你不仅要为了满足商业需求而建立程序逻辑,还要选择最合适的代码库和工具来帮助你.你能想象自己创建所有的日志管理代码,XML 和 JSON 解析逻辑,或所有的序列化库么?你当然可以编写代码来完成这些事,但是诸多开源开发者团队已经做好了这些事情,你又何必亲力亲为呢?此外,如果你正在与第三方系统集成,你会自己读完专有的通信协议规范,还是购买供应商

随机推荐