Java课设.docx

上传人:b****5 文档编号:8005200 上传时间:2023-01-27 格式:DOCX 页数:52 大小:169.68KB
下载 相关 举报
Java课设.docx_第1页
第1页 / 共52页
Java课设.docx_第2页
第2页 / 共52页
Java课设.docx_第3页
第3页 / 共52页
Java课设.docx_第4页
第4页 / 共52页
Java课设.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

Java课设.docx

《Java课设.docx》由会员分享,可在线阅读,更多相关《Java课设.docx(52页珍藏版)》请在冰豆网上搜索。

Java课设.docx

Java课设

课程设计报告

课程名称Java课程设计

课题名称Java和Json之间的数据转换

专业计算机科学与技术

班级计算机1202

学号12

姓名

指导教师李远辉

2015年3月28日

湖南工程学院

课程设计任务书

 

课程名称Java课程设计

课题Java和Json之间的数据转换

 

专业班级计算机1202

学生姓名

学号12

指导老师李远辉

审批

 

任务书下达日期2015年3月18日

任务完成日期2015年3月28日

 

目录

1.主要功能1

2.基本功能的实现与分析1

3.功能模块的划分2

3.1功能模块图2

3.2流程图2

3.3功能模块的实现3

4.程序调试5

5.总结8

6.附件9

1.主要功能

本课题是用java语言来创建简易银行系统的图形界面,使用json来对银行系统的数据进行处理的。

该程序可以让用户使用在本系统中注册的账号能像银行卡一样使用,也可登录自助客户端自助转账。

管理员也可登录管理端对用户进行最高权限的管理。

 

2.基本功能的实现与分析

本程序基本分为两大方面:

(1)user用于存储用户信息,包括以下字段:

Id(用户卡号)、password(用户密码)、money(用户余额)、tel(用户手机号码)、sex(用户性别)、sfz(用户身份证号)。

主索引为:

Id

(2)History用户存储用户操作记录,包括以下字段:

oid(操作用户)、eid(目标用户)、money(操作金额)、yu(用户余额)、time(操作时间)、type(操作类型)。

索引为:

oid、eid。

本程序的基本需求为:

有管理员和普通用户两种用户类型。

管理员拥有对普通用户增删改查的操作和用户存取款、任意人账单查询的权限。

用户拥有查询自己信息、转账和查询自己账单的权限。

 

3.功能模块的划分

3.1功能模块图

 

图3.1

3.2流程图

 

3.3功能模块的实现

(1)部分布局并没有采取传统JAVASWING布局方式。

而是利用控件数组+循环。

例如:

UserPan2.java中

for(inti=0;i<3;i++)

