ATM管理系统(java)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/?page=3
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477
这个作业的目标 <ATM管理系统 实现开户 转账 存取等功能>
学号 <3190704114>
大一寒假时我做了一个图书管理系统 感觉和本次作业很相似 所以开始是想用c语言编写
但在后来的功能管理时发现调用的内存太大 导致程序运行很缓慢,在网上找了很多资料后 决定转为面向对象 使用Java语言。
`package ATMSystem;
public class ATMDemo {
//用户名,密码,账户余额
private String username;
private String password;
private double money;

public ATMDemo() {
	
}

public ATMDemo(String username,String password,double money) {
	this.username=username;
	this.password=password;
	this.money=money;
}

public String getUsername() {
	return username;
}

public void setUsername(String username) {
	this.username=username;
}

public String getPassword() {
	return password;
}

public void setPassword(String password) {
	this.password=password;
}

public double getMoney() {
	return money;
}

public void setMoney(double money) {
	this.money=money;
}

@Override
public String toString() {
	return "[username=" + username + ",password=" + password + ",money=" + money + "]";
}

}这里定义用户属性 可以再到用时再new新对象 即为开户 若要销户也可直接delete 还可节省内存;import java.util.*;
public class ATMTest {
ATMDemo atm=new ATMDemo();//实例化一个类对象
Scanner input=new Scanner(System.in);//控制台输入
private int num=0;//记录输入密码的次数

public void Select() {
	System.out.println("==========欢迎访问ATM银行管理系统==========");
	System.out.println("请输入用户名:");
	String username=input.next();
	System.out.println("请输入密码:");
	String password=input.next();
	if(username.equals(atm.getUsername())&&password.equals(atm.getPassword()) ) {//用户名、密码输入正确
		System.out.println("登录成功!!!");
		while(true) {
			System.out.println("尊敬的用户您好:");
			System.out.println("请选择的项目:1.取钱   2.存钱   3.查询余额   4.转账    5.重新登录   6.退出登录");
			switch(input.nextInt()) {
				case 1:
					takeMoney();//取钱
					break;
				case 2:
					saveMoney();//存钱
					break;
				case 3:
					selectMoney();//查询余额
					break;
				case 4:
					transferMoney();//转账
					break;
				
				case 5:
					Select();//重新登录
					break;
				case 6:
					System.out.println("感谢您的本次使用,欢迎下次访问该系统!");
					System.exit(0);//退出
					break;
				default :
					System.out.println("你输入有误!请重新输入!!!");
					break;
			}
		}
	}else {//用户名或密码不正确
		System.out.println("用户名或密码错误,请重新输入!!!");
		Select();//重新输入
	}
}
public void takeMoney() {//取钱
	System.out.println("请输入取钱金额(元):");
	double rmb=input.nextDouble();//控制台获取取钱金额
	if(rmb<=atm.getMoney()) {
		rmb=atm.getMoney()-rmb;
		atm.setMoney(rmb);
		System.out.println("取款成功,请取走您的现金!!!");
	}else {//取钱金额大于当前账户余额
		System.out.println("余额不足!!!");
	}
}

public void saveMoney() {//存钱
	System.out.println("请输入存钱金额(元):");
	double rmb=input.nextDouble();
	rmb+=atm.getMoney();
	atm.setMoney(rmb);//
	System.out.println("恭喜您,存款成功!!!");
}

public void selectMoney() {//查询余额
	System.out.println("当前,您的帐户余额为:" + atm.getMoney() + "元");//调用get方法获取账户余额
}

public void transferMoney() {//转账
	System.out.println("请输入转账人的用户名:");
	String username=input.next();
	System.out.println("请输入转账金额:");
	double rmb=input.nextDouble();
	if(rmb<=atm.getMoney()) {//转账金额小于等于当前账户余额
		rmb=atm.getMoney()-rmb;//减去转走的
		atm.setMoney(rmb);//调用set方法更新当前账户余额
		System.out.println("转账成功!!!");
	}else {//转账金额大于当前账户余额
		System.out.println("转账金额不足,转账失败!");
	}
}

}这里是主要功能类 先通过选择语句进入不同的功能模块 再写不同的功能的方法,实现模块化编程,也更容易看懂;public class main {
public static void main(String[] args) {
ATMTest atmtest=new ATMTest();
atmtest.Select();
}
}`
这里主函数直接调用所写类,若有需求变化也可直接在对应类中更改 因为对java的new使用不够熟练这里使用我直接在用户类里定义对象 初始余额10000
大致运行如图

psp表格如图

小结
本次作业我又详细的学习了java类的定义和调用 更深入的了解了面向对象编程的优越性 但自己的知识储备过于匮乏 从网上找了很多资料才勉强完成任务,未来的学习没有止境 我希望在不久后能够自己独立写出一个完善的管理系统

posted @ 2020-11-18 09:01  JustEclipse  阅读(365)  评论(0)    收藏  举报