昨天没有更新,是因为做到晚上十点太困就睡觉去了,其实昨天收获还挺多的,完成了学习编程以来的第一个实例,还是很有成就感的。
该软件可实现功能列表化显示、以及收支记录及显示。
只是只能在运行时输入,程序结束数据丢失,后续可通过数据流将数据写出到相应文件中保存,这个功能以我目前只是可以实现。等到下次运行软件只需将数据导入即可。
package com.IO;
import java.util.*;
public class FamilyEcomomySoftware {
static Boolean flag=true;//dowhile大循环设为死循环
//static Boolean loopflag;
List Income=new ArrayList();//收入容器
List Outcome=new ArrayList();//支出容器
public void DengJiShouRu() {//登记收入方法
System.out.println("登记收入");
Boolean loopflag;//方法内循环标志,当输入exit时停止循环
do{//内循环采用dowhile循环,保证可以循环一此
System.out.println("登记收入");
Scanner inc = new Scanner(System.in);//键盘输入收入
String income = inc.nextLine();
//List Income=new ArrayList();
Income.add(income);//加入容器
//Iterator intcome_iterator = Income.iterator();//List集合可使用get方法,若为其他集合则可使用迭代器。
if (income.equals("exit")) {//判断退出条件
loopflag=false;
}else {
loopflag=true;
}
}while(loopflag);
}
public void DengJiZhiChu(){
//登记支出
Boolean loopflag;//内循环标志
do{//下述步骤与上个方法同理
System.out.println("登记支出");
Scanner ouc = new Scanner(System.in);
String outcome = ouc.nextLine();
//List Outcome=new ArrayList();
Outcome.add(outcome);
Iterator outcome_iterator = Outcome.iterator();
if (outcome.equals("exit")) {
loopflag=false;
}else {
loopflag=true;
}
}while(loopflag);
}
public void ShouZhiMingXi(){
System.out.println("收支明细");
for(int i=0;i<Outcome.size();i++){//利用for循环,循环输出收支,可详细加入中文提示
System.out.println(Outcome.get(i));
}
for(int j=0;j<Income.size();j++){
System.out.println(Income.get(j));
}
if(Outcome.isEmpty() && Income.isEmpty()){
System.out.println("还未登记收支");
}
}
public void JieMian(){//软件主界面,四个选项列表显示,输入对应数字可进入对应功能
System.out.println("1.收支明细");
System.out.println("2.登记支出");
System.out.println("3.登记收入");
System.out.println("4.退出");
}
public static void main(String[] args) {//主方法
FamilyEcomomySoftware fes = new FamilyEcomomySoftware();//实例化收支记账软件对象
label:do {//软件一直运行,设为死循环,加入label标签,可实现退出功能
fes.JieMian();//调用界面函数
Scanner swi = new Scanner(System.in);
String choice = swi.nextLine();
switch (choice) {
case "1":
fes.ShouZhiMingXi();//调用收支明细方法
break;
case "2":
fes.DengJiZhiChu();//调用登记支出方法
break;
case "3":
fes.DengJiShouRu();//调用登记收入方法
break;
case "4"://退出软件
break label;
}
}
while (true) ;
}
}
//下述是对方法的初步实现构思
//该软件方法很简单,只是循环需要考虑
/*//登记收入
//System.out.println("登记收入");
Scanner inc=new Scanner(System.in);
String income=inc.nextLine();
List Income=new ArrayList();
Income.add(income);
Iterator intcome_iterator=Income.iterator();
//登记支出
System.out.println("登记收入");
Scanner ouc=new Scanner(System.in);
String outcome=ouc.nextLine();
List Outcome=new ArrayList();
Outcome.add(outcome);
Iterator outcome_iterator=Outcome.iterator();
//显示收支明细
for(int i=0;i<Outcome.size();i++){
System.out.println(Outcome.get(i));
}
for(int j=0;j<Income.size();j++){
System.out.println(Income.get(j));
}*/