C#+SqlServer超市管理系统的设计与实现

news2024/11/17 9:27:12

目 录
1引言 1
1.1课题研究内容 1
2系统需求分析 1
2.1系统模块构建 1
2.1.1系统整体结构功能模块 1
2.1.2前、后台功能模块 2
3 数据库设计 3
3.1 E-R图和关系图 3
3.2数据库表设计 4
4系统实现 7
4.1 前台模块 7
4.2 后台模块 14
5 结果测试 24
5.1前台模块的测试 24
5.2后台模块测试 25
总 结 25
参考文献 25
1 引 言
1.1课题研究内容
综合运用以前所学的专业知识,设计开发一个超市收费系统软件,本设计要求实现功能——采购入库,出入库明细,条形码数据的输入,会员卡号的输入,进行货品销售。
具体包括以下内容:
(1)在设计与开发中,主要放在简单地进行货品销售,会员卡打折(统一九折)。
(2)在设计与开发中,既探讨前台的销售,又能实现后台的采购入库,会员卡设置,员工管理,出入明细等功能。(其中前台只负责输入条码,输入会员卡号,实现收费。其他的所有功能和设置均放在后台进行)
实现超市货品的入库,会员卡用户资料的录入,以及进行货品销售的收费,而前台的收费分为会员卡用户和非会员卡用户两种收费,对于有卡用户,在输入卡号后,可实现商品价格按九折折价格进行收费,若要取消销售某商品,则直接点删除,总价格也会相应的扣除.
2 系统需求分析
数据库应用系统是以数据库为基础的信息管理系统,它一般包含两个方面内容,一个数据库设计,二是程序设计。在建立数据库应用系统之前,一般应先进行系统的需求分析,了解用户对系统的要求,然后进行系统的总体设计,最后编写程序代码和调试程序。数据库应用系统的开发过程,需求分析包括了对数据本身的需求分析和对功能的需求分析。两个分析的结果将分别作为数据库设计和程序设计的依据。实际上在设计数据库应用系统时,这两个需求分析是紧密相关的,不论是数据库设计,还是程序设计都需要考虑这两个方面的因素。
2.1系统模块构建
2.1.1系统整体结构功能模块
系统整体结构功能模块图如图2-1:
在这里插入图片描述

根据系统整体结构功能模块分析,系统分为前台和后台两部分;前台主要提供给收银员使用,进行销售收费;后台提供给管理员使用,主要执行商品信息管理、出入库明细管理、销售数据管理、员工管理以及会员卡用户管理等工作。
2.1.2前、后台功能模块
本系统是多用户系统,用户可分为管理员和收银员两类,登录或者未登录情况下判断当前使用人员的权限,避免安全性问题。
收银员登录系统,系统自动清空销售临时数据,进入系统,对于非会员用户收银员首先录入商品编号,然后输入数量,而对于会员卡用户,收银员选择会员类型,输入会员卡号,系统自动将折扣转为90%,然后系统自动汇总金额,同时列表显示销售商品的流水数据,收银员可以删除需要退掉的商品,然后点击结账,完成交易过程。前台功能模块图如图
在这里插入图片描述

