• 2020 9 22 极限测试


    今天,健民老师布置了布置了开学测试,检验我们暑假里学习java的效果,题目是模拟ATM机系统,提供存款取款转账查询等功能,运用文件操作存储用户账号的各种信息。总体来说并不难,除了文件操作我没有自学过之外,其他知识我都了解。

    首先建立类:

    package item;

    import java.util.*;

    public class Account {//主类

    private String accountID;

    private String accountname;

    private String operatedate;

    private int operatetype;

    private String accountpassword;

    private int accountbalance;

    private int account;

    设置构造函数:

    public Account()//构造

    {

    this.accountID ="***";

    this.accountname ="****";

    this.operatedate ="0-0-0";

    this.operatetype =-1;

    this.accountpassword ="******";

    this.accountbalance =0;

    this.account =0;

    }

    对每个属性变量设置Get()和Set()函数,Set函数给参数:

    public String GetaccountID()

    {

    return accountID;

    }

     public void SetaccountID(String a)

    {

    accountID=a;

    }

     public String Getaccountname()

    {

    return accountname;

    }

    public void Setaccountname(String a)

    {

    accountname=a;

    }

    public String Getoperatedate()

    {

    return accountname;

    }

    public void Setoperatedate(String a)

    {

    operatedate=a;

    }

    public int Getoperatetype()

    {

    return operatetype;

    }

    public void Setoperatetype(int a)

    {

    operatetype=a;

    }

    public String Getaccountpassword()

    {

    return accountpassword;

    }

    public void Setaccountpassword(String a)

    {

    accountpassword=a;

    }

    public int Getaccountbalance()

    {

    return accountbalance;

    }

    public void Setaccountbalance(int a)

    {

    accountbalance=a;

    }

    public int Getaccount()

    {

    return account;

    }

    public void Setaccount(int a)

    {

    account=a;

    }

    菜单函数:

    public void menu()//菜单

    {

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    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("    6.退出系统");

    System.out.println("*************************************************");

    }

    用户操作函数:

    public void play()//用户输入

    {

    Scanner cin=new Scanner(System.in);

    for(;;)

    {

    System.out.println("请输入");

    int a=cin.nextInt();

    while(a<0&&a>7)

    {

    System.out.println("输入错误,重新输入");

    a=cin.nextInt();

    }

    switch (a)

    {

    case 1:cun();break;

    case 2:qu();break;

    case 3:zhuan();break;

    case 4:xiu();break;

    case 5:cha();break;

    case 6:break;

    }

    if(a==6) break;

    }

    }

    存款函数:

    public void cun()//存款

    {

    Scanner cin=new Scanner(System.in);

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

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

    int a=cin.nextInt();

    this.accountbalance +=a;

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

    System.out.println("当前账户存款成功!");

    System.out.println("当前账户余额:"+this.accountbalance );

    }

    取款函数:

    public void qu()//取款

    {

    int c[]= {100,500,1000,1500,2000,5000};

    int a=0,b=0;

    Scanner cin=new Scanner(System.in);

    for(;;)

    {

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    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、返回");

    a=cin.nextInt();

    int temp =0;

    if(a==1)

    {

    while(this.accountbalance <100)

    {

    System.out.println("账户余额不足,请重新输入:");

    }

    if(this.accountbalance >100) temp=1;

    }

    else if(a==2)

    {

    while(this.accountbalance <500)

    {

    System.out.println("账户余额不足,请重新输入:");

    }

    if(this.accountbalance >500) temp=1;

    }

    if(a==3)

    {

    while(this.accountbalance <1000)

    {

    System.out.println("账户余额不足");

    }

    if(this.accountbalance >1000) temp=1;

    }

    if(a==4)

    {

    while(this.accountbalance <1500)

    {

    System.out.println("账户余额不足");

    }

    if(this.accountbalance >1500) temp=1;

    }

    if(a==5)

    {

    while(this.accountbalance <2000)

    {

    System.out.println("账户余额不足");

    }

    while(this.accountbalance >2000) temp=1;

    }

    if(a==6)

    {

    while(this.accountbalance <5000)

    {

    System.out.println("账户余额不足");

    }

    if(this.accountbalance >5000) temp=1;

    }

    if(a==7)

    {

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

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

    b=cin.nextInt();

    if(this.accountbalance <b)

    {

    System.out.println("账户余额不足,请重新输入:");

    }

    else

    {

    temp=1;

    this.accountbalance -=b;

    c[a]=b;

    }

    }

    if(a==8) temp=1;

    if(a==9) temp=1;

    if(temp!=1)

    {

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

    System.out.println("当前账户取款操作:"+c[a]+"成功");

    System.out.println("当前账户余额:"+this.accountbalance );

    break;

    }

    }

    }

    更改密码函数:

    public void xiu()//改密

    {

    Scanner cin=new Scanner(System.in);

    for(;;)

    {

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

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

    String a1=cin.nextLine();

    if(!a1.equals(this.accountpassword )) continue;

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

    String a2=cin.nextLine();

    System.out.println("确认新密码:");

    String a3=cin.nextLine();

    if(!a3.equals(a2)) continue;//比较字符串

    break;

    }

    System.out.println("*************************************************");

    System.out.println("欢迎"+this.accountname+"使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

    System.out.println("当前账户密码修改成功");

    }

    主方法:

    public static void main(String[] args) {

    Scanner cin=new Scanner(System.in);

    Account a[];

    a=new Account[101];//定义用户信息数组

    for(int i=0;i<5;i++)

    {

    a[i]=new Account();

    }

    a[0].SetaccountID("20194129");

    a[0].Setaccountname("伏珊瑞");

    a[0].Setoperatedate("2020-9-20");

    a[0].Setoperatetype(1);

    a[0].Setaccountpassword("047793");

    a[0].Setaccountbalance(5000);

    a[0].Setaccount(5000);

    a[0].SetaccountID("20193681");

    a[0].Setaccountname("雷琨");

    a[0].Setoperatedate("2020-9-19");

    a[0].Setoperatetype(1);

    a[0].Setaccountpassword("047796");

    a[0].Setaccountbalance(5000);

    a[0].Setaccount(5000);

    Account b=new Account();

    int temp=0,temp1=0;

    System.out.println("*************************************************");

    System.out.println("欢迎使用中国工商银行自动柜员系统            ");

    System.out.println("*************************************************");

    System.out.println("请输入你的账号:");

    String a1=cin.nextLine();

    for(int i=0;i<100;i++)//检查账号是否存在

    {

    if(a[i].GetaccountID().equals(a1))

    {

    temp=i;

    break;

    }

    }

    b.SetaccountID(a1);

    System.out.println("*************************************************");

    System.out.println("欢迎"+a[temp].accountname+ "使用中国工商银行自助柜员系统");

    System.out.println("*************************************************");

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

    String a2=cin.nextLine();

    boolean b1=(a2.equals(a[temp].accountpassword));//比较字符串是否相等要用equals返回布尔类型

    if(!b1)  //检查密码是否正确

    {

    System.out.println("密码输入错误!请重新输入(两次)!");

    for(int i=0;i<2;i++)

    {

    String a3=cin.nextLine();

    if(a3.equals(a[temp].accountpassword )) //改

    {

    temp1=1;

    break;

    }

    }

    if(temp1==0)//改

    {

    System.out.println("该账号三次密码输入错误,改卡已被系统没收,请于工行及时联系处理!");

    }

    }

    if(temp1==1)//账号密码没错之后进行菜单与用户操作

    a[temp].menu();

    a[temp].play();

    }

    }

    总结问题:

    1、字符串比较相等的问题。

    Java 中,如果要比较 a 字符串是否等于 b 字符串,需要这么写: if(a.equals(b)){ } 返回 true 或 false equals()方法 方法 String 的 equals()方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能 简单的用“==” (双等号)判断两个字符串是否相等,而使用 equals()方法比较两个对象的内 容。 语法: boolean equals(String str) str:要作比较的字符串对象。 返回:如果和 String 相等则为 true;否则为 false。 例如字符串“abc” 和一个新的字符串“abc” 比较的结果为“true” 因为它们内容相同。 , 注意: equals()方法比较的是对象的内容(区分字母的大小写格式) ,但是如果使用“==”双等 号操作符比较两个对象时, 比较的是两个对象的内存地址, 所以它们不相等 (即使内容相同, 不同对象的内存地址也是不相同的)。

    2、java文件读写操作。

    1. 字节流。

    字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。inputstream和OutputStream都是抽象类,不能实例化,使用时必须实例化一个子类(其中FileInputStream和FileOutputStream使用最多)对象来进行相关操作。

    1. 字符流

    字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。FileReader与FileWriter.

  • 相关阅读:
    顧客満足度調査
    GeoStTool.dll过滤图层
    GeoStTool.ini相关技术要点
    GeoStTool.dll与RasterServer通信
    hdu 1007 Quoit Design
    hdu 4325 Flowers
    hdu 2516 取石子游戏
    hdu 1006 Tick and Tick
    CodeForces 101A Homework
    ZOJ Problem Set 1879
  • 原文地址:https://www.cnblogs.com/fuxw4971/p/13714872.html
Copyright © 2020-2023  润新知