java课程设计.docx
《java课程设计.docx》由会员分享,可在线阅读,更多相关《java课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
java课程设计
软件学院
课程设计报告书
课程名称面向对象程序课程设计
设计题目ATM柜员机模拟程序
专业班级
学号
姓名
指导教师
2014年6月
目录
1设计时间......................................................2
2设计目的......................................................2
3设计题目......................................................2
4设计任务......................................................2
5设计内容......................................................2
5.1需求分析....................................................2
5.1.1问题描述..................................................2
5.1.2基本要求..................................................2
5.2总体设计....................................................2
5.2.1类的描述..................................................2
5.2.2类之间的关系..............................................4
5.3详细设计....................................................4
5.3.1类图......................................................4
5.3.2页面设计..................................................5
6测试与分析..................................................5
7程序设计......................................................6
8总结与展望...................................................12
参考文献.......................................................13
课程设计成绩评定.............................................13
1.设计时间
2014年6月16日至2014年6月20日
2设计目的
面向对象程序设计课程设计是软件工程专业集中实践性环节之一,是学习完《java6程序设计》课程后进行的一次全面的综合练习。
其目的在于加深对java基础理论和基本知识的理解,掌握使用java进行软件设计的基本方法,提高解决实际问题的能力,最终实现对于给定的应用要求,设计出满足要求的程序,使之满足各种用户的应用需求(信息要求和处理要求)。
同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
3设计题目
ATM柜员机模拟程序
4设计任务
要求:
使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以查询余额,取款,存款,修改密码。
5设计内容
5.1需求分析
设计简易ATM柜员机系统,实现基本功能(查询余额,取款,存款,修改密码
)。
各种基本功能的算法分析。
编程实现具体功能。
运行测试程序,调试纠正运行错误。
调试无误,运行,测试具体功能。
5.1.1问题描述
设计ATM柜员机系统界面,通过点击总窗口界面上的按钮,实施各基本功能。
5.1.2基本要求
在本程序中,设计一个文本区域和一个按钮区域。
设计过程中利用最基本GUI界面开发,Java语言程序设计结合组件、容器、框架、事件监听等相关知识,完成一个关于ATM柜员机系统的界面制作,能够实现对ATM柜员机的基本操作,包括查询余额,取款,存款,修改密码。
5.2总体设计
5.2.1类的描述
1.类ATM实现总窗口界面。
2.类denglu实现登陆功能
3.类yue实现查询余额功能
4.类cunkuan实现存款功能
5.类qukuan实现取款功能
6.类xiugaimima实现修改密码功能
5.2.2类之间的关系
各类均为JPanel的子类,类ATM引用类yue,cunkuan,qukuan,xiugaimima类。
5.3详细设计
5.3.1类图
表1
denglu
JTextFieldj1,j2,j3,j4,j5,j6,j7,j8
publicvoidmouseClicked(MouseEventarg0)
表2
yue
JTextFieldj3
intzong
publicvoidmouseClicked(MouseEventarg0)
表3
qukuan
int
qu,zong
JTextFieldj3,j4
publicvoidmouseClicked(MouseEventarg0)
表4
cunkuan
JTextFieldj3,j5
intcun,zong
publicvoidmouseClicked(MouseEventarg0)
表5
xiugaimima
JTextFieldj2,j6,j7
Stringl4
intcount
publicvoidmouseClicked(MouseEventarg0)
表6
ATM
JLabell1,l2,la4,la5;
JTextFieldj1,j2,j3,j4,j5,j6,j7,j8;
JButtonb,b1,b2,b3,b4,b5;
Stringl4="123456";
intqu,cun,count;
intzong=10000;
publicATM()
Main()
5.3.2页面设计
6测试与分析
1.测试登陆
2.测试查询余额
3.测试存款
4.测试取款
测试修改密码
7程序代码
importjava.awt.Container;
importjava.awt.FlowLayout;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
publicclassATMextendsJFrame{
JLabell1,l2,la4,la5;
JTextFieldj1,j2,j3,j4,j5,j6,j7,j8;
JButtonb,b1,b2,b3,b4,b5;
Stringl4="123456";
intqu,cun,count;
intzong=10000;
publicATM(){
this.setSize(235,315);
this.setTitle("ATM柜员机模拟程序");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(newFlowLayout());
Containerc=getContentPane();
l1=newJLabel("卡号");
l2=newJLabel("密码");
j1=newJTextField(16);
j2=newJTextField(10);
j8=newJTextField(20);
b=newJButton("登陆");
b5=newJButton("查询余额");
c.add(l1);
c.add(j1);
c.add(l2);
c.add(j2);
c.add(b);
c.add(j8);
b.addMouseListener(newdenglu());
b5.addMouseListener(newyue());
la4=newJLabel("确认密码");
la5=newJLabel("新的密码");
b1=newJButton("存款");
b2=newJButton("取款");
b3=newJButton("修改");
j3=newJTextField(10);
j4=newJTextField(12);
j5=newJTextField(12);
j6=newJTextField(13);
j7=newJTextField(13);
c.add(j3);
c.add(b5);
c.add(j5);
c.add(b1);
c.add(j4);
c.add(b2);
c.add(la5);
c.add(j6);
c.add(la4);
c.add(j7);
c.add(b3);
b2.addMouseListener(newqukuan());
b1.addMouseListener(newcunkuan());
b3.addMouseListener(newxiugaimima());
this.setVisible(true);
}
classdengluimplementsMouseListener{
publicvoidmouseClicked(MouseEventarg0){
if(j1.getText().equals("123456")){
if(j2.getText().equals(l4))
{
j8.setText("登陆成功");
}
else
{
j8.setText("密码错误");
j3.setText(null);
j4.setText(null);
j5.setText(null);
j6.setText(null);
j7.setText(null);
}
}
else
{
j8.setText("账号错误");
}
}
@Override
publicvoidmouseEntered(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmousePressed(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseReleased(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
}
classyueimplementsMouseListener{
publicvoidmouseClicked(MouseEvente){
if(j8.getText().equals("登陆成功"))
j3.setText(String.valueOf(zong));
}
@Override
publicvoidmouseEntered(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmousePressed(MouseEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseReleased(MouseEvente){
//TODOAuto-generatedmethodstub
}
}
classqukuanimplementsMouseListener
{
publicvoidmouseClicked(MouseEventarg0){
qu=Integer.parseInt(j4.getText());
if(j3.getText().equals(String.valueOf(zong))){
if(qu%100==0)
{
if(qu<=5000)
{
if(qu<=zong)
{
zong=zong-qu;
j3.setText(String.valueOf(zong));
}
else
{
j3.setText("余额不足");
}
}
else
{
j3.setText("取款金额须低于5000");
}
}
else
{
j3.setText("取款金额须为100的倍数");
}
}}
@Override
publicvoidmouseEntered(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmousePressed(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseReleased(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
}
classcunkuanimplementsMouseListener{
publicvoidmouseClicked(MouseEventarg0){
cun=Integer.parseInt(j5.getText());
if(j3.getText().equals(String.valueOf(zong))){
if(cun>0)
{
zong=zong+cun;
j3.setText(String.valueOf(zong));
}
else
{
j3.setText("存款金额不能为负");
}
}}
@Override
publicvoidmouseEntered(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmousePressed(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseReleased(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
}
classxiugaimimaimplementsMouseListener{
publicvoidmouseClicked(MouseEventarg0){
if(j8.getText().equals("登陆成功")){
if(j6.getText().length()>=6)
{
for(inti=0;i{if(j6.getText().charAt(i)==j6.getText().charAt(0))
count++;}
if(count!
=j6.getText().length())
{
if(j7.getText().equals(j6.getText()))
{
l4=j6.getText();
j7.setText("密码修改成功");
}
else
{
j7.setText("两次密码不一致");
}
}
else
{
j6.setText("密码不能为同一个数字");
}
}
else
{
j6.setText("密码长度不能小于6位");
}
}}
@Override
publicvoidmouseEntered(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseExited(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmousePressed(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidmouseReleased(MouseEventarg0){
//TODOAuto-generatedmethodstub
}
}
publicstaticvoidmain(String[]args){
newATM();
}
}
8总结与展望
这次面向对象程序设计的课程设计是学习完面向对象程序设计这门课程之后进行的一次全面性的综合练习。
这次练习深化了我对面向对象程序设计这门课程的理解,使我更加熟练的掌握了使用Java语言进行软件设计的方法,提高了我运用Java语言解决实际问题的能力。
在设计程序过程中,每一步都需要认真考虑,仔细斟酌。
本次课程设计使我认识到很多学习中的诸多不足,尤其是对基础知识掌握的不够透彻,运用不够灵活,而且也认识到理论应紧密联系实际。
在未来的学习生活中,我会把面向对象程序设计运用到自己的学习和生活中,充分运用面向对象程序设计来帮助和解决问题。
参考文献
[1]屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版,北京:
北京希望电子出版社,2005
[2]白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4):
100~130.
[3]刘万军,郑少京,王松波,梁清华Java6程序设计,清华大学出版社
成绩评定
成绩教师签字