基于C#的超市收银管理系统

前序

一直在忙学习Qt有关的知识,非常有幸这学期学习了C#。让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了。好多控件的使用方法好类似,尽管平时上课没有怎么认真听过课。可是好多知识还是理解的几乎相同。这一点还是挺高兴的!又到了一学期的期末,凡是编程语言这门课,最后肯定少不了课程设计。想来想去还是用C#实现以下自己以前做过的超市收银管理系统。业务逻辑也不用多想了,直接開始编写代码。

说实话。感觉学校里边包含作业以及各种任务都好应付,要是真正做企业级的项目,那可不是分分钟就能解决的,首先说明一下。这份课设也就用了3到4天时间不到吧。个人感觉还行。主要的进销存功能都实现了,当然。作为课设已经能够了。


在開始之前,我不得吐槽一点。在学校中仅仅要你做的东西略微好看点,老师就果断说你是从网上当的,业界良心啊!记得上学期的数据库课设,我当时做的是酒店管理系统详情可看这个http://download.csdn.net/detail/u013704336/8543019

当时感觉是做到挺好的。不信能够去看看。可最后的成绩……我就无语了,貌似是最低的。我也没有说啥,毕竟成绩着事。一直都不在意的。何必为这一门成绩在意。大学校园的中的成绩不能说明什么。任它去吧,嘿嘿……关键还是你能够做出像样的东西出来!


软件开发需求分析是最重要的。前期的分析大约占60%左右,后期代码编写以及其它占40%,这是我个人+了解到的,有不正确的地方请大家指出。

以下我就当时总结总结,说说一些当时自己的想法。

简单的需求分析

  • 功能模块划分

    超市收银管理系统主要就是进销存功能,作为一次课设大概实现了这三个功能也就能够了。

    假设是商业的那功能可就多了,也就更复杂了。

    以下主要说说这三个模块

    • 进货管理模块

      进货模块无非就是将所进货的商品信息进行保存。至于怎么保存,这就得进行细分了。一般进货的时候都会有一个进货流水号,以进行唯一区分,再有什么呢?肯定有商品的一些属性了,像什么单品数量、单品单位价格、生产日期、进货时间。总进货价格、数量等等一些信息。具体信息见以下的数据表的设计。

    • 前台销售

      销售模块中。输入商品的条码检索出相应的商品信息。并显示出它的价格,数量、规格等一些信息,。若没有该商品则进行提醒,购买成后也要对该商品在库存中的数量进行相应的更新操作,以免数据不正确应。这是非常关键的一步!

    • 库存管理

      仓库管理模块中,主要是对仓库中商品的增、删、改、查操作。另外还用该有库存提醒功能,某个商品的数量低于设定值时,可进行及时提醒,防止库存为零。

  • 实体分析

    实体分析中主要是对各个对象进行一个建模的过程。啥话都不说了。直接上图即可了(E-R图)。

    相信学过数据库的都知道吧!

  • 数据库的设计

    因为本次编程语言是C#。因此选用sqlserver应该最合适的了,在兼容性上。自己家的东西应该更能非常好在一起吧!

    看了下自己电脑非常久以前就装个sqlserver2000。所以就用2000吧。免的下载了,预计非常多人要说2000已经落伍了吧,我想也是的。都过去这么多年了,只是软件一般都是向下兼容。所以应该没有多大的问题。

    我是直接写好脚本。然后倒入后自己主动生成的,没有手动进行创建,感觉那样好麻烦,也非常不方便,好多同学反而认为用鼠标点击方便,事实上那样更不方便,在后期编写代码过程中就会体会到这一点,我认为这是一种好习惯!

  • 数据表的创建

    仅仅要各个实体分析清楚了,建表那仅仅是分分钟的事情!当然。我这里所说的表。可远远不止上面提到的,还有好多的没有说,就像简单的用户权限管理。我设计了5张表,实用户信息表(这个表还能够分成自然信息表和账号信息表)、权限表。角色表,权限角色表,用户角色表。

    关于权限管理分析,我是參考别人的,能够搜到的。这是我从他哪儿得到的关系图。再次说明。这是參考别人的,在这里多谢了!

框架设计

  • 主框架设计

    啥都不用说,直接上图,看的非常清楚。



* 各个模块设计

- 前台销售

- 採购进货

- 库存管理

- 会员管理

- 销售统计

- 员工信息管理

代码编写

好多人认为的编写代码好难啊!

这类人是属于长期不写代码的人,我身边好多人就死这种,正是因为没有写过几行代码,才认为难。如今的大学生好多都成了这样。还是学计算机的,哎……别说让他们写代码了,非常多时候就连装个主要的软件也不会,找别人装,我就像说。你不会,百度应该会啊,你不会百度?每一个人都有第一次。第一次装的时候都基本不会的,百度一下就会了么。连基本学习能力都丧失了!假设大学生连主要的自学能力都没有,那以后……我不敢肯定说,只是也好不到那里去。有点扯远了,代码编写应该输入最低层的劳动了。那些说编写代码难的。你就不知道需求分析阶段是多么的难吗?哦。我忘记了,他们根本不懂什么是需求分析……原谅他们了。


