大型数据库课程设计销售管理系统.doc

上传人:仙人指路1688 文档编号:3815724 上传时间:2023-03-23 格式:DOC 页数:40 大小:587KB
返回 下载 相关 举报
大型数据库课程设计销售管理系统.doc_第1页
第1页 / 共40页
大型数据库课程设计销售管理系统.doc_第2页
第2页 / 共40页
大型数据库课程设计销售管理系统.doc_第3页
第3页 / 共40页
大型数据库课程设计销售管理系统.doc_第4页
第4页 / 共40页
大型数据库课程设计销售管理系统.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《大型数据库课程设计销售管理系统.doc》由会员分享,可在线阅读,更多相关《大型数据库课程设计销售管理系统.doc(40页珍藏版)》请在三一办公上搜索。

1、学 号: 课 程 设 计课程名大型数据库题 目销售管理系统学 院计算机科学与信息工程学院专 业计算机科学与技术班 级嵌入式学生姓名指导教师 2011年12月25日重庆工商大学课程设计成绩评定表学院: 计信学院 班级: 学生姓名: 学号:项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度

2、尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,

3、实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,

4、文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名: 年 月 日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 已知技术参数和设计要求:调查书店图书销售业务,设计的图书销售系统主要包括进货、退货、统计、销售功能。1、 进货:根据某种书籍的库存量及销售情况确定进货数量,根据供应商报价选择供应商。输出一份进货单并自动修改库存量,把本次进货的信息添加到进货库 中。2、 退货:顾客把己买的书籍退还给书店。输出一份退货单并自动修改库存量,把本次退货的信息添加到退货库中。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写

5、等具体要求)完成的任务:实现了各类订单的生成以及根据订单修改库存的图书存储量。时间安排:2011年12月9日-2011年12月25日指导教师签名: 年 月 日大型数据库课程设计题目:销售管理系统班级: 姓名: 学号: 指导教师: 完成日期:2011年12月15日目录1.项目概述11.1功能概述11.2 可行性分析12.项目需求分析22.1系统功能需求分析22.2系统总用例分析22.3系统用例分析32.3.1 基本信息维护用例32.3.2采购商品用例32.3.3 库存管理32.3.4 销售商品42.4 系统流程分析42.5 模块分析53.系统详细设计63.1 数据库逻辑结构设计63.2表设计63

6、.3后台数据库设计及重要的PL&SQL代码73.3 前台开发103.3.1 系统登陆界面103.3.2 主界面103.3.3 基本信息维护界面113.3.4 采购界面113.3.5 销售界面123.3.6 库存界面123.4 功能实现143.4.1 采购订单生成143.4.2 采购退货订单生成功能153.4.3 销售退货订单生成153.4.4 库存盘点-采购订单153.4.5 库存盘点-退货订单163.4.6 库存盘点-销售退货订单164.开发心得171.项目概述书店为了对图书的采购、销售信息的管理,就需要一个方便快捷的软件来对此进行系统的、高效的操作。该图书管理系统操作节目简洁,实用,能够在

7、较短时间内掌握使用方法。1.1功能概述通过初步分析,得到销售管理系统的主要功能如下:用户登陆验证用户信息维护图书信息维护供应商信息维护采购入库订单生成采购退货订单生成销售出库订单生成销售退货订单生成库存查询1.2 可行性分析从投资角度看,本系统能够提高业务的运转效率和企业的市场竞争力,采用计算机软件管理,可以降低运营成本,减少员工的工作量。该系统运用.NET平台和Oracle数据库,能够有效的帮助企业管理业务,能够满足企业的需要。再者,现在运用计算机软件管理企业业务已经是一种趋势,运用软件可以减少员工手工记账是的错误,大大的提高了企业的营业效率。2.项目需求分析2.1系统功能需求分析分析得出销

8、售管理系统的使用者分为三类:销售人员、采购人员以及管理人员。于是对三者收集需求,统计得到如下表所示的功能需求。根据用户的需求,可以把模块划分为如表2-2所示,并对其模块进行划分和功能描述。2.2系统总用例分析图 2-1 系统总用例2.3系统用例分析2.3.1 基本信息维护用例描述:提供维护员工信息、维护图书信息、维护供应商信息(删除操作在库存不为0是不能进行图书信息删除)。参与者:管理者。用例图:图2-2.图 2-2 基本信息维护用例2.3.2采购商品用例描述:提供采购图书入库(若新增图书,则该图书的库存量为0 ,需要在采购界面输入采购数量)的功能。参与者:采购员.用例图:图2-3图 2-3

