---
# System prepended metadata

title: 物件導向程式設計實習_28蔡宸睿

---

# 物件導向    程式設計實習
---
## 2024/1/24
![image](https://hackmd.io/_uploads/ry6OGb0Kp.png)
![image](https://hackmd.io/_uploads/S1OKMbAFT.png)
![image](https://hackmd.io/_uploads/HyQqfbCta.png)
![image](https://hackmd.io/_uploads/HyzUM-RFT.png)

---
**心得:**
經過了今天的課程，我發現不同的程式語言還是會有許多共同的語法和資料型別，像是C++中的cout在C#中是Console.Writeline，在這次的課程中我還學到了清單的用法，我覺得跟陣列有異曲同工之妙，但是用法比陣列更多。

---

## 2024/2/21
### 第一題練習題
**程式碼:**
```
Console.Write("請輸入你的名字: ");
string name = Console.ReadLine();
Console.WriteLine($"Good Day! {name}");
```

**運行:**
![image](https://hackmd.io/_uploads/ByF8WG73p.png)

---
### 第二題練習題
**程式碼:**
```
Console.Write("請輸入名稱: ");
string name = Console.ReadLine();
Console.Write("請輸入提款金額: ");
int money = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"Hi! {name}， 提款金額: {money:C0}");
```

**運行:**
![image](https://hackmd.io/_uploads/Bkke3mQn6.png)

---
### 第三題練習題
**程式碼:**
```
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 dafaq
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            label1.Text = "Hello,World!";
        }
    }
}

```
**運行:**
![image](https://hackmd.io/_uploads/r1zX677np.png)
![image](https://hackmd.io/_uploads/B1F7aQXnT.png)

---
## 2024/3/6
### 第一題練習題
**程式碼:**
```
using static System.Console;
WriteLine("資訊一甲 28蔡宸睿");
WriteLine("");

int num1 = 123456;
long num2 = 456789123;
long max=Int64.MaxValue;
long min=Int64.MinValue;
int num3 = 0b1011110;
int num4 = 0b11111010;
int num5 = 0xFB12;

WriteLine($"Number:{num1:N0},{num2:n0}");
WriteLine($"二進位變十進位:{num3:D5},{num4:D4},{num5:D6}");
WriteLine($".NET Framework型別(num1): {num1:GetType()}");
WriteLine($".NET Framework型別(num2): {num2:GetType()}");
WriteLine($"最大值:{max} \n最小值:{min}");
```
**運行:**
![image](https://hackmd.io/_uploads/rytc1UrpT.png)

---
### 第二題練習題
**程式碼:**
```
using static System.Console;
WriteLine("資訊一甲 28 蔡宸睿");
WriteLine("");

float num1 = 1.2233446F;
double num2 = 1.2233445566778899;
decimal num3 = 1.2233445566778899M;
double x1 = 0.1, x2 = 0.2;
decimal y1 = 0.1M, y2 = 0.2M;
WriteLine($"Float:{num1}");
WriteLine($"Double:{num2}");
WriteLine($"Decimal:{num3}");

WriteLine($"Float:{num1:f4}");
WriteLine($"double佔<{sizeof(double)}>位元組");
WriteLine($"decimal佔<{sizeof(decimal)}>位元組");

WriteLine($"double,x1+x2={x1 + x2}");
WriteLine($"decimal,y1+y2={y1 + y2}");
```
**輸出:**
![image](https://hackmd.io/_uploads/Hycn9IB66.png)

---
### 第三題練習題
**程式碼:**
```
using static System.Console;
WriteLine("資訊一甲28蔡宸睿");
WriteLine();

const float square = 3.0579F;
Write("請輸入坪數:");
float area=Convert.ToSingle(ReadLine());
WriteLine($"{area}坪={square * area}平方公尺");

const float PI = 3.14159F;
const float circular = PI * 25.0F;
WriteLine($"圓面積 -> {circular}");
```
**輸出:**
![image](https://hackmd.io/_uploads/S16Z2Ir6T.png)

---
### 第四題練習題
**程式碼:**
```
using static System.Console;
WriteLine("資訊一甲28蔡宸睿");
WriteLine();

Write("請輸入你的生日:");
string birth=ReadLine();
DateTime now=DateTime.Now;
DateTime special=Convert.ToDateTime(birth);
WriteLine($"今天是{now}");
WriteLine($"你的生日{special}");
```
**輸出:**
![image](https://hackmd.io/_uploads/B1qrHPB6p.png)

---
## 2024/3/13
### 第一題練習題
**程式碼:**
```
namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.MaxLength = 3;
            textBox2.ReadOnly = true;
            textBox1.TabIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                double sus=double.Parse(textBox1.Text);
                double huasu = (sus * 9 / 5) + 32;
                textBox2.Text=huasu.ToString();
                textBox1.Focus();
            }
            catch
            {
                textBox2.Text = "溫度請輸入數值!";
                textBox1.Clear();
            }
        }
    }
}

```
**輸出:**
![image](https://hackmd.io/_uploads/B1ijMaApT.png)
![image](https://hackmd.io/_uploads/SJmnf6R6T.png)

---
### 第二題練習題
**程式碼:**
```
    using System.Data.SqlTypes;

    namespace WinFormsApp2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                string username = Microsoft.VisualBasic.Interaction.InputBox("請輸入姓名", "輸入");
                DialogResult dr=MessageBox.Show(username + "歡迎你!", "歡迎", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                Text = username;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    decimal price = decimal.Parse(textBox2.Text);
                    label4.Text = price.ToString("N0");
                }
                catch
                {
                    MessageBox.Show("請輸入整數! = =","注意",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                }
            }
        }
    }

```
![image](https://hackmd.io/_uploads/r11eXCCa6.png)
![image](https://hackmd.io/_uploads/BJVx70A6a.png)
![image](https://hackmd.io/_uploads/SyI7bCAp6.png)
![image](https://hackmd.io/_uploads/r1rYWCR6a.png)

---
## 2024/3/20
### 第一題練習題
**程式碼:**
```
using static System.Console;

int sum = 0, cnt = 0;

for(; ; )
{
    Write("請輸入數值做加總:");
    int num = Convert.ToInt32(ReadLine());
    cnt++;
    sum+= num;

    Write("還要繼續嗎?(y繼續,n離開)");
    string endkey = ReadLine();

    if (endkey == "y" || endkey == "Y")
        continue;
    else if (endkey == "n" || endkey == "N")
        break;
}

WriteLine($"輸入{cnt}個數值，合計:{sum}");

ReadKey();
```
**輸出:**
![image](https://hackmd.io/_uploads/ByosM6w0p.png)


---
## 2024/03/27
### 第一題練習題
**程式碼:**
```
string[] name = { "Molly", "Eric", "Johseph", "Peter", "Iron", "Priyanka" };
int[] age = { 24, 26, 24, 26, 28, 25 };
int index=Array.IndexOf(age, 24);
Console.WriteLine("---年齡符合24歲---");
while (index >= 0)
{
    Console.Write($"{name[index],-8}");
    index=Array.IndexOf(age, 24,index+1);
}
Array.Sort(age);
var key = Array.BinarySearch(age, 25);
switch (key)
{
    case >= 0:
        Console.WriteLine($"\n找到年齡25! 位置={key}");
        break;
    default:
        Console.WriteLine($"\n未找到年齡25! 位置={key}");
        break;
}
```
**輸出:**
![image](https://hackmd.io/_uploads/B1D8v4WJ0.png)

---
### 第二題練習題
**程式碼:**
```
int outer, inner;
int[] sum = new int[3];
string[] names = {"Mary","Tomas","John"};
foreach(string name in names)
    Console.Write("{0,7}",name);
Console.WriteLine();
int[,] score = { { 75, 64, 96 }, { 55, 67, 39 }, { 45, 92, 85 }, { 71, 69, 81 } };
int row = score.GetLength(0);
int column = score.GetLength(1);

for (outer = 0; outer < row; outer++)
{
    for(inner = 0; inner < column; inner++)
    {
        Console.Write($"{score[outer, inner],7}");
    }
    Console.WriteLine();
    sum[0] += score[outer, 0];
    sum[1] += score[outer, 1];
    sum[2] += score[outer, 2];
}
Console.WriteLine("-------------------------------------");
Console.WriteLine($"Sum:{sum[0]} {sum[1],5} {sum[2],6}");
```
**輸出:**
![image](https://hackmd.io/_uploads/SJVoeS-k0.png)

---
### 第三題練習題
**程式碼:**
```
int[,,] num3d = new int[2, 2, 3] { { { 11, 13, 15 }, { 22, 24, 26 } }, { { 33, 38, 41 }, { 44, 48, 52 } } };
Console.Write($"元素:{num3d[1,1,1]},"+$"位於第2個表格，位於第2列 第2欄\n");
int table = num3d.GetLength(0);
int row = num3d.GetLength(1);
int col = num3d.GetLength(2);
Console.Write($"表格{table}個,二維表格{row}*{col}\n");
for(int i = 0; i < table; i++)
{
    Console.WriteLine($"----表格{i + 1}----");
    for(int j=0; j < row; j++)
    {
        for(int k=0; k < col; k++)
        {
            Console.Write($"{num3d[i, j, k],3} |");
        }
        Console.WriteLine();
    }
    Console.WriteLine() ;
}
```
**輸出:**
![image](https://hackmd.io/_uploads/HJEr7H-kC.png)

---
## 2024/4/10
### 第一題練習題
**程式碼:**
```
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 WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Height = 90; pictureBox1.Width = 90;    // 設定圖片高度和寬度
            pictureBox1.Image = Image.FromFile("C:\\Users\\lung0\\Downloads\\images1.jpg");    // 載入圖檔
            trackBar1.Maximum = 4; trackBar1.Minimum = 1;// 設定TkbPic的最大、最小值
            vScrollBar1.Maximum = 180; vScrollBar1.Minimum = 1; // 設定最大、最小值
            vScrollBar1.LargeChange = 1;      // 設定VsbHeight的快動值 = 1
            vScrollBar1.Value = pictureBox1.Height;   // VsbHeight的Value值=圖片高度
            hScrollBar1.Maximum = 180; hScrollBar1.Minimum = 1;  // 設定最大、最小值
            hScrollBar1.LargeChange = 1;       // 設定HsbWidth的快動值 = 1
            hScrollBar1.Value = pictureBox1.Width; // HsbWidth的Value值=圖片寬度
            toolTip1.SetToolTip(vScrollBar1, $"{vScrollBar1.Value}");
            toolTip1.SetToolTip(hScrollBar1, $"{hScrollBar1.Value}");
            toolTip1.SetToolTip(trackBar1, "圖片1");
        }

        private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {
            pictureBox1.Height = vScrollBar1.Value;
            toolTip1.SetToolTip(vScrollBar1, $"{vScrollBar1.Value}");
        }

        private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {
            pictureBox1.Width=hScrollBar1.Value;
            toolTip1.SetToolTip(hScrollBar1, $"{hScrollBar1.Value}");
        }

        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            pictureBox1.Image = Image.FromFile($"C:\\Users\\lung0\\Downloads\\images{trackBar1.Value}.jpg");
            toolTip1.SetToolTip(trackBar1, $"圖片{trackBar1.Value}");
        }
    }
}
```
**輸出:**
![image](https://hackmd.io/_uploads/S1CJ9XElA.png)
![image](https://hackmd.io/_uploads/rkLg97VxR.png)
![image](https://hackmd.io/_uploads/rkagqm4xA.png)
![image](https://hackmd.io/_uploads/SyVbq74lA.png)
![image](https://hackmd.io/_uploads/HkGM974eC.png)
![image](https://hackmd.io/_uploads/r1mE9X4l0.png)

---
### 第二題練習題
**程式碼:**
```
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;
using System.Windows;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dateTimePicker1.CustomFormat = "yyyy-MM-dd HH:mm";
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            dateTimePicker1.MinDate=DateTime.Now.AddMinutes(1);
            dateTimePicker1.MaxDate = DateTime.Now.AddDays(7);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Enabled = true;
            dateTimePicker1.Enabled = false;
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            if(DateTime.Now>=dateTimePicker1.Value)
            {
                timer1.Enabled = false;
                System.Media.SystemSounds.Beep.Play();
                MessageBox.Show(textBox1.Text, "提示");
            }
        }
    }
}

```
**輸出:**
![image](https://hackmd.io/_uploads/SJWpG2ng0.png)

---
## 2024/4/17
### 第一題練習題
**程式碼:**
```
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Process.Start("https://visualstudio.com/");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            linkLabel1.LinkColor = Color.DarkOrchid;
            linkLabel1.ActiveLinkColor = Color.Yellow;
            linkLabel1.LinkVisited = true;
            linkLabel1.VisitedLinkColor = Color.Orange;
            linkLabel1.LinkBehavior = LinkBehavior.HoverUnderline;
            linkLabel1.Text = "Visual Studio Web";
            linkLabel1.LinkArea = new LinkArea(0, 6);
        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Process.Start("C:\\Users\\user\\Desktop\\devcppPortable.exe - 捷徑.lnk\\");
        }
    }
}

```
**輸出:**
![image](https://hackmd.io/_uploads/ry-lw3hlR.png)
![image](https://hackmd.io/_uploads/S1XbP2hxA.png)

---