第二次作业

第二次作业

任务要求: 请使用委托实现信用卡用户定时还款功能

代码如下:

using System;

namespace ConsoleApp1
{
    class bank_card
    {
        private int deposit;
        private int pay_money=0;
        private int pay_time = 20210531;
        private int now_time;
        public void set_money(int money)
        {
            deposit = money;
        }
        public void set_pay(int money)
        {
            pay_money = money;
        }
        public void set_time(int time)
        {
            now_time = time;
        }
        public void Account_balance()
        {
            if ((deposit - pay_money) >= 0)
            {
                deposit -= pay_money;
                Console.WriteLine("还款成功!");
                Console.WriteLine("您的信用卡账户余额还有:{0}", deposit);
            }
            else
            {
                Console.WriteLine("您的信用卡余额不足,请及时充值!");
            }
        }
        public void do_pay()
        {
            if (pay_time >= now_time)
            {
                Console.WriteLine("还款时间已到");
                Account_balance();
            }
            else
            {
                Console.WriteLine("未到还款时间");
                Console.WriteLine("账户余额:{0}", deposit);
            }
        }

    }
    class Delegate
    {
        // 定义委托
        public delegate void MeDelegate();
        // 定义事件
        public event MeDelegate NotifyEveryOne;

        public void Notify()
        {
            // 如果事件不为 null
            if (NotifyEveryOne != null)
            {
                Console.WriteLine("触发事件:");
                // 触发事件
                NotifyEveryOne();
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 委托的对象
            Delegate objDelegate = new Delegate();
            bank_card objbank_card = new bank_card();
            //设置存款余额
            objbank_card.set_money(5000);
            //设置所还金额
            objbank_card.set_pay(600);
            //告知现在时间
            objbank_card.set_time(20210312);
            // 订阅该事件
            objDelegate.NotifyEveryOne +=
               new Delegate.MeDelegate(objbank_card.do_pay);
            objDelegate.Notify();
        }
    }
}

运行截图

第一种存款余额大于还款余额
在这里插入图片描述
第二种存款余额小于还款余额
在这里插入图片描述
第三种是还款时间未到
在这里插入图片描述

作业总结

搞清楚信用卡还款所需要的几个步骤,首先要设置账户现有余额和定时还款的金额,然后在设置还款时间,在将现有时间与还款时间进行比较如果过了还款时间就进行还款的操作,如果还完款后余额为负数则还款失败,输出余额不足。上面这几个步骤都用不同的函数去完成,最后集中在一个函数里面进行委托执行。
原代码链接: gitee代码库.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值