基于C#的超市收银管理系统
基于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#的超市收银管理系统的更多相关文章
- C++ 大作业 超市收银系统
#include<iostream> #include<fstream> #include<string> #include<iomanip> #inc ...
- 互联网+下PDA移动智能手持POS超市收银开单软件
是一套专为中小超市.专卖店设计的收银管理软件,广泛应用于中小超市(百货商店).化妆品店.婴幼儿用品店.玩具店.保健品店.茶叶店. 电器.文具图书.手机通讯器材店等行业的中小型店面店铺.该系统具有完善的 ...
- python面向过程编程小程序- 模拟超市收银系统
6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...
- Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构
Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构 1. 54.order_info 订单 数据结构1 2. Ecshop 的订单api1 2.1. 生成订单 code b ...
- Atitit.收银系统模块架构attilax 总结
Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2. ...
- PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
在零售方面也有很好的应用.如在一些高端品牌零售店,营业员可以随身导购,一站式完成了商品销售和收银,很是受消费者追捧,符合了企业对客户体验以及行业领先的追求. PDA收银系统是一款多功能可以取代专业收银 ...
- 湖南附中模拟day1 收银员
4.1 题意描述花花家的超市是 24 小时营业的,现在需要招聘收银员.超市每个小时都需要不同数量的收银员,用 ai 表示一天中 i 点到 i + 1 点这一小时内需要的收银员数量,特别地 a23 表示 ...
- 浩瀚移动POS收银开单扫描解决方案PDA仓储系统,无线批发,移动批发,无线POS,无线销售APP-车销管理PDA
适用范围 各种业态的批发商铺.批发市场.订货会.展销会.配送中心仓库…… 产品简介 随着移动技术与智能PDA设备的迅猛发展,中国已经跨步进入移动信息化社会.移动商务是移动信息社会的重要载体与形式,它开 ...
- 移动零售批发行业新的技术特色-智能PDA手持移动扫描打印销售开单收银仪!!
提起便利店或者超市,大家的第一印象一定是前台那个笨重的POS机和站在POS机后的收银员.传统的零售店中,笨重的POS机随处可见. 变革前,零售盘点多烦忧 一个顾客要结账,就需要通过POS机.小票打印机 ...
随机推荐
- 网络编程-tcp
一.简单的demo (1)客户端 package com.songyan.tcp; import java.io.IOException; import java.io.InputStream; im ...
- iOS开发——检测屏幕旋转
步骤一.注册通知 1: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrien ...
- 实现tomcat与IIS共用80端口
一.80端口被system占用的问题 目前生产环境的需要两种方式网站发布: [1].使用IIS发布.net开发的网站: [2].使用tomcat发布java开发的网站: 启动tomcat的时候发现无法 ...
- oracle表空间操作语句
1.查看所有表空间及表空间大小: select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by ...
- JET 调用后端Rest Service
调用Rest Service可以基于两种方式: 一种是oj.Collection.extend 一种是$.ajax CORS问题 但在调用之前,首先需要解决rest service的CORS问题.(跨 ...
- ubuntu ufw防火墙简易教程(转)
ufw是一个主机端的iptables类防火墙配置工具,比较容易上手.一般桌面应用使用ufw已经可以满足要求了. 安装方法 sudo apt-get install ufw 当然,这是有图形界面的(比较 ...
- Snapdragon profiler连android手机
oppo11 晓龙660 找一根好用的usb数据线 去设置->开发者选项->usb调试 打开(十分钟会自动关,注意再开开) 去windows cmd ===adb devices 会列出这 ...
- Hadoop Trash回收站使用指南
转载:https://blog.csdn.net/sunnyyoona/article/details/78869778 我们在删除一个文件时,遇到如下问题,提示我们不能删除文件放回回收站: sudo ...
- 【OpenStack 虚拟机初始化user-data & Cloud-init】
示例: import httplib import json import base64 tenant_id='xxx' token='xxx' compute_host="xxx" ...
- Spark(十) -- Spark Streaming API编程
本文测试的Spark版本是1.3.1 Spark Streaming编程模型: 第一步: 需要一个StreamingContext对象,该对象是Spark Streaming操作的入口 ,而构建一个S ...