进销存管理系统课程设计报告文档格式.docx
《进销存管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《进销存管理系统课程设计报告文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
Ø
系统需求分析说明……………………………………………...1
系统功能模块划分……………………………………………..1
数据库设计……………………………………………………..2
●数据库需求分析…………………………………………………………………2
数据流图……………………………………………………………………2
数据字典……………………………………………………………………2
●数据库概念结构设计……………………………………………………………3
实体联系……………………………………………………………………3
SQLServer数据库中各个表的关系………………………………………3
●数据库逻辑结构设计……………………………………………………………4
表的设计……………………………………………………………………4
●物理设计及实现…………………………………………………………………5
索引的建立概述……………………………………………………………5
触发器的设计概述………………………………………………………..5
视图的建立概述…………………………………………………………..6
存储过程的建立概述………………………………………………………6
程序设计与实现………………………………………………...6
●用户管理模块………………………………………………………………6
●供货商管理模块……………………………………………………………7
●商品类型管理模块…………………………………………………………7
●商品管理模块………………………………………………………………8
●进货管理模块………………………………………………………………8
●销售管理模块………………………………………………………………9
●报损管理模块………………………………………………………………9
●用户登陆模块………………………………………………………………9
总结…………………………………………………………….10
一、系统需求分析说明
商品销售管理系统主要是为了实现对商品的进货,报损以及销售管理,具体而言,商品销售管理系统需要实现以下的需求:
能够对商店所拥有的各种商品的基础信息进行维护和管理。
商品的基本信息包括:
商品编号、商品名称、计量单位、、现有数量等。
系统需要能够对商品信息进行添加、修改和删除,也可以按照一定的条件来进行查询,而且还需要随时掌握现有商品的数量。
跟踪各种商品的进货信息,商品的进货信息包括:
顺序号、商品名称、进货数量、进货价格等。
系统需要能够对进货信息进行添加、修改、删除和查询。
跟踪各种商品的销售信息,商品的销售信息包括:
顺序号、商品名称、销售数量、售出价格。
系统需要对销售信息进行添加、修改和删除,也可按照一定的条件进行查询,在添加销售信息时,不允许无效信息(如销售大于库存)的插入。
跟踪商品的报损信息,商品的报损信息包括进货编号、商品名称、报损数量、报损人。
系统需要对报损信息进行添加、修改、删除和删除,也可按照一定的条件进行查询,不允许将无效信息(如报损总和大于进货数量)的插入。
二、系统功能模块划分
1
三、数据库设计
1.数据库需求分析
数据流图
针对商店业务的一般需求,通过对商品管理工作过程的内容和数据流程分析,设计得到如下的数据项和数据结构:
■用户信息,包括的数据项有:
用户ID、用户名、密码、用户类别、真实姓名、上次登录时间
■商品类别信息:
包括的数据项有:
类别编号、类别名称,备注。
■供应商信息:
供应商号、供应商名、联系方式、介绍、备注。
■商品信息:
商品编号、商品名称、计量单位、类别、数量、供应商编号、商品介绍、登记人、备注
■进货信息:
进货号、商品号、进货数量、进货价格、送货员、办理员、登记时间、登记人、备注。
■销售信息:
销售号、商品号、销售数量、销售价格、登记时间、登记人、备注。
■报损信息:
报损号、报损商品的进货号、报损数量、报损人、报损原因、报损时间、登记人。
2
2.数据库概念结构设计
实体间联系:
m
n
供应商
供应
商品
销售
客户
进价
单价
送货员
进货量
进货号
工作人员
报损
办理员
数量
原因
销售量
SQLServer数据库中各个表的关系:
3
3、数据库逻辑结构设计:
根据上述数据库的需求分析和概念结构设计,设计了名称为BUYSALESTORAGE的数据库。
数据库BUYSALESTORAGE由下面多个表格组成,各个表格的设计结果如下表格所示:
Buy表
Goods表
GoodsType
Sale
4
Spoilage
Supplier
UserInfo
4.物理设计及实现
索引的建立
由于经常要按商品名称查询商品信息,在Goods表、Buy表、Sale表、Spoilage表的GoodsName属性建立索引,以方便查询。
触发器的建立
访问数据库时,需要调用相应表的存储过程以及设计相应的触发器,触发器的作用主要是用于维护数据的准确性及一致性。
5
Sale表上的Update触发器实现当销售数量修改后大于库存时,事务回滚,不将操作插入Sale表,否则更新Goods表和Sale表。
Sale表上的AddNew触发器实现当销售数量大于库存时,事务回滚,不将操作插入Sale表,否则更新Goods表和Sale表。
Sale表上的Delete触发器实现当删除销售时更新Goods表和Sale表。
Buy表上的AddNew触发器实现当插入进货时,更新Goods表和Buy表。
Buy表上的Delete触发器实现当进货被删除时,更新Goods表和Buy表。
Buy表上的Update触发器实现当进货数量修改后小于累计报损数量时,事务回滚,不将操作插入Buy表,否则更新Goods表和Buy表。
Spoilage表上的AddNew触发器实现当报损数量大于此次进货数量时,事务回滚,不将操作插入Spoilage表,否则更新Goods表和Sale表。
Spoilage表上的Delete触发器实现当删除报损时更新Goods表和Spoilage表。
Spoilage表上的Update触发器实现当修改后的报损数量大于库存时,事务回滚,不将操作插入Spoilage表,否则更新Goods表和Spoilage表。
视图的建立:
分别建立库存、进货、销售、报损、供应商、产品类型、用户的视图view_Goods、view_Buy、view_Sale、view_Spoilage、view_Supplier、view_GoodsType、view_User
存储过程的建立:
为提高系统运行效率,建立了多个存储过程。
如ExistsByID判断ID是否已经存在与某表中,在多个存储过程中都用到了ExistsByID来判断操作是否应该执行,以维护系统的操作。
四、程序设计与实现
用户管理模块:
用clsUser和clsUsers两个类来实现,主要功能是
●添加用户信息
●修改用户信息
●删除用户信息
●查找用户信息
●其他与用户相关的常用操作
用户信息类clsUser用来处理单个用户的信息,实现用户操作的基本功能,如添加、修改、删除等。
AddNew方法添加新用户,调用UserAddNew存储过程;
Update方法更新用户信息,调用UserUpdate存储过程。
Delete方法删除用户信息,调用UserDelete存储过程。
IsValidUser方法验证用户名和密码来获取合法用户信息,调用IsValidUser存储过程
用户信息集合类clsUsers用来处理多个用户的信息,其最小单元clsUser,它完成与一组用户信息相关的操作,比如查找。
Query方法,单条件查询用户信息。
界面如下:
6
供货商管理模块:
包括操作类clsSupplier和集合类clsSuppliers,实现的功能有添加、更新、删除、查询和其他与供货商信息集合有关的操作。
clsSupplier类中也有AddNew、Update和Delete方法,调用相应存储过程。
clsSuppliers类用来查询并以集合的形式返回供货商。
商品类型管理模块:
包括clsGoodsType类(有AddNew、Update和Delete方法,调用相应存储过程)和集合类clsGoodsTypes,实现的功能有添加、更新、删除、查询商品类型和其他与供货类型信息集合有关的操作。
界面如下
7
商品管理模块:
包括操作类clsGoods(有AddNew、Update和Delete方法,调用相应存储过程)和集合类clsGoodses,实现的功能有添加、更新、删除、查询和其他与商品信息集合有关的操作。
进货管理模块:
包括操作类clsBuy(有AddNew、Update和Delete方法,调用相应存储过程)和集合类clsBuys,实现的功能有:
●添加进货信息
●更新进货信息
●删除进货信息
●查询进货信息
●统计进货信息
●其他与进货信息集合有关的操作
8
销售管理模块:
包括操作类clsSale(有AddNew、Update和Delete方法,调用相应存储过程)和集合类clsSales,实现的功能有添加、更新、删除、查询和其他与销售信息集合有关的操作。
报损管理模块:
包括操作类clsSpoilage(有AddNew、Update和Delete方法,调用相应存储过程)和集合类clsSpoilages,实现的功能有添加、更新、删除、查询、统计和其他与报损信息集合有关的操作。
用户登陆模块:
9
五、总结
此进销存系统主要用于商店、超市等销售单位的商品管理。
程序采用三层体系结构来开发,程序的逻辑结构分为用户界面层、业务处理逻辑层及数据存储层,使系统安全性、可维护性、可重用性和可扩展性大大提高。
通过这次课程设计,又学会了不少东西,对数据库的设计,以及如何实现有了进一步的认识,特别是对存储过程的使用,它的设计体现出了程序和数据库的链接,及具体程序如何将操作反应到数据库。
课本上讲的毕竟比较浅,用法也比较简单,通过这次课程设计,了解了存储过程中的另外一些建立规则。
在数据库的建立过程中,对数据库的优化、完整性、一致性等有了更深的认识,熟悉了数据库建立的一般过程和方法。
对于触发器,了解了建立的语法要求及所代表的意思,以及在维护数据库数据一致性方面的重要作用。
在存储过程和触发器建立的过程中都用到了事务,加深了对事务的认识。
视图是从一个或几个基本表(或视图)导出的表,其数据随基表中数据的变化而变化,通过它可以看到自己感兴趣的数据。
由于准备考研,时间比较紧,程序的设计还有许多不足之处,系统功能还不够完善,查询模块建立的较简单,权限设置还不完整,数据库的设计也比较简单,但确实学到了不少东西,为毕业设计及以后设计程序打下了一定的基础。
附录:
参考书目
VisualBasic数据库开发实例精粹(第二版,电子工业出版社)
VisualBasic进销存系统开发实例导航(人民邮电出版社)
SQLServer教程(清华大学出版社)
10