基于C#和Sql Server 2008实现的订单生成系统
第一章 引言
1.1 设计开发的意义
随着公司规模的不断扩大,客户订单数量也相应的增加,有关货物的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致货物订单管理上的混乱,人力与物力过多浪费,从而使相关部门部的客户订单方面负担过重,影响整个客户订单的运作和控制管理, 因此,必须制定一套合理、有效,规范和实用的客户订单生成系统,对货物订单进行集中统一的管理。 另一方面,IT 产业和 Internet 获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。 提高客户订单相关工作效率,作到信息的规范管理,科学统计和快速查询,让客户订单更好的为公司,企业服务。
而且,世界经济发展已进入一个激烈竞争的年代,可以说,谁先获得信息,谁就有可能抓住发展经济的机遇。 同样,谁能很好地管理和利用信息,谁就有可能占领市场,获得效益。国内外大量事实已说明:在目前这个激烈竞争的市场经济中,谁的信息管理现代化水平高,谁重视信息资源的开发和利用,谁就能抓住机遇,在竞争中取胜。目前国内企业在管理订单方面还处在比较低的水平。大多数企业在购进货物后,只是将订单用手写式的记录和简便的管理。进入信息社会后,随着企业订单的增多,带的麻烦也逐渐增多,管理方面也得不到很好的解决方法,使得大量的数据丢失,使企业造成了很大的损失。我通过用c#和sql server编写企业订单生成系统,利用系统分析和设计原理,采用面向对象的编程方法,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了企业订单管理的自动化和信息化.
1.2 任务及目标
- 订单生成系统对客户信息的集中管理,防止客户信息遗失,实现客户的登录、注册功能
- 订单生成系统对商品信息的集中管理,防止商品信息遗失,实现对商品列表的增删改查操作
- 订单生成系统根据客户购买和取消购买商品的种类和数量,自动生成订单信息,并且修改商品库存信息
- 订单生成系统对员工信息的集中管理,防止员工信息遗失,实现对员工信息的增删改查
1.3 设计开发及运行的软硬件环境
- 采用了Visual Studio 2015 开发设计运行界面
- 采用了sql server 2008 设计数据库
第二章 系统分析与设计
2.1 系统需求分析
2.1.1 需求分析
在市场经济中,销售是企业动作的重要环节,为了更好地推动销售,不少企业建立分公司或代理制,通过公司或代理把产品推向最终用户。这些分公司或代理商大多分布在全国各地,甚至是在国外,远距离频繁的业务信息交流构成了这些企业业务活动的主要特点。
这些信息传递和管理的方式不仅效率低,可靠性、安全性和保密性都无法满足需求,而且数据统计时间严重滞后,往往是当领导了解到企业的"产、销、存"环节出现问题时,就已经远离了问题出现的时间和地点。即便是没有分公司的企业,使用传统的手工方式管理也存在同样的问题。通过订单生成与管理系统,及时通过网络把决策信息传递给相关决策人,从而可以及时发现问题、解决问题,从而更好地把握机会,提高自己在市场竞争中的地位,增强企业的生命力。设计订单生成和管理系统正是为了适应这种形势,它已经刻不容缓了。
本系统为订单生成系统,能够实现订单录入、确认、拣货、发货、库存查询、订单查询等功能。本系统分为主数据、订单管理、商品管理和查询统计四个部分。 主数据部分主要用于维护库存、产品、客户和员工的基本信息,包括客户信息表、商品信息表、订单信息表、员工信息表等模板。用户在开始使用系统之前,需要将主数据录入或者导入系统。
2.1.2 数据流图
用户注册功能
订单信息生成功能
2.1.3 数据字典
- 数据项名称:用户名
- 别名: uname
- 类型长度:nchar(10)
- 描述:客户的名称
- 数据项名称:用户密码
- 别名: password
- 类型长度:nchar(10)
- 描述:客户登录注册的密码
- 数据项名称:用户联系方式
- 别名: utel
- 类型长度:bigint
- 描述:客户的联系方式
- 数据项名称:用户地址
- 别名: uaddr
- 类型长度:nchar(16)
- 描述:客户的住址
- 数据项名称:商品名称
- 别名: hname
- 类型长度:nchar(10)
- 描述:商品的名称
- 数据项名称:商品编号
- 别名: hid
- 类型长度:int
- 描述:商品的唯一编号
- 数据项名称:商品库存
- 别名: kucun
- 类型长度:int
- 描述:商品的库存
- 数据项名称:商品单价
- 别名: cost
- 类型长度:money
- 描述:商品的单价
- 数据项名称:员工名
- 别名: yname
- 类型长度:nchar(10)
- 描述:员工的名称
- 数据项名称:员工年龄
- 别名: age
- 类型长度:int
- 描述:员工的年龄
- 数据项名称:员工职位
- 别名: job
- 类型长度:nchar(10)
- 描述:员工的职位
- 数据项名称:员工联系方式
- 别名: ytel
- 类型长度:bigint
- 描述:员工的联系方式
- 数据项名称:管理员
- 别名:guanliyuan
- 类型长度:nchar(10)
- 描述:拥有最高权限的系统管理员
- 数据项名称:管理员密码
- 别名: gmima
- 类型长度:nchar(16)
- 描述:管理员密码
- 数据项名称:购买数量
- 别名: sum
- 类型长度:int
- 描述:订单里购买某件商品的数量
2.2 数据库概念结构设计
E-R图
2.3 数据结构
关系模式
yonghuxinxi(uname,password,utel,uaddr)
属性名 | 类型 | 完整性约束 |
---|---|---|
uname | nchar(10) | 实体完整性、自定义完整性 |
password | nchar(16) | 自定义完整性 |
utel | bigint | 自定义完整性 |
uaddr | nchar(10) | 自定义完整性 |
yuangongxinxi(yname,age,job,ytel,yaddr)
属性名 | 类型 | 完整性约束 |
---|---|---|
yname | nchar(10) | 实体完整性、自定义完整性 |
age | int | 自定义完整性 |
job | nchar(10) | 自定义完整性 |
ytel | bigint | 自定义完整性 |
yaddr | nchar(10) | 自定义完整性 |
Guanliyuan(guanliyuan,gmima)
属性名 | 类型 | 完整性约束 |
---|---|---|
guanliyuan | nchar(10) | 实体完整性、自定义完整性 |
gmima | nchar(16) | 自定义完整性 |
Huowuxinxi(hname,hid,kucun,post)
属性名 | 类型 | 完整性约束 |
---|---|---|
hname | nchar(10) | 实体完整性、自定义完整性 |
hid | int | 自定义完整性 |
kucun | int | 自定义完整性 |
post | money | 自定义完整性 |
dingdanxinxi(uname,hname,num,yname)
属性名 | 类型 | 完整性约束 |
---|---|---|
uname | nchar(10) | 参照完整性、自定义完整性 |
hname | nchar(10) | 参照完整性、自定义完整性 |
num | int | 自定义完整性 |
yname | nchar(10) | 参照完整性、自定义完整性 |
2.4 数据库创建
数据库dingdanchuli
用户信息表
商品信息表
员工信息表
管理员信息表
订单信息表
第三章 系统开发及实现
3.1 登录界面
登录界面实现了用户登录功能
3.2 用户注册界面
用户注册界面实现了用户注册功能
3.3 购买界面
购买界面实现了用户查看和购买商品,查看、删除及修改订单的功能
3.4 用户信息和商品信息界面
此界面实现了管理员增删改查用户信息和商品信息的功能
3.5 管理员登录界面
管理员登录
3.6 员工信息和订单信息界面
此界面实现了管理员增删改查员工信息和订单信息的功能
第四章 总结
在本次实验中,通过对订单生成系统的实现,我基本上掌握了如何搭建一个可以使用的数据库、VS链接sql数据库的方法步骤、通过代码对数据库表里的某项内容进行提取的知识、运用VS搭建界面的知识等等。通过这个系统,我把老师上课讲的内容连贯起来使用在这个项目中,实现了对订单的基本操作,如:生成订单、查询订单、修改订单、删除订单等。
刚开始做该项目的时候,由于我基本上还什么也不懂,所以,在最初,我花费了很多时间在考虑如何做好这个订单生成系统上,当我的设计基本上出来后,我有规划开始实现这个项目,比如,先建数据库,再根据数据库和设计做界面。在设计的过程中,我也遇到很多问题,比如,连接数据库时出错,前台页面显示的错乱等这些错误接踵而来,但是,当遇到错误后,我首先是查看错误原因,根据自己的想法尝试解决这个问题,但是在不懂解决的时候,我才去问别人以及查阅资料,最后使这些问题得以解决。
这次的课程设计可以说是为毕业设计做的一个预演,真的做起来困难重重,深刻体会到做一个软件,里面需要的很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。
从需求分析阶段不断地搜索资料,想充分了解自己所做的课题在客户或者公司中的需求,由于《软件工程》这门课大二时学的不深,画数据流图等等软件设计流程做起来很生疏,翻阅课本,和软件工程课老师上课的讲解,总算整了一个像样点的需求分析,但是也不知道是不是正确,根据数据流图,不断修改需求,由于这个课程设计没有连接外部设备比如打印机,网络等,所以做的都是在实践阶段,根据设计的大概模式展开一步步的模块构造。经过不断地测试,不断地改进,其中还是发下了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,怎样从数据库中将数据提取出来放到一个文本框或者标签内,这些东西是组成界面的东西,虽然小,但是可以体现整个软件的水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。