(尚硅谷java零基础教程)学习笔记-project01家庭记账软件

1、项目要求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  1. 从需求说明中看出需要实现四个功能,根据读取的用户输入数字实现不同的功能,记账系统应该在用户主动退出之前一直显示。(涉及到循环语句
  2. 功能1的实现:屏幕输出明细(涉及到String字符串的使用,这里没有想到!)
  3. 功能2的实现:收入金额及收入说明(涉及到从键盘扫描数据,字符串的串联
  4. 功能3的实现:支出金额及支出明细(涉及到从键盘扫描数据,字符串的串联,if-esle分支结构),这里需要判断是否超支!
  5. 功能4的实现:退出记账系统,意味着退出死循环。

注:这里涉及到的调用函数操作后续可能才会讲到。

2、项目实现

1. 实现步骤

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2. 代码

class FamilyAccount 
{
	public static void main(String[] args) 
	{
				//程序退出之前保证数据不丢失,所以这两个串联变量是要声明在循环之外的。
				int money = 10000;					//初始本金
				int income = 0,outcome = 0;		//记录收入支出
				String details = "收支\t账户金额\t收支金额\t说    明\n";
				String reason = "";

//循环结束的两种方式,
//1.定义一个flag=true,在循环中的某处使flag变为false
//2.循环设置为死循环,然后程序中的某一处加一个break
label:while(true)									//三种循环方式选哪个都可以
	{
		System.out.println("-------------------家庭收支记账软件-------------------\n");

		System.out.println("\t\t 1 收支明细");
		System.out.println("\t\t 2 登记收入");
		System.out.println("\t\t 3 登记支出");
		System.out.println("\t\t 4 退    出\n");

		System.out.print("\t\t 请选择(1-4):");
		//获取用户的选择:1-4
		char selection = Utility.readMenuSelection();
		System.out.println();
		switch(selection)
			{
					 	//定义收入和支出金额
			//根据utility中的判断方式,这里应该带引号的数字。
			case '1':								//当前收支明细
				System.out.println("-------------------当前收支记录-------------------\n");
			    System.out.println(details);
				System.out.println("--------------------------------------------------\n");
				break;

			case '2':								//登记收入
				//System.out.println("2 shouru");
				System.out.print("请输入收入金额(不超过四位数):");
				income  = Utility.readNumber();
				money = money + income;
				System.out.print("请输入收入说明(不超过八个字符):");
				reason  = Utility.readString();
				details += "收入" + "\t" + money + "\t\t" + income + "\t\t" + reason + "\n";
				System.out.println("-------------------登记完成-------------------\n");
			    break;

			case '3':								//登记支出
				//System.out.println("3 zhichu");
				System.out.print("请输入支出金额(不超过四位数):");
				outcome  = Utility.readNumber();

				System.out.print("请输入支出说明(不超过八个字符):");
				reason  = Utility.readString();

				//这里考虑不周到,有可能支出大于账户余额
				if (outcome <= money)
				{
					money = money - outcome;
					details += "支出" + "\t" + money + "\t\t" + outcome + "\t\t" + reason + "\n";
				}else
				{
					System.out.println("账户余额不足,支付失败!");
				}
				
				System.out.println("-------------------登记完成-------------------\n");
			    break;

			case '4':								//退出系统代表着退出循环
				//System.out.println("4 tuichu");
				System.out.print("确认是否退出(Y/N,不区分大小写):");
			    char confirm = Utility.readConfirmSelection();
				System.out.println();
				if (confirm == 'Y')
				{
					break label;
				}
				break;
		}
	}
	}
}

注意:在switch-case分支结构中不可以重复定义同一个变量,因为可能都执行到。

3. 运行结果

D:\MyDownloads\JAVA\my_java_code\project01>java FamilyAccount
-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):1

-------------------当前收支记录-------------------

收支    账户金额        收支金额        说    明

--------------------------------------------------

-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):2

请输入收入金额(不超过四位数)200
请输入收入说明(不超过八个字符):家教
-------------------登记完成-------------------

-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):3

请输入支出金额(不超过四位数)400
请输入支出说明(不超过八个字符):买衣服
-------------------登记完成-------------------

-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):2

请输入收入金额(不超过四位数)1500
请输入收入说明(不超过八个字符):工资
-------------------登记完成-------------------

-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):4

确认是否退出(Y/N,不区分大小写):n

-------------------家庭收支记账软件-------------------

                 1 收支明细
                 2 登记收入
                 3 登记支出
                 4 退    出

                 请选择(1-4):4

确认是否退出(Y/N,不区分大小写):r
选择错误,请重新输入:f
选择错误,请重新输入:y


D:\MyDownloads\JAVA\my_java_code\project01>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值