{

lab[i]=newJLabel(lablist[i]);

tval[i]=newJTextField();

lab[i].setBounds(x,i*30+y,60,20);

tval[i].setBounds(x+70,i*30+y,280,20);

this.add(lab[i]);

this.add(tval[i]);

//只允许输入数字

tval[i].addKeyListener(newKeyAdapter()

{

publicvoidkeyTyped(KeyEvente)

{

charch=e.getKeyChar();

if(!

(ch>='0'&&ch<='9'))

{

e.consume();

}}}}

(2)对数据的增删改操作:

publicintexecuteUpdate(StringpreparedSql,String[]param){

intnum=0;

//处理SQL,执行SQL

try{

//得到PreparedStatement对象

pstmt=conn.prepareStatement(preparedSql);

if(param!

=null){

for(inti=0;i

//为预编译sql设置参数

pstmt.setString(i+1,param[i]);

}

}//执行SQL语句

num=pstmt.executeUpdate();

}catch(SQLExceptione){

//处理SQLException异常

e.printStackTrace();

}

returnnum;

}

(3)对数据的查询操作:

publicResultSetexecuteQuery(StringpreparedSql,String[]param){

//处理SQL,执行SQL

try{

//得到PreparedStatement对象

pstmt=conn.prepareStatement(preparedSql);

if(param!

=null){

for(inti=0;i

//为预编译sql设置参数

pstmt.setString(i+1,param[i]);

}

}

//执行SQL语句

rs=pstmt.executeQuery();

}catch(SQLExceptione){

//处理SQLException异常

e.printStackTrace();

}

returnrs;

}

4.程序调试

程序开始如图4.1所示,由于是管理员对系统直接管理,因此不需要提供注册入口:

图4.1

 

管理员登录后如图4.2所示,可对系统内的用户增删改查。

图4.2

 

其中用户存取款如图4.3所示。

图4.3

 

普通用户登录后如图4.4所示。

图4.4

 

普通用户账单查询如图4.5所示。

图4.5

 

5.总结

此次课程设计让我更了解和熟悉了Java中的图形用户界面和它的编程方式。

在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大,例如学习到了一种新的简单的数据交换格式.json。

通过这次的课程设计,使我对所学知识能够融会贯通,又不断丰富了新知识。

另外这次课设中也遇到了很多不懂的地方,例如说文件的选择打开,不太了解JFileChooser的运用方法,不太了解json的语法和java中一些图形界面的布局等。

Java三天的课设虽然仓促,但却十分充实,不进认识到了自己在java中的不足,而且还学到了不少关于java中图形界面的编程方式。

6.附件

源程序

登陆界面Login.java

packagewfu.yuhan;

importjava.awt.event.*;

importjavax.swing.*;

classLoginextendsJFrame

{

publicstaticProFrameprog;

publicLogin()

{

//窗口

super("登陆");

this.setBounds(500,100,300,200);

this.setResizable(false);

this.setLayout(null);

this.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

//用户名

JLabellu=newJLabel("用户名:

");

finalJTextFieldtu=newJTextField();

lu.setBounds(20,30,55,25);

tu.setBounds(75,30,200,25);

this.add(lu);

this.add(tu);

//密码

JLabellp=newJLabel("密码:

");

finalJTextFieldtp=newJPasswordField();

lp.setBounds(20,60,55,25);

tp.setBounds(75,60,200,25);

this.add(lp);

this.add(tp);

//登陆按钮

finalJButtonsub=newJButton("登陆");

sub.setBounds(100,100,60,25);

this.add(sub);

sub.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente)

{

Object[][]userlist;

userlist=ProDao.findUser(0,tu.getText());

if(userlist.length==0)

{

JOptionPane.showMessageDialog(null,"此用户不存在!

");

return;

}

if(userlist[0][1].toString().equals(tp.getText()))

{

ProMain.log.setVisible(false);

if(tu.getText().equals("admin"))

prog=newProFrame();

else

newUserFrame(tu.getText());

}

else

{

JOptionPane.showMessageDialog(null,"密码错误!

");

}

}

});

tp.addKeyListener(newKeyAdapter()

{

publicvoidkeyPressed(KeyEvente)

{

if(e.getKeyCode()==KeyEvent.VK_ENTER)

{

sub.doClick();

}

}

});

this.setVisible(true);

}

}

管理员主窗口ProFrame.java

packagewfu.yuhan;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.table.DefaultTableModel;

importwfu.util.DBUtil;

 

classProFrameextendsJFrame

{

publicJPanelpm=newJPanel();//主区域

privateJPanelpb=newJPanel();//按钮区域

publicProPan0p0=newProPan0();//功能区0用户查看(ProPan0.java)

publicProPan1p1=newProPan1();//功能区1用户增加(ProPan1.java)

privateJPanelp2=newProPan2();//功能区2用户存/取款

privateJPanelp3=newProPan3();//功能区3转账查询

privateJButtonb0=newJButton("0"),b1=newJButton("1"),b2=newJButton("2"),b3=newJButton("3");//跳转按钮

publicCardLayoutcard=newCardLayout(5,5);

publicProFrame()

{

//窗口

super("银行管理系统(admin)");

this.setResizable(false);

setBounds(500,100,480,580);

this.add(pm);

this.add(pb,BorderLayout.NORTH);

//主区域(pm)

pm.setLayout(card);

pm.add(p0,"p0");

pm.add(p1,"p1");

pm.add(p2,"p2");

pm.add(p3,"p3");

card.show(pm,"p0");

//按钮区域(pb)

pb.setLayout(newFlowLayout(FlowLayout.CENTER,0,0));

pb.add(b0);

pb.add(b1);

pb.add(b2);

pb.add(b3);

//跳转按钮(b0b1b2)

b0.setText("用户管理");

b0.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

//p0=null;

//p0=newProPan0();

//pm.add(p0,"p0");

p0.updata();

card.show(pm,"p0");

//System.gc();//垃圾回收

}

});

b1.setText("账户增改");

b1.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

card.show(pm,"p1");

}

});

