零钱通OOP
需求:使用 Java 开发 零钱通项目 , 可以完成收益入账,消费,查看明细,退出系统等功能
主方法
package com.extend_.SmallChange;
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
ArrayList<Spend> arrayList=new ArrayList<>();
Scanner scanner = new Scanner(System.in);
boolean loop=true;
//主菜单
do {
System.out.println("----------零钱通-----------");
System.out.println(" 1 零钱通明细");
System.out.println(" 2 收益入账 ");
System.out.println(" 3 消费");
System.out.println(" 4 退 出");
System.out.println("请选择1-4");
int a=scanner.nextInt();
String quit="";
switch (a){
case 1:
detail(arrayList);
break;
case 2:
addmoney(arrayList);
break;
case 3:
hostmoney(arrayList);
break;
case 4:
while (true){
System.out.println("确定要退出y/n");
quit=scanner.next();
if (quit.equals("y")||quit.equals("n")){
break;
}
}
if (quit.equals("y")){
loop=false;
}
break;
default:
System.out.println("选择菜单有误");
}
if (a==4&&quit.equals("y")){
break;
}
System.out.println("---------------------------");
}while (true);
System.out.println("退出系统");
}
//打印零钱通内的信息
private static void detail(ArrayList<Spend> arrayList){
if (arrayList.size()==0){
System.out.println("系统中无信息请输入信息");
}else {
for (int i=0;i<arrayList.size();i++){
Spend spend=arrayList.get(i);
if (spend.getMoney()>=0){
System.out.println(spend.getName()+"\t+"+spend.getMoney()+"\t"
+spend.getTime()+"\t余额:"+spend.getBalance());
}else {
System.out.println(spend.getName()+"\t"+spend.getMoney()+"\t"
+spend.getTime()+"\t余额:"+spend.getBalance());
}
}
}
}
//添加消费信息
private static void addmoney(ArrayList<Spend> arrayList){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多少钱");
int money= scanner.nextInt();
Spend spend=new Spend();
String time = spend.gettime();
spend.setName("收益入账");
spend.setMoney(money);
spend.setTime(time);
spend.setBalance(money+ getbalance(arrayList));
System.out.println("是否保存信息y/n");
String choose=scanner.next();
if (choose.equals("y")){
arrayList.add(spend);
}
}
//添加消费信息
private static void hostmoney(ArrayList<Spend> arrayList){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入消费商家");
String name =scanner.next();
System.out.println("请支出多少钱");
int money=scanner.nextInt();
Spend spend=new Spend();
String time = spend.gettime();
spend.setName(name);
spend.setMoney(-money);
spend.setTime(time);
spend.setBalance(getbalance(arrayList)-money);
if (getbalance(arrayList)-money<0){
System.out.println("余额不足");
}else {
System.out.println("是否保存信息y/n");
String choose=scanner.next();
if (choose.equals("y")){
arrayList.add(spend);
}
}
}
//计算卡内余额
private static double getbalance(ArrayList<Spend> arrayList){
double balance=0;
for (int i=0;i<arrayList.size();i++){
Spend spend=arrayList.get(i);
balance=balance+ spend.getBalance();
}
return balance;
}
}
零钱通对象
package com.extend_.SmallChange;
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
ArrayList<Spend> arrayList=new ArrayList<>();
Scanner scanner = new Scanner(System.in);
boolean loop=true;
//主菜单
do {
System.out.println("----------零钱通-----------");
System.out.println(" 1 零钱通明细");
System.out.println(" 2 收益入账 ");
System.out.println(" 3 消费");
System.out.println(" 4 退 出");
System.out.println("请选择1-4");
int a=scanner.nextInt();
String quit="";
switch (a){
case 1:
detail(arrayList);
break;
case 2:
addmoney(arrayList);
break;
case 3:
hostmoney(arrayList);
break;
case 4:
while (true){
System.out.println("确定要退出y/n");
quit=scanner.next();
if (quit.equals("y")||quit.equals("n")){
break;
}
}
if (quit.equals("y")){
loop=false;
}
break;
default:
System.out.println("选择菜单有误");
}
if (a==4&&quit.equals("y")){
break;
}
System.out.println("---------------------------");
}while (true);
System.out.println("退出系统");
}
//打印零钱通内的信息
private static void detail(ArrayList<Spend> arrayList){
if (arrayList.size()==0){
System.out.println("系统中无信息请输入信息");
}else {
for (int i=0;i<arrayList.size();i++){
Spend spend=arrayList.get(i);
if (spend.getMoney()>=0){
System.out.println(spend.getName()+"\t+"+spend.getMoney()+"\t"
+spend.getTime()+"\t余额:"+spend.getBalance());
}else {
System.out.println(spend.getName()+"\t"+spend.getMoney()+"\t"
+spend.getTime()+"\t余额:"+spend.getBalance());
}
}
}
}
//添加消费信息
private static void addmoney(ArrayList<Spend> arrayList){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多少钱");
int money= scanner.nextInt();
Spend spend=new Spend();
String time = spend.gettime();
spend.setName("收益入账");
spend.setMoney(money);
spend.setTime(time);
spend.setBalance(money+ getbalance(arrayList));
System.out.println("是否保存信息y/n");
String choose=scanner.next();
if (choose.equals("y")){
arrayList.add(spend);
}
}
//添加消费信息
private static void hostmoney(ArrayList<Spend> arrayList){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入消费商家");
String name =scanner.next();
System.out.println("请支出多少钱");
int money=scanner.nextInt();
Spend spend=new Spend();
String time = spend.gettime();
spend.setName(name);
spend.setMoney(-money);
spend.setTime(time);
spend.setBalance(getbalance(arrayList)-money);
//判断余额是否足够
if (getbalance(arrayList)-money<0){
System.out.println("余额不足");
}else {
System.out.println("是否保存信息y/n");
String choose=scanner.next();
if (choose.equals("y")){
arrayList.add(spend);
}
}
}
//计算卡内余额
private static double getbalance(ArrayList<Spend> arrayList){
double balance=0;
for (int i=0;i<arrayList.size();i++){
Spend spend=arrayList.get(i);
balance=balance+ spend.getMoney();
}
return balance;
}
}
效果图
代码有待完善…