版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长治学院课程设计报告 课程名称: 数据库原理课程设计设计题目: 进销存管理系统 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 第一组 学生姓名: 韩伟伟 学 号: 08407106 起止日期: 2011年6月7日 2011年6月22日 指导教师: 马桂芳2 目 录一、 系统规划 . 3二、 总体设计 . 42.1系统功能简述. 5三、数据库原理 . 53.1 系统原理概述 . 53.2逻辑结构设计. 6四、模块划分(系统管理模块实现 .13 4.1 系统登录界面及代码 . 134.2系统管理模块界面及代码 . . 13五、系统的优点及不足之处 .14 六、总结和致谢 .15 七、参
2、考文献 . 153进销存管理系统系统背景说明待开发的软件系统的名称:进销存管理系统软件项目的用途:用于数据库课程设计及商业用途 软件项目的范围:系统涉及企业的库存,销售与进货提供了管理 功能,为库存,销售,进货等管理数据提供了分析功能小组成员成员:韩伟伟,令狐岩,李江民,杨捷指导老师:马桂芳随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,因此企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。一、 系统规划1.1 可行性分析经济上可行性分析现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为企业的工作效率带来了一个质的飞跃,
3、为此主要表现有以下几个方面: 第一,本系统的运行可以代替人工进行许多繁杂的劳动; 第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高企业的工作效率;第四,本系统可以使敏感文档更加安全,等等。本产品的开发所需的设备在现有条件下,只需要少量的投入资金就可以实现。因此在经济上是可行的。技术上可行性分析a ) 软件可行性PowerBuilder 具有丰富的数据库功能,可以直接建立和编辑数据库,使用结构化查询语言直接访问SQL Sever 上的数据库,并提供简单的面向对象的库操作命令、多用户数据库的加锁机制和网络数据库的编程技术。 SQL Sever2000是由微软公司推出的,能提供超
4、大型系统所需的数据库4 服务,并对数据库提供全面的保护,具有防止问题发生的安全措施,他是一个采用SQL 语言的关系型数据库管理系统。作为客户机/服务器的后端数据库,他是所有数据的汇总和管理中心。b ) 硬件可行性CPU:奔腾三代以上。OS (操作系统):Windows2000/windows98以上。内存:64MB 以上。硬盘:30G 以上。本系统的开发利用Microsoft SQL Server2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。使用PowerBuilder 作为系统开发的开发环境,此开发工具开发数据库管理系统,采用面向对象的方式,方便、简
5、捷、功能强大。管理上可行性分析课设指导老师给与了精心的讲解和大力的支持。综上所述,系统在技术上、经济上、管理上都是可行的。二、 总体设计 5 2.1系统功能简述根据生活经验,我们开发该系统主要是为了实现:方便的查询信息,简单准确的进行插入和删除等操作。所以在该系统中,我们主要实现了它的以上几个功能:查询功能是在查询客户消费、购物情况等信息,是提供给管理者参考的;插入、删除和保存功能是在客户信息表和购物信息表以及库存信息表中得到实现。三、数据库原理3.1 系统原理概述管理信息系统的开发是一个复杂的系统工程,它涉及到计算机的处理技术、系统理论、组织结构、管理功能、管理知识等各方面的问题,每一种开发
6、方法都要遵循相应的开发策略。数据库由DBMS (数据库管理系统)处理,DBMS 则由专业开发人员和用户通过应用程序直接或间接的使用。数据库管理系统是指数据库系统中管理数据的软件系统。它是数据库系统的核心组成部分。对数据库的一切操作,包括定义,更新及各种控制,都是通过它实现的。它总是基于某种数据模型,可以把DBMS 看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS 可以分成层次型、关系型、面向对象型等。 管理信息系统的开发是一个复杂的系统工程,它涉及到计算机的处理技术、 表一 商品信息表 表五 商品库存信息表 -1创建库存视图if exists (select 1 fro
7、m sysobjects where name = 'view_storage_product' drop view view_storage_product gocreate view view_storage_product as select a.*,b.StorageAddress,b.StorageNumber from ProductInfo a inner join StorageInfo b on a.ProductID = b.ProductID go-查看库存视图select * from view_storage_product -2创建订单信息视图if
8、exists (select * from sysobjects where name = 'view_CustomerInfo_OrderInfo_ProductInfo' drop view view_CustomerInfo_OrderInfo_ProductInfo gocreate view view_CustomerInfo_OrderInfo_ProductInfo as select CustomerName,ProductName,OrderTime,OrderNumber, RequireDate,OrderEmployee,IsConsignment fr
9、om CustomerInfo a inner join OrderInfo b on a.CustomerID = b.CustomerID inner join ProductInfo c on b.ProductID = c.ProductID goselect * from view_CustomerInfo_OrderInfo_ProductInfo -3. 创建添加客户信息的存储过程if exists (select 1 from sysobjects where name = 'proc_InsertCustomerInfo' drop proc proc_Ins
10、ertCustomerInfo gocreate procedure proc_InsertCustomerInfoCustomerName nvarchar(20,CustomerAddress nvarchar(50,CustomerPhone nvarchar(11, Taxno nvarchar(10,Repute nvarchar(10,Country nvarchar(10 ='中国',Province nvarchar(10 as begin insert into CustomerInfovalues(CustomerName,CustomerAddress,C
11、ustomerPhone,Taxno,Repute,Country,Province end go-调用存储过程exec proc_InsertCustomerInfo '胡雷松',' 湖北神农架','622512','622512',' 优秀',default,' 河南' select * from CustomerInfo-4. 创建添加产品信息存储过程(需验证产品的价格必须大于等于0 if exists (select 1 from sysobjects where name = 'p
12、roc_InsertProductInfo' drop procedure proc_InsertProductInfo gocreate proc proc_InsertProductInfoComponyID int,ProductName nvarchar(20,ProductType nvarchar(20,NumberPerMonth int ,Price money as begin if(Price>=0 begin insert into ProductInfovalues(ComponyID,ProductName,ProductType,NumberPerMo
13、nth,Price end else begin print '产品价格必须大于0!' end end go-调用存储过程exec proc_InsertProductInfo NULL,'C#入门经典',' 书籍',3000,65 select * from ProductInfo-5. 创建进货时库存信息变化的触发器-如果没有该产品的信息,则将数据添加到库存信息表中 -如果仓库中已经存在该产品,则增加该产品的库存数量if exists (select 1 from sysobjects where name = 'trg_StockI
14、nfo_Insert' drop trigger trg_StockInfo_Insert gocreate trigger trg_StockInfo_Insert on StockInfo for insert as declare ProductID int,StockNumber int select ProductID = ProductID from inserted select StockNumber = StockNumber from inserted where ProductID = ProductID if (ProductID not in (select
15、ProductID from StorageInfo begin insert into StorageInfo values(ProductID,'东北仓库',StockNumber end else begin update StorageInfo set StorageNumber = StorageNumber + StockNumber where ProductID = ProductID end go-测试触发器insert into StockInfo values(4,350,NULL,NULL,NULL,getdate(,'张三'select
16、 * from StorageInfoselect * from StockInfo-6. 创建添加订单信息存储过程-订单时间默认为系统单前时间,验证订单数量必须大于0验证产品需要时间必须大于系统当前时间1月以上,根据库存信息与产品生产能力判断,是否能在产品需要时间之前完成该产品的生产,验证订单业务员长度必须大于2,默认是否发货为“否” if exists (select * from sysobjects where name = 'proc_InsertOrderInfo'drop proc proc_InsertOrderInfogocreate proc proc_In
17、sertOrderInfoProductID int,OrderNumber int,OrderEmployee nvarchar(20,CustomerID int,Price money,Ordersum money,RequireDate datetime,IsConsignment nvarchar(2asbegindeclare OrderTime char(20select ProductID = ProductID from insertedselect OrderNumber = OrderNumber from insertedselect OrderEmployee = O
18、rderEmployee from insertedselect CustomerID= CustomerID from insertedselect Price = Price from insertedselect Ordersum = Ordersum from insertedset OrderTime = convert(char(20,getdate(,120set RequireDate = convert(char(20,dateadd(month,1,getdate(,120if(OrderNumber>0 and len(OrderEmployee>2 andd
19、atediff(dd,OrderTime,dateadd(month,1,getdate(=0 beginif(OrderNumber < (select NumberPerMonth from ProductInfo whereProductID=ProductIDbegininsert into OrderInfovalues(CustomerID,ProductID,OrderTime,OrderNumber,Price,Ordersum,RequireDate,OrderEmployee,'否'endendendgo-7. 发货时库存信息的变化的触发器-如果发完货
20、后,库存为0,则将该货物从库存信息表中删除,如果发完货后,库存不为0,则减少相应的库存数量if exists (select 1 from sysobjects where name = 'trg_SendInfo_Insert'drop trigger trg_SendInfo_Insertgocreate trigger trg_SendInfo_Inserton SendInfofor insertasdeclare ProductID int,OrderID int,StorageNumber intselect OrderID = OrderID from inser
21、tedselect StorageNumber = StorageNumber from StorageInfo where ProductID = ProductIDgocreate proc proc_StorageChangeStorageNumber int,ProductID int,OrderNumber intasselect StorageNumber = StorageNumber from StorageInfo where ProductID = ProductIDif(StorageNumber = 0beginselect ProductID = ProductID
22、from OrderInfo where OrderID = (select OrderID from SendInfodelete from StorageInfo where ProductID = ProductIDendelsebeginselect OrderNumber = OrderNumber from OrderInfo where OrderID = (select OrderID from SendInfo select ProductID = ProductID from OrderInfo where OrderID = (select OrderID from Se
23、ndInfoupdate StorageInfo set StorageNumber = StorageNumber - OrderNumber where ProductID = ProductIDendgoselect * from StorageInfo;select * from SendInfo;select * from OrderInfo-8. 创建入库时总价自动生成的触发器if exists (select 1 from sysobjects where name = 'trg_StockInfo_InsertandUpdate'drop trigger trg
24、_StockInfo_InsertandUpdategocreate trigger trg_StockInfo_InsertandUpdateon StockInfofor insert,updateasdeclare ProductID int,StockNumber int,Stock money,Stocksum money select ProductID = ProductID from insertedselect StockNumber = StockNumber from inserted where ProductID = ProductID select Stock =
25、Stock from inserted where ProductID = ProductIDbeginupdate StockInfo set Stocksum = Stock * StockNumber where ProductID = ProductID end四、模块划分(系统管理模块实现4.1 系统登录界面及代码 定义的函数wf_connect:String ls_databaseuserid=Trim(useridpassword=Trim(passwordIF password="" THEN RETURN -1ls_database="Conne
26、ctString='DSN=SellManageSystem;"sqlca.dbparm=ls_database+"UID="+userid+"PWD="+password+"'"connect using sqlca;return sqlca.sqlcode确定按钮的代码:SetPointer(hourglass!ls_user_id=string(sle_userid.textIF parent.wf_connect(sle_userid.text,sle_password.text=-1 thenMes
27、sageBox("连接数据库错误!"," 连接失败"+sqlca.sqlerrtexthaltelseclose(parentopen(w_mainend if4.2系统管理模块界面及代码 查询按钮的代码:if (sle_1.text="" and sle_2.text="" thenmessagebox("","不能为空!"end ifinteger bstring bbif sle_1.text="" thenbb=sle_2.textdw_1.retrieve(bbend ifif sle_2.text="" thenb=dec(sle_1.textdw_1.retrieve(bend if添加按钮的代码:dw_1.insertrow(0删除按钮的代码:dw_1.deleterow(0更新按钮的代码:if dw_1.update(>0 thencommit;elsemessagebox("","无法保存!"r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年太原钢铁(集团)有限公司总医院医护人员招聘笔试参考试题及答案详解
- 2026年宁夏眼科医院医护人员招聘考试备考试题及答案详解
- 2026年重庆市第二人民医院医护人员招聘考试备考试题及答案详解
- 2026年九江银行人员招聘考试参考题库及答案详解
- 2026年山西省汾阳医院医护人员招聘考试备考题库及答案详解
- 2026年汕头国际眼科中心医护人员招聘笔试参考题库及答案详解
- 2026年红河州第二人民医院医护人员招聘考试备考题库及答案详解
- 2026年国家开发银行(四川省分行)人员招聘笔试参考题库及答案详解
- 2026年绍兴市人民医院医护人员招聘考试参考题库及答案详解
- 2026年重庆市三峡中心平湖分院医护人员招聘笔试参考试题及答案详解
- GB/T 12368-2025锥齿轮模数
- 京东物流仓储管理制度
- 园林植物养护管理 项目4 任务4.1园林植物整形修剪的基本技术学习资料
- 出入库登记表模板
- 新生儿NICU专科十大安全质量目标
- 计算机操作系统知到智慧树章节测试课后答案2024年秋青岛大学
- DLT 593-2016 高压开关设备和控制设备
- JBT 9214-2010 无损检测 A型脉冲反射式超声检测系统工作性能测试方法
- 苏教版四年级数学下册第七单元《三角形平行四边形和梯形》测试卷(含答案)
- 《车险基础知识培训》
- 《外科实习作》课件
评论
0/150
提交评论