0
点赞
收藏
分享

微信扫一扫

C#实现信用卡用户还款功能

凶猛的小白兔 2022-04-02 阅读 85
c#

前言

C# 课程作业1,委托与事件

一、程序设计题:请使用委托实现信用卡用户定时还款功能
   本题的应用场景解释:用户有一张信用卡,信用卡有一个总额度;每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的;用户有若干储蓄卡,可选择某张储蓄卡进行还款; 还款是指从储蓄卡中划走信用卡的月消费总额到信用卡;如果储蓄卡余额不足则还款动作不成功。 
  要求如下:①必须使用委托②事件的触发方式是每个月的到期还款日;

二、代码
代码如下:
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace cshiyaner_3_
{
	internal class Class1
	{
	}
	class ClassA
	{
		public int money1;
		public ClassA(int money)
		{
			this.money1 = money;
		}

		public void DispMethod()
		{
			Console.WriteLine("信用卡A 已接到 还款期限临近 事件的通知!本月需还金额:"+money1);
		}
	}
	// 第二个类
	class ClassB
	{
		public int money2;
		public ClassB(int money)
		{
			this.money2 = money;
		}
		public void DispMethod()//int moneya)
		{
			//money2 += moneya;
			Console.WriteLine("储蓄卡B 已接到 还款期限临近 事件的通知! 还款后余额为:");
		}
	}
	class ClassC
	{
		public int money3;
		public ClassC(int money)
		{
			this.money3 = money;
		}
		public void DispMethod()//int moneyb)
		{
			//money3 += moneyb;
			Console.WriteLine("储蓄卡C 已接到 还款期限临近 事件的通知! 还款后余额为:");
		}
	}
	class Delegate
	{
		// 定义委托
		public delegate void MeDelegate();
		// 定义事件
		public event MeDelegate NotifyEveryOne;
		public void Notify()
		{
			// 如果事件不为 null
			if (NotifyEveryOne != null)
			{
				Console.WriteLine("触发事件:还款日");
				// 触发事件
				NotifyEveryOne();
			}
		}
	}
	class TestEvents
	{
		[STAThread]
		static void Main(string[] args)
		{
			// 委托的对象
			Delegate objDelegate = new Delegate();
			// ClassA 的对象
			ClassA objClassA = new ClassA(1000);
			// ClassB 的对象
			ClassB objClassB = new ClassB(500);
			// ClassC 的对象
			ClassC objClassC = new ClassC(1500);
			// 订阅该事件
			objDelegate.NotifyEveryOne +=
			   new Delegate.MeDelegate(objClassA.DispMethod);
			if(objClassB.money2 >=objClassA.money1)
			{
				objDelegate.NotifyEveryOne +=
			      new Delegate.MeDelegate(objClassB.DispMethod);
				objClassB.money2 -=objClassA.money1;
				Console.WriteLine(objClassB.money2);
			}
			else if(objClassC.money3 >= objClassA.money1)
            {
				objDelegate.NotifyEveryOne += new Delegate.MeDelegate(objClassC.DispMethod);
				objClassC.money3 -= objClassA.money1;
				Console.WriteLine("还款后余额为:"+objClassC.money3);
			}
			else
            {
				Console.WriteLine("每张卡余额均不足,还款失败。");
            }
			objDelegate.Notify();
		}
	}
}

gitee仓库地址:https://gitee.com/cainiaocaigitee/homework/tree/master/work1
 

举报

相关推荐

0 条评论