用户有一张信用卡,信用卡有一个总额度;每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的;用户有若干储蓄卡,可选择某张储蓄卡进行还款;还款是指从储蓄卡中划走信用卡的月消费总额到信用卡;如果储蓄卡余额不足则还款动作不成功。

要求如下:①必须使用委托②事件的触发方式是每个月的到期还款日

实现过程:

信用卡类

1.属性:信用额度,还款日,使用额度

2.函数:使用;已使用额度提示

class Credit_Card    //信用卡{private int Credit_Limit = 10000; //总信用额度public int Repay_Date = 5;    //每月5号为还款日public int Used_Credit_Limit = 0;//已使用额度public int Show_Used(){Console.WriteLine("待还额度:" + Used_Credit_Limit);return Used_Credit_Limit;}public void Use(int num){if (Used_Credit_Limit + num > Credit_Limit){Console.WriteLine("超出信用额度,支付失败!");}else{Used_Credit_Limit += num;Console.WriteLine("信用卡花费:"+num);}}}

储蓄卡类

1.属性:余额

2.函数:使用;用于还款提示(委托的注册方法)

class Cash_Card    //储蓄卡{public int Card_balance;//余额public  Cash_Card(int Card_balance){this.Card_balance = Card_balance;}public void Use(int num){if (num <= Card_balance){Card_balance -= num;Console.WriteLine("本卡已消费:" + num + "余额:" + Card_balance);}elseConsole.WriteLine("余额不足!");}public void used_to_repay(){Console.WriteLine("本次消费用于信用卡还款");}}

还款类

1.还款账单发送函数

2.定义委托与事件

