java课程设计

时间:2024.4.9

课程设计报告

设计名称:  可视化程序设计实验课程设计       

选题名称:        ATM自动取款机模拟系统        

    名:    ****        号: 12000***  

专业班级:     计算机科学与技术专业软件2班    

院):                 计算机系              

设计时间:         20##.11.2 ~20##.11.9           

设计地点:              3机房                 

1.课程设计目的

1.加深对面向对象理论和基本知识的理解,掌握使用Java语言进行面向对象程序设计的基本方法,提高运用面向对象知识解决实际问题的能力;

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。

2.课程设计说明书

一.需求分析

随着社会的进步,在人们的日常生活中,资金流动非常频繁。为了减轻银行工作人员的压力及负担,所以设计了ATM自动取款机,能通过机器进行一些简单的资金交易,既方便又快捷,在许多地方都按防了自动取款机器。

取款机里包涵了取款、存款、转账、查询、修改密码等功能,系统模块如图所示。

    java课程设计  

二.概要设计

  根据对ATM取款机的分析,可以分为选择操作、取款、查询、存款、转账。

  1.取款模块

   取款模块,进入此模块,必须取100的整数倍且小于余额总数。

    java课程设计  

2.查询模块

  查询模块,进入此模块,就可以知道自己的相关信息。

    java课程设计                                                         

3.修改密码模块

  修改密码模块,进入此模块,可以把初始密码改了,增强保密性。

    java课程设计  

4.存款模块

  存款模块,进入此模块,必须输入100的整数倍。

java课程设计

5.转账模块

转账模块,进入此模块,就可以进行转账,先输入对方账号必须是8位数,在输入转出金额,转出金额必须小于余额总数。

    java课程设计  

三、源代码清单(部分)

package Yan;

import java.util.Scanner;

public class Atm {

       String zqy_name; // 账户名

       int zqy_number; // 帐号

       int zqy_qitahao; // 转账用的帐号

       int zqy_pass; // 用户密码

       double zqy_yue; // 用户余额

       double zqy_qu; // 用户要取出的金额

       double zqy_cun; // 用户要存入的金额

       double zqy_all = 0; // 用户取出的总额

       int zqy_a; // 键盘输入要选择的操作

       int zqy_i; // 控制输入密码次数的变量

       Scanner input = new Scanner(System.in);

       Atm(String a, int b, int c, double d) { // 初始化持卡人信息

              zqy_name = a;

              zqy_number = b;

              zqy_pass = c;

              zqy_yue = d;

       }

       public void zqy_inputpass() throws Exception { // 输入密码

              for (zqy_i = 1; zqy_i <= 3; zqy_i++) {

                     System.out.println("注意:请输入数字,否则可能会引起乱码!");

                     System.out.println("请输入密码:");

                     int mima = input.nextInt();

                     if (mima >= 100000 && mima <= 999999) {

                            if (mima == zqy_pass) {

                                   if (mima == 123456) {

                                          System.out.println("密码为初始密码,建议修改密码。");

                                   }

                                   zqy_welcome();

                            } else {

                                   System.out.println("您输入的密码有误,请重新输入:");

                                   continue;

                            }

                     } else {

                            System.out.println("密码的长度为6位,请重新输入:");

                            continue;

                     }

              }

              System.out.println("对不起,您已超过输入次数,请带身份证到柜台办理相关手续!");

       }

       public void zqy_welcome() { // 欢迎界面

              System.out

                            .println("请选择您要进行的操作:\n1、取款 \n2、查询 \n3、修改密码 \n4、存款\n5、转账\n6、退出");

              zqy_a = input.nextInt();

              switch (zqy_a) {

              case 1:

                     zqy_get();

                     break;

              case 2:

                     zqy_refer();

                     break;

              case 3:

                     zqy_change();

                     break;

              case 4:

                     zqy_cun();

                     break;

              case 5:

                     zqy_zhuan();

                     break;

              case 6:

                     zqy_exit();

                     break;

              }

       }

       public void zqy_choose() { // 选择是否继续

              System.out.println("您是否继续进行其他操作?1(继续)/2(退出)");

              zqy_a = input.nextInt();

              if (zqy_a == 1) {

                     zqy_welcome();

              } else if (zqy_a == 2) {

                     zqy_exit();

              }

       }

