C#實(shí)訓(xùn)三 復(fù)盤2021-04-08

Program.cs:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 實(shí)訓(xùn)二

{

? ? class Program

? ? {

? ? ? ? static void Main(string[] args)

? ? ? ? {

? ? ? ? ? ? Console.WriteLine("201705020628 王珉鍇 數(shù)媒192班");

? ? ? ? ? ? Bank kg = new Bank("人民銀行");

? ? ? ? ? ? Console.WriteLine("--------------------------------------------------------------------------------------------");

? ? ? ? ? ? Console.WriteLine("已創(chuàng)建銀行:{0}\n", kg.Name);

? ? ? ? ? ? Account a = new Account("張三", "330101200102030045", "2018-01-01", 0);

? ? ? ? ? ? Account b = new Account("李四", "330206200106010091", "2018-02-02", 1000);

? ? ? ? ? ? Card c = new Card(b, "李四", "330206200106010091", "2018-03-03", 0);


? ? ? ? ? ? //b.IDNumber = "123";//引出異常

? ? ? ? ? ? kg.Register(a);

? ? ? ? ? ? kg.Register(b);

? ? ? ? ? ? kg.Register(c);

? ? ? ? ? ? Console.WriteLine("已增加三個(gè)賬戶\n");


? ? ? ? ? ? //Account f = kg["330101200102030045"];//索引器查找


? ? ? ? ? ? Console.WriteLine("{0}存款{1}元,取款{2}元", a.Name, 1000, 1500);

? ? ? ? ? ? a.Deposit(1000);

? ? ? ? ? ? Console.WriteLine("{0}存款{1}元", a.Name, 1000);

? ? ? ? ? ? a.Withdraw(1500);

? ? ? ? ? ? Console.WriteLine("{0}借記卡賬戶存款{1}元,刷卡{2}元", c.Name, 500, 1200);

? ? ? ? ? ? c.Deposit(500);

? ? ? ? ? ? Console.WriteLine("{0}存款{1}元", c.Name, 500);

? ? ? ? ? ? c.Swipe(1200);

? ? ? ? ? ? kg.Show();

? ? ? ? ? ? Console.ReadKey();

? ? ? ? }

? ? }

}


Account.cs:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 實(shí)訓(xùn)二

