Java课堂测试01及感想

上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款、转账汇款、修改密码、查询余额的操作。这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件的时候,还是有种悔不当初的感觉的,假期里找的教程是有教文件的,当时想着假期给的试题仅要求数组,就偷了懒。这次测验的时候,看了一下文件的教程,不是怎么清楚怎么像题目那样使用文件,便放弃了这一部分,还是用的数组。这次测验还发现了自己的很多问题,特别是一些习惯上的问题。以前写的都是几十行的小程序,简单看下题目就知道该怎么做,而这次的测验却没那么小了。拿到题目的时候老师有叫过我们先构思,不要立刻动手,我看了题目想了一会儿,并没有很清楚的思路,只有一个模糊的想法,就开始动手,写到执行文件时就不太记得一开始的想法,写一会就看一会题目,翻翻刚写的代码,浪费了很多时间。写着写着就发现少了一些东西,又去前面加,后面都乱了。测试的时间从两个小时延长到两个半小时再到三个小时,可以说是很足了,但是我还是只实现了前面两个功能,也是和思路的混乱有关,当然更主要的是能力不足,暑假的学习太过应付了事,以后还是要努力才行,不能再贪玩了。

Account.java

 1 public class Account {
 2
 3     private String accountID;      //账号
 4     private String accountname;       //名称
 5     private String operatedate;        //操作时间
 6     private int operatetype;
 7     private String accountpassword;    //密码
 8     private int accountbalance;        //账户余额
 9     private int amount;                //流水金额
10
11     public String getAccountID() {
12         return accountID;
13     }
14     public void setAccountID(String accountID) {
15         this.accountID = accountID;
16     }
17     public String getAccountname() {
18         return accountname;
19     }
20     public void setAccountname(String accountname) {
21         this.accountname = accountname;
22     }
23     public String getOperatedate() {
24         return operatedate;
25     }
26     public void setOperatedate(String operatedate) {
27         this.operatedate = operatedate;
28     }
29     public int getOperatetype() {
30         return operatetype;
31     }
32     public void setOperatetype(int operatetype) {
33         this.operatetype = operatetype;
34     }
35     public String getAccountpassword() {
36         return accountpassword;
37     }
38     public void setAccountpassword(String accountpassword) {
39         this.accountpassword = accountpassword;
40     }
41     public int getAccountbalance() {
42         return accountbalance;
43     }
44     public void setAccountbalance(int accountbalance) {
45         this.accountbalance = accountbalance;
46     }
47     public int getAmount() {
48         return amount;
49     }
50     public void setAmount(int amount) {
51         this.amount = amount;
52     }
53
54     Account( String accountID,String accountname,String accountpassword){
55         this.accountID = accountID;
56         this.accountname = accountname;
57         this.accountpassword = accountpassword;
58         accountbalance = 0;
59     }
60
61 }

AccountManager.java

import java.util.Scanner;

public class AccountManager {

    Scanner in = new Scanner( System.in );
    Account[] acc = new Account[1000];
    int i=5;
    int j,k;
    int temp = 0;

    public void InterfaceAccount(){
        acc[0] = new Account("20173445","刘**","123456");
        acc[1] = new Account("20170001" ,"张三","387592");
        acc[2] = new Account("20170002","李四","035432");
        acc[3] = new Account("20170004","王五","830294");
        acc[4] = new Account("20170005","赵六","208493");
        temp=0;
        String accountID;
        System.out.println("**************************************************");
        System.out.println("          欢迎使用中国工商银行自动柜员系统");
        System.out.println("**************************************************");
        System.out.print("      请输入您的账号:");
        accountID = in.next();
        if( accountID.length() != 8 ){
            System.out.println("**************************************************");
            System.out.println("该卡不是工行账号");
            InterfaceAccount();
        }
        else{
            for( j=0; (j<i) && (temp==0); j++ ){
                if( acc[j].getAccountID().equals( accountID ))
                    temp = 1;
            }
            if(temp==0){
                System.out.println("**************************************************");
                System.out.println("该账号不存在");
                InterfaceAccount();
            }
            else{
                j--;
                InterfacePassword();
            }
        }
    }

