java数据库销售管理系统实验报告附代码Word格式文档下载.doc
《java数据库销售管理系统实验报告附代码Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《java数据库销售管理系统实验报告附代码Word格式文档下载.doc(76页珍藏版)》请在冰点文库上搜索。
![java数据库销售管理系统实验报告附代码Word格式文档下载.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/c524aafa-a079-43a5-bc08-71515c215a79/c524aafa-a079-43a5-bc08-71515c215a791.gif)
ID号和密码输入正确即可登录。
2.系统管理员界面,拥有最高权限。
提供了客户信息管理、产品信息管理、订单信息管理、发货管理与签收管理等功能。
3.基本档案管理员界面。
提供了客户信息管理、产品信息管理等功能。
4.业务员界面。
提供了订单信息管理、发货管理与签收管理等功能。
5.登录的用户信息分别存储在SQL数据库的“unpw表”中,如果用户信息不存在这个表中,将会无权利登录本管理系统。
6.保证了本销售管理系统的安全性。
系统功能图如下:
销售管理系统
基本档案管理员
业务员
系统管理员
发货管理
签收管理
订单信息管理
产品信息管理
客户信息管理
4.概念结构设计
根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为客户信息实体,产品信息实体,订单信息实体,发货单实体,签收单实体。
1:
客户信息实体
客户信息实体包括客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域等属性。
客户信息实体的E-R图如图所示。
所在区域
发票抬头
银行账号
地址
联系电话
单位地址
客户名称
客户信息
开户银行
2:
发货单实体
发货单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等属性,E-R图如图所示。
产品名称
发货日期
单价
总价
运费
数量
型号
地址
联系人
发货单
发货地址
联系电话
3:
签收单实体
签收单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等属性,E-R图如图所示。
收货日期
签收单
4:
unpw实体
unpw实体包括un、pw、qx等属性,E-R图如图所示。
pw
un
unpw
qx
5:
产品信息实体
产品信息实体主要包括产品名称、规格、型号、操作系统、产品描述、产品分类等属性。
E-R图如图所示。
规格
产品名称
型号
产品分类
产品描述
产品信息
操作系统
6:
订单信息实体
订单信息实体主要包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等属性。
最后到货期限
联系人
产品要求
客户名称
发货地址
联系电话
订单信息
实体属性表:
实体
属性
客户信息
客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域
产品信息
产品名称、规格、型号、操作系统、产品描述、产品分类
订单信息
客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求
签收单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期
发货单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期
unpw(用户)
un(登录名)、pw(密码)、qx(用户)
产品描述
操作系统
产品分类
产品名称
1包含n
1采购n
数量
规格
客户名称
地址
产品要求
1
生成1
所在区域
签收
N
发票抬头
联系电话
银行账号
单价
开户银行
联系人
运费
发货地址
总价
发货日期
收货日期
5.逻辑结构设计
(1)表-dbo.客户信息(客户信息表)
客户信息表包括客户名称、单位地址、联系电话、地址、开户银行、银行帐号、发票抬头、所在区域等信息。
(2)表-dbo.产品信息(产品信息表)
产品信息表包括产品名称、规格、型号、操作系统、产品描述、产品分类等信息。
(3)表-dbo.订单信息(订单信息表)
订单信息表包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等信息。
(4)表-dbo.发货单信息(发货单表)
发货单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等信息。
(5)表-dbo.签收单信息(签收单表)
签收单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等信息。
(6)表-dbo.unpw(用户表)
用户表包括un、pw、qx等信息。
6.数据库实现
(1)数据库关系图
(2)SQL语句实现
数据表的创建:
(i)客户信息表创建:
createtable客户信息表(
客户名称nchar(10)notnullprimarykey,
单位地址nchar(10),
联系电话nchar(10),
地址nchar(10),
开户银行nchar(10),
银行账号nchar(10),
发票抬头nchar(10),
所在区域nchar(10),
)
(ii)产品信息表创建:
createtable产品信息表(
产品名称nchar(10)notnullprimarykey,
规格nchar(10),
型号nchar(10),
操作系统nchar(10),
产品描述nchar(10),
产品分类nchar(10),
(iii)订单信息表创建:
createtable订单信息表(
联系人nchar(10),
发货地址nchar(10),
最后到货期限nchar(10),
产品名称nchar(10),
数量int,
产品要求nchar(10),
(iv)发货单表创建:
createtable发货单表(
单价int,
运费int,
总价int,
发货日期nchar(10),
(v)收货单表创建:
createtable收货单表(
收货日期nchar(10),
(vi)管理员信息表创建:
createtableunpw表(
qxintnotnullprimarykey,
unvarchar(12)notnull,
pwvarchar(12)notnull
7.应用系统设计实现
(1)用户登录模块
(2)各用户操作模块
(i)系统管理员操作模块
(ii)基本档案管理员操作模块
(iii)业务员操作模块
(3)系统管理员登录
在登陆界面选择“系统管理员”角色,输入正确的ID和密码。
验证成功则可进入系统管理员管理界面。
系统管理员ID号和登录密码存在数据库中的管理员信息表。
表中存在的管理员才允许登录。
(i)点击客户信息管理,弹出如下界面:
(ii)点击显示按钮后,会出现数据库里保存的客户信息:
(iii)点击增加按钮,弹出如下界面,输入要增加的客户信息,成功后会弹出增加成功的提示窗口:
(iv)增加客户信息成功后客户信息管理界面会增加一行客户信息,如图所示:
(v)选中一条客户信息,点击删除按钮,成功后会出现删除成功的提示窗口:
(vi)成功删除Tom客户的信息后,客户信息管理界面变化如下:
(vii)选中一行客户信息,点击修改按钮,出现如下界面,输入要修改的信息,成功后弹出修改成功的提示窗口:
(此处修改了客户Tom的联系电话)
(viii)点击查询按钮,弹出如下窗口:
在文本框中输入“Hei“,即可查询所在区域为”Hei“的客户信息:
其他模块与客户信息管理模块类似,均能实现信息的查询、修改、删除、增加、显示等功能,在此不再赘述;
点击退出系统即可完成本次操作。
经过系统一系列的增删改查操作之后,sqlsever2005数据库上的客户信息表同时也发生了改变:
8.实验总结(实验心得)
本次操作实训虽然很辛苦,但实在是受益匪浅。
在操作实训过程中碰到了很多问题,刚开始的时候,还真不知道从哪里下手。
但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次操作实训我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。
理论和实践的相结合是学习最有效的方法。
在实验的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,这次操作实训之后,一定把以前所学过的知识重新温故。
通过这次操作实训使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
附录:
代码
Control.java
packagezhm;
publicclassControl{
publicstaticvoidmain(String[]args){
newDLFrame();
}
}
DLFrame.java
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassDLFrameextendsJFrameimplementsActionListener,ItemListener{//登录界面
privatestaticfinallongserialVersionUID=1L;
JPanelp1=null;
JPanelp2=null;
JPanelp3=null;
JLabeluserName=newJLabel("
用户:
"
);
JTextFieldtxtUser=newJTextField();
JLabelpassword=newJLabel("
密码:
JPasswordFieldtxtPwd=newJPasswordField(6);
JLabelrole=newJLabel("
角色:
JComboBox<
String>
cbrole=newJComboBox<
();
JButtonbtnLogin=newJButton("
登录"
JButtonbtncz=newJButton("
重置"
JButtonbtnCancel=newJButton("
取消"
JLabelimageLabel;
Iconimage;
staticintOK=1;
staticintCANCEL=0;
intactionCode=0;
Connectioncon=null;
Statementstmt=null;
ResultSetrs=null;
intqxian=0;
@SuppressWarnings("
deprecation"
publicDLFrame(){//构造方法
super("
登录界面"
p1=newJPanel();
p2=newJPanel();
p3=newJPanel();
cbrole.addItem("
系统管理员"
基本档案管理员"
业务员"
/*image=newImageIcon("
picture\\st.jpg"
imageLabel=newJLabel(image);
p1.add(imageLabel);
*/
this.setLayout(newFlowLayout());
this.setBounds(150,150,250,250);
p2.setLayout(newGridLayout(4,2));
p2.add(userName);
p2.add(txtUser);
p2.add(password);
p2.add(txtPwd);
p2.add(role);
p2.add(cbrole);
p3.add(btnLogin);
p3.add(btncz);
p3.add(btnCancel);
this.add(p1);
this.add(p2);
this.add(p3);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.show();
btnLogin.addActionListener(this);
cbrole.addItemListener(this);
btncz.addActionListener(this);
btnCancel.addActionListener(this);
publicvoidconnDB(){//连接数据库
try{
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
con=DriverManager.getConnection(
"
jdbc:
sqlserver:
//localhost:
1433;
DatabaseName=销售管理系统"
sa"
"
2191826"
stmt=con.createStatement();
}catch(SQLExceptione){
publicvoidcloseDB()//关闭连接
{
stmt.close();
con.close();
publicvoiditemStateChanged(ItemEvente){
if(e.getStateChange()==ItemEvent.SELECTED){
JComboBox<
?
>
jcb=(JComboBox<
)e.getSource();
qxian=jcb.getSelectedIndex();
publicvoidactionPerformed(ActionEvente){
Objectsource=e.getSource();
Stringun=null;
Stringpw=null;
booleansuccess=false;
//用于判断是否登录成功
if(source==btnLogin){
if(txtUser.getText().equals("
)||txtPwd.getPassword().equals("
)){//判断是否输入了用户名和密码
JOptionPane.showMessageDialog(null,"
登录名和密码不能为空!
}else{
this.connDB();
try{
rs=stmt.executeQuery("
select*fromunpwwhereqx="
+qxian);
while(rs.next()){
un=rs.getString("
un"
).trim();
pw=rs.getString("
pw"
if(txtUser.getText().equals(un)){
if(txtPwd.getText().equals(pw)){
actionCode=OK;
this.setVisible(false);
if(qxian==0){
newsysManagerFrame();
//进入系统管理员界面
}
if(qxian==1){
newbaseManagerFrame();
//进入基本档案管理员界面
if(qxian==2){
newbusinessManFrame();
//进入业务员界面
success=true;
break;
}else{
JOptionPane.showMessageDialog(null,"
密码错误!
txtPwd.setText("
}
}
}
if(!
success){
JOptionPane.showMessageDialog(null,"
登录名错误!
txtUser.setText("
txtPwd.setText("
}catch(SQLExceptione1){
e1.printStackTrace();
}
}
}elseif(source==btncz){
txtUser.setText("