3.定义了触发条件以及事件行为

    class payment{public void send_message(Credit_Card credit_Card){Console.WriteLine("已到还款日,请进行还款:");credit_Card.Show_Used();}public delegate void pay(); //委托public event pay pay_all;//事件public void payed(int data, Credit_Card credit_Card,Cash_Card cash_Card){/*触发条件:* 1.进行了正确储蓄卡选择* 2.到达了还款日期* 3.储蓄卡余额大于需要偿还的额度*/if (pay_all != null && data== credit_Card.Repay_Date &&cash_Card.Card_balance>= credit_Card.Used_Credit_Limit){cash_Card.Use(credit_Card.Used_Credit_Limit);pay_all();}else{Console.WriteLine("未满足还款条件");}}}

主类

创建了1个信用卡类对象Credit_Card1

创建了2个储蓄卡类对象Cash_Card1和Cash_Card2

模拟了消费以及到达还款日后选择储蓄卡进行还款的行为

class Program{static void Main(string[] args){Credit_Card Credit_Card1=new Credit_Card();Cash_Card Cash_Card1 = new Cash_Card(50000);//卡1余额50000Cash_Card Cash_Card2 = new Cash_Card(4000);//卡2余额200payment pay_test=new payment();for (int i = 1; i <= Credit_Card1.Repay_Date; i++){Console.WriteLine("当前日期:  "+i+"  日");    //模拟信用卡使用Thread.Sleep(500);Credit_Card1.Use(1000);if (i==Credit_Card1.Repay_Date){pay_test.send_message(Credit_Card1);    //账单发送Console.WriteLine("储蓄卡1余额:" + Cash_Card1.Card_balance);Console.WriteLine("储蓄卡2余额:" + Cash_Card2.Card_balance);int Cash_Card_Num = Console.Read() - 48;if (Cash_Card_Num == 1){pay_test.pay_all += new payment.pay(Cash_Card1.used_to_repay);pay_test.payed(i, Credit_Card1, Cash_Card1);}else if (Cash_Card_Num == 2){                        pay_test.pay_all += new payment.pay(Cash_Card2.used_to_repay);pay_test.payed(i, Credit_Card1, Cash_Card2);}else{Console.WriteLine("该卡不存在,还款失败");}}}  }}

结果展示

 源码:

Windows-Programming/Program.cs at main · YJJ-code/Windows-Programming (github.com)https://github.com/YJJ-code/Windows-Programming/blob/main/Program.cs

C#委托实现信用卡用户定时还款功能相关推荐

  1. 作业1:C#使用委托实现信用卡用户定时还款功能

    题目 应用场景解释:用户有一张信用卡,信用卡有一个总额度:每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的:用户有若干储蓄卡,可选择某张储蓄卡进行还款:还款是指从储蓄卡中划走信用卡的 ...

  2. 使用委托实现信用卡用户定时还款功能

    一.问题描述 C#使用委托实现信用卡用户定时还款功能 本题的应用场景解释:用户有一张信用卡,信用卡有一个总额度:每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的:用户有若干储蓄卡,可 ...

  3. 委托实现信用卡用户定时还款功能

    信用卡用户定时还款 一.委托类 二.储蓄卡类 三.信用卡类 四.main函数 结果截图 总结 一.委托类 代码如下: class Delegates //委托类{public delegate voi ...

  4. C#使用委托实现信用卡用户定时还款功能

    题目: 用户有一张信用卡,信用卡有一个总额度:每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的:用户有若干储蓄卡,可选择某张储蓄卡进行还款:还款是指从储蓄卡中划走信用卡的月消费总额到 ...

  5. C# 使用委托实现信用卡用户定时还款功能

    一. 应用场景说明 应用场景解释:用户有一张信用卡,信用卡有一个总额度:每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的:用户有若干储蓄卡,可选择某张储蓄卡进行还款:还款是指从储蓄卡 ...

  6. 设计实现信用卡用户定时还款功能

    信用卡用户定时还款功能 功能说明 代码 结果截图 gitee地址 功能说明 使用委托实现信用卡用户定时还款功能.用户当月若需要还款,则订阅还款提醒功能,还清欠款后,提醒用户已还清. 代码 建立一个Us ...

  7. 使用委托实现信用卡用定时还款功能

    使用委托实现信用卡用户定时还款功能 首先我要创造了一个委托类,然后继续创建了信用卡类,储蓄卡类和实现还款的还款类.最后填写main函数 using System; using System.Colle ...

  8. Windows第一次博客作业:委托实现信用卡用户定时还款

    一.题目描述 用户有一张信用卡,信用卡有一个总额度:每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的:用户有若干储蓄卡,可选择某张储蓄卡进行还款:还款是指从储蓄卡中划走信用卡的月消费 ...

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

    使用委托完成要求,代码如下 using System; using System.Collections.Generic; using System.Text; using System.Web; u ...

最新文章

  1. MyEclipse快捷键大全(绝对全)
  2. linux shell 循环语句 for while until
  3. ubuntu18.10下面安装nodejs和npm和cnpm
  4. 对象与内存控制1---实例变量和类变量
  5. 怎么自己打印餐饮小票_自己怎么做餐饮外卖配送系统?可以开发外卖配送系统的公司有哪些?...
  6. win7主机与linux虚拟机共享方法之右键添加Sharing Options
  7. 安装oracle11g未找到文件WFMLRSVCApp.ear文件
  8. C++学到什么程度才算是精通?
  9. OSPF外部实验详解
  10. 数据库原理及应用实验二
  11. 人工智能产品经理及十种AI常用算法
  12. html实现图片裁剪,JavaScript html js图片切割系统,裁剪,图片处理
  13. nlohmann json使用
  14. 练习-Java循环综合练习四之日历打印
  15. Mac录屏减少文件体积和格式转换
  16. 火灾隐患是查不完的,消防监管要着力于提升单位消防能力
  17. 如何推广淘宝店铺方法:导购网站免费推广
  18. web CSS 颜色渐变代码
  19. android智能电视使用方法,安卓系统智能电视使用方法
  20. 漫画 | 老板,我想申请加薪~

热门文章

  1. Unity--弹力小球
  2. 联想启天m420刷bios_联想启天M420装Win7系统教程包括BIOS设置和USB驱动
  3. 动态配置接口DRP(Dynamic Reconfiguration Port)
  4. [物理学与PDEs]第2章习题4 习题 3 的变分
  5. 15个优秀的红色网站设计作品欣赏
  6. 量子计算 10 隐变量、贝尔不等式与CHSH
  7. Android web界面丝滑进度条
  8. 直接插入排序以及折半插入排序详解
  9. Linux CentOS 8中安装openjdk
  10. 一款好用的视频剪切合并软件