基于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
转载请注明出处:多谢!