实现信用卡用户定时还款功能

使用委托完成要求,代码如下

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Threading;

namespace csharp_课后作业
{

    public class CreditCard      //信用卡类,设信用卡总额度为20000元
    {
        private int paydate = 1;   //还款日期为每月的第一天
        private int payamount;   //月还款额度
        private int todaydate;
        private CashCard obj1;

        public CreditCard(int payamount, int todaydate, CashCard obj1)
        {
            this.payamount = payamount;
            this.todaydate = todaydate;
            this.obj1 = obj1;
        }
        public int date1()
        {
            return todaydate;
        }
        public bool JudgeDate()
        {
            if (todaydate == paydate)
            {
                Console.WriteLine("还款日期已到,请迅速还款!");
                return true;
            }
            else
            {
                int a = todaydate - paydate;
                Console.WriteLine("离还款日期还有{0}日", a);
                return false;
            }
        }
        public void payback(CreditCard obj)    //还款操作
        {
            if (payamount > 20000)   //信用卡额度为20000元,若月额度超出则是卡已刷爆了
            {
                Console.WriteLine("余额不足,还款失败,您的信用已降低");
            }
            else if (payamount < 0)
            {
                Console.WriteLine("您的信用卡还款额度存在异常");
            }
            else
            {
                if (todaydate == paydate)
                {
                    if (obj1.Getmoney() >= payamount)
                    {
                        int nowbalance = obj1.Getmoney() - payamount;
                        Console.WriteLine("还款成功,您的余额为:{0}", nowbalance);
                    }
                    else
                    {
                        int nowbalance = payamount - obj1.Getmoney();
                        Console.WriteLine("还款失败,您的余额为不足,还需充值{0}元", nowbalance);
                    }
                }
                else
                {

                    Console.WriteLine("还款日期未到!您的余额为{0}", obj1.Getmoney());
                }
            }

        }

    }

    public class CashCard    //储蓄卡类
    {
        private int balance;   //储蓄卡的余额

        public CashCard(int balance)
        {
            this.balance = balance;

        }

        public int Getmoney()
        {
            return this.balance;
        }


    }

    public class Delegate  //委托类
    {
        public delegate void pay(CreditCard obj);
        public event pay date;

        public void Notify(CreditCard obj)
        {
            if (obj.date1() == 1)
            {
                Console.WriteLine("触发事件:");
                date(obj);
            }
        }
    }

    class Test
    {
        static void Main(string[] args)
        {
            Delegate objDelegate = new Delegate();
            CashCard b1 = new CashCard(8000);
            CashCard b2 = new CashCard(12000);
            CashCard b3 = new CashCard(15000);
            CashCard b4 = new CashCard(18000);

            CreditCard a1 = new CreditCard(2000, 2, b1);
            CreditCard a2 = new CreditCard(10000, 1, b2);
            CreditCard a3 = new CreditCard(30000, 1, b3);
            CreditCard a4 = new CreditCard(18000, 1, b4);

            objDelegate.date += a1.payback;
            objDelegate.Notify(a1);
            objDelegate.date += a2.payback;
            objDelegate.Notify(a2);
            objDelegate.date += a3.payback;
            objDelegate.Notify(a3);
            objDelegate.date += a4.payback;
            objDelegate.Notify(a4);
        }


    }

}

https://gitee.com/fragrance-floating-rio/csharp-code-warehouse.git

gitee仓库地址如上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值