版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计
期末课程设计报告
题目超市进销存管理系统
班级:13级信息安全班__________________
学号:_____________________
姓名:_____________________
成绩:_____________________
完成时间:2014年12月
目录
Notableolcontentsentrieslomrt.
一,需求分析
企业进销存管理系统的主要工作,是对企.业的进货、销售和库存以信息化的方式进行管理,最
大限度的减少各个环境中可能出现的错误,有效减少盲目采购,降低采购成本、合理控制库存、减
少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,替身企业市场竞
争力。针对经营管理中存在的问题,兰州华联超市对产品的进销存合理化提出了更高的要求。
通过实际调查,要求企业进销存管理系统具有以下功能。
♦界面设计美观大方,方便、快捷、操作灵活。
♦实现强大的进销存管理,包括基本信息、进货、销售和库存管理。
♦能够在不同的操作系统下运行,不局限于特定的平台。
♦提供数据库备份与恢复功能。
♦提供库存盘点功能。
♦提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。
二,分析与设计:
⑴功能模块划分:
本进销存管理系统划分为六人模块,分别为系统登陆模块,系统主窗体设计模块,进货单模块,
销售单模块,库存盘点模块和数据库备份与恢复模块,
⑵数据库结构描述:
企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息,本企业进销存管理系
统使用40^§数据库系统作为后台数据库,数据库名称为曲工加油於C28。其中包含了14张数据表、两
个视图。以下是系统主要涉及的六个数据库表:
1.供应商信息表:主要用于存储供应商详细信息,其结构如下表所示:
User表:
起user
user_id▼user_name▼password▼u_text▼第击以添加
|E|3金莉婷520默6管理员
]02root123root
*LLo
Handle表:
!安全誓告部分活动内宫已被禁用.单击此处了岭洋名信也启用内容
表@«
屈handlerecord
曲product.cancle
由productjnuser_time▼user_name▼handle_text■电击以添加,
I六22:09:38root
曲product.old.record
I六22:11:11root
斗product.outI六22:11:24admin
^3product_out_recordI六22:13:43admin
^9product.retum_l六22:13:53root
I六22:21:04root
Sproduct.scrap
I六22:21:17admin
™product.stockI六22:28:09admin
期scrap.recordI六22:28:14root
I六22:37:51root
留stuff,n
I六23:06:24admin
马stuff.old.recordI六23:06:50admin
9stuff_qu!tI六23:08:28root
曲stuff.rtock17;23:08:55root
I六23:11:18root
任user
I六23:12:18root
田yield.draw8:28:00ROOT
myiald_cff8:34:33ROOT
曲yield_scrap9:39:40root
9:46:46root
9:47:08root
Product%:
I安戈•分达加内FBWM?.・含此处了*曲即aw*=B
表
23hendle.record
113product.cjrcW
W
・
nproduct^-u«er_naBch^ndle_teit隼击以索加・
I/
23product.oH.rec<xd|?
uBproducl.e«l|/product」.|pr&toct_c♦Iprgucjn,or0mct」:■|pro4uct」i.prgicjv,iprgct」.I八ock_&t■pr»duct_t.I.
|^
S3product_o<_recofd|7>33peoduct.«n-D
|/>
S3product.rftum|74procMict.ID*IprMtet.cllent«|inodi>ct_na*e-Iproduct.fpec•pro4uct.(mlt-product.value«iprMiuctjuke«1stocK.<hte•pr<
33product.“r”|^隆erd«eerer34.OOrtyry06/6/6里期二33
|7>1
112321322342334erte56.00ve10/3/4星期四em
33product_rtock|
1233ase•erasdasd445.00se10/6/6ITOSaft
Z3»<r»P_reccrd•!,12334wer1212342¥67.00ree10/3/4星期四Jk
■'
日tMf.in尸12c432131122311231wrevqr21.00120/6/28星期一ere
一
33sMf.dd.recocdl32UIUIIUUY23.00UI0o/7/ii星期日on
443YUKLKYUTYTRE78.00PO10/9/8星期三UJ】
3ttvff.QuitIT4
1/1HJ12JKLIKJKSPEC89.00JK0/6/27宗即日KU
国Uuff.Ucck身qveqweseq,①①Q3QC9eq,Qg“678.00q»eq09/6/9至明二q”
母
国nngv^ng・ao8。23.00si9/9/30星期三sdt
柯
3jiekJ.drawveoewefsdsdsdsdfsdsdfssdfs23.OOsds0/7/10里期六Mds
,q23Qfdtr>r>we>e%500.003ds10/2/3至期三
aME
33
product.I-product_c,product_n-product.s-product_u:・product_v•products-stock.dat・product.t■电击以添加・
谢wedsdsd34345121sd)/7/7星期三dfer
32UIUIIUUY23UIU/7/11星期日UYU
443YUKLKYUTYTRE78PO)/9/8星期三UJI
veiwefvoieveifovevewsd123ew)/7/7星期三sds
veoevefsdsdsdsdfsdsdfssdfs23sds‘7/10星期六sds
vcwqcwervqeverqvvewqwerv56verv*7/10星期六sdss
VIDVI3232SDFSSDSDD34DSD)/7/3星期六123DF
vidvsswefsdsveesdsd45sd)/7/7星期三123
vleiwepsdveosvedosdwlsd34sd)/7/9星期五sds
*
0product_oW_reco*d
3product.outproduct-ID-product.:1:・product_naae-product_spe«•product.unit-product.valu-prodi>ct_Ba-stock_date・predict
■sdfssdfssdssdfs23sds10/7/9星明五123
Opcoduct_out_record
IDproduct.return
1/
马p€oduct_;crap1/
守producl.ftock-3
3tcraoreaxd
Stuff表:
13ncdRrecord
stuff.in-□X
13productqncbZ3
IBproductJnstuff.ID•$tuff_nai.stuff.coastuff.peo•cbeck-peo.•stuff.unl•stuff.val・stuff.spe・stuff.col•stuff_pla•stock-date・stul
■sdfdfsdfgdfgsadf23gddsfgsd”0/7/2星期五fsdf
13product.old.mcofd
HJHHJHIUFFDnt45FCWHC.0/7/10星期六CT
ZSprodoct.outvangveofBO>oeVOwoi34sdsowoiSCO)02/5/4星期六121
13prodoct_out_record
Yields:
stuffID・stuff-nan,stuffcoir・6tuffpe。・cbeckAeo:・stuffuni・stuffval・stuffspe,stuffcol・stuffpla・stockdat・stuff.d
yitid.off□
stuff_ID•stuff-na>•stuff.coM:-stuff.pe^:•check_peo-stuff_uni,stuff.val'•stuff.spc-stuff.col•stuff_pla・stock.dat•s
空表等待插入数据。
三,系统详细设计文档:
1.系统流程图:
⑴系统功能结构图:
,-
►
士
士--
H>
firirirrl£Tn1
联
访
密
退
商
匿
库
销
价
销
进
商
客
销
进
系
问
眄
肥
窗
品
售
伸
售
品
货
户
会
格
存
技
售
货
口
系
修
碑
术
查
退
井
管
管
退
查
调
单
单
盘
支
忖
统
改
货
理
行
理
询
货
拄
询
站
整
点
—
一I—
一
一.
1—1一-
⑵系统业务流程图:
[系分肾录)
-T商品管理I基本资料的增、
删、改、查等
----M他本资料I--T客户管理I
维护操作
2
-H供阍管理I
州忸货]理I______
华
联」,上」E-存盘点I
怀在?午州~~
进
销iLn价格调整।
存小售和理।
管也据昨备份与恢复
理
系—u系统维“I_________密码修改一
统
~小技术支持।H退出系统
・「其他।
・►(技术网站|
关于I
⑶系统中的主要类及功能:
iJlcm公共类:
Hem公共类是对数据表最常用的ID和name属性的封装,属于§wina列表,表格,下拉列表
框等组件的赋值。该类重写了的方法,在该方法中只输出name属性。但是在获取组件的
内容时,获取的是配m类的对象,从该对象中可以获取ID的属性,然后通过该属性到数据库中
获取唯一的数据。
2•数据模型公共类:
数据模型公共类对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中
各个模块甚至各个组件使用,数据模型是对数据表所有字段的封装,它是纯粹的模型类,他也要
重写10§1加的方法,另外还要重写侬Mode。方法和equalO方法。它主要用于存贮数据,并通过相
应的配tXXXO方法和§etXXXO实现不同属性的访问原则。
31tao公共类:
Dao类实现了数据库的驱动,连接,关闭和多个操作数据库的方法,Dao类不需要创建
对象,可以直接调用类中的所有数据库操作方法。Dao类自定义的主要方法有醐KhliUoflleinHenO
方法,主要是获取客户信息,方法的返回值是tKhlnfo的对象,及客户信息的数据模型。
配lGy§lii[o(岷mHem)方法,主要是获取供应商信息,返回值是Gyshilo类的对象,及供应商数据表
的模型对象。酸版Hemitem)方法,主要用于获取商品信息,返回值是WhKo类的对象,及商
品数据表的数据模型。gelLo^in(Stringname.Stringpa§§wonl)方法《主要适用于判断登录用户的用户
名与密码是否正确,返回值是boolean类型。]n§en§e川Moff於ellMalnsellMaln)方法,主要是添加销
售信息到数据库中。restoreOrBa€kup(String§ql)方法,此方法是设置数据库的模式为单用户连接模
式,这样可以避免数据库恢复或备份时失败。checKLo细领WuserMi都雌咽§沏方法,用于判断
登录用户与密码是否正确。
⑵各个模块实现方法描述:
1.系统登录模块
实现该模块的主要代码如下
packagesrc;
Import|ava.awt.Alpha(omposite;
Import|ava.awt.GradientPaint;
importjava.awt.Graphics;
import)ava.awt.Graphl€s2D;
importJava.awt.GridBagConsiralnls;
Importjava.awl.GridBagLayout;
importjava.awt.lmage;
importjava.awl.RenderingHints;
importjava.awl.Toolkil;
Import]ava.awt.event.AciionEvent;
Importjava.awt.event.AclionLislener;
import]ava.awt.event.KeyEvent;
Importjava.awl.evenl.KeyLislener;
importjavax.swing.J(omponenl;
iHportjavax.swing.JFrame;
importJavax.swingjOptionPane;
importjavax.swing.lllManager;
publicclassAddlser{
privatestaticOnalSiringlogoon-“添加用户”;
privatestaticOnalsiring配肌="添加”;
privatestaticfinalSiring加%"退出”;
privatestaticnnalStringuser="用户:n;
privatestaticnnalStringpassword="密码:;
privatestaticnnalString即/绢他片”再次输入密码:“;
privateiavax.swingjTextFielduserText=nnD;
privateiavax.swingjPasswordFielduserpwd=null;
privateiavax.swingjPasswordfleldenterpassword=mUl;
privateiavax.swingjPanelji=newjavax.swlngjPaneKK
ffitalstaticlongsena/VersionND=23095851;
puhlicveldpaint(omponent(Graphi€s&{
siver.pajntcomponent(g);
训1§0网ueOKretum;}
Graphics2Dg2d=(Graphics2D)g;
//inirule=Alpha(omposite.SRC_OVER;
AlphaCompositeopaque=Alphatomposite.JTr^
//AlphaCompositeblend=AlphaComposite.getlnstancefrule,0.6f);
//AlphaCompositeset=AlphaComposite.Src;
intwidth=gelWidthO;
intheight=getHeightO;
GradientPaintgradientpaint=new
GradientPaint(O,OJava.awtIolor.^^widlh/2)height/2Java.awt.Color.M^^lalse);
g2d.setComposlte(opaque);
g2d.setPaint(gradientPainO;
g2d.lillRect(0,0,width,heiihl);
g2(l.§elReii(lennaHlnl(Ren(leilngHln代碎4)m«^WRen(leilngHinK物建倒;
)
};
privatelavax.swingjButtonadd=newjavax.swing.jBullon(^4;
privatelavax.swmgjBunoncancie=newjavax.swingjBunon(/^^;
privatejFramelogo.Frame=newjFrame(/^^;
publicAddUserO(
//TIDO自动生成构造函数存根
try{
lilMana配rje〃〃减切窗网ulMana配r.g勿侬的血〃〃附加阳唬X被物%0);
}catck(Exceptionexe){System.^print(exe.getMessage());}
IFrame.4哂的〃刎倒窗"必切勿加骐true);
Toolkittools=logojrame.getToolkitO;
Imagelogo=tools.getlmageC'res/logojpg");
logojrame=newJFrame(W^;
logojrame.setlconlmageaogo);
jp.setlayoul(newGridBaglayoutO);
javax.swing.lmagelconpic=new]avax.swing.lmagelcon(>>res/logol.jpg");
|avax.swing.jlabelpicture=newfavax.swingjlabel(plc);
§eluMoniponem(plclurM,O,GH(lB褪C(m§lrainl§・4刚陋砌圾曲L的而皈l,troe);
javax.swingjlabelusers=newlavax.swlngjLabel(jZf^);
setupComponent(users,0444Jalse);
favax.swlng.jlabelpas=newjavax.swlngjLaDelg彻阪阁;
setupComponenKpas^O^^ttlalse);
javax.swlng.jlabelenpas=newlavax.swing.jlabeK^viM;
setupComponent(enpas3344>lalse);
userText=newjavax.swing.jTextfield(12);
userText.requestFocusO;
userText.addKeylistener(newKeyLislenerO{
pukllcvoldkeyTypedffieyEvente){}
puMlcvoidkeyReleasedffeyEvente){}
pukllcvoidkeyPressedflieyEvente){
U((e.getKeyCharO==KeyEvenl.)&4(userText.getTextO.lriniO!="')){
userpwd.requestFocusO;
)
)
});
setupComponent(userTextyL1444alse);
userpwd=newjavax.swiiig.JPasswordFieId(12);
userpwd.addKeyListener(newKeylistenerfK
puMlcvoidkeyTyped(KeyEvente){}
puMlcvoidkeyPressed(KeyEvente){
U((e.getKeyCharO==KeyEvent.VKjm&&(!
userpwd.getPasswordO.toStringo.trimO.isEmptyO)H
enterpassword.requesiFocusO;
)
else(
userpwd.requestFocus();
}
)
puMlcvoidkeyReleasedffeyEvente){
)
});
setupComponent(userpwd4,2,tlJalse);
enterpassword=newjavax.swingJPasswordHeld(12);
enterpassword.addKeyLlsiener(newKeyllstener(K
pukllcvoidkeyTypedffieyEvente){}
puMlcvoidkeyReleased(KeyEvenle){}
pukllcvoldkeyPresseflffieyEvenle){
//Stringpwd=usen>wd.getPasswor(lotloSlrlngo.trimo:
//Siringenwd=enterDassword.getPasswordO.toStringO.trimO:
U((e.getKeyCharO==KeyEventVKjm&&
((userpwd.getPasswordO.toStringO.lrimO)==(enterpasswor(l.getPasswordO.toSlringO.lrimO))H
add.requestFocusO;
)
elseU((e.gelKeyCharO==(KeyEvenl.VKjNTCBfy&&
((userpwd.getPasswordO.loSlring().trimO)!=(enterpasswor(l.getPasswordO.toStrlngO.lrimO))K
userpwd.setTextC");
emcrpa梵word.scnw");
userpwd.requestFocusO;
)
)
});
setupComponent(enterpassword4y344Jaise);
//logoln=newiavax.swing.lBmtonflogoon):
add.addKeyListener(newKeylistenerO{
puMlcvoidkeyTyped(KeyEvente){}
pukllcvoldkeyReleasedffeyEvente){}
puMlcvoidkeyPressed(KeyEvente){
tf((e.getKey€harO==KeyEvent.VK_ENTER诙
Stringusers=userText.getTextO.(rimO;
Stringpwd=userpwd.getPasswordO.toS1ringO.trlinO;
Stringepwd=enlerpassword.getPasswordO.toStrlngO.trimO;
U(users.lsBnptyOK
javaxsw腿jOpllonPane.血吸前则加如o虬Frame,“必须输入用户名!
输入用户名“JOlrtionPaiie./B汲砥欣/
userText.requestFocusO;}
K(pwd.isEmptyOH
mvax.§wlnajomioiiPanc.加.端6«teft^loq(LFraine,“必须输入密码!“J
输入密码"JomonPane.欧砌区砥以砌;
userpwd.requestFocusO;
)
IKepwd.isEmptyOH
Javax.swingjOptionPane.§howMe$m酗物/o圆崛。事am%”第二个输入密码必
须与第一个密码相同!“,“密码不一致"JOplionPane,欧砌上序CM砌;
enterpassword.requestFocusO;
)
booleanb=DBDtll./f£izM"seleclfromuserwhere
user_name=n++users+,,n,);
U(b){
javax.§wing.JomionPane.而劭妫wte加磔(logo_FrameJ用户已经存在,请另
夕卜输入!不能添力口“JOplkrnPane.痴级圈;
userTexi.setTexl(nu);
u§erpw(l.§elTcxK””);
enterpassword.setTextC");
userText.requestFocusO;
)
Intvale=DBUtil.^/FW^'selectusernamefromuserwhere
user_name=,,,+users+,,,,,)+l;
U(vale>OK
Stringsql="insertintouservalues(,M+vale+n,,n+users+',,,,,,+pw(l+',,r;
booleanbo=U§eDB.如曲邳ql);
H(Do)JOirtlonPaiie.施砥logo_Frame,”用户名添力L成功!”);
}
}
}
});
add.addActionlistener(iiewAclionLisienerO{
publicvoidadionPerformed(ActionEventeH
Stringusers=userText.getTextO.trimO;
Stringpwd=userpwd.getPasswordO.toStrIng().trimO;
Stringepwd=enlerpassword.getPasswordO.toSfringO.trimO;
if(users.isEmptjOK
Javax.swingJomionPane,血哧WefflteMnulL”必须输入用户名!“J输入用户
名"MulionPane,抽级瞅
userText.requestFocusO;}
n(pwd.lsEmptyOK
javax.§w[睢wmionPane,血砂阳哂次叨硒&null,“必须输入密码!输入密码
''^^rnURROR_MESSAG^
userpwd.requestFocus();
)
if(epwd.isEmptyOK
Javax.swingjOjrtlonPane.血拗加照物骐null,“第二个输入密便必须与第一个
密码相同!“,“密码不一致"JomioiPanc.掰碱砥M晒;
enterpassword.requestFocusO;
)
booleanD=DBDtil./f£tzM"selectfromuserwhereuser_name=,,,+users+);
«(»{
javax.§wingjOirtionPaiie.施.WeflteMlogo_Frame,”用户已经存在,请另外输
入!':不能添力『'JOimonPanc,2BW_«™砌;
userText.setText(MM);
u§crpw(L§etTexl('''');
enterDassword.serrext("");
userText.requesIFocusO;
}
Intvale=DBUtil.^/^7<"selectuser_namefromuserwhereuser_name='n+users+)+1
il(vale>OK
Stringsql="Insertintouservalues(,,,+vale+',;H+users+,M,,M+pw(l+',T,;
UScDB.如曲/网§q[);
booleanbo=DBDtU.Mi/fX"selectuser_namefromuserwherefd=valeM);
U(hoK
jOplkrnPane.功〃瞪砌如M飒(null,”用户名添加成功!”);
)
JOplionPane,助。随则伽彻就丝(null,''用户名已经存在!”);
)
userText.setTexl(,M,);
userpwd.setText(,M,);
enterpassword.setTextC'");
userText.requestFocusO;
)
});
setup(omponent(addt0,4)Lttnie);
//jayax.swlngjBultonexit=newlavax,swlngJButton(logoofi):
cancle.addA€tlonlislener(newAclionListenerfK
DubllcvoidactionPerformed(AcnonEvente2K
logojrame.dlsposeO;
//System.exit(l);
}
});
setupComponent(cancle,t444)tnie);
java.awt.Dlmensiond=tools.getScreenSIzeO;
Intwidth=(IntMd.gelWidthO-350)/2;
Intheight=(MOM.酗fIcl酬0240)/2;
logoJranie.addCip);
logojrame.setAlwaysOnTop(tnie);
logojrame.selLocation(widthyheight);
logo_Frame.selSize(350,240);
logojrame.packO;
logojrame.validateO;
logo_Frame.selVisible(tnie);
}
privatevoMsetupComponent(jComponenlcomponent^lntgridx,lntgrldy.mtgridwidth,Intipadx,boolean
fillK
UnaiGridBagConstrainlsgridBagConstrains=newGridBagConslraintsO;
^ridBa$Conslrains.gridx=gridx;
gridBagConstralns.gridy=如dy;
gridBagConstrains.insets=newJava.awl.in砥§(5,3,3,3);
Mttridwidth>l)
gridBagConstrains.gridwidth=gridwidth;
Udpadx>0)
gridBagC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古2024内蒙古大学教辅岗位招聘10人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2025年南京大学公开招聘水处理与水环境修复教育部工程研究中心主任备考题库及答案详解一套
- 2025年舟山市普陀区人民法院公开招聘编外用工人员备考题库及答案详解1套
- 2026徐闻农商银行校园招聘参考笔试题库及答案解析
- 2025山东青州圣维科技高中教师招聘2人备考考试题库及答案解析
- 2025年红河州开远市盛远博康投资管理有限公司招聘(1人)备考考试题库及答案解析
- 2026包钢(集团)公司新员工招聘322人备考笔试题库及答案解析
- 2025新疆生产建设兵团建设工程(集团)有限责任公司面向社会招聘3人备考笔试题库及答案解析
- 2025安庆宿松县长铺专职消防站招聘9人备考考试试题及答案解析
- 2025湖北荆门屈家岭产业发展集团有限公司招聘3人考试笔试参考题库及答案解析
- 2025广东广州市南沙区南沙街道社区专职工作人员招聘32人参考模拟试题及答案解析
- 2025中原农业保险股份有限公司招聘67人参考笔试试题及答案解析
- TSCDA 118-2023 ZC静钻根植先张法预应力混凝土竹节桩
- 综治中心业务培训
- 2025至2030全球及中国女士服装行业调研及市场前景预测评估报告
- 班组安全基础培训
- 水厂调试方案范本
- 2025年《中外教育史》冲刺押题卷(附答案)
- 物流金融风险管理
- 国开24273丨中医药学概论(统设课)试题及答案
- 国家开放大学电大《当代中国政治制度(本)》形考任务4试题附答案
评论
0/150
提交评论