C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系.

Slides:



Advertisements
Similar presentations
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
Advertisements

5.1 掌握Power Scrip语言 5.2 使用控件 实训五 控件应用
第 4 章 PHP 基本語法.
計算機程式及實習 期末報告 題目:商店結帳系統
課程名稱:程式設計 授課老師:________
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
第7章 C#函數與.NET Framework類別函數庫
Visual Basic 2005學習範本 第5章 選擇結構.
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
第一章 面向对象程序设计.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
課程名稱:程式設計 授課老師:________
第 5 章 流程控制 (一): 條件分支.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
程設一.
第8章 字串與陣列 8-1 字串處理 8-2 一維陣列的處理 8-3 建立多維陣列 8-4 不規則陣列與參數傳遞 8-5 陣列排序與搜尋.
Visual Basic.NET 程序设计语言课程内容
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
第三章 控制结构.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程式設計實作.
課程名稱:程式設計 授課老師:________
第九章 常用控制項(ㄧ) 資訊教育研究室 編著 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
控制流程 邏輯判斷 迴圈控制.
課程名稱:程式設計 授課老師:________
Class 2 流程控制-選擇敘述與迴圈.
物件導向程式設計 (Object-Oriented rogramming)
第二章 C# 基础知识.
C++Primer 3rd edition 中文版 Chap 5
程式語言 -Visual Basic 變數、常數與資料型態.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Visual Basic程序设计基础 计算机科学学院.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
C 語言簡介 - 2.
計算機程式 廖文淵 Department of Computer Science and Engineering
委派與執行緒 建國科技大學 資管系 饒瑞佶.
第五章 Windows窗体界面设计 5.1 鼠标事件与键盘事件 5.2 Windows窗体基本控件 5.3 菜单与工具栏
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
變數命名 保留字(Reserved Word)
視窗程式設計 (Windows Programming)
郑晟 昆明理工大学 云南省计算机技术应用重点实验室
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
Visual Basic.NET 程序设计语言课程内容
第二讲 C#程序设计基础(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第三章 C# 基础知识.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
软件测试 (四)静态测试与动态测试.
补充:c#语言基础.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
C# 基本語法、變數.
第二章 Java基本语法 讲师:复凡.
Visual Basic 程序设计及应用教程 (6.0版)
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
Visual C# 程序设计 第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
MenuStrip by Szeto CY Visual C# 2008.
第6章 PHP基本語法介紹.
多重條件選擇敘述
C#快速導讀 流程控制.
Presentation transcript:

C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系

基於物件的程式設計 (Object-based Programming)1/2 使用(現存的)物件來建立應用程式。 必須先設計類別(藍圖),才能根據類別建立物件(實體,有各自獨立的記憶體)。 類別(Class)是定義物件內容的模子(藍圖)。內容包括屬性(properties)和相關的方法(methods)。 (a) 屬性:描述物件的性質和狀態 - 文字盒的Name, Text等屬性。 (b) 方法:執行特定功能的函數(或程序) - 例外物件的ToString()函數 - Convert類別的ToInt32(~)函數 C# 程式設計 - 南華大學資管系

基於物件的程式設計 (Object-based Programming)2/2 不用知道物件內部屬性和方法的實作方式,只需知道提供那些屬性和方法,以及如何使用。 物件(類別)名稱.屬性、物件(類別)名稱.方法() .NET Framework 類別函式庫提供龐大多樣的類別庫。 (a) System.Windows.Forms 是表單控制項的父名稱空間。 (b) [說明]→[內容/索引]→MSDN Library完整的使用說明文件。 (c) MSDN Online Library: http://msdn.microsoft.com/library 控制項類別,Convert類別,Console類別的使用。 C# 程式設計 - 南華大學資管系

物件變數和物件實體 物件是以參考型態(Reference Type)來處理。 宣告物件變數(假設有一個Date類別) Date d; 此時,只是告訴系統,變數 d 會參考到一個Date類別的 物件,但尚未有真正的Date物件實體。 建立物件實體(利用new operator) new Date(); 將物件實體的位址存到物件變數中以便後續的使用。 d = new Date(); 可以宣告和建立寫在同一敘述 Date d = new Date(); 在執行階段,可改變參考的物件實體。 Date t = new Date();// 另一個物件 d = t ; // d 和 t 參考同一個物件 C# 程式設計 - 南華大學資管系

DateTime類別和Timer控制項 建立DateTime物件實體(使用new運算子)。 DateTime dt = new DateTime (2010, 9, 23, …); 取得目前電腦時間資料的DateTime物件。 DateTime.Now 利用Hour、Minute、Second屬性值取得時、分、秒。 從工具箱建立Timer控制項。 (a) 利用Enabled屬性啟動計時器。 (b) 利用Interval屬性設定觸發Tick事件的間隔時間 (單位:毫秒,1秒 = 1000毫秒)。 (c) 處理Tick事件,以更新畫面。 C# 程式設計 - 南華大學資管系