    public void InterfacePassword(){
        String accountpassword;
        int h=3;
        System.out.println("**************************************************");
        System.out.println("      欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
        System.out.println("**************************************************");
        while((h--)>0){
            System.out.print("  请输入您的密码:");
            accountpassword = in.next();
            if( acc[j].getAccountpassword().equals( accountpassword)){
                InterfaceMain();
            }
            else{
                System.out.println("**************************************************");
                System.out.println("密码输入错误");
                if( h==0){
                    System.out.println("**************************************************");
                    System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
                    InterfaceAccount();
                }
            }
        }
    }

    public void InterfaceMain(){
        int operatetype;
        System.out.println("**************************************************");
        System.out.println("      欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
        System.out.println("**************************************************");
        System.out.println("                  1、 存款;");
        System.out.println("                  2、 取款;");
        System.out.println("                  3、 转账汇款;");
        System.out.println("                  4、 修改密码;");
        System.out.println("                  5、 查询余额");
        System.out.println("**************************************************");
        operatetype = in.nextInt();
        acc[j].setOperatetype(operatetype);
        switch(operatetype){
        case 1:deposit();break;
        case 2:withdraw();break;
        }
    }

    public void deposit(){                //存款
        int amount;
        System.out.println("**************************************************");
        System.out.println("      欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
        System.out.println("**************************************************");
        System.out.println("              请输入存款金额:");
        amount = in.nextInt();
        String s = String.valueOf(amount);
        if( s.equals("q"))
            InterfaceAccount();
        else{
            if( amount <= 0 ){
                System.out.println("输入金额有误");
                withdraw();
            }
            else{
                System.out.println("**************************************************");
                System.out.println("      欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
                System.out.println("**************************************************");
                System.out.println("             当前账户存款操作成功");
                acc[j].setAccountbalance( acc[j].getAccountbalance()+amount );
                System.out.println("  当前账户余额为:"+acc[j].getAccountbalance()+"元");
                System.out.println("**************************************************");
                s = in.next();
                if( s.equals("q"))
                    InterfaceAccount();
            }
        }
    }

    public void withdraw(){                                    //取款
        int amount = 0;
        System.out.println("**************************************************");
        System.out.println("     欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
        System.out.println("**************************************************");
        System.out.println("          当前账户每日可以支取2万元");
        System.out.println("                 1、 100元");
        System.out.println("                 2、 500元");
        System.out.println("                 3、 1000元");
        System.out.println("                 4、 1500元");
        System.out.println("                 5、 2000元");
        System.out.println("                 6、 5000元");
        System.out.println("                 7、 其他金额");
        System.out.println("                 8、 退卡");
        System.out.println("                 9、 返回");
        System.out.println("**************************************************");
        temp = in.nextInt();
        switch(temp){
            case 1:amount=100;break;
            case 2:amount=500;break;
            case 3:amount=1000;break;
            case 4:amount=1500;break;
            case 5:amount=2000;break;
            case 6:amount=5000;break;
            case 7:{
                System.out.println("**************************************************");
                System.out.println("     欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
                System.out.println("**************************************************");
                System.out.println("                请输入取款金额");
                amount = in.nextInt();break;
            }
            default:break;
        }
        if( amount > acc[j].getAccountbalance() )
            System.out.println("账户余额不足");
        else{
            System.out.println("**************************************************");
            System.out.println("  欢迎"+acc[j].getAccountname()+"使用中国工商银行自动柜员系统");
            System.out.println("**************************************************");
            System.out.println("当前账户取款操作"+amount+"元成功");
            acc[j].setAccountbalance( acc[j].getAccountbalance()+amount);
            System.out.println("当前账户余额为:"+acc[j].getAccountbalance()+"元");
            System.out.println("**************************************************");
        }
        if( temp == 8 )
            InterfaceAccount();
        if(temp==9)
            InterfaceMain();
    }

}

ATM.java

/*
 * 信1705-1
 * 20173445
 * 刘
 */
public class ATM {
    public static void main( String[] args){
        AccountManager manager = new AccountManager();
        manager.InterfaceAccount();
    }
}

原文地址:https://www.cnblogs.com/gothic-death/p/9697332.html

时间: 2024-11-05 14:57:31

Java课堂测试01及感想的相关文章

软件工程系统开发课堂测试01

这次测试我们尝试的编辑了河北省重大技术需求证据系统,程序需求用户注册,用户登陆,系统主机面,需求征集,浏览需求,需求审核,修改密码等功能,并且需要进行数据库的连接,这些内容大部分在上一学期就有了些许的掌握,但在课堂测试的过程中,我还是只完成了部分功能,我只满足了用户注册,用户登陆,需求征集,修改密码这几个功能,并与数据库正常连接,图形化界面也并没有完成,下面我将展示我的代码. //Dao.java package Dao; import java.sql.Connection; import j

Java课堂测试——课程管理

本周的Java课,王老师让学长们就上周的课堂测试内容进行了讲解.本次讲解加强了我对JavaWeb的项目的认识.虽然JSP文件和Servlet文件里面涉及到的各个方法我不能很好的理解,可是关于表单提交,和数据库的信息处理等代码,我勉强可以理解它们的作用,并可以根据自己的需要对现有的代码进行修改,实现自己需要的功能.就本周的测试而言,我可以实现大部分要求的功能,但是有很多不足之处,比如界面不美观,无法实现模糊查找等.我将对本次的实验做出如下总结. 首先创建一个类,在类里面实现数据库的连接,如下所示.

Java课堂测试——输出单个文件中的前N个最常出现的英语单词

课堂测试一:输出某个英文文本文件中26字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. HarryFre.java 1 package demo05; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.text.DecimalFormat; 7 import java.util.Array

JAVA语言课堂测试01源代码(学生成绩管理系统)

package 考试; /*信1807-8 * 20183798 * 向瑜 */ import java.util.Scanner; //ScoreInformation 类 class ScoreInformation { private String stunumber; private String name; private double mathematicsscore; private double englishscore; private double networkscore;

课堂测试01

一: 1,JAVA的基本运行单位是类 2,类的成员:成员变量,构造方法,普通方法和内部类 3,成员变量种类:字符类型:char        布尔类型:boolean     数值类型:byte, short ,int  long ,float ,double 浮点类型:float ,double 4,String 不是基本数据类型而是类 5,static含义:表示"全局"或者"静态"的意思 用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java

java课堂测试样卷-----简易学籍管理系统

程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计算等功能的函数)和一个主函数Text类 (通过输入的数字选项进行功能的实现,因为退出系统代码量极少,所以在主函数中实现此功能) 程序源代码及注释 ScoreInformation类: 1 //信1805-3 20183658 王兵兵 2 package adc; 3 4 public class S

第一次被要求连接数据库的课堂测试

1.     题目要求 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教师的其中一位.(0.5分) 要求上课地点开头为"一教.二教.三教.基教"中的一种.(0.5分) 实现数据存储功能.(3分) 将课堂练习设计思想,源程序代码.运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志.时间记录日志.缺陷记录日志. 课堂练习的源代码上

课堂测试1 登录界面

1.网站系统开发需要什么技术 前台photoshop(美工必学的)+dreaweaver(css+div)+javacript,后台php .net  asp 等编程语言,要想做好网站HTML.JAVASCRIPT.CSS.数据库.服务器配置必须要学会. 在网上查了一下,要做好一个网站系统,要学习的技术有很多,简单列举一下: (1)java Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.JavaBean(Application)四部分技术. (

课堂测试——数据位数、位数输出、各位数上数据求和

2016.10.18Java课堂测试 在课堂上写的时候,写到各位书身上数据输出时.因为处理不好取最高位的步骤所以不能继续进行编程. 经过后期查找之后: 引用import static java.lang.Math.*; 求x的y次方运算,Math.pow(x,y); 求整数部分,Math.floor();//这里运行之后发现是double类型所以又用了强制转换. 将Int转换为Double类型,int number1=(int) number2; 另外的问题就是: 因为数据上存在多次变化使用,所