初学Java,使用Java(c/c++)完成一个简单的项目
想简单一点偷懒,使用字符串拼接完成收入支出
想要复杂一点的可以使用对象或者数组存储
先来一个不是很Java的代码
显示系统菜单
添加一个循环使用户一直在菜单界面
boolean loop = true;//记录是否退出
Scanner scanner = new Scanner(System.in);
String key = "";
do {
System.out.println("==============================收入支出系统================================");
System.out.println("\t\t\t\t\t\t1 账户明细");
System.out.println("\t\t\t\t\t\t2 收益入账");
System.out.println("\t\t\t\t\t\t3 消 费");
System.out.println("\t\t\t\t\t\t4 退 出");
System.out.print("请选择(1-4):");
key = scanner.next();
}while (loop);
账户明细
String detail = "==============================零钱通明细================================";
switch (key){
case "1":
System.out.println(detail);
break;
default:
System.out.println("选择有误,请重新选择");
}
收入
double money = 0;
double balance = 0;
Date date = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM--dd hh:mm");//用于日期格式化
switch (key){
case "2":
System.out.print("收益入账:");
money = scanner.nextDouble();
if (money <= 0){
System.out.println("收入不合理");
break;
}
balance += money;
// 更新收益入账信息
date = new Date();
detail += "\n收益入账\t+" + money + "\t" + simpleDateFormat.format(date) + "\t" + "余额:" + balance;
break;
default:
System.out.println("选择有误,请重新选择");
}
消费
String note = null;
switch (key){
case "3":
System.out.print("消费金额:");
money = scanner.nextDouble();
if (money <= 0 || money > balance){
System.out.println("消费不合理");
break;
}
System.out.print("消费说明:");
note= scanner.next();
balance -= money;
date = new Date();
detail += "\n" + note + "\t-" + money + "\t" + simpleDateFormat.format(date) + "\t余额:" + balance;
break;
default:
System.out.println("选择有误,请重新选择");
}
退出
String choice = null;
switch (key){
case "4":
System.out.println("是否要退出?y/n");
while (true){
choice = scanner.next();
if (choice.equals("y") || choice.equals("n")) {
break;
}else {
System.out.println("请输入正确的指令!y/n");
}
}
if (choice.equals("y")){
loop =false;
}else {
System.out.println("已取消");
}
break;
default:
System.out.println("选择有误,请重新选择");
}
完整代码
public class Account {
public static void main(String[] args) {
//完成显示菜单
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
//明细
String detail = "==============================零钱通明细================================";
//收益
double money = 0;
double balance = 0;
Date date = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM--dd hh:mm");//用于日期格式化
//消费
String note = null;
//退出
String choice = null;
do {
System.out.println("==============================收入支出系统================================");
System.out.println("\t\t\t\t\t\t1 账户明细");
System.out.println("\t\t\t\t\t\t2 收益入账");
System.out.println("\t\t\t\t\t\t3 消 费");
System.out.println("\t\t\t\t\t\t4 退 出");
System.out.print("请选择(1-4):");
key = scanner.next();
switch (key){
case "1":
System.out.println(detail);
break;
case "2":
System.out.print("收益入账:");
money = scanner.nextDouble();
if (money <= 0){
System.out.println("收入不合理");
break;
}
balance += money;
// 更新收益入账信息
date = new Date();
detail += "\n收益入账\t+" + money + "\t" + simpleDateFormat.format(date) + "\t" + "余额:" + balance;
break;
case "3":
System.out.print("消费金额:");
money = scanner.nextDouble();
if (money <= 0 || money > balance){
System.out.println("消费不合理");
break;
}
System.out.print("消费说明:");
note= scanner.next();
balance -= money;
date = new Date();
detail += "\n" + note + "\t-" + money + "\t" + simpleDateFormat.format(date) + "\t余额:" + balance;
break;
case "4":
System.out.println("是否要退出?y/n");
while (true){
choice = scanner.next();
if (choice.equals("y") || choice.equals("n")) {
break;
}else {
System.out.println("请输入正确的指令!y/n");
}
}
if (choice.equals("y")){
loop =false;
}else {
System.out.println("已取消");
}
break;
default:
System.out.println("选择有误,请重新选择");
}
}while (loop);
System.out.println("==============================已退出=================================");
}
}
Java代码
public class SmallChangeApp {
public static void main(String[] args) {
SmallChangeOOP smallChangeOOP = new SmallChangeOOP();
smallChangeOOP.menu();
}
}
实现类
public class SmallChangeOOP {
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
String detail = "==============================账户明细================================";
//收益
double money = 0;
double balance = 0;
Date date = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM--dd hh:mm");//用于日期格式化
//消费
String note = null;
//退出
String choice = null;
// 显示菜单
public void menu(){
do {
System.out.println("==============================收入支出系统================================");
System.out.println("\t\t\t\t\t\t1 账户明细");
System.out.println("\t\t\t\t\t\t2 收益入账");
System.out.println("\t\t\t\t\t\t3 消 费");
System.out.println("\t\t\t\t\t\t4 退 出");
System.out.print("请选择(1-4):");
key = scanner.next();
switch (key){
case "1":
this.detail();
break;
case "2":
this.income();
break;
case "3":
this.pay();
break;
case "4":
this.exit();
break;
default:
System.out.println("选择有误,请重新选择");
}
}while (loop);
}
// 显示明细
public void detail(){
System.out.println(detail);
}
//收入
public void income(){
System.out.print("收益入账:");
money = scanner.nextDouble();
if (money <= 0){
System.out.println("收入不合理");
return;
}
balance += money;
// 更新收益入账信息
date = new Date();
detail += "\n收益入账\t+" + money + "\t" + simpleDateFormat.format(date) + "\t" + "余额:" + balance;
}
//消费
public void pay(){
System.out.print("消费金额:");
money = scanner.nextDouble();
if (money <= 0 || money > balance){
System.out.println("消费不合理");
return;
}
System.out.print("消费说明:");
note= scanner.next();
balance -= money;
date = new Date();
detail += "\n" + note + "\t-" + money + "\t" + simpleDateFormat.format(date) + "\t余额:" + balance;
}
public void exit(){
System.out.println("是否要退出?y/n");
while (true){
choice = scanner.next();
if (choice.equals("y") || choice.equals("n")) {
break;
}else {
System.out.println("请输入正确的指令!y/n");
}
}
if (choice.equals("y")){
loop =false;
System.out.println("==============================已退出=================================");
}else {
System.out.println("已取消");
}
}
}