9、采购用例图2.3.3 库存管理描述:提供图书库存盘点。参与者:系统管理员、采购员、销售员用例图:图2-4图 2-4 库存管理用例图2.3.4 销售商品描述:生成销售订单与销售退货订单。参与者:销售员。用例图:图2-5图 2-5 销售用例图2.4 系统流程分析了解用户需求之后,就能够根据用户需求来设定系统的流程,下面就是整个销售系统的流程图,如图 2-7所示。图 2-7 销售系统流程图2.5 模块分析通过上面的分析能够得出该系统的模块结构图如图 2-8所示图 2-8 销售系统模块结构图3.系统详细设计3.1 数据库逻辑结构设计3.2表设计在Oracle中设计的数据库名字为BookSaleD,其中

10、包含用户信息表,供应商信息表,图书信息表,库存表,订单表。用户表(用户编号,用户帐号,用户密码,用户名称,权限);供应商表格(供应商编号,供应商名称,负责人电话,联系电话,地址);图书信息(图书编号,图书名称,价格,折扣,出版日期,供应商编号,图书类型);库存表(库存编号,图书编号,图书名称,库存数量,最低数量);订单表(订单编号,日期,操作员,图书名称,数量,订单类型,判断符号)。3.3后台数据库设计及重要的PL&SQL代码首先开辟一个新的表空间:create tableplace booksaledb datafileE:oracleproduct10.2.0adminorcl size

