数据库课程设计报告手机进销存Word文档格式.docx

上传人:b****7 文档编号:22947139 上传时间:2023-02-06 格式:DOCX 页数:31 大小:1.09MB
下载 相关 举报
数据库课程设计报告手机进销存Word文档格式.docx_第1页
第1页 / 共31页
数据库课程设计报告手机进销存Word文档格式.docx_第2页
第2页 / 共31页
数据库课程设计报告手机进销存Word文档格式.docx_第3页
第3页 / 共31页
数据库课程设计报告手机进销存Word文档格式.docx_第4页
第4页 / 共31页
数据库课程设计报告手机进销存Word文档格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据库课程设计报告手机进销存Word文档格式.docx

《数据库课程设计报告手机进销存Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告手机进销存Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。

数据库课程设计报告手机进销存Word文档格式.docx

供应手机

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操作系统,sqlserver数据库

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.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

实体

属性

类型及大小

Account

Username

Varchar(20)

Notnull

Psw

Varchar(15)

Allmobile

Num

Varchar(15)

Notnull

brand

Varchar(10)

model

color

paystate

remark

chprice

chpricedate

date

beforech

int

afterch

2.属性描述

Mobilemodel

Brand

Varchar(10)

Model

Keytouch

Tool

Pricein

Int

Outstorage

Num

Outstoragedate

Date

Instoragedate

Paymentdate

Paydate

Sell

Sellprice

Int

Selldate

Sellservice

Checkdate

Fault

Varchar(30)

Repairstate

Storage

Supplybrand

Suplyer

Brand

5.3关系表

六、数据库物理设计

6.1索引

Objectname

ObjecteId

Indexname

Indexed

Averagefreebytes

allmobile

165575628

PK__allmobil__DF908D650BC6C43E

1

7511

supplybrand

293576084

8023.5

storage

309576141

8077

outstorage

357576312

7986

sell

389576426

7912

sellservice

421576540

8034

mobilemodel

501576825

PK__mobilemo__11841F0F1FCDBCEB

7734

chprice

597577167

8018

paymentdate

629577281

PK__paymentd__DF908D65276EDEB3

8039

account

709577566

PK__account__F3DBC5732C3393D0

8044

sysdiagrams

789577851

PK__sysdiagr__C2B05B6130F848ED

UK_principal_name

2

6.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("

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+"

'

insertintostorage(num,instoragedate)values('

'

+eindate1+"

)"

c.executeUpdate("

deletefromstoragewherenum='

+num2+"

insertintosell(num,sellprice,selldate,instoragedate)values('

"

+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('

+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]+"

+yearstr+"

-"

+monthstr+"

+daystr+"

}catch(SQLExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}

八、测试和运行

介绍系统的测试情况,可提供几个测试用例。

可选:

生成大数据量的仿真数据,进行性能测试的情况。

通过不同的错误输入,漏输测试各个部分是否给出准确提示,检测系统漏洞,并且不断完善,增强系统的健壮性。

同时在几名同学的帮助下,首先向他们讲述了系统需求和所需操作方法;

然后请他们使用该系统,测试尽可能多的情况;

最后根据同学的测试感受主要对系统提示方式和内容方面做出了改进。

九、总结

经验体会;

系统的特色、不足(可继续完善的方面)。

编写本系统是从暑假开始,共用了一个多月的时间完成,从需求的分析到功能的设置,以及数据库的设计和界面的设计,到编码,中间发现了许多问题,也收获了一些编程的经验,虽然有不少的错误和失误的地方,但最终完成了整个系统。

从中感受到了编写一个完整系统所需的步骤,也了解到了自己编程方面的不足,对于以后的变成很有帮助。

刚开始的时候以为一个手机进销存的系统编写起来会很容易,但要入手的时候才会感受到各个方面需要学习和注意的地方有很多。

首先就感受到了需求分析的重要性。

一开始不进行需求分析就有种无从下手的感觉,不能够很清晰的知道手机入库、出库、销售各个功能模块所需实现的功能,特别是一些细节的实现。

而需求分析以后,不仅各个功能的实现清晰了,数据库中所要建立的表格也很清楚。

其次就是软件设计过程中应该注意的软件的健壮性问题,特别是对于重要数据的插入、删除、更新操作必须非常慎重,而且要检查数据的正确性、一致性,这对于整个系统至关重要,只有保证数据的正确才能使用户得到有用的信息,否则整个软件是没有意义的。

还有就是对于数据库事务的概念有了体会,对于一些插入删除操作必须建立事务的概念,在对数据库操作失败时,应该及时回滚。

系统的特色是功能的设置考虑的比较全面,对于手机运营过程中所涉及的操作基本都有实现,所以用户操作起来会更

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

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1