汽车销售系统-数据库课程设计_第1页
汽车销售系统-数据库课程设计_第2页
汽车销售系统-数据库课程设计_第3页
汽车销售系统-数据库课程设计_第4页
汽车销售系统-数据库课程设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

淮海工学院计算机科学系课程设计报告设计名称:数据库原理及应用课程设计姓名:学号:110511530专业班级:计算机科学与技术055系院〕:计算机科学系设计时间:2007.6.18~2007.6.29设计地点:计算机机房成绩:指导教师评语:成绩:签名:年月日数据库原理及应用课程设计一、课程设计的目的?数据库原理及应用?课程设计是计算机科学与技术专业集中实践性环节之一,是学习完?数据库原理及应用?课程后进行的一次全面的综合练习。本课程设计主要在于加深学生对数据库根底理论和根本知识的理解,掌握数据库应用系统设计开发的根本方法,到达进一步使学生综合运用所学知识和增强实际动手能力的目的。二、课程设计的任务与要求要求学生根据自身对题目的理解情况,从给定的设计题目中选择一个,以MSSQLServer作为后台数据库平台,以PowerBuilder作为前台开发工具,完成一个小型数据库应用系统的系统的分析、设计和开发。三、课程设计说明书汽车销售系统系统汽车销售行业已经能够作成一个很大的系统.此销售要涉及到汽车制造厂商,汽车售卖公司和消费者.如果只是依靠人工记录和管理很出现很大的漏洞,很有可能造成企业和消费者的利益损失.这就需要我们设计一个适合汽车销售的管理系统.本设计课题就是为了适应新形势的开展而提出的。1系统需求分析汽车销售管理系统涉及到车辆采购,存库信息,公司收益,客户厂商的信息,还要有一定的管理者来管理这个系统,能够对系统内容进行更新,修改和删除.操作员登录:因为操作员有权限之分,不同权限的操作员对系统能够进行的操作不同.1级操作员可以对系统进行全部操作,而2级以上的就有限制了.根本信息管理:此选项中包括对厂商信息,车型信息和客户信息的查询.①厂商信息:包括对厂商的根本信息的查询,修改,增加.操作员在需要对厂商信息进行更新的时候可以对它进行操作.汽车销售公司的厂商根本上是固定的,所以经常使用的是对厂商信息的查询,这个操作属于公司内部人员操作的范围.②车型信息:销售汽车需要各种类型的车,来适应不同使用人群.车型信息包括对车的根本信息的描述.作为管理员要定时的对车型信息进行添加.③客户信息:公司需要对购置车辆的用户进行根本信息的登记和定时的更新,这项工作对于汽车销售的售后效劳有重要作用.公司可以对客户进行产品使用情况跟踪.此项功能应该包括对客户信息的添加,修改和不需要的资料的删除.进货管理:汽车进货需要登记进货的价格,日期,厂家编号和车的根本信息.进货操作应该是进货管理者应该进行的管理.①车辆采购:进货需要跟厂家进货,所以需要跟厂家打交道.采购时不仅应该记录车辆的型号等根本信息,还要记录厂家的信息.②车辆入库:采购来的车辆要存入仓库.需要记录入库的单号,以便以后进行检查.销售管理:汽车销售时的根本信息管理①车辆销售:要包括对汽车主要信息的记录,如成交价,客户的编号,名称.车辆销售出去后,还要对销售信息进行复查,防止出现帐目不准确的情况.②仓库管理:对仓库车辆的检查,保存.维护系统:是对系统操作员能够进行的根本操作,包括添加,删除除去一级管理员之外的其他管理员的登录名登录密码.需求分析1.2.1数据流图汽车销售系统涉及到汽车销售管理员对根本业务的维护管理操作和用户对汽车根本信息的查询.下面列出主要事务的数据流图:根底信息管理根底信息管理信息进货管理询进货管理 查加汽车销售管理系统 增汽车销售管理系统销售管理根本信息查询 检查销售管理主管理员主管理员仓库管理 修改更新 增加仓库管理 管理登录用户系统维护系统维护次等级的管理员可以对系统进行的操作根底信息管理根底信息管理管理查询进货者 查看 进行查看管理查询进货者进货管理 进货登记进货管理 登记入货查看查看登记营销者销售管理查看 登记营销者销售管理 登记根底信息查看无修改根底信息管理管理仓库根本信息仓库管理员 登录 进货修改仓库根本信息仓库管理员系统维护只能是级别为1的才可以进行修改。数据流分析汽车销售管理系统的数据刘如下:系统管理员:对厂商,车型信息,客户信息的查询,添加,删除等操作,并且可以对普通操作员的权限进行设置.该操作员拥有的权限是最高的.普通管理员:对该管理员对应的职能进行相应的维护,更改,删除等操作.定期对所管理的事务进行检查.客户:想要购置汽车的用户,可以通过该系统的客户窗口登录,进行对汽车根本信息的查询,且只能进行查询,不具备对其他功能的操作1.3数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。汽车销售管理系统的数据流图得到数据字典如下:(1)名字:厂商信息描述:对厂商身份的描述,不同厂商具有不同的信息,用来构成汽车销售的一局部.定义:厂商信息=厂商编号+厂商名称+联系+通信地址+入库日期位置:出现在对厂商信息查询时的窗口,还有在查询车辆和库存﹑入库时会查询到厂商的主要信息(2)名字:客户信息描述:对购置汽车的用户的根本情况的记录,它对公司统计车辆的售出情况有作用.同时记录客户的根本联系方式,便于跟客户进行联系和售后效劳.客户的编号能够唯一的表示一个客户,防止重名的人.定义:客户信息=客户编号+客户名称+组织机构+联系+公司行业+通信地址+入档日期位置:查询客户信息时显示客户的全部信息,并且在销售管理的车辆销售中出现相应的客户信息.(3)名字:车型信息描述:车辆信息的根本情况,公司用来记录采购来的车辆,定义:车型信息=车型代码+厂商编号+车辆类型+车身颜色+产地+进货指导价+备注+订单号+出厂日期+入库日期+车价位置:在车型信息查询窗口﹑进货功能中的车辆采购和车辆入库中都要出现.(4)名字:车辆入库信息描述:进货来的车辆需要放到仓库中存放,车辆多了也就必须对入库的车辆进行记录.定义:入库信息=入库单号+厂商编号+厂商名称+车型代码+车辆类型+产地+出厂日期+入库日期.位置:入库信息就在进货管理的车辆入库窗口中出现.(5)名字:采购信息描述:对需要进货的车辆进行描述,记录车辆的根本信息,并且记录重要的采购日期,这项工作是采购员需要进行的,对于做好他的工作非常重要.定义:采购信息=采购订单号+厂商编号+厂商名称+联系+通信地址+车型代码+车辆类型+产地+采购单价+业务员+制单员+采购日期位置:出现在车辆采购窗口内,同时库存车辆仓库明细中也会用到相应的信息.(6)名字:销售信息描述:对车辆销售情况的统计记录,包括对卖出车辆数目﹑库存车辆数目,还有对卖出车辆的金额的统计,作出公司的营销状况报表.定义:销售信息=销售单号+客户编号+客户名称+车型代码+车辆类型+产地+车价+成交价+制单员+销售日期位置:出现在销售管理的窗口里,包括车辆销售和收益统计(7)名字:操作员管理信息描述:记录关于操作员管理的根本信息,要求有代号和密码,起到保护作用.定义:操作员信息=操作员编号+操作员名称+操作员密码+操作员权限位置:在系统的登陆界面中需要进行用户的选择,只有操作员用户可以对系统中的数据进行修改.系统维护界面中需要用到操作员的根本信息,系统管理员可以对普通的操作员进行对菜单项的授权和收权.(8)客户登陆描述:客户登陆的界面应该和操作员是不同的,他们对系统具有不同的操作。2系统总体设计系统管理流程图:汽车销售管理系统汽车销售管理系统根底信息管理系统维护仓库管理根底信息管理系统维护仓库管理销售管理进货管理仓库明细收益统计操作员管理进销存统计库存车辆车辆销售车辆入库车辆采购客户信息权限设置车型管理厂商管理仓库明细收益统计操作员管理进销存统计库存车辆车辆销售车辆入库车辆采购客户信息权限设置车型管理厂商管理图1-1E-R图E-R图表示实体、属性、关系之间的表示实体:用矩形表示,矩形框内写明实体名*属性:用椭圆型表示,并用无向边与其相应实体连接起来*联系:用菱形表示,菱形框内写明联系名,并用无向边与其有关实体连接起来,同时联系的类型。库存车型信息系统E-R图如下:库存车型信息制单员制单员入库日期存放采购入库日期存放采购销售销售采购单价采购单价入库单号入库单号采购日期厂商信息客户信息采购日期厂商信息客户信息包含包含图1-2厂商名称厂商信息E-R图:厂商名称厂商编号联系厂商编号联系厂商信息厂商信息地址入档日期地址入档日期图1-3客户信息E-R图客户编号客户名称客户编号客户名称入档日期入档日期客户信息组织机构客户信息组织机构联系通信地址联系通信地址公司性质公司性质图1-4入库号库存表E-R图:入库号厂商编号入库日期厂商编号入库日期库存库存厂商名称车型代码厂商名称车型代码图1-5操作员编号 操作员E-R图:操作员编号操作员姓名操作员姓名操作员级别操作员操作员级别操作员操作员密码操作员密码图1-6销售关系E-R图客户编号:客户编号销售客户名称车型代码车辆类型产地车价预订单号销售客户名称车型代码车辆类型产地车价预订单号图1-7车型信息E-R图车型代码:车型代码车辆类型车辆类型车身颜色车身颜色车型信息车型信息产地厂商编号产地厂商编号车价车价图1图1-8关系模式将E-R模型转换为关系模型本系统中的实体有:库存,车型,厂商,客户,操作员本系统中的关系有:入库,销售,生产,采购各实体的关系模型为:厂商信息(厂商编号,厂商名称,联系,通信地址,入库日期)客户信息(客户编号,客户名称,组织机构,联系,公司行业,通信地址,入档日期)车型信息(车型代码,厂商编号,车辆类型,车身颜色,产地,进货指导价,备注,订单号,出厂日期,制单员,入库日期,车价)操作员管理(操作员编号,操作员姓名,操作员密码,操作员权限)各关系转化为关系模式为:销售(销售单号,客户编号,车型代码,客户名称,车辆类型,产地,成交价,制单员,销售日期)入库(入库单号,厂商编号,车型代码,厂商名称,车辆类型,产地,出厂日期,进价,制单员,入库日期)采购(采购订单号,厂商编号,车型代码,厂商名称,联系,通信地址,车辆类型,产地,采购单价,制单员,采购日期)为了使关系模型到达3NF,要把个关系模型中主属性对码的局部和函数依赖消除,对上述模式要改写成:销售(销售单号,客户编码,车型代码)入库(入库单号,厂商编号,车型代码,制单员,入库日期)采购(采购订单号,厂商编号,车型代码,采购单价,制单员,采购日期)数据表厂商信息表:表中有厂商编号〔char(10)〕,厂商名称〔char(20)〕,联系〔char(20)〕,通信地址〔char20〕〕,入库日期〔smalldatetime(4)〕,记录了汽车厂商的根本信息,其中主健为〔厂商编号〕。客户信息:表中有客户编号〔char10〕,客户名称〔char10〕,组织机构〔char10〕,联系〔char(10),公司行业〔char(20)〕,通信地址〔char(20)〕,入档日期〔smalldatetime(4)〕,其中主健为客户编号。操作员管理:表中记录的是对系统操作的人员,其中主键是操作员编号车型信息:表中有车型代码〔char(10)〕,厂商编号〔char(10)〕,车辆类型〔char(10)〕,车身类颜色〔char(10)〕,产地(char(20)),进货指导价(char(20)),备注(char(10)),订单号(char(10)),出厂日期〔smalldatetime(4)〕,制单员〔char(10)〕,入库日期〔smalldatetime(4)〕,车价〔char(20)〕,其中主键为车型代码,外键为厂商编号。销售表:表中包括销售单号(char(10)),客户编号(char(10)),客户名称(char(10)),车型代码(char(10)),车辆类型(char(10)),产地(char(20)),车价(char(20)),制单员(char(10)),销售日期(smalldatetime(4)),主键为销售单号,外键为客户编号,车型代码采购表:表中包括:采购订单号(varchar(50)),厂商编号(char(10)),厂商名称(char(10)),联系(char(10)),通信地址(char(10)),车型代码(char(10)),车辆类型(char(10)),产地(char(10)),采购单价(char),制单员(char(10)),采购日期(smalldatetime(4)),主键为采购订单号,外键为厂商编号,车型代码.入库表:表中包括:入库单号(char(10)),厂商编号(char(10)),厂商名称(char(10)),车型代码(char(10)),车辆类型(char(10)),产地(char(20)),出厂日期(smalldatetime(4)),进价(char(20)),制单员(char(10)),入库日期(smalldatetime(4)),主键为入库单号,外键为厂商编号,车型代码。库存表:表中包括:入库单号(char(10)),厂商编号(char(10)),厂商名称(char(10)),车型代码(char(10)),车辆类型(char(10)),产地(char(20)),出厂日期(smalldatetime(4)),进价(char(20)),制单员(char(10)),入库日期(smalldatetime(4)),车身颜色(char(10)),订单号(char(10)),主键为入库单号,外键为厂商编号,车型代码。3.系统实施在SQL2000中新建数据库qcxsglxt,并建立上面逻辑结构设计完成的表,要表达各种表的关系约束等.建立数据源的连接:在控制面板->性能维护->管理工具->数据源(ODBC)->系统DSN->添加->SQLServer,起个名字,然后选择效劳器,你要连的数据库,然后点测试连接,成功后就可以进行PB的设计了.新建一个工作区,新建一个Application,然后进行与数据库的连接.如:图1-10右击属性选择数据库,然后把Preview中的代码复制到Application的open事件中去,代码如下://Profileqcxsglxt//ProfileqcxsglxtSQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString='DSN=qcxsglxt;UID=;PWD='"④建立菜单:m_menu,方法:new->PbObject->menu如图1-11图1-11⑤建立数据窗口图1-12图1-13操作员数据窗口图1-14厂商数据窗口图1-15车型信息数据窗口⑥建立窗口:用来把数据窗口挂入,还有通过参加控件用程序来实现系统的各种查询修改功能.方法:new->PbObject->window翻开窗口,进行设计实现功能,如图1-16图1-16车型信息窗口图1-17客户,操作员选择登陆窗口图1-18车辆入库查询窗口图1-19车辆销售管理窗口图1-20厂商信息添加图1-21操作员增删用户登陆窗口图1-22客户信息查询窗口图1-23菜单挂的窗口图1-24操作员增加删除修改界面图1-25操作员,客户选择登陆图1-26操作员登陆窗口图1-27厂商信息查询运行窗口图1-28车辆销售情况一览表图1-29一级操作员修改其他用户图1-30增加操作员运行窗口系统个局部代码:①w_choose窗口各局部代码ddlb_1的Item中写入:操作员,客户确定按钮(cb_1)代码:stringxuanzexuanze=trim(ddlb_1.text)ifxuanze="操作员"then open(w_login) close(parent)else open(w_menu) m_menu.m_根底信息管理.m_车型信息.enabled=true m_menu.m_退出系统.enabled=false m_menu.m_系统管理.m_操作员管理.enabled=false m_menu.m_系统管理.m_权限设置.enabled=false m_menu.m_进货管理.m_车辆采购.enabled=false m_menu.m_进货管理.m_车辆入库.enabled=false m_menu.m_销售管理.enabled=false m_menu.m_销售管理.m_车辆销售.enabled=false m_menu.m_仓库管理.m_库存车辆.enabled=false m_menu.m_根底信息管理.m_厂商信息.enabled=false m_menu.m_根底信息管理.m_客户信息.enabled=false close(parent)endif退出按钮(cb_2)代码:close(parent)②操作员选择登陆窗口各局部代码open窗口代码:stringczy1,czy2,czybh2,czyjb2,pwd2czy2="xiaotong"czybh2="0001"czyjb2="1"pwd2="xiaotong"select操作员姓名into:czy1from操作员管理;ifczy1=""theninsertinto操作员管理(操作员编号,操作员级别,操作员姓名,操作员密码)values(:czybh2,:czyjb2,:czy2,:pwd2);endifstringczy100declarecursor1cursorforselectdistinct操作员姓名from操作员管理;opencursor1;fetchcursor1into:czy100;dowhilesqlca.sqlcode=0ddlb_1.additem(czy100)fetchcursor1into:czy100;loopclosecursor1;p_1.picturename="E:\pb设计\汽车销售\小人.bmp"ddlb_1.setfocus()ddlb_1下拉框的代码:sle_1.setfocus()确定按钮://登录窗口w_login的“确定〞按钮的clicked()事件,判断密码是否正确,正确那么进入主窗体stringczy99,pwd99,czy100,pwd100,pwd200czy99=trim(ddlb_1.text)pwd99=trim(sle_1.text)ifczy99=""thenmessagebox("","请选择操作员!")elseifpwd99=""thenmessagebox("","请输入密码!")sle_1.setfocus()elseselect操作员密码into:pwd100from操作员管理where操作员姓名=:czy99;pwd200=trim(pwd100)ifpwd200=pwd99thenczyvar=trim(czy99)open(w_menu)close(parent)elsemessagebox("","密码有误!")sle_1.text=""sle_1.setfocus()endifendifendif③open窗口代码://窗口w_csxx的open()事件,连接数据库,检索数据//连接数据库dw_1.settransobject(sqlca)dw_1.retrieve()//检索数据④w_csxxtj窗口添加(cb_1)按钮事件代码:sle_1.enabled=truesle_2.enabled=truesle_3.enabled=trueem_1.enabled=trueem_2.enabled=truesle_1.text=""sle_2.text=""sle_3.text=""em_1.text=""em_2.text=""cb_1.enabled=falsecb_2.enabled=trueem_2.text=string(today())保存(cb_2)按钮:sle_1.enabled=falsesle_2.enabled=falsesle_3.enabled=falseem_1.enabled=falseem_2.enabled=falsecb_2.enabled=falsecb_1.enabled=truestringcsbh,csmc,lxdh,rkrq,txdz,csbh1realyfkje,yufkje,sjjeyfkje=0yufkje=0sjje=0csbh=trim(sle_1.text)csmc=trim(sle_2.text)txdz=trim(sle_3.text)lxdh=trim(em_1.text)rkrq=trim(em_2.text)select厂商编号into:csbhfrom厂商信息表where厂商编号=:csbhor厂商名称=:csmc;ifcsbh1=""thenifcsbh=""orcsmc=""ortxdz=""orlxdh=""thenmessagebox("","输入信息不全!") elseinsertinto厂商信息表(厂商编号,厂商名称,联系,通信地址,入档日期)values(:csbh,:csmc,:lxdh,:txdz,:rkrq);messagebox("","保存成功!")endifelsemessagebox("","库中已有该厂商信息!") endif⑤w_clxs窗口open事件://窗口w_clxs的open()事件,连接数据库检索数据//连接数据库dw_1.settransobject(sqlca)//检索数据dw_1.retrieve()em_1的显示方式为:yyyy-mm-dddw_1导入的是数据窗口:d_clxs"开始"按钮的代码:stringxsrq,sqlsql="select销售单号,客户编号,客户名称,车型代码,车辆类型,产地,车价,制单员,销售日期from销售表where销售日期='"+xsrq+"'"dw_1.setsqlselect(sql)//在当前行前面以手形显示dw_1.setrowfocusindicator(hand!)dw_1.retrieve()"退出"按钮代码:close(parent如图1-⑥w_zengjiashanchu的open事件代码:open(w_czygl)cb_1的代码://窗口w_zengjiashanchu的标有下一条标记“>>〞按钮的clicked()事件,用来显示下一条记录stringczybh1select操作员编号into:czybh1from操作员管理;ifczybh1=""thenelse//向下移动一条记录dw_1.scrollnextrow()introwrow=dw_1.getrow()stringczybh,czyjb,czy,pwdczybh=dw_1.getitemstring(row,1)czyjb=dw_1.getitemstring(row,4)czy=dw_1.getitemstring(row,2)pwd=dw_1.getitemstring(row,3)em_1.text=czybhsle_1.text=czyjbsle_2.text=czysle_3.text=pwdendifcb_2代码://窗口w_zengjiashanchu的标有上一条标记“<<〞按钮的clicked()事件,用来显示上一条记录stringczybh1select操作员编号into:czybh1from操作员管理;ifczybh1=""then else//向上移动一条记录dw_1.scrollpriorrow()introwrow=dw_1.getrow()stringczybh,czyjb,czy,pwdczybh=dw_1.getitemstring(row,1)czyjb=dw_1.getitemstring(row,4)czy=dw_1.getitemstring(row,2)pwd=dw_1.getitemstring(row,3)em_1.text=czybhsle_1.text=czyjbsle_2.text=czysle_3.text=pwdendifcb_3"增加"按钮代码://窗口zsyh_win的“添加〞按钮的clicked()事件,添加新用户,并自动生成操作员编号intczybh,a//得到记录总数selectcount(*)into:czybhfrom操作员管理;//记录总数加1给aa=czybh+1intczybh4//利用游标检索编号declarecursor1cursorforselect操作员编号from操作员管理;//翻开游标opencursor1;//执行游标赋值给变量czybh4fetchcursor1into:czybh4;//如果检索成功进行循环dowhilesqlca.sqlcode=0//假设czybh4等于a,那么把a加1赋值给aifczybh4=athena=a+1endiffetchcursor1into:czybh4;loop//关闭游标closecursor1;//把a转换成字符型赋值给掩码框em_1.text=string(a)sle_1.text=string(2)em_1.enabled=falsesle_1.enabled=falsecb_3.enabled=falsecb_4.enabled=truesle_2.text=""sle_3.text=""cb_4"保存"按钮的代码://窗口zsyh_win的“保存〞按钮的clicked()事件,保存新添加的用户信息stringczy,pwd,czybh,czyjb1czybh=trim(em_1.text)czy=trim(sle_2.text)czyjb1=trim(sle_1.text)pwd=trim(sle_3.text)ifczy=""orpwd=""then//判断操作员和密码是否为空,假设为空提示保存失败messagebox("","保存失败!")else//假设操作员和密码不为空提示保存成功insertinto操作员管理(操作员编号,操作员级别,操作员姓名,操作员密码)values(:czybh,:czyjb1,:czy,:pwd);messagebox("","保存成功!")cb_6.enabled=falsecb_5.enabled=truesle_2.text=""sle_3.text=""endifdw_1.settransobject(sqlca)dw_1.retrieve()cb_5"取消"按钮代码://窗口zsyh_win的“取消〞按钮的clicked()事件,取消尚未保存的操作em_1.text=""sle_1.text=""sle_2.text=""sle_3.text=""cb_5.enabled=truecb_3.enabled=truecb_6.enabled=falsecb_6"删除"代码://窗口zsyh_win的“删除〞按钮的clicked()事件,删除当前记

温馨提示

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

评论

0/150

提交评论