数据库课程设计报告手机进销存_第1页
数据库课程设计报告手机进销存_第2页
数据库课程设计报告手机进销存_第3页
数据库课程设计报告手机进销存_第4页
数据库课程设计报告手机进销存_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

年5月29日数据库课程设计报告手机进销存文档仅供参考告手机进销存管理系统软件学院软件工程专业姓名:学号:任课教师:实验教师: 目录一、系统开发平台 1二、数据库规划 22.1任务陈述 22.2任务目标 2三、系统定义 23.1系统边界 23.2用户视图 2四、需求分析 24.1用户需求说明 24.1.1数据需求 24.1.2事务需求 24.2系统需求说明 2五、数据库逻辑设计 25.1ER图 25.2数据字典 25.3关系表 2六、数据库物理设计 36.1索引 36.2视图 36.3安全机制 36.4其它 3七、应用程序设计 37.1功能模块 37.2界面设计 37.3事务设计 3八、测试和运行 3九、总结 4附.参考文献 4一、系统开发平台题目:手机进销存管理系统开发工具:Eclipse,sqlserver数据库:sqlserver操作系统: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系统需求说明软件环境软件环境需支持windows操作系统,sqlserver数据库初始数据库大小大约有500部库存手机大约有500种不同品牌和型号的机型信息大约有10家供应商提供不同品牌的手机至少有一名普通用户和一名管理员其它初始信息可为零数据库增长速度平均每天销售3-10部手机平均每月有50部手机入库平均每月有2-5部手机售后平均每月有10-20部手机出库平均每月有1-3部手机退机平均每月有1-5部手机换机平均每月有1-10部手机调价平均每月有30-50部手机结款记录查找的类型和平均数量查询库存手机信息每天大约20次查询出库记录每天大约5-10次查询销售记录每天大约20-30次查询调价记录每天大约3-10次查询结款记录每天大约5-10次查询销售排行每天大约3-5次查询手机状态每天大约30-50次性能单个记录查询时间少于一秒多个记录查询时间少于三秒添加、删除、更新记录时间少于五秒五、数据库逻辑设计5.1ER图品牌品牌型号颜色所有手机结款状态库存手机串号入库日期供应商出库记录销售记录结款记录售后记录机型调价记录品牌型号调价日期品牌型号键/触机型进价备注串号出库日期串号售价销售日期入库日期入库日期串号登记日期故障维修状态调前调后串号结款日期入库结款销售售后结款出库属性调价机型机型机型机型机型串号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)NotnullPswVarchar(15)NotnullAllmobileNumVarchar(15)NotnullbrandVarchar(10)modelVarchar(10)colorVarchar(10)paystateVarchar(10)remarkVarchar(10)chpricebrandVarchar(10)modelVarchar(10)chpricedatedatebeforechintafterchint2.属性描述实体属性类型及大小空MobilemodelBrandVarchar(10)NotnullModelVarchar(10)NotnullKeytouchVarchar(10)ToolVarchar(10)PriceinIntOutstorageNumVarchar(15)NotnullOutstoragedateDateInstoragedateDatePaymentdateNumVarchar(15)PaydateDateSellNumVarchar(15)SellpriceIntSelldateDateInstoragedateDateSellserviceNumVarchar(15)CheckdateDateFaultVarchar(30)RepairstateVarchar(10)StorageNumVarchar(10)InstoragedateDateSupplybrandSuplyerVarchar(10)BrandVarchar(10)5.3关系表六、数据库物理设计6.1索引ObjectnameObjecteIdIndexnameIndexedAveragefreebytesallmobilePK__allmobil__DF908D650BC6C43E17511supplybrand08023.5storage08077outstorage07986sell07912sellservice08034mobilemodelPK__mobilemo__11841F0F17734chprice08018paymentdatePK__paymentd__DF908D65276EDEB318039accountPK__account__F3DBC5732C3393D018044sysdiagramsPK__sysdiagr__C2B05B6130F848ED10sysdiagramsUK_principal_name206.2视图本节可选。6.3安全机制系统安全、数据安全1.系统安全为用户设置登录密码,登录时必须经过验证才可进入系统。设有管理员,只有管理员能够新建用户。所有用户名和密码均存在数据库中,不可擅自修改,需要验证后才能够修改密码。2.数据安全对于手机出库、入库、销售、售后、结款等重要的插入删除等操作均设有列表,首先将数据添加到列表中,然后进行二次确认才会进行提交。对于入库、出库、销售等操作均排除对空数据、重复的数据、错误的数据进行插入删除查询操作。对于空查询结果,错误查询结果均有提示。对于重要的数据需要输入相应手机串号后进行操作。6.4其它本节可选:引入受控冗余等。由于进行手机销售,查看销售记录,手机出库,查看出库记录,手机售后,手机调价以及与供应商进行结款时都需要查看手机入库时间,因此为了避免大量的表之间的连接操作,这些表中均加入了入库时间这一列,以使查询效率更高。七、应用程序设计7.1功能模块1.主界面查询主界面分为两块查询,为销售排行和机型推荐。销售排行列出销售量最大的15部手机。机型推荐可对手机从品牌、价格、键/触、机型几个方面进行查询。2.库存查询从品牌、型号、供应商、串号、入库日期等几个方面对库存手机进行查询3.手机出/入库分为手机入库,手机出库和出库记录三个方面。主要实现手机出入库,以及对出库信息的查询。4.手机销售分为手机销售,销售换机,销售退机,销售查询几个方面。实现手机销售操作,销售后能够进行换机、退机操作,以及查询销售记录。5.手机售后分为售后登记、售后取机,以及查询售后记录。实现手机售后方面的功能6.手机调价分为手机调价和查询调价记录。实现手机调价方面的功能。7.品牌添加能够进行手机品牌的添加以及与之对应的供应商的名称。8.供应商结款分为库存手机结款,已售手机结款,和查询借款记录。9.串号追踪主要查询手机状态,查询某串号的手机在库存还是已售,或者是已出库。10.账户保护用户能够修改密码,管理员能够新建用户。7.2界面设计可抓几幅画面介绍。登陆界面2.主界面主界面分为功能表和查询两块,功能表包括程序的所有基本功能,查询分为销售排行查询和机型查询,这两个查询是常见查询与各功能模块并不相关,因此设在了主界面。品牌添加库存手机这个界面设计时没有考虑到用户查询的方便性,而且几个查询组建位置设置不太好,需要进一步改进。手机出/入库5.手机销售6.手机售后8.手机调价9.账户保护10.供应商结款11.串号追踪7.3事务设计关键或复杂的事务操作的设计,可附相应SQL语句进行分析介绍。1.查询销售排行查询销售排行对于用户及时掌握销售信息,促进手机销售有很重要的作用。包括两条主要查询语句:r=c.executeQuery("selectCOUNT(distinctmodel)fromallmobilewhereexists(select*fromsellwhereallmobile.num=sell.num)"); r.next(); totlenumber=Integer.parseInt(r.getString(1)); if(totlenumber==0) { JOptionPane.showMessageDialog(null,"暂无销售记录!"); return; } r=c.executeQuery("selectp.brand,p.model,q.keytouch,q.tool,COUNT(*)asnumberfromallmobileasp,mobilemodelasqwherep.brand=q.brandandp.model=q.modelandexists(select*fromsellwherep.num=sell.num)groupbyp.brand,p.model,q.keytouch,q.toolorderbyCOUNT(*)desc");其中第一条语句查询已销售的总的手机型号数,以确保有已售手机并正确显示;第二条语句为了避免多个表的连接操作,使用了exist语句,查询出销售排行。2.销售换机销售换机分别涉及到两个表的插入和删除操作,需将已售机从销售记录中删除,插入到库存手机记录中,并将要换手机从库存中删除,插入到销售记录中:c=connection.getConnection().createStatement();c.executeUpdate("deletefromsellwherenum='"+num1+"'");c.executeUpdate("insertintostorage(num,instoragedate)values('"+num1+"','"+eindate1+"')");c.executeUpdate("deletefromstoragewherenum='"+num2+"'");c.executeUpdate("insertintosell(num,sellprice,selldate,instoragedate)values('"+num2+"',"+esellprice+",'"+eselldate+"','"+eindate2+"')");四条语句分别进行相应的插入删除操作,如果抛出异常,将进行回滚,保证数据的一致性。3.多次添加,一次提交对于手机入库,出库,销售,结款等常见操作,特别是手机的大批量入库,为了避免每部手机均要进行提交的麻烦,程序首先将用户输入或经过查询得到的数据显示在表格中,待用户确认后,可一起进行提交,这样就方便了用户的操作。//首先将数据显示在表格中s=connection1.getConnection().createStatement();r=s.executeQuery("select*frommobilemodelwherebrand='"+inbrandstr+"'"+"andmodel='"+inmodelstr+"'");if(!r.next()){ s.executeUpdate("insertintomobilemodel(brand,model,keytouch,tool,pricein)values('"+inbrandstr+"','"+inmodelstr+"','"+inkeytouchstr+"','"+intoolstr+"',"+pricein+")"); } r.close();mobile[0]=(String)brandb.getSelectedItem();mobile[1]=(String)modelb.getSelectedItem(); mobile[2]=numf.getText();mobile[3]=(String)keytouchb.getSelectedItem();mobile[4]=(String)toolb.getSelectedItem();mobile[5]=(String)colourb.getSelectedItem();mobile[6]=pricef.getText();mobile[7]=(String)stateb.getSelectedItem();mobile[8]=remarkf.getText();for(inti=0;i<9;i++){ instoragetable.setValueAt(mobile[i],number,i);}number++;//将表中数据一起提交for(ints=0;s<number;s++){submitinstr[0]=(String)instoragetable.getValueAt(s,0);submitinstr[1]=(String)instoragetable.getValueAt(s,1);submitinstr[2]=(String)instoragetable.getValueAt(s,2);submitinstr[3]=(String)instoragetable.getValueAt(s,5);submitinstr[4]=(String)instoragetable.getValueAt(s,7);submitinstr[5]=(String)instoragetable.getValueAt(s,8);try{ si=connection1.getConnection().createStatement();si.executeUpdate("insertintoallmobile(num,brand,model,color,paystate,remark)values('"+submitinstr[2]+"','"+submitinstr[0]+"','"+submitinstr[1]+"','"+submitinstr[3]+"','"+submitinstr[4]+"','"+submitinstr[5]+"')");si.executeUpdate("insertintostorage(num,instoragedate)values('"+submitinstr[2]+"','"+yearstr+"-"+monthstr+"-"+daystr+")"); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }八、测试和运行介绍系统的测试情况,可提供几个测试用例。可选:生成大数据量的仿真数据,进行性能测试的情况。经过不同的错误输入,漏输测试各个部分是否给出准确提示,检测系统漏洞,而且不断完善,增强系统的健壮性。同时在几名同学的帮助下,首先向她们讲述了系统需求和所需操作方法;然后请她们使用该系统,测试尽可能多的情况;最后根据同学的测试感受主要对系统提示方式和内容方面做出了改进。九、总结经验体会;系统的特色、不足(可继续完善的方面)。编写本系统是从暑假开始,共用了一个多月的时间完成,从需求的

温馨提示

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

评论

0/150

提交评论