数据库课程设计3.doc_第1页
数据库课程设计3.doc_第2页
数据库课程设计3.doc_第3页
数据库课程设计3.doc_第4页
数据库课程设计3.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告数据库课程设计 课程名称 数据库课程设计 姓 名 学 号 专业班级 计0901 指导老师 完成日期 前言产生背景21世纪是一个信息化社会,人们的接受的信息量超前巨大,要想在如今这个社会站稳脚跟、立于不败之地就必须顺应时代发展潮流与时俱进。那么计算机的作用就不言而喻了,它已经成为生活的必需品渗透到各个领域并发挥着越来越重要的作用。可以互补夸张的说不懂计算机就是新时代的文盲!java是一门面向对象编程语言,不仅可以用来开发大型的应用程序,而且特别适合internet的应用开发。java确实具备“一次写成,处处运行”的特点,java已成为网络时代最重要的编程语言之一。我本次试验就采用java语言实现画笔系统的全部过程。本次计算机图形学实验是我们专业课中很重要的内容环节,帮助我们深入学习掌握java语言,让我们做到学以致用熟练运用这个工具来编写的。通过课堂老师的理论讲解和课程实验各个项目的综合训练,增强了学生编程和动手能力、提高学生的综合素质。本课程实验尝试使用一些简单易做、较生动的题目,使我们能够顺利拿下,过度平缓,难易适中。激发了学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为今后参加项目开发及更深入学习做好准备。概述一、实验内容本实验报告为数据库原理与应用的课程设计实验报告。本次实验完成了汽配销售管理系统的需求分析、数据库设计、应用程序设计和调试等任务。数据库的设计、应用程序的设计和编写全部是由我们自己独立完成。二、开发环境说明本项目在windows xp操作系统下进行开发和测试。开发时使用的数据库管理软件是microsoft公司的sql server 2000,应用程序使用ibm公司eclipse sdk中的java语言进行开发。(下载地址:/downloads) 三、其他说明由于水平有限,在分析了用户水平之后,预先设计的功能并不能完全实现。加之时间仓促,应用程序还有一些功能没有细化,我们将利用课余的时间继续完善此项目。 组长:张海山 2012-1-11第一章 课题介绍和需求分析本章叙述本次课程设计的题目及要求,之后是我们针对这个题目进行的需求分析说明书,以及应用需求分析的结果。第一节 课程内容和要求题目名称:客户订购登录系统。要求:一个公司希望为其客户订购行为建立数据库。一个消费者可以有一个或多个订单,每个订单可以有一个或多个配件。客户订单时可以通过多种方式来支付,例如支票,信用卡或现金。开始运行这个客户订购登录系统的员工姓名要被记下来。有一个相应的部门工作人员来负责整理订单并把这些订单发给顾客。如果订单上的配件在库中没有,就必须写明库中有什么,这样在订单中可能就会用其他配件来填写。 本实验采用了c/s架构,使用editplus、powerdesigner进行客户端应用程序的开发,数据库管理系统采用sql server 2000。第二节 功能需求分析一、基本功能分析通过字面的表述,我们得知应用程序需要实现以下基本功能:订单的创建和查询:用户可以建立订单的方式在公司订购货物,为此数据库要记录订单的内容:客户名、支付方式、订购时间、订购的内容等。此外,处理订单的员工还应查询和处理用户的订单。处理完后需要把处理这个订单的员工信息存入数据库中。客户信息的查询:订单处理人员和发货人员在处理订单时。需要查询创建这个订单的客户的各类信息,以便在出现问题时及时与客户联系。库存不足时的替代功能:当订单处理人员处理订单时,如果出现溢出配件库存量的情况,应及时与客户联系,并采取以下措施之一:(1)按照现有的库存量发货,或者不发货;(2)按照客户的需求用其他货物来替代。商品的库存信息:为了在订单处理员处理客户订单时能够及时了解到公司当前的仓库中是否有足量的货物供应,应创建配件的库存信息表。此外公司有新货到来时或者有货源补充时应及时修改库存信息。商品的查看:用户在订购配件时,应该能够查询到库存信息表里那些配件可以订购(既库存量大于零的配件)。二、深入分析如果只按照以上的需求进行设计,时无法编写出可以投入使用的应用程序的。因为在客户的需求称述里还有一些隐含的信息需要分析。具体如下:1.用户权限分配和身份的识别由于客户、工作人员使用的都是同一个应用程序系统(用户通过网络来登录到公司的订购系统),而客户、工作人员执行的功能是不同的,故需要提供一种机制区分用户和工作人员。系统需要识别当前登录到系统的用户,以便实现以下操作:如果是客户,则只能看到可以订购的配件列表、新建订单和查询订单的界面,而不能处理订单、查看和管理商品库存信息等;如果是订单处理人员,则可以看到客户的信息、订单处理的界面,也可以看到配件的库存,但是不能新建订单,也不能随意修改商品的库存;如果是库存管理人员,则可以管理商品的库存信息,但是不能看用户的订单,也不能够创建订单;如果总管理员(例如公司经理),则可以查看和管理数据库中的各类数据。对于同一种类的用户,系统也应该要记录登录到系统的用户名,以便实现以下操作:对于某一个客户,他应该可以查询到自己已经订购的订单,以及能够及时查看这些订单的处理结果和状态,但是不能随意查看其他用户的订单;对于某个订单处理人员,在他处理完某一客户的订单后,系统应根据用户登录时提供的信息自动在该订单的详情表内填写处理该订单的员工号,而不应该由用户填写员工号或者员工自己填写。2.订单中应记录的内容用户的需求中说明了需要记录的用户订购的配件、支付方式、处理该订单的员工,但是经过分析之后发现订单信息表中还应该记录其他信息:订购某种配件的单价。这里记录的单价和“库存信息表”中记录的单价含义是不同的,库存信息表中的配件单价反映的是该种配件当前价格,而订单中记录的单价是购买时的单价。实际发货数量。由于在处理订单时的配件量不一定能满足客户的需求,故不一定可以提供用户其所订购的数量。当处理人员与客户联系后决定使用其他配件替换库存中不足的配件时,需要提供一种方法区分用户订购的配件和进行替代配件。订单状态。用户应该能及时查询自己的订单是否被处理,或者处理过之后已经发货。这是需要向客户提供状态信息。由于已经记录了处理该订单的员工号以及负责发货的员工号,故不需要额外使用字段来存储这个状态。3.商品库存的自动更新当处理完一个客户的订单后,应该自动根据实际的发货数量立即更新配件的库存信息。具体为:订单处理信息提交后,自动更新库存信息表中对应配件的库存量。否则会出现配件被订购完后库存量没有更新,还显示此配件有库存的现象。4.用户查看的配件列表和库存信息表的关系用户看到的配件列表应该是建立在库存信息表上的一个视图。在本项目中,库存信息表是一个基本表,存储了配件库存的实际数据;配件列表是从该基本表导出的视图,具体限制如下:只显示当前有库存的配件:即where子句的要求是该商品的库存量大于0;只能查看配件的编号、名称、单价和描述,不能看到配件的库存量。公司一般不希望用户能够随时得知商品的库存量,而只是提供给用户一个“有货”或者“无货”的标志。三、需求分析基础信息管理:1、厂商信息的管理:查询、增、删、改2、配件信息的管理:查询、增、删、改3、客户信息的管理:查询、增、删、改进货管理:4、配件采购信息的管理:查询、增、删、改5、配件入库信息的管理:查询、增、删、改销售管理:6、车辆销售:客户可以根据自己的需求,选择不同型号的配件型7、收益统计:厂商按照所出售的配件数量及价格进行统计仓库管理:8、库存配件:仓库管理员对已有配件进行详细管理9、仓库明细:库存各种类型车辆的详细信息10、进销存统计:仓库管理员对车辆的出售与进货进行统计系统维护:11、数据安全管理:系统管理员对该数据库出现的问题进行管理12、操作员管理:操作员根据车辆销售情况及时更改数据库13、权限设置:规定该数据库访问权限1、数据项编号数据项名称说 明 部 分编号数据项名 称说 明 部 分1客户姓名文本类型 长度为20字符2工作单位文本类型 长度为20字符3性别字符串类型 男、女4年龄 整数类型 181005客户号字符串类型 有唯一性6联系电话整数类型 7配件型号字符串类型 有唯一性8价格浮点型9配件状态枚举类型 被订、未订10厂商名文本类型 有唯一性11厂商号字符串类型 有唯一性12地址文本类型 长度为30字符13生产配件总数整数类型14厂商状态枚举类型 忙、闲15订单号整数类型 订单所属的类别16订货日期时间类型 */*17交货日期时间类型 */*18仓库号字符串类型 有唯一性19进货配件数整数类型 20出货配件数整数类型21库存配件总数整数类型22出售车辆数整数类型23配件总成本整数类型 24获取总金额整数类型25利润整数类型 26买配时间时间类型27保修期限时间类型28备注文本类型19车辆名称字符串类型 长度为20字符2、数据结构编号数据结构名属 性1客户客户姓名、性别、年龄、客户号、工作单位、联系电话2配件配件号、配件名称、厂商名、价格、配件状态3厂商厂商名、厂商号、地址、生产配件总数、厂商状态、备注4订单订单号、客户号、订货日期、交货日期、地址、是否存有、是否已订5仓库仓库号、地址、进货配件数、出货配件数、库存配件总数、6配件销售车型号、厂商号、出售配件数、配件总成本、获取总金额、利润7订货客户、厂商、配件、买配件时间、保修期限3、数据流编号数 据 流 名输 入输 出1变更客户变更信息客户信息2查询客户客户号客户信息3变更厂商变更信息厂商信息4查询厂商厂商号厂商信息5变更配件变更信息配件信息6查询配件配件型号配件信息7变更订单变更信息订单信息8查询订单订单号订单信息9变更仓库变更信息仓库信息10仓库仓库号地址11变更配件销售变更信息配件销售信息12查询配件销售配件销售数利润13查询空闲厂商厂商状态限制条件空闲厂商信息14结账配件型号购买信息15提交订货请求客户号、配件型号、价格、厂商号配件信息16获得订货请求订货信息配件型号、厂商号、客户号17提交订单信息配件型号、厂商号订单信息18变更厂商分工信息厂商号、车型号厂商分工信息19预定配件配件型号配件信息20付款配件型号配件信息、厂商信息4、数据存储数据存储名输入数据流输出数据流说 明 部 分客户信息变更客户查询客户提交订货请求配件信息变更配件查询配件获得订货请求厂商信息变更厂商查询房间提交订货请求查询空闲厂商配件销售信息变更配件销售查询厂商提交点货请求查询空闲厂商提交订货信息提交订单信息订单信息变更订单结账提交订货请求订货信息提交订货请求提交订单信息结账获得订货请求厂商分工信息变更厂商分工信息5、处理过程处理过程名输入数据流输出数据流说 明 部 分客户登记终端变更配件变更厂商订货终端提交订货请求获得订货请求订货获得订货请求提交订货信息订单提交订货信息提交订单信息客户结账结账1、顶层进程订货系统2、第二层1)进程1查询订单数据流图2)进程2处理订单数据流图3)进程3开订单数据流图4)进程4结帐系统第二章 数据库设计和应用程序设计第一节 实体的属性及联系进行了需求分析(详见第一张),我们为此数据库应用系统设计了客户、配件、厂商、配件库存、配件销售、订单六个实体。具体设计如下:一、 用户实体型客户工作单位客户号客户姓名联系电话客户年龄客户性别二、 配件实体型配件状态价格配件型号配件配件名称厂商名三、 厂商实体性厂商号生产配件总数厂商厂商名地址厂商状态四、 配件库存实体型出货配件数进货配件数地址仓库号配件库存库存配件总数配件总成本利润获取总金额出售配件数厂商号配件销售配件型号五、 配件销售实体型是否已订订单号交货日期是否存有厂商号订货日期客户号订单六、 订单实体型第二节 数据库设计本项目使用microsoft sql server 2000 数据库管理系统。根据软件的需求分析结果和er图,共涉及了六个基本表和一个视图一、客户信息表属性中文名称属性名类型长度说明客户号c_nochar20主码:公司统一编号,具有唯一性客户姓名user_namechar20客户名称客户性别user_sexchar4客户性别客户年龄user_ageint18100联系电话user_telint工作单位unitchar20客户所在工作场所 二、配件信息表属性中文名称属性名类型长度说明配件型号car_nochar10主码:厂商统一编号,具有唯一性配件名称car_namechar20车辆名称厂商名industty_namechar文本类型 有唯一性价格pricefloat配件状态statusboolean枚举类型 被订、未订三、厂商基本信息表属性中文名称属性名类型长度说明厂商号industy_nochar10主码:厂商统一编号,具有唯一性厂商名industy_namechar文本类型 有唯一性地址addresschar10厂商状态statusboolean忙:1;空闲:0生产配件总数accesory_amountint四、配件库存表属性中文名称属性名类型长度说明仓库号box_nochar10主码:厂商统一编号,具有唯一性地址addresschar10进货配件数in_amountint仓库开始进配件的数量出货配件数ou_amountint仓库已卖出的配件数量库存配件总数remain_amountint仓库现存有的配件数量五、配件销售基本表属性中文名称属性名类型长度说明配件型号car_nochar10外码:参照配件表的配件号厂商号industty_nochar10外码:依照厂商表的厂商号出售配件数sale_amountint配件总成本car_moneyfloat配件进货的成本获取总金额moneyfloat利润beniftfloat盈:1 亏:0六 订单详情表属性中文名称属性名类型长度说明订单号order_noint10订单所属的类别客户号c_nochar20外码:参照客户表的客户号订货日期order_datadata订货时间交货日期hand_datadata交货期限厂商号industty_nochar10外码:依据厂商表中的厂商号是否存有madeboolean默认:false(没有)是否已订ordersboolean默认:false (未订)七 商品列表的视图(viewcustom-goods)该视图是从客户的角度(和非仓库管理的用户组)能够看到的商品列表。该视图是建立在accessory基本表上的,并且只显示有货的配件,同时将商品库存量隐藏起来。该视图定义为:select accessoryno accessorynane price.from dbo. accessory第三章 数据库应用程序的开发第一节 工程项目和数据库的创建一、结构设计1.1概念结构设计1.2 逻辑结构设计122视图1、空闲厂商(厂商号,厂商名)从厂商基本表导出2、进销存统计(仓库号,进货配件数,出货配件数)从仓库基本表导出3、所有配件销售信息(配件型号,厂商号,配件状态)从配件和厂商基本表导出4、付款(配件号,厂商号,配件名,价格)从配件表、厂商表导出5、订单生成视图订单(订单号,客户号,订货日期,交货日期,地址,是否存有,是否已订)从订单表、客户表导出6、收益统计信息(配件型号,出售配件数,配件总成本,获取总金额,利润)从配件表、配件销售表导出1.3物理结构设计为了一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,必须对该数据系统做一物理上的存储结构与存取方法。其中建立系统程序员视图:1.数据在内存中的安排,包括对索引区、缓冲区的设计;2.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;3.访问数据的方式方法。一,该配件销售管理数据库系统关系模式存取方法:二,该配件销售管理系统数据库存储结构:1. 确定数据的存放位置 2.确定系统配置三,评价数据库系统的物理结构数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,所以数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构二、系统的应用程序实施package com.haishan.pages;import java.awt.borderlayout;import java.awt.color;import java.awt.eventqueue;import java.awt.font;import java.awt.graphics;import java.awt.image;import java.awt.toolkit;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.jbutton;import javax.swing.jcombobox;import javax.swing.jframe;import javax.swing.jinternalframe;import javax.swing.jlabel;import javax.swing.jpanel;import javax.swing.jscrollpane;import javax.swing.jtabbedpane;import javax.swing.jtextfield;import com.jgoodies.forms.factories.defaultcomponentfactory;public class hanshanlogin extends jframe private jcombobox combobox;private jtextfield textfield_1;private jtextfield textfield;/* * launch the application * param args */public static void main(string args) eventqueue.invokelater(new runnable() public void run() try hanshanlogin frame = new hanshanlogin();frame.setvisible(true); catch (exception e) e.printstacktrace(););/* * create the frame */public hanshanlogin() super();settitle(汽配销售管理系统);setbounds(200, 200, 500, 375);setdefaultcloseoperation(jframe.exit_on_close);final jpanel panel = new jpanel();panel.setbackground(color.magenta);panel.setforeground(new color(255, 255, 0);panel.setlayout(null);getcontentpane().add(panel);final jpanel panel_1 = new jpanel()protected void paintcomponent(graphics g) super.paintcomponent(g);image image = toolkit.getdefaulttoolkit().getimage(system.getproperty(user.dir) + /images/ee.jpg);g.drawimage(image, 0, 0,467, 81, this);panel_1.setbounds(7, 7, 467, 81);panel.add(panel_1);final jlabel label = defaultcomponentfactory.getinstance().createlabel(用户姓名:);label.setforeground(new color(128, 0, 128);label.setfont(new font(新宋体, font.bold | font.italic, 18);label.setbounds(30, 123, 99, 18);panel.add(label);final jlabel label_1 = defaultcomponentfactory.getinstance().createlabel(用户密码:);label_1.setforeground(new color(128, 0, 128);label_1.setfont(new font(新宋体, font.bold | font.italic, 18);label_1.setbounds(30, 168, 95, 18);panel.add(label_1);textfield = new jtextfield();textfield.setbounds(131, 124, 312, 22);panel.add(textfield);textfield_1 = new jtextfield();textfield_1.setbounds(131, 166, 312, 22);panel.add(textfield_1);final jbutton button_1 = new jbutton();button_1.addactionlistener(new actionlistener() public void actionperformed(final actionevent e) hanshanlogin.this.dispose(););button_1.settext(退出);button_1.setbounds(294, 247, 106, 28);panel.add(button_1);final jbutton button = new jbutton();button.addactionlistener(new actionlistener() public void actionperformed(final actionevent e) if(combobox.getselecteditem().tostring().equals(管理)new serverpage();hanshanlogin.this.dispose();else if(combobox.getselecteditem().tostring().equals(客户)new sale(););button.settext(登录);button.setbounds(131, 247, 106, 28);panel.add(button);final jlabel label_2 = new jlabel();label_2.settext(类型:);label_2.setbounds(44, 94, 66, 18);panel.add(label_2);combobox = new jcombobox();combobox.additem(管理);combobox.additem(客户);combobox.setbounds(131, 94, 106, 27);panel.add(combobox);/第二节 用户登录窗体的设计一、 登录界面该登录界面由11个部分组成,它们分别是标签(jlabel):类型、用户姓名、用户密码。下拉列表(jcombobox):类型。文本框(jtextfield):用户姓名、用户密码(jpasswordfield)。按钮(jbutton):登录、退出。框架窗口(jframe):首页。图片(icon):一张。类型下拉列表包含:管理员和客户。该界面实现管理员登录进入服务页面和客户登录进入客户查询界面。二、服务页面该界面总共有九个部分组成,它们分别为:标签(jlabel):基础信息、厂商编号。文本框(jtextfield):厂商编号。按钮(jbutton):添加客户、清除信息、查询、修改厂商名。数据表(jtable):属性有:编号、名字、地址、状态、成本。框架窗口(jframe):服务页面。该窗口实现管理员的添加客户、清除信息、查询、修改厂商名等功能。当管理员按了“添加客户”按钮,会出现以下窗口。该窗口实现了管理员向数据库中的客户基本信息表中按此窗口的提示信息依次插入客户基本信息。三、客户查询界面客户查询界面总共由8个部分组成。标签(jlabel):编号、查询区间。文本框(jtextfield):编号、生产日期、销售日期。图片(icon):一张。按钮(jbutton):查询。框架窗口(jframe):客户查询界面。该窗口界面实现了客户的查询配件基本信息。第三节 主窗体的设计主窗体的实现用到了ibm公司的eclipse 3.5,软件设计语言为java语言。设计代码如下:package com.haishan.pages;import java.awt.borderlayout;import java.awt.color;import java.awt.eventqueue;import java.awt.font;import java.awt.graphics;import java.awt.image;import java.awt.toolkit;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.jbutton;import javax.swing.jcombobox;import javax.swing.jframe;import javax.swing.jinternalframe;import javax.swing.jlabel;import javax.swing.jpanel;import javax.swing.jscrollpane;import javax.swing.jtabbedpane;import javax.swing.jtextfield;import com.jgoodies.forms.factories.defaultcomponentfactory;public class hanshanlogin extends jframe private jcombobox combobox;private jtextfield textfield_1;private jtextfield textfield;/* * launch the application * param args */public static void main(string args) eventqueue.invokelater(new runnable() public void run() try hanshanlogin frame = new hanshanlogin();frame.setvisible(true); catch (exception e) e.printstacktrace(););/* * create the frame */public hanshanlogin() super();settitle(汽配销售管理系统);setbounds(200, 200, 500, 375);setdefaultcloseoperation(jframe.exit_on_close);final jpanel panel = new jpanel();panel.setbackground(color.magenta);panel.setforeground(new color(255, 255, 0);panel.setlayout(null);getcontentpane().add(panel);final jpanel panel_1 = new jpanel()protected void paintcomponent(graphics g) super.paintcomponent(g);image image = toolkit.getdefaulttoolkit().getimage(system.getproperty(user.dir) + /images/ee.jpg);g.drawimage(image, 0, 0,467, 81, this);panel_1.setbounds(7, 7, 467, 81);panel.add(panel_1);final jlabel label = defaultcomponentfactory.getinstance().createlabel(用户姓名:);label.setforeground(new color(128, 0, 128);label.setfont(new font(新宋体, font.bold | font.italic, 18);label.setbounds(30, 123, 99, 18);panel.add(label);final jlabel label_1 = defaultcomponentfactory.getinstance().createlabel(用户密码:);label_1.setforeground(new color(128, 0, 128);label_1.setfont(new font(新宋体, font.bold | font.italic, 18);label_1.setbounds(30, 168, 95, 18);panel.add(label_1);textfield = new jtextfield();textfield.setbounds(131, 124, 312, 22);panel.add(textfield);textfield_1 = new jtextfield();textfield_1.setbounds(131, 166, 312, 22);pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论