目录
项目概述
软件功能
记录家庭的收入、支出,并能够打印收支明细表以及总额。
项目说明
项目主要是方法实现,4个方法实现4个功能。数据不会永久存储。
涉及知识点
1.变量的定义
2.基本数据类型的使用
3.循环语句
4.分支语句
5.方法声明、调用和返回值的接收
6.debug的使用等
需求说明
假设家庭起始的生活基本金为10000元。
每次登记收入后, 收入的金额应累加到基本金上,并记录本次收入明细, 以便后续的查询。
每次登记支出后, 支出的金额应从基本金中扣除,并记 录本次支出明细,以便后续的查询。
查询收支明细时,显示所有的收入和支出明细列表。
程序代码示例
思路介绍
表头等固定内容定义一个字符串变量接收,表头主要时打印出来。然后在循环里面(可以反复记录)用switch...case...调用4个方法即可。
代码实现
收支明细方法:没有内容提示用户(if实现)。定义布尔类型默认false,后面增加支出或收入内容则改为true;具体代码如下:
public static void test1(){
if (isHas){//isHas 默认false,有值的改动就改为true
System.out.println(info);//info为表头内容(字符串)
}else {
System.out.println("无信息,请录入后查看!");
}
}
收入方法:接收收入金额和收入说明,然后在定义好的表头后面打印。
public static void test2(){
System.out.println("本次收入金额:");
money = sc.nextDouble();
if (money<0){
System.out.println("收入金额不合法!");
}
balance+=money;
System.out.println("本次收入说明:");
temp = sc.next();
info+=("收入\t"+money+"\t\t"+balance+"\t\t"+temp+"\n");
isHas=true;//输入内容 这个变量改为true 对应方法一
}
支出方法:基本和收入方法类似
public static void test3(){
System.out.println("输入支出金额:");
money= sc.nextDouble();
if (money>balance||money<=0){
System.out.println("金额不合法!");
}
balance-=money;
System.out.println("本次支出说明:");
temp= sc.next();
info+=("支出\t"+money+"\t\t"+balance+"\t\t"+temp+"\n");
isHas=true;
}
退出方法:要和用户有互动,是否确认退出?只接收y/n,如果不是这两个字符则反复询问,y退出,n返回软件。
public static void test4(){
while (true){
System.out.println("请确认退出系统(y/n)");
yn=sc.next().charAt(0);
if (yn=='y'||yn=='n'){
break;
}
}
if (yn=='y'){
judge=false;
}
}
最后在main方法调用所有方法即可。
public static void main(String[] args) {
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 num = sc.nextInt();
switch (num) {
case 1:
// System.out.println("收支");
test1();
break;
case 2:
// System.out.println("登记收入");
test2();
break;
case 3:
// System.out.println("等级指出");
test3();
break;
case 4:
test4();
break;
}
}while (judge) ;
System.out.println("退出成功!");
}
最终效果为: