2021-01-14 记账系统-跟着模仿写一个小的项目

这篇博客介绍了作者开发的一个家庭收支记账软件,使用循环结构和用户交互实现收支记录,并通过标签完善代码。同时,展示了寻找1000以内所有完数的代码,通过两个嵌套循环检查每个数的因子之和是否等于该数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上班:空的时候是真空,来事的时候一堆事情堆在一块,是真烦。
今天周四,明天就是周五了,加油,打工人!

今天的学习是完善昨天的小项目:昨天的问题没有解决,我把代码上传,明天在家里的台式上运行一下。

Utility代码见昨天。

完善后的代码:

class FamilyAccount{
	public static void main(String[] args){
		boolean isFlag = true;
		//用于记录用户的收入和支出的详情
		String details = "";
		//初始金额
		String balance = 


		while(isFlag){
			
			System.out.println("------------家庭收支记账软件------------\n");
			System.out.println("			1.收支明细");
			System.out.println("			2.登记收入");
			System.out.println("			3.登记支出");
			System.out.println("			4.退  出\n");
			System.out.println("请选择(1-4):");
			//获取用户的选择
			char selection = Utility.readMenuSelection();//这里Utility放在同一文件夹中,然后调用
			switch(selection){
				case '1':
					//System.out.println("1.收支明细");
					System.out.println("-------------当前收支明细记录-------------");
					System.out.println("收支\t账户金额\t收支金额\t说  明\n");
					System.out.println("details");
					System.out.println("------------------------------------------");

					break;
				case '2':
					//System.out.println("2.登记收入");
					System.out.print("本次收入金额:");
					int addMoney = Utility.readNumber();
					System.out.print("本次收入说明:");
					String addInfo = Utility.readString();
					
					//处理balance
					balance += addMoney;

					//处理details
					details += "收入\t" + balance + "\t\t" + addMoney + "\t\t" + addInfo + "\n");
					
					System.out.print("---------------登记完成---------------------\n");
					break;

				case '3':
					//System.out.println("3.登记支出");
					System.out.print("本次支出金额:");
					int minusMoney = Utility.readNumber();
					System.out.print("本次支出说明:");
					String minusInfo = Utility.readString();
					//处理balance
					
					if(balance >= minusMoney){
						balance -= minusMoney;
						
						//处理details
					details += "收入\t" + balance + "\t\t" + minusMoney + "\t\t" + minusInfo + "\n");
					}else{
						System.out.println("支出超出额度,支付失败")
					}
					//处理details
					details += "收入\t" + balance + "\t\t" + money + "\t\t" + info + "\n");
					
					System.out.print("---------------登记完成---------------------\n");
					break;
				case '4':
					System.out.println("4.退  出");
					break;
			}
		}	
	}
}

复习环节:

1.循环结构最后如何退出?
①循环条件返回false
②在循环体内,一旦执行到break,跳出循环

2.标签的用法
见前天的博客:本题需注意label是指定循环的位置。

3.编程:
已知-一个数如果恰好等于它的因子之和,这个数就称之为“完数”。例如6=1+2+3,试找出1000以内所有的完数。
代码:

class  find{
	public static void main(String[] args) {

		//int factor == 0;
		for (int i = 1; i <= 1000 ; i++ ){
			int factor = 0;
			for (int j = 1 ; j <= i/2 ; j++ ){
				if(i % j == 0){
					factor += j;	
				}
			}
			if (i == factor){
				System.out.println(i);
			}
		}
		//重置factor
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值