       public void zqy_get() { // 取款

              System.out.println("请输入您要取的金额:");

              zqy_qu = input.nextDouble();

              if (zqy_qu < zqy_yue) {

                     if (zqy_qu % 100 == 0) {

                            if (zqy_qu <= 2500) {

                                   zqy_all = zqy_all + zqy_qu;

                                   if (zqy_all <= 5000) {

                                          zqy_yue = zqy_yue - zqy_qu;

                                          System.out.println("交易完成您的余额为" + zqy_yue);

                                          zqy_choose();

                                   } else {

                                          System.out.println("您今日交易的数额超过5000,无法再次交易!");

                                          zqy_choose();

                                   }

                            } else {

                                   System.out.println("本次交易超过最大限额2500!");

                                   zqy_choose();

                            }

                     } else {

                            System.out.println("请输入100的整数!");

                            zqy_get();

                     }

              } else {

                     System.out.println("您卡上的余额不足!");

                     zqy_choose();

              }

       }

       public void zqy_refer() { // 查询

              System.out.println("您的帐号:" + zqy_number);

              System.out.println("您的帐户名:" + zqy_name);

              System.out.println("您的余额:" + zqy_yue);

              zqy_choose();

       }

       public void zqy_change() { // 修改密码

              System.out.println("请输入您的原密码:");

              int zqy_mi = input.nextInt();

              if (zqy_mi == zqy_pass) {

                     System.out.println("请输入您的新密码:");

                     int zqy_xin = input.nextInt();

                     if (zqy_xin >= 100000 && zqy_xin <= 999999) {

                            System.out.println("请再次输入您的新密码:");

                            int zqy_chong = input.nextInt();

                            if (zqy_xin == zqy_chong) {

                                   zqy_pass = zqy_xin;

                                   System.out.println("    修改成功!");

                                   zqy_choose();

                            } else {

                                   System.out.println("两次输入的密码不一致!");

                                   zqy_change();

                            }

                     } else {

                            System.out.println("请输入6位的密码");

                            zqy_change();

                     }

              } else {

                     System.out.println("请输入正确的密码");

                     zqy_change();

              }

       }

       public void zqy_cun() { // 存款

              System.out.println("请输入您要存入的金额:");

              zqy_cun = input.nextInt();

              if (zqy_cun % 100 == 0) {

                     zqy_yue = zqy_yue + zqy_cun;

                     System.out.println("   存款成功!");

                     System.out.println("您的余额为:" + zqy_yue);

                     zqy_choose();

              } else {

                     System.out.println("请输入100的整数!");

                     zqy_cun();

              }

       }

       public void zqy_zhuan() { // 转账

              System.out.println("请输入转入帐号:");

              zqy_qitahao = input.nextInt();

              if (zqy_qitahao >= 10000000 && zqy_qitahao <= 99999999) {

                     System.out.println("请输入转入金额:");

                     zqy_cun = input.nextInt();

                     if (zqy_cun < zqy_yue) {

                            zqy_yue = zqy_yue - zqy_cun;

                            System.out.println("    交易成功!");

                            System.out.println("您的余额为:" + zqy_yue);

                            zqy_choose();

                     } else {

                            System.out.println("您的余额不足,请重新选择!");

                            zqy_choose();

                     }

              } else {

                     System.out.println("帐号长度为8位!");

                     zqy_zhuan();

              }

       }

       public void zqy_exit() { // 退出界面

              System.out.println("    谢谢使用!");

              System.exit(1);

       }

}

4.课程设计成果

1)输入密码

java课程设计

2)进入主界面进行选择

java课程设计

3)取款

java课程设计

java课程设计

4)查询余额

java课程设计

5)修改密码

java课程设计

6)存款  

java课程设计

7)转账

java课程设计

8)退出

java课程设计