練習:簡易時間顯示器 介面 在clock_load 和 timer1_Tick取得現在時間並顯示 電子鐘 : : Label Control: AutoSize: False TextAlign: MiddleCenter BorderStyle: Fixed3D 加入Timer Control控制項 Enabled: true Interval: 1000 (毫秒) 在clock_load 和 timer1_Tick取得現在時間並顯示 DateTime dt = DateTime.Now; lblHour.Text = dt.Hour.ToString(); lblMin.Text = dt.Minute.ToString(); lblSec.Text = dt.Second.ToString(); 電子鐘 : : lblHour lblMin lblSec 14 10 45 C# 程式設計 - 南華大學資管系

區域變數(Local Variable) 變數有其勢力(使用)範圍(scope)以及生命週期(記憶 體的存在時間,life time) 在方法或Block(區塊)內宣告的變數稱為區域變數。 只在方法或區塊內有效,離開區塊或方法之後,變數 不存在,因此,也不能被使用。 C# 程式設計 - 南華大學資管系 Button1_Click(….){ int x = 0 ; x = x + 1 ; lblResult.Text = "x = “ + x; }

實體成員 (Instance Member) 它是類別的屬性(資料)成員,在方法之外宣告。只要物 件存在,實體成員就存在,而且所有類別內的方法都可 以使用。 Class MyForm … { int y = 0 ; button1_Click(…) { y = y + 1 ; lblResult.Text = "y = “ + y ; } button2_Click(…) { (可保留或共享變數值) C# 程式設計 - 南華大學資管系

練習:時間顯示器 1/2 介面 在Form1_load取得現在時間並顯示 Label Control: 電子鐘 : : lblHour lblMin lblSec 介面 Label Control: AutoSize: False TextAlign: MiddleCenter BorderStyle: Fixed3D 在Form1_load取得現在時間並顯示 DateTime dt = DateTime.Now; /* h, m, s 必須宣告為實體成員(Instance member) 變數,以便後續自行維護變數內容值 */ h = dt.Hour ; m = dt.Minute; s = dt.Second ; lblHour.Text = h.ToString(); ... 14 10 45 C# 程式設計 - 南華大學資管系

練習:時間顯示器 2/2 動態更新時間(每秒更新一次) (a) 從工具箱→元件 加入Timer Control物件 timer1.Enabled=true ; timer1.Interval=1000 ; // 一秒通知一次 (b) 每一秒透過Tick事件通知一次(事件處理) s = s + 1 ; if (s >= 60){ m++; // m = m + 1; s = 0; } … C# 程式設計 - 南華大學資管系

練習:猜數字遊戲 1/3 隨機產生一個二位數(0~99),讓使用者猜,系統會 提示大小,過程以文字盒顯示。 TextBox MultiLine: True ScrollBar: Both - ReadOnly: True - WordWrap: False - 使用”\r\n”跳行 C# 程式設計 - 南華大學資管系

練習:猜數字遊戲 2/3 Random 類別 在表單載入或按下”產生數字”鈕時,產生新的數字 (0 ~ 99) (a) Random rd = new Random(); (b) rd.Next (0, 100) // 0 ~ 99 在表單載入或按下”產生數字”鈕時,產生新的數字 (0 ~ 99) (a) 此數字必須存起來,方便之後比對 answer = rd.Next (0, 100) ; // answer是一個整數 (b) answer 必須宣告為Instance member, Why? 將答案欄和訊息欄清空 txtAnswer.Text = ""; txtMessage.Text = ""; C# 程式設計 - 南華大學資管系

練習:猜數字遊戲 3/3 答案鈕: 確定鈕(比較大小) 練習:猜數字遊戲 3/3 答案鈕: MessageBox.Show(answer.ToString(),“答案", …OK, …Information); 確定鈕(比較大小) (a) if (txtAnswer.Text == "") { MessageBox.Show("沒有輸入答案“, …) ; return; } (b) int input = Convert.ToInt32(txtAnswer.Text) ; // 取得輸入 string output = “”; // 進行大小比較 if (input == answer) output = “你答對了!答案是“ +answer ; if (input < answer) output = "答案比“ + input + "大"; if (input > answer) output = "答案比“ + input + "小"; (c) // 將結果串接在目前文字盒資料的後面 txtMessage.Text += output + “\r\n"; (d) txtAnswer.Text = “”; //將答案欄清空 txtAnswer.Focus(); //取得輸入焦點 C# 程式設計 - 南華大學資管系

複雜的條件運算式 (Conditional Expressions) 邏輯運算子(Logical operator) A B !A (NOT) A&& (AND)B A || (OR) B true true false true true false false true false false C# 程式設計 - 南華大學資管系 [例] ! (15 > 13) → false 15 > 13 && 14 <= 12 → false (兩者都要成立) 15 > 13 || 14 <= 12 → true (一個成立即可)

選擇結構:二選一 (if ~ else ~) // 兩個互斥的單選 if ( C ) { ST } if ( !C ) { SF } (b) if ( C ) { ST } else { SF } True False C SF ST C# 程式設計 - 南華大學資管系

判斷成績是否及格 int score; string result; … (a) // 兩個互斥的單選 if (score >= 60) result = "及格"; if (score < 60) result = "不及格"; // if( !(score >= 60) ) result = "不及格";亦可 (b) if (score >= 60) result = "及格"; else result = "不及格"; C# 程式設計 - 南華大學資管系

判斷成績是否落在Ø和100之間,符合則判斷是否及格,不符合則顯示錯誤 1/2 判斷成績是否落在Ø和100之間,符合則判斷是否及格,不符合則顯示錯誤 1/2 (a) if (score > 100){ /* 顯示錯誤訊息,不處理 */ return ; } if (score < 0) { return; // 處理及格與否 if (score >= 60) . . . else . . . C# 程式設計 - 南華大學資管系

判斷成績是否落在Ø和100之間,符合則判斷是否及格,不符合則顯示錯誤 2/2 判斷成績是否落在Ø和100之間,符合則判斷是否及格,不符合則顯示錯誤 2/2 (b) 使用複合條件 if (score > 100 || score < 0){ /* 錯誤訊息 */ return ; /* 不處理 */ } /* 處理及格與否 */ if (score >= 60) /*及格*/ … ; else /*不及格*/ … ; (c) 使用巢狀 if - else if (score <= 100 && score >= Ø) { } else /* 錯誤訊息、不處理 */ (d) . . . C# 程式設計 - 南華大學資管系

練習:程式改寫 四則運算範例 if (num1 < 0) { lblResult.Text = "錯誤:數字一小於Ø"; return ; } if (num1 > 99) { lblResult.Text = "錯誤:數字一超過99" ; return ; } (a) if (num1 < 0 || num1 > 99) { lblResult.Text = “數字一範圍不符,必須0到99"; return; } (b) 用if - else改寫亦可 C# 程式設計 - 南華大學資管系

選擇結構:多選一 成績等級:100~90 (A) , 89~80 (B) , 79~70 (C) , 69~60 (D) , 60以下 (E)。 (a) if (score >= 90) /*等級A*/ ; if (score <= 89 && score >= 80) /*B*/ ; … if (score < 60) /*E*/ ; (b) if (score >= 90) /*A*/ ; else if (score >= 80) /*B*/ ; else if (score >= 70) /*C*/ ; else if (score >= 60) /*D*/ ; else /*E*/ ; C# 程式設計 - 南華大學資管系

多選一:switch 敘述 switch( 運算式 /*整數或字串*/) { case 值1:區塊1 ; break; . [ default: 區塊N; break; ] } // 成績等級 switch( (int) (score / 10) ) { case 10 : case 9 : /* A */ break ; case 8 : /* B */ break ; case 7 : /* C */ break ; case 6 : /* D */ break ; default : /* E */ break ; } C# 程式設計 - 南華大學資管系

程式練習 (a) 猜數字遊戲之數字比較(三選一) (程式改寫) if (input == answer ) output = “你答對了!” ; else if (input < answer) output = “…..大” ; else output = “……小” ; (b) 輸入5個成績,計算幾人及格,各等級有多少人, 平均幾分。 ( 實數的格式:實數.ToString(“##.##”) ) C# 程式設計 - 南華大學資管系

程式練習:點餐系統 1/4 選擇控制項(True/False)搭配條件敘述。 介面設計。 Fries Small Big Fish Drink Coke Coffee BlackTea Fish Chicken SPizza BPizza C# 程式設計 - 南華大學資管系

練習:點餐系統 2/4 群組方塊控制項 (GroupBox) 選項按鈕控制項(RadioButton, rdb) 所需的控制項 (群組,排它性)。 (b) Text屬性 (群組標題)。 選項按鈕控制項(RadioButton, rdb) (a) 多個選項中只能選一個 (互斥)。 (b) Name, Text, Checked (選取與否)。 C# 程式設計 - 南華大學資管系

練習:點餐系統 3/4 核取方塊控制項(CheckBox, chk) “點餐”鈕的事件處理 (a) 允許複選 (各自獨立)。 練習:點餐系統 3/4 核取方塊控制項(CheckBox, chk) (a) 允許複選 (各自獨立)。 (b) Name, Text, Checked。 “點餐”鈕的事件處理 (a) 令總金額為0:int totalAmount = 0; (b) 檢查漢堡/披薩 if (chkFish.Checked) totalAmount += 59; if (chkChicken.Checked) totalAmount += 69; if (chkSPizza.Checked) totalAmount += 259; if (chkBPizza.Checked) totalAmount += 429; C# 程式設計 - 南華大學資管系

練習:點餐系統 4/4 “點餐”鈕的事件處理 (c) 檢查薯條 (d) 檢查飲料 (e) 輸出結果 if (chkFries.Checked) { if (rdbSmall.Checked) totalAmount += 25; else totalAmount += 35; } (d) 檢查飲料 if (chkDrink.Checked) { if (rdbCoke.Checked) totalAmount += 25; else if(rdbCoffee.Checked) totalAmount += 30; else totalAmount += 20; (e) 輸出結果 lblOutput.Text = “NT $” + totalAmount; C# 程式設計 - 南華大學資管系