添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

C#开发“零售店”商品销售与管理系统

一、题目与要求

1.1 问题提出



1.2 本系统涉及的知识点

  • 可视化程序设计基础;
  • C#编程语言;
  • MySQL 数据结构设计;
  • ADB、listView、DataGridView;
  • 面向对象编程;

1.3 实现功能

  • 数据库设计;
  • 商品查询:id、名称、厂家…
  • 商品管理:添加、修改、删除、查询;

二、数据结构

本系统包含用户表、商品表、订单表三个表单,并在数据库中添加一些触发与引索,使用阿里云的 RDS-MySQL 数据库,数据库版本为 8.0.16。

2.1 用户表 User

  1. 用户编号:int 类型,真动增长,主键,字段名:_id;
  2. 姓名:varchar 类型,非空,字段名:name;
  3. 用户名:varchar 类型,非空,添加唯一引索,不可重复,字段名:uname;
  4. 密码:varchar 类型,非空,字段名:password;
  5. 身份:varchar 类型,非空,默认用户,字段名:role;
  6. 销售额:decimal 类型,非空,默认为 0.0,字段名:Sales;

2.2 商品表 commodity

  1. 商品编号:int 类型,真动增长,主键,字段名:id;
  2. 商品条码:varchar 类型,非空,添加唯一引索,不可重复,字段名:Barcode;
  3. 商品名称:varchar 类型,非空,字段名:name;
  4. 生产厂家:varchar 类型,字段名:factory;
  5. 商品类别:varchar 类型,字段名:category;
  6. 商品价格:decimal 类型,非空,默认 0.0,字段名:price;
  7. 商品销量:int 类型,非空,默认 0,字段名:sales;
  8. 商品库存:int 类型,非空,默认 0,字段名:sum;

2.3 订单表 sales

  1. 订单编号:int 类型,真动增长,主键,字段名:id;
  2. 订单详情:varchar 类型,内容商品名*数量,用 | 分隔,字段名:val;
  3. 订单金额:decimal 类型,非空,默认为 0,字段名:amount;
  4. 操作编号:int 类型,非空,对应用户编号,字段名:user_id;
  5. 操作姓名:varchar 类型,对应用户姓名,字段名:user;
  6. 订单时间:timestamp 类型,非空,自动填写插入时间,自动名:time;

触发:当插入时候,自动更新用户表的销售金额。

三、程序简述与功能

3.1 程序简述

本程序除了完成作业要求外,还美化了用户界面,优化了用户体验,包含了用户表、商品表、订单表三个数据源,并提供了商品管理、用户管理、订单管理、收银台等子系统。本系统可以提供用户检验、权限判断,商品的管理、用户的管理和收银,并将所有可能的异常进行了异常处理。

3.2 实现功能

  1. 登录验证与在线/权限检验;
  2. 用户注册;
  3. 商品管理:包括增删改查,条件筛选,模糊查询,批量修改;
  4. 收银台:包括添加商品、修改数量、移除商品、计算金额、统计订单;
  5. 订单管理:包括订单浏览,条件筛选,模糊查询,按时间过滤等;
  6. 用户管理:包括浏览用户,修改资料,删除用户,修改权限,模糊查询,条件筛选等;
  7. 补充、添加商品库存;

3.3 程序流程图

3.3.1 主程序



3.3.2 商品管理模块流程图



3.3.3 收银台模块流程图



3.3.4 订单管理模块流程图



3.3.5 用户管理模块流程图



3.3.6 注册/编辑模块流程图



四、软件运行详情

4.1 登录模块

登录模块可以执行用户身份验证和用户注册的简单操作,包含登录页面和注册页面两个窗口。



4.1.1 显示密码

按住密码框右边的小灯泡会显示密码明文,松开会继续显示*



4.1.2 注册

点击登录页面的注册按钮会弹出注册页面,可以进行用户注册,默认会锁定身份选项,页面会自动检验用户名和密码的格式,当用户名和已有用户重复时候会提示用户名已存在(详见 3.1.3 异常处理)。此页面为弹出页面。



4.1.3 异常处理

当用户名、密码或者身份选则错误会弹出提示窗口,提示错误。



当注册格式不正确时会弹出注册失败,并提示格式错误原因。





当用户名与已经存在的用户重复时会提示用户名重复。



4.2 主界面

主界面为程序的根入口,提供进入各个分模块的入口,并可以对用户权限进行判断,根据权限选择性的开放入口,其中包含单独的库存补充界面;



4.2.1 库存补充

当用户为管理员时,可以打开添加库存界面,可以根据商品的编号或者条码批量补充商品库存。此页面为弹出页面。



4.2.2 异常处理

当编号或条码在商品库中不存在时,会弹窗提示商品不存在。



当在主页点击返回主页时,会提示当前页面已经是主页。



当用户非管理员审核,点击添加库存和用户管理会提示权限不足。