11、100M;然后建立一个新的用户:create user booksale identified by zhbsm0010 default tablespace booksaledb;对用户授权,由于该用户会执行很多操作,因此这里授予最高的dba权限(该操作是在sysdba用户先操作的):Grant dba to booksale;图书信息表,用来存储图书的各种信息。PL&SQL代码如下:create table BookInfo(BookId varchar2(22) primary key,BookName varchar2(50) not null,BookPrice number(10,

12、2) not null,BookRate number(3,2) not null,BookDate date not null,BookProviderId int not null,BookType varchar2(50) not null,foreign key(BookProviderId) references Providers(PrivId)用户信息表,用来存储用户的基本信息。其中用户权限一项0表示管理员,1表示销售员,2表示采购员。create table UserInfo(UserId int primary key,UserLonginID varchar2(20) no

13、t null,UserName varchar2(20) not null,UserPass varchar2(20) not null,UserRole int not null)供应商表,及图书出版社,用户存储供应商的基本信息。create table Providers(PrivId int primary key,PrivName varchar2(20) not null,PrivLinkMan varchar2(20) not null,privTel varchar2(20) not null,PrivAdr varchar2(50) not null)订单表,用来存储订单的信息

14、。其中在订单类型一栏中0表示采购入库,1表示采购退货,2表示销售出库,3表示销售退货出库,还有订单新旧判断列0代表是新订单,1代表是已经经过库存盘点之后的订单。create table Orders(OrderId int primary key,OrderTime timestamp with time zone default systimestamp not null,UserId int not null,boonname varchar2(50) not null;OrderQuality int not null,OrderType int not null,OrderJudge

15、int not null,foreign key(UserId) references UserInfo(UserId)库存表,显示图书的库存量,以及产生采购订单的标准。create table StoreRoom(StoreID int primary key,BookId varchar2(22) not null,BookName varchar2(50) not null,StoreSum int not null,StoreLastNum int not null,foreign key(BookId) references BookInfo(BookId) )另外,在数据库设计中还

16、设计了几个递增序号,分别是:UserId,StoreID,OrderId,PrivId。产生序列号的代码如下:首先对用户授权:grant create sequence to BookSale然后建立序列号,由于序列号建立的代码格式一样,因此这里只列出建立orderid的代码:create sequence orderid INCREMENT by 1 START with 1 NOCYCLE建立了序列号之后,用触发器来产生递增的列下面是在orders表上建立的orderid递增的触发器,每当插入一张订单,订单编号就增加1,代码如下:create or replace trigger orde

17、rs_triggerbefore insert on orders for each rowbegin select orderid.nextval into:new.orderid from dual;end;3.3 前台开发前台开发使用的是.net开发工具,.net能够支持Oracle数据库的连接,而且提供了大量的控件,便于界面设计。能够有效的提高开发效率。3.3.1 系统登陆界面系统登陆界面提供给用户登陆系统的可视操作,用户根据相应的用户名,密码,登陆权限登陆系统。不同的权限在会拥有不同的操作界面。图 3-2 系统登陆界面3.3.2 主界面主界面是根据不同的权限的用户设计的一个菜单界面,

18、用户在这个界面可以根据自己的权限与操作要求选择相应的操作。选这操作之后会打开子窗口,进行下面的操作。图 3-3 系统主界面3.3.3 基本信息维护界面基本信息界面是只有拥有管理员权限的用户才能够操作的界面,才这个界面中有员工信息、图书信息、供应商信息三个选项,分别对应员工信息更新,图书信息更新,供应商信息跟新。3.3.4 采购界面采购界面是采购员生成采购订单的界面,采购订单包括采购与退货的订单。采购员对图书进行相关采购之后,可以生成采购订单,以便对于库存的管理。 图 3-4 采购订单生成界面图 3-5 采购退货订单生成界面3.3.5 销售界面销售界面是销售员生成销售订单的界面,销售订单包括正常

19、销售和销售退货。销售员在图书销售时产生销售订单,以便对库存进行管理。图 3-6 销售退货订单生成界面3.3.6 库存界面库存界面是根据各种订单对库存进行相关的管理的界面。在库存界面可以根据订单修改库存图书的相关信息。也可以查看订单的相关信息,从而能够统计订单的各种信息,对图书销售进行汇总。图 3-7 盘点库存采购退货订单图 3-8 库存盘点-采购订单图 3-9 库存盘点-销售订单图 3-10 库存盘点-销售退货订单3.4 功能实现该系统主要实现的功能有,根据对库存图书的存储量产生采购订单,退货订单。根据销售的图书两产生销售订单,然后如果有顾客退还所购买的图书,要产生销售退货订单,然后更加订单再

20、修改库存中的图书存量。图 3-11 系统实验的功能关系3.4.1 采购订单生成输入图书名称可以查看库存中的该种图书存量与和该图书有关的订单。根据库存量与订单可以决定需要采购的图书数量。在输入图书名称和采购数量,点击“生成采购订单”就能够产生新的采购订单。图 3-12 采购订单生成功能3.4.2 采购退货订单生成功能入图书名称可以查看库存中的该种图书存量与和该图书有关的订单。根据库存量与订单可以决定需要退货的图书数量。在输入图书名称和采购数量,点击“生成订单”就能够产生新的退货订单。图 3-13 退货订单生成实现3.4.3 销售退货订单生成入图书名称可以查看库存中的该种图书存量与和该图书有关的订

21、单。根据库存量与订单可以决定需要退货的图书数量。在输入图书名称和退货数量,点击“生成订单”就能够产生新的退货订单。图 3-14 销售退货订单生成3.4.4 库存盘点-采购订单点击订单查询可以查看新的采购订单,根据图书库存,输入图书名称,图书数量,和订单编号可以修改图书的库存量和改变订单是成为已经使用过的订单。查询功能可以查看该图书在库存中的存储量。图 3-15 盘点-采购入库3.4.5 库存盘点-退货订单点击订单查询可以查看新的退货订单,根据图书库存,输入图书名称,图书数量,和订单编号可以修改图书的库存量和改变订单是成为已经使用过的订单。查询功能可以查看该图书在库存中的存储量。图 3-16 盘

22、点-采购退货3.4.6 库存盘点-销售退货订单点击订单查询可以查看新的销售退货订单,根据图书库存,输入图书名称,图书数量,和订单编号可以修改图书的库存量和改变订单是成为已经使用过的订单。查询功能可以查看该图书在库存中的存储量。图 3-17 盘点-销售退货4.开发心得通过图书销售系统的开发,让我了解到一个一项目开发的大致过程,虽然这个系统某些功能根据课程设计的要求并没有开发实现。但是就这个系统目前能实现的功能来说,即使有些地方不够完善,但是对于我来说这也是一个新的里程碑。这个系统的开发,不仅让我了解了有关Oracle数据库的知识,还有.NET的有关知识,认识的在大学很多知识并不是从课堂上来的,更

23、多的是靠自己平时学习慢慢积累的。每次课程设计都有不同的收获,这次也一样。这次课程设计我就靠自己学会了C# 的相关编程和一种关于Oracle的PL&SQL的有关知识。这对我能完成这次项目开发有很大的帮助。参考文献:1.秦倩、石叶平,精通C#与.NET 4.0 数据库开发,北京,清华大学出版社,2011.12.萧文龙、陈怡如,Oracle 10g 数据库入门与实践,北京,清华大学出版社出版社,2006.13.(美)凯特 著,苏金国等译,Oracle9i&10g编程艺术:深入数据库体系结构,北京,人民邮电出版社,2006.1附录1:数据库相关代码create sequence orderid INC

24、REMENT by 1 START with 1 NOCYCLE;/create or replace trigger orders_triggerbefore insert on orders for each rowbegin select orderid.nextval into:new.orderid from dual;end;/create sequence userid INCREMENT by 1 START with 1 NOCYCLE;/create or replace trigger orders_triggerbefore insert on orders for e

25、ach rowbegin select userid.nextval into:new.userid from dual;end;/create sequence StoreID INCREMENT by 1 START with 1 NOCYCLE;/create or replace trigger orders_triggerbefore insert on orders for each rowbegin select StoreID.nextval into:new.StoreID from dual;end;/create sequence PrivId INCREMENT by

26、1 START with 1 NOCYCLE;/create or replace trigger orders_triggerbefore insert on orders for each rowbegin select PrivId.nextval into:new.PrivId from dual;end;/附录2:功能实现主要代码附图1 目录结构图/采购订单生成using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;

27、using System.Text;using System.Windows.Forms;using Oracle.DataAccess.Client;namespace BookSaleSystem.Purchase public partial class Purchase_OrderAdd : Form public Purchase_OrderAdd() InitializeComponent(); private DataTable Load_Data() OracleConnection con = new OracleConnection(ConDB.constr); try c

28、on.Open(); DataTable dt = new DataTable(); if (Bookname_Inquire.Text.Trim() != ) string sql = string.Format(select StoreID,BookId,BookName,StoreSum,StoreLastNum from storeroom where bookname like %0%, Bookname_Inquire.Text); OracleDataAdapter da = new OracleDataAdapter(sql, con); da.Fill(dt); else s

29、tring sql = select * from storeroom; OracleDataAdapter da = new OracleDataAdapter(sql, con); da.Fill(dt); return (dt); finally con.Close(); private DataTable OrderInfo_Load() OracleConnection con = new OracleConnection(ConDB.constr); try con.Open(); DataTable dt = new DataTable(); if (Bookname_Inqui

30、re.Text.Trim() != ) string sql = string.Format(select OrderId,OrderTime,UserId,bookname,OrderQuality,OrderType,OrderJudge from Orders where bookname like %0% and ordertype=0, Bookname_Inquire.Text); OracleDataAdapter da = new OracleDataAdapter(sql, con); da.Fill(dt); else string sql = select * from

31、orders; OracleDataAdapter da = new OracleDataAdapter(sql, con); da.Fill(dt); return (dt); finally con.Close(); private void Inquiry_button_Click(object sender, EventArgs e) Inquiry_dataGridView.DataSource = Load_Data(); OrderInfo_dataGridView.DataSource = OrderInfo_Load(); private void Produce_Purch

32、aseOrder_Click(object sender, EventArgs e) OracleConnection con = new OracleConnection(ConDB.constr); try con.Open(); string sql = string.Format(insert into orders( UserId,bookname,OrderQuality,OrderType,OrderJudge)+ values( 0,1,2,3,4), LoginInfo.LoginUserInfo.UserId, Order_Bookname.Text, Order_Qual

33、ity.Text,0,0); OracleCommand com = new OracleCommand(sql,con); int result = com.ExecuteNonQuery(); if (result != 0) MessageBox.Show(订单生成生成成功!); else MessageBox.Show(订单生成生成失败!); finally con.Close(); private void Purchase_OrderAdd_Load(object sender, EventArgs e) /登陆窗口using System;using System.Collect

34、ions.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Oracle.DataAccess.Client;using BookSaleSystem.Entity;namespace BookSaleSystem public partial class Login_Form : Form public Login_Form() InitializeComponent(); private v

35、oid login_button_Click(object sender, EventArgs e) loginValidate(); public void loginValidate() if (userloginid_textBox.Text.Trim() = | string.IsNullOrEmpty(userloginid_textBox.Text) MessageBox.Show(用户名不能为空!, 登录提示); userloginid_textBox.Focus(); else if (password_textBox.Text.Trim() = | string.IsNullOrEmpty(password_textBox.Text) MessageBox.Show(密码不能为空!, 登录提示); password_textBox.Focus();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号