项目需求:
模拟实现家庭收支记账功能
一、需要以下方面:
1.家庭基金
2.存储收入的数据源:数组1
3.存储支出的数据源:数组2
4.退出软件
二、实现
1.数据源:
String[] day=new String[1000];//存储支出日期
String[] explain=new String[1000];//存储支出说明
double[] cost=new double[1000];//存储支出费用
String[] day2=new String[1000];//存储收入日期
String[] explain2=new String[1000];//存储收入说明
double[] income=new double[1000];//存储收入
2.页面显示:
3.代码实现:
do{
isFlag=false;
System.out.println("-------------------家庭收支记账软件----------------");
System.out.println(" 1.收支明细 ");
System.out.println(" 2.登记收入 ");
System.out.println(" 3.登记支出 ");
System.out.println(" 4.退 出 ");
System.out.println(" 请选择(1-4):请按任意键继续... ");
z=scan.nextInt();
if(z<1||z>4){
System.out.println("输入错误编码,请重新输入!");
isFlag=true;
}
}while(isFlag);
代码说明
之所以用do…while()循环结构,是因为如果输入编码错误时,可以重新循环。
4.收支明细:
if(z==1){
System.out.println("------------------1.收入明细---------------------------");
System.out.println("日期\t说明\t收入");
for(int i=0;i<1000;i++){
if(income[i]==0){
break;
}
System.out.println(day2[i]+"\t"+explain2[i]+"\t"+income[i]);
}
System.out.println("------------------1.支出明细---------------------------");
System.out.println("日期\t说明\t支出");
for(int i=0;i<1000;i++){
if(cost[i]==0){
break;
}
System.out.println(day[i]+"\t"+explain[i]+"\t"+cost[i]);
}
}
5.登记收入
else if(z==2){
String as="";
do
{
as="n";
System.out.println("------------------2.登记收入---------------------------");
System.out.println("日期\t说明\t收入");
for(int i=0;i<1000;i++){
if(income[i]==0){
System.out.print("输入收入日期:");
day2[i]=scan.next();
System.out.print("输入收入明细:");
explain2[i]=scan.next();
System.out.print("输入收入费用:");
income[i]=scan.nextDouble();
balance+=income[i];
break;
}
}
System.out.print("请问还要继续输入收入信息吗?(y/n)");
as=scan.next();
}while(as.equals("y"));
}
6.登记支出
else if(z==3){
String qw="";
do {
qw="n";
System.out.println("------------------3.登记支出---------------------------");
System.out.println("日期\t说明\t支出");
for (int i = 0; i < 1000; i++) {
if (cost[i] == 0) {
System.out.print("输入支出日期:");
day[i] = scan.next();
System.out.print("输入支出明细:");
explain[i] = scan.next();
System.out.print("输入支出费用:");
cost[i] = scan.nextDouble();
balance-=cost[i];
break;
}
}
System.out.print("请问还要继续输入收入信息吗?(y/n)");
aq = scan.next();
}while(qw.equals("y"));
}
7.退出
else if(z==4){
System.out.print("请问确定退出吗?(y/n)");
yt="y";//存储是否使用了该功能
isFlag2=scan.next();
}
三、完整代码:
package myaccount;
import java.util.Scanner;
public class My {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
boolean isFlag=false;
String isFlag2="";
String yt="s";
String aq="";
int z=0;
double balance=10000;
String[] day=new String[1000];
String[] explain=new String[1000];
double[] cost=new double[1000];
String[] day2=new String[1000];
String[] explain2=new String[1000];
double[] income=new double[1000];
do
{
aq="n";
yt="s";
do
{
isFlag2="y";
do
{
isFlag=false;
System.out.println("-------------------家庭收支记账软件----------------");
System.out.println(" 1.收支明细 ");
System.out.println(" 2.登记收入 ");
System.out.println(" 3.登记支出 ");
System.out.println(" 4.退 出 ");
System.out.println(" 请选择(1-4):请按任意键继续... ");
z=scan.nextInt();
if(z<1||z>4){
System.out.println("输入错误编码,请重新输入!");
isFlag=true;
}
}while(isFlag);
if(z==1){
System.out.println("------------------1.收入明细---------------------------");
System.out.println("日期\t说明\t收入");
for(int i=0;i<1000;i++){
if(income[i]==0){
break;
}
System.out.println(day2[i]+"\t"+explain2[i]+"\t"+income[i]);
}
System.out.println("------------------1.支出明细---------------------------");
System.out.println("日期\t说明\t支出");
for(int i=0;i<1000;i++){
if(cost[i]==0){
break;
}
System.out.println(day[i]+"\t"+explain[i]+"\t"+cost[i]);
}
}
else if(z==2){
String as="";
do
{
as="n";
System.out.println("------------------2.登记收入---------------------------");
System.out.println("日期\t说明\t收入");
for(int i=0;i<1000;i++){
if(income[i]==0){
System.out.print("输入收入日期:");
day2[i]=scan.next();
System.out.print("输入收入明细:");
explain2[i]=scan.next();
System.out.print("输入收入费用:");
income[i]=scan.nextDouble();
balance+=income[i];
break;
}
}
System.out.print("请问还要继续输入收入信息吗?(y/n)");
as=scan.next();
}while(as.equals("y"));
}
else if(z==3){
String qw="";
do {
qw="n";
System.out.println("------------------3.登记支出---------------------------");
System.out.println("日期\t说明\t支出");
for (int i = 0; i < 1000; i++) {
if (cost[i] == 0) {
System.out.print("输入支出日期:");
day[i] = scan.next();
System.out.print("输入支出明细:");
explain[i] = scan.next();
System.out.print("输入支出费用:");
cost[i] = scan.nextDouble();
balance-=cost[i];
break;
}
}
System.out.print("请问还要继续输入收入信息吗?(y/n)");
aq = scan.next();
}while(qw.equals("y"));
}
else if(z==4){
System.out.print("请问确定退出吗?(y/n)");
yt="y";
isFlag2=scan.next();
}
}while(isFlag2.equals("n"));
if(yt.equals("s")) {
System.out.print("请问还要继续使用其他功能吗?(y/n)");
aq = scan.next();
}
}while(aq.equals("y"));
}
}
四、运行结果