银行还款系统

 clone地址:https://github.com/mostimacc/ConsoleApp-.git

通过事件和委托来实现银行的还款功能

1.如果未到还款日期,则不会触发还款事件

2.如果到了还款日期,钱不够,则会显示还差多少钱待还

3.如果到了还款日期,钱够了,则会显示还剩多少钱

储蓄卡类:基础的类,实现简单的用户和余额的定义

class Saving_card
{
private int money;
public string customer;
public int Money
{
get
{
return money;
}
set
{
money = value;
}
}
}

信用卡类:继承了储蓄卡类,在此基础上实现了还款的功能和判定事件是否发生的功能。

class Credit_Card : Saving_card
{
private int time;
Saving_card card;
private int maxpayment = 10000;
public Credit_Card(string u, int t, int m, Saving_card c)
{
customer = u; time = t; Money = m; card = c;
}
public int Time
{

get
{
return time;
}
set
{
time = value;
}
}
public void paymoney()
{
if (Money < maxpayment)
{
Console.WriteLine("您本月消费:{0}", Money);

Console.WriteLine("用户{0}:信用卡待还:{1},储蓄卡余额:{2}", customer, Money, card.Money);
if (card.Money < Money)
{
Money -= card.Money;
card.Money = 0;
Console.WriteLine("已到还款日期,您的储蓄卡余额不足,信用卡待还:{0},储蓄卡余额为0", Money - card.Money);
}
else
{
card.Money -= Money;
Money = 0;
Console.WriteLine("已到还款日期,还完欠款后,信用卡待还为0,储蓄卡余额:{0}", card.Money - Money);
}
}
else
Console.WriteLine("您没有那么多的额度");
}
public void notime()
{
Console.WriteLine("未到还款日期,储蓄卡余额:{0},信用卡待还:{1}", Money, card.Money);
}

}

委托:

class Paydelegate
{
public delegate void paydelegate();
public event paydelegate payevent;
public void Notify()
{
if (payevent != null)
{

payevent();
}
}
}

完整代码:

using System;
class Saving_card
{
private int money;
public string customer;
public int Money
{
get
{
return money;
}
set
{
money = value;
}
}
}
class Credit_Card : Saving_card
{
private int time;
Saving_card card;
private int maxpayment = 10000;
public Credit_Card(string u, int t, int m, Saving_card c)
{
customer = u; time = t; Money = m; card = c;
}
public int Time
{

get
{
return time;
}
set
{
time = value;
}
}
public void paymoney()
{
if (Money < maxpayment)
{
Console.WriteLine("您本月消费:{0}", Money);

Console.WriteLine("用户{0}:信用卡待还:{1},储蓄卡余额:{2}", customer, Money, card.Money);
if (card.Money < Money)
{
Money -= card.Money;
card.Money = 0;
Console.WriteLine("已到还款日期,您的储蓄卡余额不足,信用卡待还:{0},储蓄卡余额为0", Money - card.Money);
}
else
{
card.Money -= Money;
Money = 0;
Console.WriteLine("已到还款日期,还完欠款后,信用卡待还为0,储蓄卡余额:{0}", card.Money - Money);
}
}
else
Console.WriteLine("您没有那么多的额度");
}
public void notime()
{
Console.WriteLine("未到还款日期,储蓄卡余额:{0},信用卡待还:{1}", Money, card.Money);
}

}

class Paydelegate
{
public delegate void paydelegate();
public event paydelegate payevent;
public void Notify()
{
if (payevent != null)
{

payevent();
}
}
}
class program
{
static void Main(string[] args)
{
int paytime = 15;
Saving_card sc = new Saving_card();
sc.Money = 1000;
Credit_Card C1 = new Credit_Card("张三",15, 100, sc);
Paydelegate pay = new Paydelegate();
if (paytime == C1.Time)
{
pay.payevent += new Paydelegate.paydelegate(C1.paymoney);
}
else
pay.payevent += new Paydelegate.paydelegate(C1.notime);
pay.Notify();
}
}

小结:这次实验对我来说算是一个不小的挑战,做实验之前,我对事件和委托不够了解。通过这次实验,我查阅了许多资料和老师的ppt,加深了我对这两个知识点的理解,才完了这次实验

posted @   ava群青  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
点击右上角即可分享
微信分享提示