图2-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;
using System.Data.SqlClient;
namespace SuperMarket
{
   
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string str = "server=NO1;database=SuperMarket;integrated security=true";
                SqlConnection con = new SqlConnection(str);
                con.Open();
                string use = user1.Text.ToString();
                string mima = password.Text.ToString();
                SqlDataAdapter ad = new SqlDataAdapter("select * from Table_user where userid='" + use + "' and password='" + mima + "'", con);
                SqlDataAdapter ad1 = new SqlDataAdapter("select * from Table_manager where manid='" + use + "' and password='" + mima + "'", con);
                DataSet set = new DataSet();
                ad1.Fill(set, "s1");
                ad.Fill(set, "s2");
                int flag = 1;
                if (set.Tables["s1"].Rows.Count != 0)
                {
                    flag = 0;
                    c.man = use;
                    Form3 f = new Form3();
                    this.Hide();
                    f.Show();
                }
                else if (set.Tables["s2"].Rows.Count != 0)
                {
                    flag = 0;
                    c.str = use;
                    Form2 f = new Form2();
                    this.Hide();
                    f.Show();
                }
                if (flag == 1)
                {
                    user1.Text = "";
                    password.Text = "";
                    MessageBox.Show("密码错误或用户名不存在!");
                }
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("error:"+ex);
            }
        }

        private void password_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
    public class c
    {
        public static string str = "";
        public static string man = "";
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

教你制作GIF表情包,逐帧动画制作

我们经常看到很多著名的电影场景都被制作成GIF动画,非常有趣。下面2分钟教你制作GIF表情包,方法很简单,一起来学习吧! 方法一:手机制作GIF 我们来看看如何在手机上制作GIF,您需要使用刷新视频编辑工具。打开…

南方农机杂志南方农机杂志社南方农机编辑部2022年第24期目录

南方论坛《南方农机》投稿:cnqikantg126.com 基于物联网的食用菌日光温室终端控制研究 崔玉萍;席雪琴; 8-1016 基于颜色统计的水果采摘机器人水果识别的研究 夏康利;何强; 11-16 基于MATLAB/GUI双作用椭圆轨道滚柱泵人机界面设计 陈舰; 17-20 电动自…

nodejs 引用 canvas报错:without installing the canvas npm package

Error: Not implemented:HTMLCanvasElement. prototype.getContext(without installing the canvas npm package) 试了node 14.19.1 和 node 16.15.0 两个版本的都不行,即使是npm install canvas 成功了,运行也会报错,困扰了好久,…

【Python百日进阶-数据分析】Day125 - plotly.express.scatter():散点图

文章目录一、散点图语法二、参数三、返回类型四、示例4.1 array_like 对象4.2 DataFrame 列4.3 使用列名设置大小和颜色4.4 颜色可以是连续的,也可以是离散的/分类的。4.5 所述symbol参数可以被映射到的列,可以使用多种符号。4.6 Dash 中的散点图4.7 散点…

零基础转行学python有必要去培训机构吗

Python语言,以其简单易学成为不少人学习编程语言的新方向。而市面上也出来了各种各样的python培训机构,不少人就有疑惑了,既然python语言简单易学,那么还有必要去培训机构系统学习吗?知了堂认为,如果你是想…

人工智能:声纹识别技术介绍

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

使用gitee将本地资源上传

在编程时,写好本地文件以后我们可以使用gitee将写的东西上传到gitee官网上分享或者让我们自己可以随时查看,首先,我们需要下载git这个软件,在这里推荐使用电脑管家里面的软件管理下载 ,软件图标如下: 1.生成…

自定义RBAC(4)

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~ 前面把RBAC的权限系统设计过程都讲清楚了,现在就来实现它。大致分这么几个步骤: 1、先定义出完整的权限系统表结构; 2、实现…

Sqlite 数据库操作(二)—— Sqlite常用API 及其使用方法

要使用sqlite数据库的API&#xff0c;需要满足两个条件&#xff1a; 安装sqlite3函数库 —— 终端输入 sudo apt-get install libsqlite3-dev 在程序中引入头文件 sqlite3.h —— #include <sqlite3.h>gcc编译时链接 sqlite3动态库 …

atompark:外贸工具-Atomic 6合一系列产品-Crack

Atomic Studio 邮件发件人Atomic Mail Sender 我们最畅销的电子邮件活动工具 邮件发件人 群发邮件发件人 使用我们内置的 SMTP 或您自己的&#xff01; 按姓名称呼收件人 移除退订者 电子邮件猎手 发现网站上的电子邮件地址 按关键字搜索 执行高速和准确的搜索 邮件验证器 …

Synchronized原理

Synchronized原理一、基本特点二、加锁工作过程 (锁升级/锁膨胀)2.1 偏向锁2.2 轻量级锁2.3 重量级锁三、锁消除四、锁粗化五、总结一、基本特点 结合锁策略&#xff0c;我们就可以总结出 Synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁, 如果锁冲突…

数据结构.数组

数据结构.数组1.数组的概念和特点2.数组的定义和初始化3.数组的遍历4.数组的基本操作&#xff08;不多说 注解很详细&#xff09;5.操作的时间复杂度1.数组的概念和特点 数组就是一种容器&#xff08;装数据的&#xff09;&#xff0c;用来存储相同类型的数据值。 数组的特点…

RRT_star MATLAB

colormap 函数 创建栅格地图 clc clear close all%% 构建颜色MAP图 cmap [1 1 1; ... % 1-白色-空地0 0 0; ... % 2-黑色-静态障碍1 0 0; ... % 3-红色-动态障碍1 1 0;... % 4-黄色-起始点 1 0 1;... % 5-品红-目标点0 1 0…

Canal同步mysql binlog至pulsar

Canal 一、简介 canal [kə’nl]&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 基于日志增量订阅和消费的业务包括 数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处…

【数据结构】队列(链式队列)

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《数据结构》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 队列的结构和概念&#xff1a; Queue.h文件 Queue.c文件 Test.c文件&am…

ElasticSearch分布式架构原理

一个ES集群中有多个Server节点&#xff0c;每个Server节点中含有多个Index。 主节点&#xff08;Master&#xff09; 主资格节点的主要职责是和集群操作相关的内容&#xff0c;如创建或删除索引&#xff0c;跟踪哪些节点是集群的一部分&#xff0c;并决定哪些分片分配给相关的…

文件系统篇

目录 1.文件系统的基本组成 1.1.文件 1.1.1.目录项和目录是一个东西吗&#xff1f; 1.1.2.那文件数据是如何存储在磁盘的呢&#xff1f; 2.page cache 2.1.进程写文件时&#xff0c;进程发生了崩溃&#xff0c;已写入的数据会丢失吗 2.2.page cache是什么&#xff1f; …

Docker:网络配置

目录 一、网络模式简介 二、bridge模式以及host模式的命令演示 bridge模式 host模式 三、自定义网络 一、网络模式简介 Docker在创建容器时有四种网络模式&#xff1a;bridge/host/container/none&#xff0c;bridge为默认不需要用--net去指定&#xff0c;其他三种模式需要…

CAS机制和synchronize的原理及其优化机制(锁消除 偏向锁 自旋锁 膨胀锁 锁粗化)

乐观锁的问题&#xff1a;并不总是能处理所有问题&#xff0c;所以会引入一定的系统复杂度。 读写锁 把加锁操作分成了俩种 一是读锁二是写锁 也就是说在读和读之间是没有互斥的 但是在读写和写写之间就会存在互斥 如果一个场景是一写多度 那么使用这个效率就会很高 重量级锁…

【数据结构与算法】B_树

目录 前言&#xff1a; 一、B树 1、B树概念 2、B树查找 3、B树插入 4、B树前序遍历 5、B树性能 二、B、B*树 1、B树概念 2、B树的插入 2、B*树概念 3、总结 三、B系列树的应用 总结 前言&#xff1a; 我们已经有很多索引的数据结构了 例如&#xff1a; 顺序查找 …