信用卡剩余额度计算器(Credit Limit Calculator)

编写加调试,1个小时搞定,感觉编码的速度有所提高啊,不错不错!

 

业务逻辑:

1. 信用卡本期账单金额=期初账单金额+本期消费金额-本期还款金额

2.信用卡剩余信用额度=该客户信用额度总额-本期账单金额(小于0时,提示“该客户信用额度已超限”)

声明:此业务逻辑适用于本练习,与现实情况可能有所出入。

 

代码如下:

//Java how to program, 10th edition, Exercise 4.18:Credit Limit Calculator
//by Pandenghuang@163.com
/** 
*问题陈述:
*(Credit Limit Calculator) Develop a Java application that determines whether any of several
*department-store customers has exceeded the credit limit on a charge account. For each customer,
*the following facts are available:
*a) account number
*b) balance at the beginning of the month
*c) total of all items charged by the customer this month
*d) total of all credits applied to the customer’s account this month
*e) allowed credit limit.
*The program should input all these facts as integers, calculate the new balance (= beginning balance
*+ charges – credits), display the new balance and determine whether the new balance exceeds the
*customer’s credit limit. For those customers whose credit limit is exceeded, the program should display
*the message "Credit limit exceeded".
*/
import java.util.*;

public class CreditLimitCal
{

	public static void main(String[] args) 
	{
		Scanner input=new Scanner(System.in);

		int accountNo=0;
		int balanceBegin=0;
		int balanceNew=0;
		int charges=0;
		int creditsApplied=0;
		int creditLimit=0;
		int creditLeft=0;
		int inputTimes=1;
		int validInputTimes=0;

		System.out.printf("开始输入第%d位客户\n",inputTimes);
		
		//录入客户号
		System.out.print("请输入客户号(输入-1结束输入):");
		accountNo=input.nextInt();
		if (accountNo==-1)
		{
			System.out.println("您没有输入足够的有效数据。");
			return;
		}
		
		//录入期初账单金额
		System.out.print("请输入该客户的期初账单金额(输入-1结束输入):");
		balanceBegin=input.nextInt();
		if (balanceBegin==-1)
		{
			System.out.println("您没有输入足够的有效数据。");
			return;
		}
		
		//录入还款总额
		System.out.print("请输入该客户的还款总额(输入-1结束输入):");
		charges=input.nextInt();
		if (charges==-1)
		{
			System.out.println("您没有输入足够的有效数据。");
			return;
		}
	
		//录入消费总额
		System.out.print("请输入该客户的消费总额(输入-1结束输入):");
		creditsApplied=input.nextInt();
		if (creditsApplied==-1)
		{
			System.out.println("您没有输入足够的有效数据。");
			return;
		}

		//录入客户信用总额度
		System.out.print("请输入该客户的信用总额度(输入-1结束输入):");
		creditLimit=input.nextInt();
		if (creditLimit==-1)
		{
			System.out.println("您没有输入足够的有效数据。");
			return;
		}
		++inputTimes;
		++validInputTimes;
		balanceNew=balanceBegin+creditsApplied-charges;
		creditLeft=creditLimit-balanceNew;
		if(balanceNew>creditLimit)
			System.out.printf("客户%d的信用额度已超限!!!\n",accountNo);
		else
			System.out.printf("客户%d的最新账单金额为:%d RMB,剩余信用额度为%d RMB\n\n",accountNo,balanceNew,creditLeft);

			
		while (accountNo!=-1 && balanceBegin!=-1 && charges!=-1 && creditsApplied!=-1 && creditLimit!=-1 )
		{
			System.out.printf("\n开始输入第%d位客户\n",inputTimes);
			//录入客户号
			System.out.print("请输入客户号(输入-1结束输入):");
			accountNo=input.nextInt();
			if (accountNo!=-1)
			{
				//录入期初账单余额
				System.out.print("请输入该客户的期初账单金额余额(输入-1结束输入):");
				balanceBegin=input.nextInt();
				if (balanceBegin!=-1)
				{
					//录入还款总额
					System.out.print("请输入该客户的还款总额(输入-1结束输入):");
					charges=input.nextInt();
					if (charges!=-1)
					{
						//录入消费总额
						System.out.print("请输入该客户的消费总额(输入-1结束输入):");
						creditsApplied=input.nextInt();
				
						if (creditsApplied!=-1)
						{
							//录入信用总额度
							System.out.print("请输入该客户的信用总额度(输入-1结束输入):");
							creditLimit=input.nextInt();
							if (creditLimit!=-1)
							{
								//最新账单金额计算
								++inputTimes;
								++validInputTimes;
								balanceNew=balanceBegin+creditsApplied-charges;
								creditLeft=creditLimit-balanceNew;
								if(balanceNew>creditLimit)
									System.out.printf("客户%d的信用额度已超限!!!\n",accountNo);
								else
									System.out.printf("客户%d的最新账单金额为:%d RMB,剩余信用额度为%d RMB\n\n",accountNo,balanceNew,creditLeft);

							}
							else
							{
								System.out.println("\n\n您已结束数据输入。");
								break;
							}	

						}
						
						else
						{
							System.out.println("\n\n您已结束数据输入。");
							break;
						}		
					}	
					else
					{
						System.out.println("\n\n您已结束数据输入。");
						break;
					}
				}
				else
				{
					System.out.println("\n\n您已结束数据输入。");
					break;
				}

			}
			else
			{	
				System.out.println("\n\n您已结束数据输入。");
				break;
			}
		}

		System.out.print("\n*******************************************************************\n");
		System.out.printf("您总共输入了%d组有效数据。程序结束。\n",validInputTimes);
		System.out.print("*******************************************************************\n\n\n");
	
	}
}

 

运行截屏如下:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值