b2.setText("用户存取款");

b2.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

card.show(pm,"p2");

}

});

b3.setText("账单查询");

b3.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

card.show(pm,"p3");

}

});

//关闭事件

this.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

//pack();

setVisible(true);

}

}

管理员查删用户功能ProPan0.java

packagewfu.yuhan;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyAdapter;

importjava.awt.event.KeyEvent;

importjavax.swing.JButton;

importjavax.swing.JComboBox;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTable;

importjavax.swing.JTextField;

importjavax.swing.plaf.ProgressBarUI;

importjavax.swing.table.DefaultTableModel;

importwfu.util.DBUtil;

publicclassProPan0extendsJPanel

{

String[]tabheadname={"卡号","密码","余额","电话","性别","身份证"};

Object[][]stulist=ProDao.findAllUser();

JTextFieldtsearch=newJTextField(25);

JComboBoxcsearch=newJComboBox(newString[]{"卡号","手机号","身份证号"});

JButtonbsearch=newJButton("查询");

JButtonbedit=newJButton("编辑");

JButtonbdelete=newJButton("删除");

finalDefaultTableModeltableModel;

finalJTablejTable;

publicProPan0()

{

tableModel=newDefaultTableModel(stulist,tabheadname);

jTable=newJTable(tableModel)

{

publicbooleanisCellEditable(introw,intcolumn)

{

returnfalse;

}//表格不允许被编辑

};

JScrollPanepj=newJScrollPane(jTable);

//查找按钮

bsearch.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

Object[][]stulist=ProDao.findUser(csearch.getSelectedIndex(),tsearch.getText());

//System.out.println(stulist.length);

tableModel.setDataVector(stulist,tabheadname);

}

});

//编辑按钮

bedit.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

if(jTable.getSelectedColumn()==-1)

{

return;

}

//System.out.println(jTable.getSelectedRow());

Stringstr=stulist[jTable.getSelectedRow()][0].toString();

Login.prog.p1.fun(str);

Login.prog.card.show(Login.prog.pm,"p1");

}

});

//删除按钮

bdelete.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEventarg0)

{

int[]delt=jTable.getSelectedRows();

DBUtildb=newDBUtil();

db.getConnection();

for(inti=0;i

{

//System.out.println(stulist[delt[i]][0].toString());

db.executeUpdate("deletefromuserwhereId="+stulist[delt[i]][0].toString(),null);

}

db.closeAll();

stulist=ProDao.findAllUser();

tableModel.setDataVector(stulist,tabheadname);

}

});

tsearch.addKeyListener(newKeyAdapter()

{

publicvoidkeyPressed(KeyEvente)

{

if(e.getKeyCode()==KeyEvent.VK_ENTER)

{

bsearch.doClick();

}

}

});

tsearch.addKeyListener(newKeyAdapter()

{

publicvoidkeyTyped(KeyEvente)

{

charch=e.getKeyChar();

if(!

(ch>='0'&&ch<='9'))

{

e.consume();

}

}

});

this.add(csearch);

this.add(tsearch);

this.add(bsearch);

this.add(pj);

this.add(bedit);

this.add(bdelete);

}

publicvoidupdata()

{

Object[][]list=ProDao.findAllUser();

tableModel.setDataVector(list,tabheadname);

}

}

管理员增改用户功能ProPan1.java

packagewfu.yuhan;

importjava.awt.FlowLayout;

importjava.awt.GridLayout;

importjava.awt.event.Action

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

当前位置:首页 > 成人教育 > 专升本

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

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