家庭收支記賬軟體
阿新 • • 發佈:2021-01-21
昨天沒有更新,是因為做到晚上十點太困就睡覺去了,其實昨天收穫還挺多的,完成了學習程式設計以來的第一個例項,還是很有成就感的。
該軟體可實現功能列表化顯示、以及收支記錄及顯示。
只是只能在執行時輸入,程式結束資料丟失,後續可通過資料流將資料寫出到相應檔案中儲存,這個功能以我目前只是可以實現。等到下次執行軟體只需將資料匯入即可。
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));
}*/