{

? ? public class Account

? ? {

? ? ? ? static long id = 100000;//靜態(tài)固然就有

? ? ? ? private long Id;//Id記錄100000

? ? ? ? public long ID

? ? ? ? {

? ? ? ? ? ? get { return Id; }

? ? ? ? }

? ? ? ? private string name1;

? ? ? ? public string Name

? ? ? ? {

? ? ? ? ? ? get { return name1; }

? ? ? ? }

? ? ? ? private string idnumber1;

? ? ? ? public string IDNumber//身份證

? ? ? ? {

? ? ? ? ? ? get { return idnumber1; }

? ? ? ? ? ? set

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (value.Length != 18)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? throw new MyException("身份證必須要有18位Q柚小!挠羔!");//拋出異常

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? idnumber1 = value;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? private DateTime createdate1;

? ? ? ? public DateTime CreateDate//創(chuàng)建賬戶時(shí)間

? ? ? ? {

? ? ? ? ? ? get { return createdate1; }

? ? ? ? }

? ? ? ? private double money1;

? ? ? ? public double Money

? ? ? ? {

? ? ? ? ? ? get { return money1; }

? ? ? ? ? ? set { money1 = value; }

? ? ? ? }

? ? ? ? public Account(string name, string idnumber, string dt)//重載

? ? ? ? {

? ? ? ? ? ? name1 = name;

? ? ? ? ? ? idnumber1 = idnumber;

? ? ? ? ? ? createdate1 = DateTime.Parse(dt);//將字符串dt轉(zhuǎn)為DateTime

? ? ? ? ? ? Id = id++;

? ? ? ? }

? ? ? ? public Account(string name, string idnumber, string dt, double money)//重載

? ? ? ? {

? ? ? ? ? ? name1 = name;

? ? ? ? ? ? idnumber1 = idnumber;

? ? ? ? ? ? money1 = money;

? ? ? ? ? ? createdate1 = DateTime.Parse(dt);//將字符串dt轉(zhuǎn)為DateTime

? ? ? ? ? ? Id=id++;

? ? ? ? }

? ? ? ? public virtual void Query()//可以被派生類重載 查詢

? ? ? ? {

? ? ? ? ? ? Console.WriteLine("賬戶號(hào)" + "\t" + "卡類" + "\t" + "姓名" + "\t" + "開戶日期" + "\t" + "{0,-18}" + "余額(元)", "身份證號(hào)");

? ? ? ? ? ? Console.WriteLine(ID + "\t" + "儲(chǔ)蓄卡" + "\t" + Name + "\t" + CreateDate.ToString("yyyy-MM-dd") + "\t" + "{0,-18}" + "? ? " + Money.ToString("0.00"), IDNumber);

? ? ? ? }

? ? ? ? public double Deposit(double money)//存錢

? ? ? ? {

? ? ? ? ? ? Money += money;

? ? ? ? ? ? return Money;

? ? ? ? }

? ? ? ? public double Withdraw(double money)//取錢

? ? ? ? {

? ? ? ? ? ? double temp = Money - money;

? ? ? ? ? ? if (temp < 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Console.WriteLine("{0}賬戶余額不足(余額:{1}元),取款{2}元失敗\n", Name, Money, money);//如果錢不夠

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Money = Money - money;

? ? ? ? ? ? }

? ? ? ? ? ? return Money;

? ? ? ? }

? ? }

}


exception.cs://異常

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 實(shí)訓(xùn)二

{

? ? public class MyException : Exception

? ? {

? ? ? ? public MyException(string message) : base(message)

? ? ? ? { }

? ? }

}


Card.cs:

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 實(shí)訓(xùn)二

{

? ? class Card : Account

? ? {

? ? ? ? private long id = 200000;

? ? ? ? private long Id;

? ? ? ? public long ID

? ? ? ? {

? ? ? ? ? ? get { return Id; }

? ? ? ? }

? ? ? ? private Account b;

? ? ? ? public Account BaseAccount

? ? ? ? {

? ? ? ? ? ? get { return b; }

? ? ? ? }

? ? ? ? public Card(Account BaseAccount, string name, string idnumber, string dt, double money) : base(name, idnumber, dt, money)//導(dǎo)入的和繼承的

? ? ? ? {

? ? ? ? ? ? b = BaseAccount;//b存放存儲(chǔ)卡信息

? ? ? ? ? ? Id = id++;

? ? ? ? }

? ? ? ? public void Swipe(double money)//刷卡

? ? ? ? {

? ? ? ? ? ? double temp = Money - money;

? ? ? ? ? ? if (temp < 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (BaseAccount.Money + temp < 0)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Console.WriteLine("借記卡和儲(chǔ)蓄卡中金額皆不足,刷卡失敗");

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? BaseAccount.Withdraw(-temp);

? ? ? ? ? ? ? ? ? ? Console.WriteLine("{0}刷卡{1}元(其中:借記卡刷卡{2}元埋嵌,儲(chǔ)蓄卡賬戶刷卡{3}元)", Name, money, Money, -temp);

? ? ? ? ? ? ? ? ? ? Money = 0;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Money = temp;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? public override void Query()//查詢

? ? ? ? {

? ? ? ? ? ? Console.WriteLine(ID + "\t" + "借記卡" + "\t" + Name + "\t" + CreateDate.ToString("yyyy-MM-dd") + "\t" + "{0,-18}" + "? ? " + Money.ToString("0.00"), IDNumber);

? ? ? ? }

? ? }

}


Bank.cs:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 實(shí)訓(xùn)二

{

? ? public class Bank

? ? {

? ? ? ? private string name1;

? ? ? ? private List<Account> queue;

? ? ? ? public string Name

? ? ? ? {

? ? ? ? ? ? get { return name1; }

? ? ? ? }

? ? ? ? /*

? ? ? ? public List<Account> Queue

? ? ? ? {

? ? ? ? ? ? get;

? ? ? ? ? ? set;

? ? ? ? }*/

? ? ? ? //List<Account> queue = new List<Account>();

? ? ? ? public List<Account> Queue

? ? ? ? {

? ? ? ? ? ? get { return queue; }

? ? ? ? ? ? set { queue = value; }

? ? ? ? }

? ? ? ? public Bank(string name)

? ? ? ? {

? ? ? ? ? ? name1 = name;

? ? ? ? ? ? Queue = new List<Account>();

? ? ? ? }

? ? ? ? public void Register(Account node)//開戶

? ? ? ? {

? ? ? ? ? ? Queue.Add(node);

? ? ? ? }

? ? ? ? public void Show()

? ? ? ? {

? ? ? ? ? ? Console.WriteLine("\n所有賬戶信息如下:");

? ? ? ? ? ? //Console.WriteLine("賬戶號(hào)" + "\t" + "卡類" + "\t" + "姓名" + "\t" + "開戶日期" + "\t" + "{0,-18}" + "余額(元)", "身份證號(hào)");

? ? ? ? ? ? foreach (Account node in Queue)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? node.Query();

? ? ? ? ? ? ? ? //Console.WriteLine(node);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? public Account this[string idnumber]

? ? ? ? {

? ? ? ? ? ? get

? ? ? ? ? ? {

? ? ? ? ? ? ? ? int flag = 0;

? ? ? ? ? ? ? ? foreach (Account node in Queue)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (node.IDNumber == idnumber)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? node.Query();

? ? ? ? ? ? ? ? ? ? ? ? flag++;

? ? ? ? ? ? ? ? ? ? ? ? if (flag == 2)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return node;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if (flag == 0)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Console.WriteLine("沒有找到");

? ? ? ? ? ? ? ? ? ? return null;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? return null;

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末破加,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雹嗦,更是在濱河造成了極大的恐慌范舀,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件了罪,死亡現(xiàn)場離奇詭異锭环,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泊藕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門辅辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吱七,你說我怎么就攤上這事汽久。” “怎么了踊餐?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長臀稚。 經(jīng)常有香客問我吝岭,道長,這世上最難降的妖魔是什么吧寺? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任窜管,我火速辦了婚禮,結(jié)果婚禮上稚机,老公的妹妹穿的比我還像新娘幕帆。我一直安慰自己,他們只是感情好赖条,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布失乾。 她就那樣靜靜地躺著常熙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碱茁。 梳的紋絲不亂的頭發(fā)上裸卫,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音纽竣,去河邊找鬼墓贿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜓氨,可吹牛的內(nèi)容都是我干的聋袋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼穴吹,長吁一口氣:“原來是場噩夢啊……” “哼舱馅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刀荒,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤代嗤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后缠借,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體干毅,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年泼返,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硝逢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绅喉,死狀恐怖渠鸽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柴罐,我是刑警寧澤徽缚,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站革屠,受9級特大地震影響凿试,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜似芝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一那婉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧党瓮,春花似錦详炬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽在跳。三九已至,卻和暖如春呻率,著一層夾襖步出監(jiān)牢的瞬間硬毕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工礼仗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吐咳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓元践,卻偏偏與公主長得像韭脊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子单旁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容