ATM柜员机模拟系统代码Word下载.docx
《ATM柜员机模拟系统代码Word下载.docx》由会员分享,可在线阅读,更多相关《ATM柜员机模拟系统代码Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
密码:
add(text[2]);
余额:
add(text[3]);
序号:
add(text[4]);
C=newJButton("
存款"
);
C.addActionListener(this);
add(C);
Q=newJButton("
取款"
Q.addActionListener(this);
add(Q);
update=newJButton("
修改密码"
update.addActionListener(this);
add(update);
insert=newJButton("
添加新用户"
insert.addActionListener(this);
add(insert);
select=newJButton("
查询用户信息"
select.addActionListener(this);
add(select);
delete=newJButton("
删除用户信息"
delete.addActionListener(this);
add(delete);
add(newJScrollPane(show));
提示:
1.每次取款金额为100的倍数,总额不能超过5000元,支取金额不允许透支"
2.存款金额不能为负存款"
3.新密码长度不小于6位,不允许出现6位完全相同的情况"
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidactionPerformed(ActionEvente){
Operationmodify=newOperation();
modify.setDatasourceName("
XX"
if(e.getSource()==insert)
{
modify.setSQL("
INSERTINTOXXVALUES('
+text[4].getText()+"
'
'
+text[0].getText()+"
+text[1].getText()+"
+text[2].getText()+"
+text[3].getText()+"
)"
StringbackMess=modify.modifyRecord();
show.append("
+backMess);
}
elseif(e.getSource()==C)
{
Connectioncon=null;
Statementsql;
ResultSetrs=null;
try{
doublen=2000;
con=DriverManager.getConnection("
jdbc:
odbc:
"
con.setAutoCommit(false);
sql=con.createStatement();
rs=sql.executeQuery("
SELECT*FROMXXWHERE卡号='
123456'
//查询
rs.next();
doublemoney=rs.getDouble(5);
System.out.println("
操作前用户的余额:
+money);
doublemoney1=money+n;
//存款
sql.executeUpdate
("
UPDATEXXSET余额=+'
+money1+"
WHERE卡号='
//存款后更新余额
mit();
con.setAutoCommit(true);
//提交事务结果到数据库
//创建数据库操作对象
}
catch(SQLExceptione1)
{try{con.rollback();
}//如果操作失败则结束事务
catch(SQLExceptionexp){}
System.out.println("
+e);
elseif(e.getSource()==Q)
{Connectioncon=null;
doublen=5000;
rs=sql.executeQuery("
doublemoney2=money-n;
//取款
+money2+"
//取款后更新余额
elseif(e.getSource()==update)
{
UPDATEXXSETXX.密码=+'
WHERE(((XX.卡号)=+'
elseif(e.getSource()==delete)
modify.setSQL("
DELETE*FROMXXWHERE(((XX.卡号)=+'
elseif(e.getSource()==select)
Queryquery=newQuery();
query.setDatasoureName("
query.setTableName("
Objecta[][]=query.getRecord();
Stringb[]={"
序号"
卡号"
密码"
余额"
};
table=newJTable(a,b);
JFrameframe=newJFrame();
frame.add(newJScrollPane(table));
frame.setVisible(true);
frame.setBounds(400,400,600,200);
}
publicvoidsetBounds(inti,intj,intk,intl){}
}
Operation.java
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassOperation{
StringdatasourceName="
;
//数据源名称
StringSQL,message="
//表名
publicOperation()//增删改的主代码
try{Class.forName("
.microsoft.sqlserver.jdbc.SQLServerDriver"
}//操作数据源
catch(Exceptione){}
publicvoidsetSQL(StringSQL)//建立一个新的数据源
{this.SQL=SQL;
publicvoidsetDatasourceName(Strings)
{datasourceName=s.trim();
publicStringmodifyRecord(){
Connectioncon=null;
Statementsql=null;
try{Stringuri="
+datasourceName;
Stringid="
Stringpassword="
con=DriverManager.getConnection(uri,id,password);
sql=con.createStatement();
sql.execute(SQL);
message="
操作成功"
con.close();
catch(SQLExceptione)
{message=e.toString();
returnmessage;
}/*数据源读取初始化*/
publicvoidsetTableName(Stringstring){}//表名
publicObject[][]getRecord()//存放操作结果数组
{returnnull;
Query.java
import.httpserver.Authenticator.Result;
publicclassQuery
{StringdatasourceName="
//数据源名
StringtableName="
//表名
Objecta[][];
publicQuery()
try{Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
}//桥接器
catch(ClassNotFoundExceptione)
{System.out.print(e);
publicvoidsetDatasoureName(Strings)
publicvoidsetTableName(Strings)
{tableName=s.trim();
publicObject[][]getRecord()//获取表中记录
{
Connectioncon;
PreparedStatementsql;
//预处理命令
ResultSetrs;
//结果集
try{
Stringuri="
Stringnumber="
con=DriverManager.getConnection(uri,number,password);
//初始化连接
DatabaseMetaDatametadata=con.getMetaData();
//连接对象调用getMetaData()方法返回一个DatabaseMetaData对象
ResultSetrs1=metadata.getColumns(null,null,tableName,null);
//将表中的字段信息以行列的形式存储在Result中
int字段个数=0;
while(rs1.next())
{字段个数++;
intn=getAmount();
a=newObject[n][字段个数];
sql=con.prepareStatement("
SELECT*FROM"
+tableName);
//查询表名
rs=sql.executeQuery();
intm=0;
while(rs.next())//输出结果集中的数据
{for(intk=1;
k<
=字段个数;
k++)
{a[m][k-1]=rs.getString(k);
m++;
{System.out.println("
请输入正确的表名"
returna;
publicintgetAmount()
Statementsql;
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//以只读方式滚动查询
//获取所在行
rs.last();
introws=rs.getRow();
//当前游标所指行号
returnrows;
catch(SQLExceptionexp)
System.out.println("
+exp);
return0;
publicvoidinputQueryResult(){}
ATM.java
publicclassATM{
publicstaticvoidmain(Stringargs[])
{Winwin=newWin();
win.setBounds(400,300,400,300);
//设置组件在容器中的位置和本身的大小
win.setTitle("
ATM自动柜员机"