5.课程设计心得

   在本次的课程设计中,起初以为会很简单,但是后来慢慢发现需要注意很多细节,最终经过反复调试和修改,ATM虚拟取款机有了基本的模型。

   根据课程设计的要求,实现用户的取款、查询、修改密码、存款、转账等方法。首先需要编写一个主界面的程序,再其中选择用户想要进行的操作,分别进入所需模块,进行交易。

   在调试过程中,出现了很多问题,例如:要存款和取款的时候必须进行100的整数倍的交易;一次取款不得超过2500也不能超余额总数;一天取款总数不得超过5000;修改密码的时候输入的新密码的长度不得超过6位数且两次输入的新密码必须相同;转账时对方的账号必须是8位数,转出金额不得超过余额总数等等。另外截图的时候也会忽略这些细节。

    通过这次课程设计让我深刻体会到想完成一个完整程序是一件非常困难的事。

参考文献:

  《Java语言与面向对象程序设计》-----------王行言编著

  《Java2实用教程》------------------------耿祥义,张跃平编著

  《Java实用程序设计100例》---------------袁海燕,王文涛编著

更多相关推荐:
java课程设计报告范例

河北科技大学课程设计报告学生姓名祝冬冬学号专业班级计算机科学与技术课程名称学年学期指导教师2011年6月课程设计成绩评定表目录示例一二三1234四五设计题目1设计目的1设计原理及方案1使用的软件工具和环境1需求...

Java课程设计报告模板

Java程序设计课程设计报告20xx20xx年度第1学期Hannio塔专业学生姓名班级学号指导教师完成日期计算机科学技术网络工程马千里B计算机1021010704213徐森20xx年1月8日Hannoi塔目录目...

Java课程设计报告

安阳工学院计算机学院JAVA课程设计报告蜘蛛纸牌游戏专业班级09级网络工程2班学生姓名李瑞琳学生学号20xx03060016小组成员司慧晓郑亚楠司小婷杨达允指导教师姓名宋强目录1选题目的与系统概述32系统可行性...

java课程设计报告

黄淮学院JAVA课程设计报告题目:《日记本的设计与实现》课程设计学院:信息工程学院姓名:学号:专业:软件工程班级:软工1101B班指导教师:二0##年十二月目录1.引言...32.设计目的与任务...43.设计…

java课程设计报告书

java程序设计与应用开发Java课程设计报告书题目学籍管理系统班级数媒学号姓名教师20xx年12月24日1java程序设计与应用开发学籍管理系统一课程设计的目的与要求一课程设计目的与任务随着社会的发展及互联网...

Java课程设计报告【模板】

课程设计报告设计题目专业计算机科学与技术班级101学号20xx16021127学生姓名李贵云指导教师布瑞琴起至时间12161223教师评分20xx年月日目录1概述11目的这学期我们学习了Java语言Java语言...

java课程设计报告 简单绘画板

Java课程设计报告第1页题目班级学号姓名指导老师完成起止日期20xx年12月7日20xx年12月26日目录1题目与要求311题目312参考文献32功能描述43设计思想与系统结构531类设计532结构图64用户...

Java 课程设计报告 扫雷游戏

东华理工大学长江学院课程设计报告封面Java课程设计题目扫雷游戏姓名学号指导老师黄国辉设计时间20xx年4月1东华理工大学长江学院课程设计报告摘要摘要在今天游戏日益快速更新的情况下相信大家对Windows20x...

Java课程设计报告

合肥学院计算机科学与技术系课程设计报告20xx20xx学年第二学期课程Java语言程序设计企业人事管理系统08网络工程1班陈涛金莹郭昌建课程设计名称专姓指导教业班级名师20xx年9月一需求分析系统需求分析考察中...

java课程设计报告

淮海工学院计算机工程学院课程设计报告设计名称面向对象课程设计选题名称图像浏览器的设计与实现姓名学号专业班级网络工程122班系院计算机工程学院设计时间设计地点软件实验室教室面向对象课程设计报告第2页共16页面向对...

java课程设计报告

课程设计说明书课程名称Java程序设计专业班级设计人山东科技大学20xx年1月14日山东科技大学学生课程设计目录1需求分析说明111背景112功能要求113运行环境114功能实现12概要设计说明221模块调用图...

java课程设计万年历程序设计报告

广东商学院华商学院实验报告课程名称Java程序设计课程设计实验项目名称万年历班级与班级代码XX专软件X班实验室名称或课室厚德楼B203专业任课教师刘X璐学号310010114姓名XXX实验日期20xx年12月日...

java课程设计报告(32篇)