电子产品租借系统.docx
《电子产品租借系统.docx》由会员分享,可在线阅读,更多相关《电子产品租借系统.docx(20页珍藏版)》请在冰点文库上搜索。
电子产品租借系统
一、需求分析:
在信息社会飞速发展的今天,信息对于人们来说越来越重要。
当代企业要想在现今社会中立足,就必须在最短的时间内作出最准确的决策。
传统的经营管理模式已经跟不上高速发展的社会。
借助计算机实现信息管理和进行决策就显得非常重要。
1.系统名称:
电子产品租借系统
2.系统功能需求:
1)出租产品:
VCD,录相带、DVD。
2)系统功能:
客户管理、产品管理、租借管理和统计管理。
3.客户管理要求完成店员注册、身份认证(认证级别:
普通人员和经理)、增删改客户和查询查询管理租借信息等;产品库存管理要求根据产品库存进货,完成产品数据增、删、改及查询;租借管理要求完成产品查询,按类别、ISKS(音像产品编号)、主演查询,同时租借管理要反映客户借阅的时间及归还日期、及租借费用等;统计功要求列出各类产品的租借情况及热销产品的排名。
二、数据流程图:
电子产品租借系统第二层数据流图
三、概念模式设计:
四、关系模式逻辑设计:
供应商(供应商号,供商名称,地址,联系电话)
产品(ISKS,产品名,类别,供应商号,库存数量)
类别(类别编号,类别名)
客户(客户编号,姓名,住址,联系电话)
进货(供应商号,ISKS,价格)
员工(员工号,姓名,级别)
租借(ISKS,客户编号,租借日期,押金)
归还(ISKS,客户编号,归还日期,租借金额)
五、数据库表的设计:
1.供应商表:
Supplier
列名
数据类型
备注
SupplierID
char(10)
供应商编号:
主码
SupplierName
varchar(50)
供应商名
Address
char(100)
地址
Tel
char(13)
联系电话
2.商品表:
Product
列名
数据类型
备注
ISKS
char(10)
产品编号:
主码
Pname
char(20)
产品名
SpeciesID
char(10)
类别:
外码
SupplierID
char(10)
供应商编号:
外码
Amount
int
库存量
3.类别表:
Species
列名
数据类型
备注
Species
char(10)
类别:
主码
Name
varchar(20)
类别名
4.客户表:
Customer
列名
数据类型
备注
CustomerID
char(10)
客户编号:
主码
Name
varchar(20)
姓名
Address
varchar(50)
地址
Tel
char(13)
联系电话
Violate
int
是否有效
5.员工表:
Employee
列名
数据类型
备注
EmployeeID
char(10)
员工编号:
主码
Name
varchar(20)
姓名
Password
char(10)
密码
Rank
int
等级
6.租借表:
Rent
列名
数据类型
备注
ISKS
char(10)
产品号:
主码
CustomerID
char(10)
客户编号:
主码
rentDate
datetime
租借日期:
主码
Deposit
int
押金
7.归还表:
back
列名
数据类型
备注
ISKS
char(10)
产品号:
主码
CustomerID
char(10)
客户编号:
主码
BackDate
datetime
归还日期:
主码
Charge
int
费用
六、编码:
开发数据库应用系统,一般选择一后台数据库和一前后编程语言。
本系统的数据库服务器是SQLServer2005,前台编程语言使用的是Java语言。
Java作为一种面向对象程序设计语言,有许多其它面向对象程序设计语言没有的优点,Java最大的特点可以说就是它易学,初学者只要有一定的编程基础的人。
很容易就能够使用Java作出小项目出来。
另外它还具有跨平台等特点。
本系统使用Java主要是考虑移植性问题。
1.系统功能模块:
LoginDBlb=newLoginDB();
if(lb.getEmployeeInfo(jtUserID.getText(),jpwd.getText())){
f.dispose();
EMSFrameef=newEMSFrame();
}
else{
JOptionPane.showMessageDialog(null,"错误的用户名或密码",
"错误",JOptionPane.ERROR_MESSAGE);
jtUserID.setText("");
jpwd.setText("");
}
2.各功能实现:
(1)登录界面:
在登录界面中输入员工号和登录密码,单击确定后即可进入系统主界面
(2)客户管理模块:
1)增加客户功能:
okbtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intvio;
if(jtViolate.getText().equals(""))
vio=1;
else
vio=Integer.parseInt(jtViolate.getText());
Customercu=newCustomer();
if(cu.isExistsID(jtCusID.getText())){
JOptionPane.showMessageDialog(null,"存在相同的客户编号",
"错误",JOptionPane.ERROR_MESSAGE);
}
else{
cu.AddNew(jtCusID.getText(),jtCusName.getText(),
jtCusAddress.getText(),jtCusTel.getText(),vio);
JOptionPane.showMessageDialog(null,"成功添加了新客户");
}
}
});
单击增加后,会弹出成功或失败提示信息:
2)删除客户功能:
在系统中提供了两种删除客户记录的方式,一种是通过客户的编号,另一种是通过客户的姓名。
在第二种方式中,如果存在相同姓名的两名客户则会将姓名相同的客户全部删除。
A.通过客户编号删除:
delbyIDbtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Customerc=newCustomer();
if(c.isExistsID(jtCusID.getText())){
c.deleteByID(jtCusID.getText());
JOptionPane.showMessageDialog(null,"成功删除");
jtCusID.setText("");
}
else{
JOptionPane.showMessageDialog(null,"不存在该客户","错误",
JOptionPane.ERROR_MESSAGE);
jtCusID.setText("");
}
}
});
B.通过姓名删除客户:
delbyName.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Customerc=newCustomer();
if(c.isExistsName(jtCusName.getText())){
c.deleteByName(jtCusName.getText());
jtCusName.setText("");
JOptionPane.showMessageDialog(null,"删除成功");
}
else{
jtCusName.setText("");
JOptionPane.showMessageDialog(null,"不存该客户","错误",
JOptionPane.ERROR_MESSAGE);
}
}
});
3)修改客户信息:
在客户文本框中输入客户的编号,相应的文本框中会显示出对应客户的信息。
在相应文本框中修改客户信息后直接单击修改按钮即可修改客户信息。
jtCusID.addTextListener(newTextListener(){
publicvoidtextValueChanged(TextEvente){
Stringstr[]=newString[5];
str=newCustomer().QryInfo(jtCusID.getText());
jtCusName.setText(str[1]);
jtCusAddress.setText(str[2]);
jtCusTel.setText(str[3]);
jtViolate.setText(str[4]);
}
});
4)查询客户租借信息:
输入客户的编号,查看该客户所有租借的产品信息
qryBtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr[][]=newRent().QryByCusID(jtCusID.getText());
if(str==null)
JOptionPane.showMessageDialog(null,"不存在");
else
newQryCusRentTab(str);
}
});
(3)、产品管理模块:
1)查询产品信息。
提供两种查询产品的方式。
通过ISKS(产品编号)和产品名查询
(A)ISKS查询:
qryByID.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr[][];
Productp=newProduct();
str=p.QryProByIS(jtPID.getText());
if(str==null)
JOptionPane.showMessageDialog(null,"没有找到产品","结果",
JOptionPane.ERROR_MESSAGE);
else
newQryProTab(str);
}
});
(B)产品名查询
qryByName.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr[][]=newProduct().QryByName(jtPName.getText());
if(str==null)
JOptionPane.showMessageDialog(null,"没有找到产品","结果",
JOptionPane.ERROR_MESSAGE);
else
newQryProTab(str);
}
});
2)删除产品信息:
两种方式删除产品:
ISKS和产品名。
(A)通过产品ISKS号删除产品信息:
delByID.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Productp=newProduct();
if(p.isExistsIS(jtPID.getText())){
p.deleteByIS(jtPID.getText());
JOptionPane.showMessageDialog(null,"删除成功");
}
else
JOptionPane.showMessageDialog(null,"不存在该商品","错误",
JOptionPane.ERROR_MESSAGE);
}
});
delByName.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Productp=newProduct();
if(p.isExistsName(jtPName.getText())){
p.deleteByName(jtPName.getText());
JOptionPane.showMessageDialog(null,"成功删除");
}
else
JOptionPane.showMessageDialog(null,"不存在该产品","错误",
JOptionPane.ERROR_MESSAGE);
}
});
3)进货管理:
addBtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
newProduct().AddNew(jtISKS.getText(),jtname.getText(),
jtSpeID.getText(),jtSupID.getText(),jtamount.getText());
dispose();
}
});
(4)、租借管理:
租借日期由系统自动生成,不需要管理人员输入。
只需要输入客户编号和ISKS号以及押金就可以。
jtRentDate.setText(gre.get(Calendar.YEAR)+"."+
(gre.get(Calendar.MONTH)+1)
+"."+gre.get(Calendar.DAY_OF_MONTH));
rentBtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Customerc=newCustomer();
Productp=newProduct();
Rentr=newRent();
if(!
c.isExistsID(jtCusID.getText())){
JOptionPane.showMessageDialog(null,"不存在该客户,"+
"请先添加后再进行该操作","错误",
JOptionPane.WARNING_MESSAGE);
}
elseif(!
p.isExistsIS(jtID.getText())){
JOptionPane.showMessageDialog(null,"不存在的商品",
"错误",JOptionPane.ERROR_MESSAGE);
}
elseif(p.UpdateAmount(jtID.getText())){
r.AddNew(jtID.getText(),jtCusID.getText(),
jtRentDate.getText(),jtDeposit.getText());
JOptionPane.showMessageDialog(null,"成功");
dispose();
}
}
});
归还管理和租借管理的实现相似:
(5)统计信息:
统计信息用于统计产品的出租情况,以便于决策者能够更好的经营管理以及进行决策:
系统中实现了查询产品的租借信息的功能。
qryByID.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr[][];
Productp=newProduct();
str=p.QryProByIS(jtPID.getText());
if(str==null)
JOptionPane.showMessageDialog(null,"没有找到产品","结果",
JOptionPane.ERROR_MESSAGE);
else
newQryProTab(str);
}
});
七、小结:
系统优点:
由于系统采用Java开发,可移植性好。
系统中的操作全部使用Windows的标准窗口界面和鼠标驱动事件。
便于用户学习使用。
缺点:
需求分析不够完整,功能不完善,比如:
如何添加员工信息。
在统计信息功能模块中只能查询到产品的租借情况,没有给决策者提供更多的信息。