当用户退出,当部分弹窗窗口为关闭时候,系统会检测用户登录和权限状态,并弹窗提示。



4.3 商品管理模块

商品管理模块,可以浏览商品库中的全部商品信息,并根据价格、库存或者销量的大小进行筛选,也可以根据编号、名称等属性进行模糊查询。此页面可以编辑、删除、添加商品。



4.3.1 筛选与查询

使用下拉框可以选取价格、销量、库存属性,并选取 ≥、=、≤ 比较条件,填入数据,既可以进行数量筛选。



使用下拉框可以选取编号、条码、名称、生产厂家、类别属性,填入数据,既可以进行模糊查询。。



4.3.2 添加

当用户是管理员时,点击添加会弹出添加页面,可以添加新的商品,添加页面会进行格式判断,当条码重复会弹窗提示。



4.3.3 删除

当用户为管理员时,在表格中选取要删除的选项,点击删除按钮即可删除。



4.3.4 编辑模式

当用户是管理员时,点击进入编辑模式按钮会进入编辑模式,此模式下用户可以直接双击某一个单元格进行修改,当格式正确时候点击任意部位将自动保存。再次点击编辑模式,即可退出编辑模式。





4.3.5 异常处理

当用户非管理员但进入添加页面,会提示权限不足。



当添加数据格式不正确(如价格非纯数字等)或条码重复时会弹窗提示条件异常。



当筛选或查询时,填入数据格式不正确(如数量非纯数字等)会弹窗提示筛选出错。



4.4 收银台模块

收银台模块,可以填入商品编号或条码以及数量自动添加到购物车,会自动判断库存,当添加购物车时会自动计算价格,在左边会提供快捷商品条码提示,显示所有的商品简单信息,填入收款金额点击确认会自动计算找零,并同时更新库存数据以及订单库。选中某一行时,可以修改数量或者将其删除。







4.4.1 异常处理

当添加商品数量大于库存时会提示库存不足。



当所填入商品条码或编号不存在时,会提示添加异常。



4.5 销售详情模块

销售详情模块可以查看过往的收银订单详情信息,包括订单编号、订单详情、金额、操作的收银员编号及姓名以及交易详情时间,并可以根据金额、时间或者前天信息进行筛选或查询。



4.5.1 属性与查询

使用下拉框可以选取金额或者时间,并根据 ≥、=、≤ 进行筛选。





使用下拉框可以选取订单编号、订单中包含商品、收银员的编号或者姓名进行模糊查询。



4.5.2 异常处理

当筛选时间时,输入的时间格式不正确时候会弹窗提示筛选出错,并给出时间格式规范。



4.6 用户管理模块

用户管理模块可以显示所有用户信息,并可以在此添加、编辑或者删除用户,也可以根据销售业绩或者属性进行筛选和查询。



4.6.1 添加与删除

添加页面会调用用户注册模块,通过注册来添加页面。



选中某一行后,可以利用删除按钮将其删除。



4.6.2 筛选与查询

利用业绩下拉框可以使用 ≥、=、≤ 条件,进行销售业绩筛选。



利用下拉框可以根据姓名、用户名、权限条件进行模糊查询。



4.6.3 编辑用户

选取某一行后,点击编辑按钮会调用注册界面并传入选取的用户数据,可以在此基础上进行修改。



4.6.4 异常处理

当添加用户时候用户名已经存在会提示用户名重复。



4.7 * 隐藏彩蛋

使用鼠标连续点击主页的标题会弹出关于软件的信息。



五、心得体会

这一次课程设计充分考验了个人的 C#编程能力,是对本学期可视化程序设计所学内容的一次全面检验,在完成过程中,我通过查询资料了解到了许多 C#的便捷性,感受到了 Windows 平台上通过可视化的方式开发应用程序的简洁性,这不得不让人打心底里钦佩当年设计出可视化窗口和.net 组件的前辈们的高瞻远瞩和高明学术。

在本次课程设计中,我使用了诸如用户、商品等自定义对象,以及系统等静态方法类,这也是对面向对象编程能力的一次提升,并且此次作业,我所写的商品管理系统,包含了商品库、用户库、订单库等三大表单,以及商品管理、收银台、订单管理、用户管理等各个分模块,在一定程度上有了一定的实用价值,确实可以在一些小的商店中替代传统的计算器进行收银、商品管理等操作,如果配合扫描枪也许就真的可以成为生产力,因此这一次的课程设计也让我对编程与社会生活有了非常好的联系。

相信有了这一次开发经验,日后可以编写开发出更加具有实用价值,界面更加精美能够带来实际效用的应用软件。

六、参考文献

  • 夏定纯. C#w1 Ch01---概论[DOI]
  • 榴月十三. VS2015 代码自动对齐.CSDN. 2016-1-14
编辑于 2022-02-09 14:57