本次代码编写对我来说还是非常easy的,尽管接触时间不长,可是有一种似曾相识的感觉,可能是因为自己之前学过Qt的缘故吧。总感觉好多控件设计起来特别给力,触类旁通,这一点挺高兴的!


C#中的托付和事件机制非常重要。我认为和Qt中的信号与槽有一拼,都是精华啊。只是自己对于托付和事件属于会用阶段。还没有到了“懂”的阶段,继续加油吧。少年。

最后说明一点。源码我完了肯定会上传的,我的意愿就是开源,自己也从别人开源的代码中学到非常多的思路,因此我会坚持下去。


  软件编写过程中使用了一款皮肤插件“IrisSkin2.dll”,有好多样式能够进行选择,免去了美化工作。可是这个插件有个缺点,好像是仅仅能给予.NET FrameWork2.0,并且会出现闪烁。要想自己实现还是靠WPF技术,貌似有点难!!


技术在于交流、分享……
博客地址:http://blog.csdn.net/u013704336\
Email:creazylq@163.com
QQ:936563422
转载请注明出处:多谢!

基于C#的超市收银管理系统的更多相关文章

  1. C++ 大作业 超市收银系统

    #include<iostream> #include<fstream> #include<string> #include<iomanip> #inc ...

  2. 互联网+下PDA移动智能手持POS超市收银开单软件

    是一套专为中小超市.专卖店设计的收银管理软件,广泛应用于中小超市(百货商店).化妆品店.婴幼儿用品店.玩具店.保健品店.茶叶店. 电器.文具图书.手机通讯器材店等行业的中小型店面店铺.该系统具有完善的 ...

  3. python面向过程编程小程序- 模拟超市收银系统

    6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...

  4. Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构

    Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构 1. 54.order_info  订单 数据结构1 2. Ecshop 的订单api1 2.1. 生成订单 code b ...

  5. Atitit.收银系统模块架构attilax 总结

    Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2.  ...

  6. PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机

    在零售方面也有很好的应用.如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求. PDA收银系统是一款多功能可以取代专业收银 ...

  7. 湖南附中模拟day1 收银员

    4.1 题意描述花花家的超市是 24 小时营业的,现在需要招聘收银员.超市每个小时都需要不同数量的收银员,用 ai 表示一天中 i 点到 i + 1 点这一小时内需要的收银员数量,特别地 a23 表示 ...

  8. 浩瀚移动POS收银开单扫描解决方案PDA仓储系统,无线批发,移动批发,无线POS,无线销售APP-车销管理PDA

    适用范围 各种业态的批发商铺.批发市场.订货会.展销会.配送中心仓库…… 产品简介 随着移动技术与智能PDA设备的迅猛发展,中国已经跨步进入移动信息化社会.移动商务是移动信息社会的重要载体与形式,它开 ...

  9. 移动零售批发行业新的技术特色-智能PDA手持移动扫描打印销售开单收银仪!!

    提起便利店或者超市,大家的第一印象一定是前台那个笨重的POS机和站在POS机后的收银员.传统的零售店中,笨重的POS机随处可见. 变革前,零售盘点多烦忧 一个顾客要结账,就需要通过POS机.小票打印机 ...

随机推荐

  1. 网络编程-tcp

    一.简单的demo (1)客户端 package com.songyan.tcp; import java.io.IOException; import java.io.InputStream; im ...

  2. iOS开发——检测屏幕旋转

    步骤一.注册通知 1: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrien ...

  3. 实现tomcat与IIS共用80端口

    一.80端口被system占用的问题 目前生产环境的需要两种方式网站发布: [1].使用IIS发布.net开发的网站: [2].使用tomcat发布java开发的网站: 启动tomcat的时候发现无法 ...

  4. oracle表空间操作语句

    1.查看所有表空间及表空间大小: select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by ...

  5. JET 调用后端Rest Service

    调用Rest Service可以基于两种方式: 一种是oj.Collection.extend 一种是$.ajax CORS问题 但在调用之前,首先需要解决rest service的CORS问题.(跨 ...

  6. ubuntu ufw防火墙简易教程(转)

    ufw是一个主机端的iptables类防火墙配置工具,比较容易上手.一般桌面应用使用ufw已经可以满足要求了. 安装方法 sudo apt-get install ufw 当然,这是有图形界面的(比较 ...

  7. Snapdragon profiler连android手机

    oppo11 晓龙660 找一根好用的usb数据线 去设置->开发者选项->usb调试 打开(十分钟会自动关,注意再开开) 去windows cmd ===adb devices 会列出这 ...

  8. Hadoop Trash回收站使用指南

    转载:https://blog.csdn.net/sunnyyoona/article/details/78869778 我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站: sudo ...

  9. 【OpenStack 虚拟机初始化user-data & Cloud-init】

    示例: import httplib import json import base64 tenant_id='xxx' token='xxx' compute_host="xxx" ...

  10. Spark(十) -- Spark Streaming API编程

    本文测试的Spark版本是1.3.1 Spark Streaming编程模型: 第一步: 需要一个StreamingContext对象,该对象是Spark Streaming操作的入口 ,而构建一个S ...