• 课程考核感想


    1.源代码

    package atm;
    import java.util.Scanner;
    import java.util.ArrayList;
    public class AccountManager
    {

    public static void main(String[] args) {
    Account account = new Account ();
    double m=0;
    int i=0;
    int k=0;
    int j=0;
    String l="";
    Scanner in=new Scanner(System.in);
    boolean ture = false;
    while(!ture)
    {
    do
    {
    account.menu0();
    i=in.nextInt();
    while(i<10000000||i>99999999)
    {
    System.out.println(" 该卡不是工行卡 ");
    System.out.println(" 重新输入您的账号");
    i=in.nextInt();
    }
    account.menu(i);

    for(k=0;k<3;k++)
    {
    j=in.nextInt();
    if(j>100000&&j<999999)
    {

    k=5;
    break;
    }
    else if(j<100000||j>999999)
    {
    System.out.println("密码输入错误");
    }
    else if(j==888888)
    {
    System.out.println("密码输入错误");
    }
    }
    if(k==3)
    {
    System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
    }
    }while(k!=5);


    do
    {
    account.menu1(i);
    l=in.next();
    switch(l){
    case "1":
    {
    account.menu2(i);
    m=in.nextDouble();
    while(m<0||m-(int)m>0.00001)
    {
    System.out.println("输入金额有误");
    account.menu2(i);
    m=in.nextInt();
    }
    account.cun(m,i);
    };break;
    case "2":
    {
    account.qu(i);
    int n;
    n=in.nextInt();
    switch(n)
    {
    case 1:
    {
    if(m<100)
    System.out.println("账户余额不足");
    else
    m=m-100;
    };break;
    case 2:{
    if(m<500)
    System.out.println("账户余额不足");
    else
    m=m-500;
    };break;
    case 3:{
    if(m<1000)
    System.out.println("账户余额不足");
    else
    m=m-1000;
    };break;
    case 4:{
    if(m<1500)
    System.out.println("账户余额不足");
    else
    m=m-1500;
    };break;
    case 5:{
    if(m<2000)
    System.out.println("账户余额不足");
    else
    m=m-2000;
    };break;
    case 6:{
    if(m<5000)
    System.out.println("账户余额不足");
    m=m-5000;
    };break;
    case 7:{
    System.out.println("*************************************************************** ");
    System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统");
    System.out.println("**************************************************************** ");
    System.out.println("请输入取款金额:");
    System.out.println("**************************************************************** ");
    int jin;
    jin=in.nextInt();
    if(m<jin)
    System.out.println("账户余额不足");
    else
    m=m+jin;
    };break;
    case 8:account.menu0();;break;
    case 9:account.menu1(i);break;
    }
    }
    case "3":{
    account.zhuan(i);
    int zhanghu;
    zhanghu=in.nextInt();
    account.jine(i);
    int jine;
    jine=in.nextInt();
    if(m<jine)
    System.out.println("账户余额不足");
    else
    {
    System.out.println("*************************************************************** ");
    System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统 ");
    System.out.println("**************************************************************** ");
    System.out.println("请确认是否向"+zhanghu+"转账"+jine+"元");
    System.out.println("当前账户余额为:"+(m-jine)+" 元 ");
    }

    };break;
    case "4":{
    account.mima(i);
    int ymi,nmi,nmi2;
    ymi=in.nextInt();
    nmi=in.nextInt();
    nmi2=in.nextInt();
    if(ymi==j)
    {
    if(nmi==nmi2)
    {
    System.out.println("***************************************************************");
    System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 ");
    System.out.println("***************************************************************");
    System.out.println("当前账户密码修改成功 ");
    System.out.println("***************************************************************");
    }
    else
    System.out.println("修改密码与确认密码不一致");
    }
    else
    System.out.println("当前密码录入错误");
    };break;
    case "5":System.out.println("当前余额:"+m);break;
    }

    }while(l.charAt(0)!='q');
    }
    }
    }

    package atm;

    public class Account
    {
    private String accountID;
    private String accountname;
    private String operatedate;
    private int operatetype;
    private String accountpassword;
    private int accountbalance;
    private int amount;

    public void setaccountID(String a)
    {
    accountID=a;
    }
    public void setaccountname(String b)
    {
    accountname=b;
    }
    public void setoperatedate(String c)
    {
    operatedate=c;
    }
    public void setoperatetype(int d)
    {
    operatetype=d;
    }
    public void setaccountpassword(String e)
    {
    accountpassword=e;
    }
    public void setaccountbalance(int f)
    {
    accountbalance=f;
    }
    public void setamount(int g)
    {
    amount=g;
    }


    public String getaccountID()
    { return accountID;
    }
    public String getaccountname()
    {
    return accountname;
    }
    public String getoperatedate()
    {
    return operatedate;
    }
    public int getoperatetype()
    {
    return operatetype;
    }
    public String getaccountpassword()
    {
    return accountpassword;
    }
    public int getaccountbalance()
    {
    return accountbalance;
    }
    public int getamount()
    {
    return amount;
    }
    public Account() {}
    public void menu(int i)
    {

    System.out.println("***************************************************************");
    System.out.println(" 欢迎"+i+"使用中国工商银行自助柜员系统");
    System.out.println("***************************************************************");
    System.out.println(" 输入您的密码:");
    System.out.println("***************************************************************");
    }
    public void menu0()
    {
    System.out.println("***************************************************************");
    System.out.println(" 欢迎使用中国工商银行自助柜员系统");
    System.out.println("***************************************************************");
    System.out.println(" 输入您的账号:");
    System.out.println("***************************************************************");
    }
    public void menu1(int i)
    {
    System.out.println("***************************************************************");
    System.out.println(" 欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统");
    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("***************************************************************");
    }
    public void menu2(int i)
    {
    System.out.println("***************************************************************");
    System.out.println("欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("请输入存款金额;");
    System.out.println("****************************************************************");
    }
    public void cun(double m,int i)
    {
    System.out.println("***************************************************************");
    System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("当前账户存款操作成功。");
    System.out.println("当前账户余额为:"+m+"元");
    System.out.println("****************************************************************");
    }
    public void qu(int i)
    {
    System.out.println("***************************************************************");
    System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统");
    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("****************************************************************");
    }
    public void zhuan(int i)

    {
    System.out.println("*************************************************************** ");
    System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 ");
    System.out.println("**************************************************************** ");
    System.out.println("请输入转账账户; ");
    System.out.println("**************************************************************** ");
    }
    public void jine(int i)
    {
    System.out.println("*************************************************************** ");
    System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 ");
    System.out.println("*************************************************************** ");
    System.out.println("请输入转账金额; ");
    System.out.println("*************************************************************** ");
    }
    public void mima(int i)
    {
    System.out.println("*************************************************************** ");
    System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 ");
    System.out.println("*************************************************************** ");
    System.out.println("请输入当前密码: ");
    System.out.println("请输入修改密码: ");
    System.out.println("请输入确认密码: ");
    System.out.println("*************************************************************** ");
    }


    }

    2.运行截图

    3.感想

     在9月22日周二我们进行了开学测试,来检查暑假的学习效果,考试的内容是实现ATM机的存取款等功能,要求ATM机的账户记录Account有账户的唯一性标识(8个数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0)。

           在看到试卷时,我首先花费了大概20分钟时间设计并整理思路,之后便进行了私有变量、get()、set()函数的定义,这些在暑假做过很多次,所以很快便完成了。接下来便是实现向accountinformation.txt、accountlist.txt文件中输入信息并实现输出,这个程序最重要的便是文件的输入与输出,在这里我使用了对象的序列化,并用了ArrayList动态数组,以对象为单位输入输出。在界面设计中,困难的是账号和密码与储存在文件内容中对象信息对比,通过将文件中的全部对象存入动态数组中,之后调用getaccountID()和getaccountpassword()对比实现。接下来的功能也都通过类似的方法一一实现,操作流水信息则是每操作一次便将操作信息存入accountlist.txt文件中,在最后查询时现将储存的所有信息放到动态数组中,之后用getaccountID()与账户进行对比,如果相同则输出。在操作流水信息中有操作时间,就是需要获得操作的时间,这个功能我没有实现了。

           在考试过程中,从头开始一项一项的实现的,每个功能完成时都会进行测试,这固然会时编程的速度变慢,但是保证了程序能够正常进行。每个功能我都创建了新的函数,但是感觉每个函数中重复的地方比较多,下次考试时我会尝试将重复的地方另外建一个函数,使程序变得更加简单。在编程过程中,程序总是会出错,最多的便是变量的初始化和定义变量的作用范围,对于变量的作用范围掌握的不是很好。在编程前虽然花了20分钟时间看题,但在编程时思维还是有些混乱,总是想起一样做一样,导致编程的时候结构混乱。

           通过本次考试,我对在暑假中学到的知识掌握的更加熟练,同时也认识到了自身的不足,考试时有些紧张着急,导致思维比较混乱,for和if的包括范围搞错导致程序出错,编程序的速度太慢,3小时时间内还有两项功能没有实现,界面不够美观,注释几乎没有,总之在本次考试中我发现了自己的很多不足之处。考试结束后老师为我们讲解了一番,表示一个程序的输入是要直达目的的,只能输入程序员想要的,所以要限制其他情况。在本次考试中,我尽了自己的最大努力,暑假学到的知识得到了充分的发挥,知道了自己的知识是多么的有限。在接下来的学习中,我会更加努力,调整好自己的心态,在编程前整理好思路,注重编程中的细节,把程序变得更加美观,我相信在老师的带领下,我的能力会得到进一步的提升。

  • 相关阅读:
    使用SOCKET实现TCP/IP协议的通讯
    多线程和高并发的区别
    linq学习之join
    Winform 创建桌面快捷方式并开机启动
    引领5G行业化,广和通荣获“IoT创新大奖”
    全方面的了解超宽带信号高速采集记录回放系统
    浅谈智慧灯杆的通信网建设要求
    逆向工程,调试Hello World !程序(更新中)
    融合智能将成时代方舟?中科创达技术大会向未来答疑
    第十一届蓝桥杯赛后体会和经验分享
  • 原文地址:https://www.cnblogs.com/wanghaoning/p/13714509.html
Copyright © 2020-2023  润新知