C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额
實驗4 C#程序的流程控制
一、實驗目的
(1)理解面向對象的概念,掌握C#定義類和創建對象的方法
(2)區分類的不同數據成員,包括常量、字段和屬性的定義方法,并學會控制其訪問性
(3)掌握類的方法成員的聲明與調用,理解各種參數在方法中的意義及使用
(4)理解構造函數和析構函數的作用機制
二、實驗要求
(1)熟悉VS2017的基本操作方法
(2)認真閱讀本章相關內容,尤其是案例。
(3)實驗前進行程序設計,完成源程序的編寫任務。
(4)反復操作,直到不需要教材、能熟練操作為止。
三、實驗步驟
設計一個windows應用程序,模擬一個簡單的銀行賬戶管理系統,完成“創建賬戶”“取款”“存款”和“查詢余額”的模擬操作。程序功能如下:
①當單擊“創建賬戶”按鈕時,顯示如圖所示信息,其中,卡號為隨機生成的一個100000~499999中的值,余額初始化在100元
②在“取款”文本框中輸入取款金額中,單擊“取款”按鈕,顯示如圖所示的信息,如果沒有創建賬戶或沒有輸入取款金額而單擊“取款”按鈕或余額不足時,需要給出適當提示
③在“存款”文本框中輸入存款金額中,單擊“存款”按鈕,顯示如圖所示的信息,然后沒有創建賬戶或沒有輸入取款金額而單擊“取款”按鈕時,需要給出適當提示
④當點擊“查詢余額”按鈕時,顯示如圖所示信息
四、實驗總結
1、運行效果描述:
①當單擊“創建賬戶”按鈕時,顯示如圖所示信息,其中,卡號為隨機生成的一個100000~499999中的值,余額初始化在100元
②在未創建賬戶的情況下點擊任何按鈕,彈出消息框提示“操作失敗,請先創建賬戶!”
③如果沒有輸入取款金額,而單擊“取款”按鈕或余額不足時,給出適當提示:“輸入的字符串格式不正確!”
④如果余額不足,提示“操作失敗,余額不足”
⑤以下為正常的存取款操作:
2、實驗體會
本次實驗的內容是:模擬一個簡單的銀行賬戶管理系統,完成“創建賬戶”“取款”“存款”和“查詢余額”的模擬操作,通過這次實驗,理解了C#類的特性,理解面向對象的概念,掌握C#定義類和創建對象的方法區分類的不同數據成員,包括常量、字段和屬性的定義方法,并學會控制其訪問性掌握類的方法成員的聲明與調用。
本次程序設計考慮到了一些以往沒有注意到的細節,比如:用戶沒有點擊“創建賬戶”就進行其他存取款操作,導致沒有實例化類時,應該給出適當的提示信息。通過flag標志位可以實現這個功能。否則,使用沒有實例化的類時,程序將會產生錯誤,從而被迫停止運行。
另外,本次實驗使我理解了int.Parse()與int.TryParse()的不同。int.TryParse()的特性在于,其存在一個指示轉換是否成功的返回值,對這個特性進行使用,可以增加程序的健壯性,避免在用戶使用的過程中拋出異常而終止程序。
附錄 運行截圖及源程序
(1)運行結果
(2)主要代碼
Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 第四章_銀行賬戶 {public partial class Form1 : Form{public Form1(){InitializeComponent();}Account account; //定義一個賬戶類對象bool createAccount = false; //是否已經創建賬戶的標志位//創建賬戶private void button1_Click(object sender, EventArgs e){createAccount = true; //已經創建賬戶的flagaccount = new Account();string message = String.Format("創建賬戶成功,用戶卡號為:{0}", account.Num);label1.Text = "卡號:" + account.Num;textBox3.Text = "\n" + message + "\n";}//取款private void button2_Click(object sender, EventArgs e){if (createAccount == false){MessageBox.Show("操作失敗,請先創建賬戶!");return;}string message;//用于outint subNum;bool success = int.TryParse(textBox1.Text, out subNum);//轉換是否成功if (success == false){MessageBox.Show("你輸入的字符串格式不正確!");return;}account.subMoney(subNum, out message);//調用取款方法textBox3.Text = "\n" + message + "\n";//輸出結果}//查詢余額private void button4_Click(object sender, EventArgs e){if (createAccount == false){MessageBox.Show("操作失敗,請先創建賬戶!");return;}string message;message = String.Format("查詢成功,余額為:{0}", account.Money);textBox3.Text = "\n" + message + "\n";//輸出結果}//存款private void button3_Click(object sender, EventArgs e){if (createAccount == false){MessageBox.Show("操作失敗,請先創建賬戶!");return;}string message;//用于outint addNum;bool success = int.TryParse(textBox2.Text, out addNum);//轉換是否成功if (success == false){MessageBox.Show("你輸入的字符串格式不正確!");return;}account.addMoney(addNum, out message);//調用存款方法textBox3.Text = "\n" + message + "\n";//輸出結果}} }Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms;namespace 第四章_銀行賬戶 {static class Program{/// <summary>/// 應用程序的主入口點。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}}public class Account{private int num; //賬戶編號private decimal money; //余額//創建一個賬戶public Account(){Random rnum = new Random();num = rnum.Next(100000, 500000);//產生一個100000~500000的隨機數money = 100;//賬戶默認100元}//返回余額public decimal Money{get { return money; }}//返回賬戶編號public int Num{get { return num; }}//取款public bool subMoney(decimal subnum, out string message){//取款金額小于0if (money < 0){message = "操作失敗!\n存款金額不能小于0";return false;}//正常取款else if (money >= subnum){money -= subnum;message = "操作成功!\n取款" + subnum + "元";return true;}//取款大于余額else{message = "操作失敗!\n余額不足";return false;}}//存款public bool addMoney(decimal addnum, out string message){//存款金額小于0if (money < 0){message = "操作失敗!\n存款不能小于0";return false;}//正常存款else{money += addnum;message = "操作成功!\n存款" + addnum + "元";return true;}}} }總結
以上是生活随笔為你收集整理的C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: verilog入门笔记
- 下一篇: C# 实验四 获取系统时间、点击加一秒功