数据库课程设计报告-手机进销存管理系统.doc_第1页
数据库课程设计报告-手机进销存管理系统.doc_第2页
数据库课程设计报告-手机进销存管理系统.doc_第3页
数据库课程设计报告-手机进销存管理系统.doc_第4页
数据库课程设计报告-手机进销存管理系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

告 手机进销存管理系统 软件学院 软件工程专业 姓名: 学号: 任课教师: 实验教师: 目 录一、系统开发平台1二、数据库规划22.1 任务陈述22.2 任务目标2三、系统定义23.1 系统边界23.2 用户视图2四、需求分析24.1 用户需求说明24.1.1 数据需求24.1.2 事务需求24.2 系统需求说明2五、数据库逻辑设计25.1 er图25.2 数据字典25.3 关系表2六、数据库物理设计36.1 索引36.2 视图36.3 安全机制36.4 其他3七、应用程序设计37.1 功能模块37.2 界面设计37.3 事务设计3八、测试和运行3九、总结4附. 参考文献4i一、系统开发平台题目:手机进销存管理系统开发工具:eclipse,sql server 2008数据库:sql server 2008操作系统:windows7二、数据库规划2.1 任务陈述进销存管理系统是流程较为完整的中小型商业企业信息管理系统,包括企业的客户信息、供应商信息、银行资料信息、采购管理、销售管理、库房管理、报表管理、应收应付、报表统计、利润统计和异常处理一等一系列企业业务全方位的解决方案。手机进销存管理系统是主要针对销售手机的中小企业的信息管理系统,主要包括手机的库存信息,出库、入库,手机销售,售后服务, 手机调价,供应商信息,各种数据的记录、查询等的解决方案。软件主要针对手机销售过程中所涉及的不同阶段分不同的功能板块进行设计,满足手机信息管理所需的数据的各种查询、增加、删除、更新等操作,方便用户使用,为用户提供所需的手机库存、销售等方面的各种信息,实现对手机进销存的管理。2.2 任务目标添加供应商提供的手机品牌信息按入库日期、手机品牌或型号、供应商、手机串号查询有关库存手机信息添加有关手机入库信息按手机串号、品牌或型号、供应商添加出库手机信息按手机品牌或型号、供应商、手机串号查询有关出库手机信息添加手机销售信息按销售日期、品牌或型号、供应商、手机串号查询销售手机信息添加手机换机信息添加手机退机信息查询手机销售排行信息添加更新手机售后信息按品牌或型号、手机串号查询已修手机售后信息查询未修手机售后信息添加手机调价信息按品牌或型号查询手机调价信息添加新用户修改用户密码信息按串号查询手机状态信息添加手机结款信息查询手机结款信息顾客供应商三、系统定义购买手机供应手机3.1 系统边界手机退机、换机库存手机手机入库销售记录手机销售售后记录售后登记出库记录手机出库调价记录登录用户库存查询售后查询调价查询出库查询查询售后结款记录库存结款已售结款结款查询3.2 用户视图 普通用户:1.添加供应商供应的手机品牌信息2.查询手机销售排行信息3.查询库存手机信息4.添加入库手机信息5.添加出库手机信息6.查询出库手机记录7.添加销售手机信息8.录入销售换机信息9.录入销售退机信息10.查询销售记录11.登记售后手机信息12.添加售后取机信息13.查询售后手机记录14.添加手机调价信息15.查询手机调价记录16.查询手机状态信息17.录入手机结款信息18.查询手机结款信息19.修改用户密码管理员:除了具有与普通用户相同的权限外,管理员可以新增普通用户四、需求分析4.1 用户需求说明4.1.1 数据需求品牌信息:供应商,品牌手机信息:串号,品牌,型号,颜色,结款状态,备注机型信息:品牌,型号,键/触,机型,进价入库信息:串号,入库日期出库信息:串号,出库日期销售信息:串号,售价,销售日期换机信息:卖机串号,换机串号,换机价格退机信息:退机串号售后信息:售后机串号,故障售后取机信息:取机串号调价信息:品牌,型号,调后价格结款信息:串号,结款日期4.1.2 事务需求查询销售量最多的十五部手机按品牌、价格、键/触、机型查询符合组合条件的所有库存手机信息添加一部准备入库的手机信息提交插入所有准备入库的手机信息按串号添加一部准备出库的手机信息按品牌或型号添加多部准备出库的手机信息按供应商添加多部准备出库的手机信息提交删除所有准备出库的手机信息,同时添加相应的所有的出库信息按品牌或型号查询所有的出库记录按日期查询所有的出库记录按串号查询一部手机的出库记录添加一部准备销售的手机信息提交多部准备销售的手机信息添加一部准备换机的手机信息和一部换机的手机信息提交一部换机手机信息添加一部准备退机的手机信息提交一部准备退机的手机信息按日期、品牌、型号、供应商查询符合组合条件的销售记录信息按串号查询一部手机的销售记录信息添加登记一部手机的售后信息提交一部手机的售后信息添加一部手机的售后取机信息提交一部手机的售后取机信息查询所有售后待修手机的信息查询所有售后已修手机的信息添加一种机型的手机调价信息提交一种机型的手机调价信息查询手机调价记录添加一种品牌的供应商名称添加一部将要结款的手机信息提交所有准备结款的手机信息查询手机结款记录修改一位用户的密码信息创建一位新的用户查询一部手机的手机状态信息4.2 系统需求说明 1) 软件环境软件环境需支持windows操作系统,sql server数据库2) 初始数据库大小大约有500部库存手机大约有500种不同品牌和型号的机型信息大约有10家供应商提供不同品牌的手机至少有一名普通用户和一名管理员其它初始信息可为零3) 数据库增长速度平均每天销售3-10部手机平均每月有50部手机入库平均每月有2-5部手机售后平均每月有10-20部手机出库平均每月有1-3部手机退机平均每月有1-5部手机换机平均每月有 1-10部手机调价平均每月有30-50部手机结款4) 记录查找的类型和平均数量查询库存手机信息 每天大约20次查询出库记录 每天大约5-10次查询销售记录 每天大约20-30次查询调价记录 每天大约3-10次查询结款记录 每天大约5-10次查询销售排行 每天大约3-5次查询手机状态 每天大约30-50次5) 性能单个记录查询时间少于一秒多个记录查询时间少于三秒添加、删除、更新记录时间少于五秒五、数据库逻辑设计5.1 er图品牌型号颜色所有手机结款状态库存手机串号入库日期供应商出库记录销售记录结款记录售后记录机型调价记录品牌型号调价日期品牌型号键/触机型进价备注串号出库日期串号售价销售日期入库日期入库日期串号登记日期故障维修状态调前调后串号结款日期入库结款销售售后结款出库属性调价机型机型机型机型机型串号5.2 数据字典1.实体和联系属性所有手机 allmobile:串号num 品牌brand 型号model 颜色color 结款状态paystate 备注remark供应品牌 supplybrand:供应商 supplyer 品牌 brand机型 mobilemodel:品牌 brand 型号 model 键/触 keytouch 机型 tool 进价 pricein手机入库 storage: 串号 num 入库日期 instoragedate手机出库 outstorage:串号 num 出库日期 outstoragedate 入库日期 instoragedate手机销售 sell: 串号 num 售价sellprice 销售日期 selldate 入库日期 instoragedate售后服务 aftersell: 串号 num 登记日期 checkdate 故障 faulty 维修状态 repairstate手机调价 chprice: 品牌 brand 型号 model 调价日期 chpricedate 调前 beforech 调后 afterch手机结款 payment: 串号 num 结款日期 paystate 用户 account: 用户名 username 密码 psw实体属性类型及大小空accountusernamevarchar(20)not nullpswvarchar(15)not null allmobile num varchar(15) not null brand varchar(10) model varchar(10) color varchar(10) paystate varchar(10) remark varchar(10) chprice brand varchar(10) model varchar(10) chpricedate date beforech int afterch int 2.属性描述实体属性类型及大小空mobilemodelbrandvarchar(10)not nullmodelvarchar(10)not nullkeytouchvarchar(10)toolvarchar(10)priceinint outstorage num varchar(15) not null outstoragedate date instoragedate date paymentdate num varchar(15) paydate date sell num varchar(15) sellprice int selldate date instoragedate date sellservice num varchar(15) checkdate date fault varchar(30) repairstate varchar(10) storage num varchar(10) instoragedate date supplybrand suplyer varchar(10) brand varchar(10) 5.3 关系表六、数据库物理设计6.1 索引objectnameobjecteidindexnameindexedaveragefreebytesallmobile165575628pk_allmobil_df908d650bc6c43e17511supplybrand29357608408023.5storage30957614108077outstorage35757631207986sell38957642607912sellservice42157654008034mobilemodel501576825pk_mobilemo_11841f0f1fcdbceb17734chprice59757716708018paymentdate629577281pk_paymentd_df908d65276edeb318039account709577566pk_account_f3dbc5732c3393d018044sysdiagrams789577851pk_sysdiagr_c2b05b6130f848ed10sysdiagrams789577851uk_principal_name206.2 视图本节可选。6.3 安全机制系统安全、数据安全1.系统安全为用户设置登录密码,登录时必须经过验证才可进入系统。 设有管理员,只有管理员可以新建用户。 所有用户名和密码均存在数据库中,不可擅自修改,需要验证后才可以修改密码。2.数据安全 对于手机出库、入库、销售、售后、结款等重要的插入删除等操作均设有列表,首先将数据添加到列表中,然后进行二次确认才会进行提交。 对于入库、出库、销售等操作均排除对空数据、重复的数据、错误的数据进行插入删除查询操作。 对于空查询结果,错误查询结果均有提示。对于重要的数据需要输入相应手机串号后进行操作。6.4 其他本节可选:引入受控冗余等。由于进行手机销售,查看销售记录,手机出库,查看出库记录,手机售后,手机调价以及与供应商进行结款时都需要查看手机入库时间,因此为了避免大量的表之间的连接操作,这些表中均加入了入库时间这一列,以使查询效率更高。七、应用程序设计7.1 功能模块1.主界面查询 主界面分为两块查询,为销售排行和机型推荐。销售排行列出销售量最大的15部手机。机型推荐可对手机从品牌、价格、键/触、机型几个方面进行查询。2.库存查询 从品牌、型号、供应商、串号、入库日期等几个方面对库存手机进行查询3.手机出/入库 分为手机入库,手机出库和出库记录三个方面。主要实现手机出入库,以及对出库信息的查询。4.手机销售 分为手机销售,销售换机,销售退机,销售查询几个方面。实现手机销售操作,销售后可以进行换机、退机操作,以及查询销售记录。5.手机售后 分为售后登记、售后取机,以及查询售后记录。实现手机售后方面的功能6.手机调价 分为手机调价和查询调价记录。实现手机调价方面的功能。7.品牌添加 可以进行手机品牌的添加以及与之对应的供应商的名称。8.供应商结款 分为库存手机结款,已售手机结款,和查询借款记录。9.串号追踪 主要查询手机状态,查询某串号的手机在库存还是已售,或者是已出库。10账户保护 用户可以修改密码,管理员可以新建用户。7.2 界面设计可抓几幅画面介绍。1. 登陆界面 2.主界面主界面分为功能表和查询两块,功能表包括程序的所有基本功能,查询分为销售排行查询和机型查询,这两个查询是常用查询与各功能模块并不相关,所以设在了主界面。2. 品牌添加3. 库存手机这个界面设计时没有考虑到用户查询的方便性,而且几个查询组建位置设置不太好,需要进一步改进。4. 手机出/入库5.手机销售6.手机售后8.手机调价9.账户保护 10.供应商结款11.串号追踪7.3 事务设计关键或复杂的事务操作的设计,可附相应sql语句进行分析介绍。1.查询销售排行 查询销售排行对于用户及时掌握销售信息,促进手机销售有很重要的作用。包括两条主要查询语句:r=c.executequery(select count(distinct model) from allmobile where exists (select * from sell where allmobile.num=sell.num);r.next();totlenumber=integer.parseint(r.getstring(1);if(totlenumber=0)joptionpane.showmessagedialog(null, 暂无销售记录!);return;r=c.executequery(select p.brand,p.model,q.keytouch,q.tool,count(*) as number from allmobile as p,mobilemodel as q where p.brand=q.brand and p.model=q.model and exists(select * from sell where p.num=sell.num) group by p.brand,p.model,q.keytouch,q.tool order by count(*) desc); 其中第一条语句查询已销售的总的手机型号数,以确保有已售手机并正确显示;第二条语句为了避免多个表的连接操作,使用了exist语句,查询出销售排行。2.销售换机 销售换机分别涉及到两个表的插入和删除操作,需将已售机从销售记录中删除,插入到库存手机记录中,并将要换手机从库存中删除,插入到销售记录中: c=connection.getconnection().createstatement();c.executeupdate(delete from sell where num=+num1+);c.executeupdate(insert into storage(num,instoragedate) values(+num1+,+eindate1+); c.executeupdate(delete from storage where num=+num2+);c.executeupdate(insert into sell(num,sellprice,selldate,instoragedate) values(+num2+,+esellprice+,+eselldate+,+eindate2+);四条语句分别进行相应的插入删除操作,如果抛出异常,将进行回滚,保证数据的一致性。3.多次添加,一次提交 对于手机入库,出库,销售,结款等常用操作,特别是手机的大批量入库,为了避免每部手机均要进行提交的麻烦,程序首先将用户输入或通过查询得到的数据显示在表格中,待用户确认后,可一起进行提交,这样就方便了用户的操作。 /首先将数据显示在表格中 s = connection1.getconnection().createstatement();r=s.executequery(select * from mobilemodel where brand=+inbrandstr+ and model=+inmodelstr+);if(!r.next() s.executeupdate(insert into mobilemodel(brand,model,keytouch,tool,pricein) values(+inbrandstr+,+inmodelstr+,+inkeytouchstr+,+intoolstr+,+pri cein+);r.close();mobile0=(string) brandb.getselecteditem();mobile1=(string) modelb.getselecteditem();mobile2=numf.gettext();mobile3=(string)keytouchb.getselecteditem();mobile4=(string)toolb.getselecteditem();mobile5=(string) colourb.getselecteditem();mobile6=pricef.gettext();mobile7=(string) stateb.getselecteditem();mobile8=remarkf.gettext();for(int i=0;i9;i+) instoragetable.setvalueat(mobilei, number, i);number+;/将表中数据一起提交for(int s=0;snumber;s+) submitinstr0=(string) instoragetable.getvalueat(s,0); submitinstr1=(string) instoragetable.getvalueat(s,1); submitinstr2=(string) instoragetable.getvalueat(s,2); submitinstr3=(string) instoragetable.getvalueat(s,5); submitinstr4=(string) instoragetable.getvalueat(s,7); submitinstr5=(string) instoragetable.getvalueat(s,8); try si= connection1.getconnection().createstatement();si.executeupdate(insert into allmobile (num, brand, model, color, paystate,remark)values(+submitinstr2+,+submitinstr0+,+submitinstr1+,+submitinstr3+,+submitinstr4+,+submitinstr5+);si.executeupdate(insert into storage(num,instoragedate) values(+submitinstr2+,+yearstr+-+monthstr+-+daystr+); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace(); 八、测试和运行介绍系统的测试情况,可提供几个测试用例。可选:生成大数据量的仿真数据,进行性能测试的情况。通过不同的错误输入,漏输测试各个部分是否给出准确提示,检测系统漏洞,并且不断完善,增强系统的健壮性。同时在几名同学的帮助下,首先向他们讲述了系统需求和所需操作方法;然后请他们使用该系统,测试尽可能多的情况;最后根据同学的测试感受主要对系统提示方式和内容方面做出了改进。九、总结经验体会;系统的特色、不足(可继续完善的方面)。编写本系统是从暑假开始,共用了一个多月的时间完成,从需求的分析到功能的设置,以及数据库的设计和界面的设计,到编码,中间发现了许多问题,也收获了一些编程的经验,虽然有不少的错误和失误的地方,但最终完成了整个系统。从中感受到了编写一个完整系统所需的步骤,也了解到了自己编程方面的不足,对于以后的变成很有帮助。刚开始的时候以为一个手机进销存的系统编写起来会很容易,但要入手

温馨提示

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

评论

0/150

提交评论