# data[].attributes.attachment_caption
Xin chào các em! Chúc các em học tốt nhé!

# data[].attributes.body
Link download: https://visualstudio.microsoft.com/

# data[].attributes.body
https://www.youtube.com/watch?v=hDcbHZZXhmc

# data[].attributes.body
1. Phạm Văn Quang
2. Lê Ngọc Thanh
3.Phạm Văn Phong
4.Lê Nhựt Nam
5. VõThành Phú
6. Trịnh Bảo Đạt
7. Phan Ngọc Đức
8. Võ Trường Giang
9. Nguyễn Văn Phát
10. Nguyễn Việt Anh
11. Lê Thanh Sơn

# data[].attributes.body
1. Phạm Văn Phong
2. Phạm Văn Quang
3. Trịnh Bảo Đạt
4. Lê Nhựt Nam
5. Lê Thanh Sơn

# data[].attributes.body
1. Trịnh Bảo Đạt
2. Phạm Văn Quang
3. Phạm Văn Phong
4. Lê Nhựt Nam
5. Nguyễn Việt Anh
6. Lê Ngọc Thanh

# data[].attributes.body
Bài 1: Sử dụng Form và Button

Thiết kế Form có hai nút lệnh có tên là &Green và &Yellow. Form có nút Min, Max Button.

Khi click vào nút lệnh Green, Form đổi màu nền thành màu Xanh (Green) và đổi tiêu đề của Form thành “Green Colour”

Khi click vào nút lệnh Yellow, Form đổi màu nền thành màu Vàng (Yellow) và đổi tiêu đề của Form thành “Yellow Colour”.

Hướng dẫn

B1. Tạo 2 Button

B2. Click vào 2 button để viết sự kiện

private void button1_Click(object sender, EventArgs e)
{
this.Text = "Green colour";
this.BackColor = Color.Green;
}

private void button2_Click(object sender, EventArgs e)
{
this.Text = "Yellow colour";
this.BackColor = Color.Yellow;
}
}
}

# data[].attributes.body
Bài 2: Sử dụng Form, TextBox và Button

Thiết kế Form có một TextBox để trắng, và 3 nút lệnh: Display, Clear, Exit.

Khi Click nút Display, hộp TextBox hiện lên câu: “Xin chào bạn đến với ngôn ngữ lập trình C#”

Click nút Clear, hộp TextBox bị xoá trắng

Click nút Exit để thoát khỏi chương trình.

Hướng dẫn

B1. Tạo TextBox, 3 Button

B2.

TextBox: Name bạn để là textBox_Ten cho tiện để mình xử lý code nhé.

Button1: + Text: Display

+ Name: btnDisplay

Button2: + Text: Clear

+ Name: btnClear

Button3: + Text: Exit

+ Name: btnExit

B3: Click vào 3 button để viết sự kiện

btnDisplay:

textBox_Ten.text = “Chào mừng bạn đến với ngôn ngữ C#”;

btnClear:

textBox_Ten.Clear();

btnExit:

this.close();

Code:
private void btndisplay_Click(object sender, EventArgs e)
{
textBox1.Text = "Chào mừng bạn đến với ngôn ngữ C#";
}

private void btnclear_Click(object sender, EventArgs e)
{
textBox1.Clear();
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

# data[].attributes.body
Bài 4: Sử dụng Form, Label, Groupbox và RadioButton

Thiết kế Form gồm 1 Label có dòng chữ “Thuộc tính MultiLine để làm gì?” và 4 RadioButton lần lượt có các tiêu đề sau: Chữ đậm, Chữ nghiêng, Xuống dòng, Chữ hoa. Các nút RadioButton được đặt trong một Groupbox có nhãn là “Trả lời”. Cuối cùng là một Label để hiển thị kết quả. Các công việc cần thực hiện:

Ban đầu Label hiển thị kết quả là rỗng.

Khi chọn RadioButton thứ 3, Label Kết quả hiển thị dòng chữ “Đúng”.

Khi chọn các RadioButton còn lại, Label Kết quả hiển thị dòng chữ “Sai”

Code:
private void rbtchudam_CheckedChanged(object sender, EventArgs e)
{
if (rbtchudam.Checked)
lblketqua.Text = "SAI";
}

private void rbtxuongdong_CheckedChanged(object sender, EventArgs e)
{
if (rbtxuongdong.Checked)
lblketqua.Text = "ĐÚNG";
}

private void rbtchunghieng_CheckedChanged(object sender, EventArgs e)
{
if (rbtchunghieng.Checked)
lblketqua.Text = "SAI";
}

private void rbtchuhoa_CheckedChanged(object sender, EventArgs e)
{
if (rbtchuhoa.Checked)
lblketqua.Text = "SAI";
}

# data[].attributes.body
Bài 3: Sử dụng Form, TextBox, Label và Button

Thiết kế Form có một TextBox (có thể gõ nhiều dòng), một Label, 1 nút lệnh View, 1 nút lệnh Exit để thực hiện công việc sau:

Ban đầu, nút View bị mờ, khi bắt đầu ấn phím bất kì vào TextBox, nút View mới được kích hoạt.

Sau khi nhập vào ô TextBox, click nút View, Label sẽ hiển thị nội dung của TextBox

Click nút Exit để thoát khỏi chương trình.

Hướng dẫn

B1. Tạo 1 TextBox, 2 button, 1 label

B2. Cài đặt các thuộc tính

| TexBox:  Name: txthienthi Multiline: True CrolBars: Both |  Button2: Name: btnexit
| Button1: Name: btnview Enabied: fale | Label: Name:lblhienthi Text: rỗng

B3. Viết code

Nút txthienthi

if(txthienthi.Text.Trim() !="")

btnview.Enabled = true;

else

btnview.Enabled = false;

Nút btnview

lblhienthi.Text = txthienthi.Text;

Nút btnexit:

this.Close();

Code:
private void txthienthi_TextChanged(object sender, EventArgs e)
{
if (txthienthi.Text.Trim() != "")
btnview.Enabled = true;
else
btnview.Enabled = false;
}

private void btnview_Click(object sender, EventArgs e)
{
lblhienthi.Text = txthienthi.Text;
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

# data[].attributes.body
1. Lê Thanh Sơn
2. Phạm Văn Phong
3. Nguyễn Việt Anh
4. Trịnh Bảo Đạt
5.Lê Nhựt Nam
6. Phạm Văn Quang

# data[].attributes.body
Bài 8: Sử dụng Form, TextBox, ComboBox và Button

Thiết kế Form gồm có 1 TextBox điền Họ tên, 3 ComboBox có các Label đi kèm có nhãn: Ngày, Tháng, Năm

ComboBox Ngày nạp các giá trị từ 1 đến 31 (không cho nhập thêm dữ liệu)

ComboBox Tháng nạp các giá trị từ 1 đến 12 (không cho phép nhập thêm dữ liệu)

ComboBox Năm nạp các giá trị từ 1930 đến 2010 (cho phép nhập thêm dữ liệu)

Khi ấn nút lệnh Kiểm tra, nếu ngày tháng năm sinh là hợp lệ sẽ hiện ra MessageBox thông báo Họ tên và ngày sinh. Nếu dữ liệu ngày tháng không hợp lệ sẽ hiện ra MessageBox thông báo “Ngày sinh không hợp lệ!”

Hướng dẫn

B1. Tạo Form theo mẫu

B2: Viết Code

Cấu trúc rẽ nhánh:

switch (<biểu thức>)

{

case <giá trị thứ 1>: <câu lệnh thứ 1>;

break;

case <giá trị thứ 2>: <câu lệnh thứ 2>;

break;

. . .

case <giá trị thứ n>: <câu lệnh thứ n>;

break;

}

Trong đó:

switch, case là từ khóa bắt buộc.

break là một lệnh nhảy

Ý nghĩa của nó là thoát ra khỏi cấu trúc, vòng lặp chứa nó (khái niệm về vòng lặp sẽ được trình bày ở bài CẤU TRÚC LẶP GOTO TRONG C# )

Ngoài break ra vẫn còn lệnh nhảy khác như goto nhưng ít được sử dụng (chi tiết về lệnh goto sẽ được trình bày trong bài CẤU TRÚC LẶP GOTO TRONG C#).

Vì trong cấu trúc switch. . . case chủ yếu chỉ sử dụng lệnh break nên mình cố tình để lệnh break vào trong cú pháp thay vì ghi chung chung là lệnh nhảy.

<biểu thức> phải là biểu thức trả về kết quả kiểu:

Số nguyên (int, long, byte, . . .)

Ký tự hoặc chuỗi (char, string)

Kiểu liệt kê (enum, sẽ được trình bày trong bài ENUM TRONG LẬP TRÌNH C# )

<giá trị thứ i> với i = 1..n là giá trị muốn so sánh với giá trị của <biểu thức>.

<câu lệnh thứ i> với i = 1..n là câu lệnh muốn thực hiện khi <giá trị thứ i> tương ứng bằng với giá trị của <biểu thức>.

Ý nghĩa: Duyệt lần lượt từ trên xuống dưới và kiểm tra xem giá trị của <biểu thức> có bằng với <giá trị thứ i> đang xét hay không. Nếu bằng thì thực hiện <câu lệnh thứ i> tương ứng.

Lưu ý:

<giá trị thứ i> phải có kiểu dữ liệu giống với kiểu dữ liệu của giá trị của biểu thức.

<câu lệnh thứ i> có thể gồm nhiều câu lệnh và không nhất thiết phải đặt trong cặp dấu ngoặc nhọn { } nhưng tốt hơn bạn nên đặt trong cặp dấu { } để code được rõ ràng hơn.

Nếu case đang xét không rỗng (có lệnh để thực hiện) thì bắt buộc phải có lệnh nhảy (cụ thể là lệnh break) sau đó.

Code chính:
private void Form1_Load(object sender, EventArgs e)

{

for (int i = 1; i <= 31; i++)

cbongay.Items.Add(i);

cbongay.SelectedIndex = 0;

for (int i = 1; i <= 12; i++)

cbothang.Items.Add(i);

cbothang.SelectedIndex = 0;

for (int i = 1930; i <= 2010; i++)

cbonam.Items.Add(i);

cbonam.SelectedIndex = 0;

}

private void btnketqua_Click(object sender, EventArgs e)

{

//ngày sinh hợp lệ

//4,6,9,11: 30 ngày

//2 không nhuận:28 ngày

//còn lại:31 ngày

byte thang = Byte.Parse(cbothang.SelectedItem.ToString());

byte ngay = Byte.Parse(cbongay.SelectedItem.ToString());

int nam = Int16.Parse(cbonam.SelectedItem.ToString());

switch (thang)

{

case 4:

case 6:

case 9:

case 11:

if (ngay > 30)

MessageBox.Show("Ngày sinh không hợp lệ");

else

MessageBox.Show(txthoten.Text + "sinh ngày:" + ngay + "/" + thang + "/" + nam);

break;

case 2:

if (((nam % 4 == 0) && (nam % 100 != 0)) || (nam % 400 == 0))

{

//Đây là năm nhuận

if (ngay > 29)

MessageBox.Show("Ngày sinh không hợp lệ");

else

MessageBox.Show(txthoten.Text + "sinh ngay:" + ngay + "/" + thang + "/" + nam);

}

else

{

if (ngay > 28)

MessageBox.Show("Ngày không hợp lệ");

else

MessageBox.Show(txthoten.Text + "sinh ngay:" + ngay + "/" + thang + "/" + nam);

}

break;

default:

if (ngay > 31)

MessageBox.Show("Ngày không hợp lệ");

else

MessageBox.Show(txthoten.Text + "sinh ngay:" + ngay + "/" + thang + "/" + nam);

break;

}

}

}

}

# data[].attributes.body
int ngay = int.Parse(cmbNgay.Text);
int thang = int.Parse(cmbThang.Text);
int nam = int.Parse(cmbNam.Text);

if (thang == 4 || thang == 6 || thang == 9 || thang == 11)
{
if (ngay > 30)
{
MessageBox.Show("Ngày Sinh Không Hợp Lệ");
}
else
{
MessageBox.Show("Thông Tin :\n" + txtHoTen.Text + " (" + ngay + "/" + thang + "/" + nam + ")");
}
}
else if(thang==2)
{
if(nam%4==0 && nam%100==1)
{
if(ngay>29)
{
MessageBox.Show("Ngày Sinh Không Hợp Lệ");
cmbNgay.Focus();
}
else
{
MessageBox.Show("Thông Tin :\n" + txtHoTen.Text + " (" + ngay + "/" + thang + "/" + nam + ")");
}
}
else
{
if (ngay > 28)
{
MessageBox.Show("Ngày Sinh Không Hợp Lệ");
cmbNgay.Focus();
}
else
{
MessageBox.Show("Thông Tin :\n" + txtHoTen.Text + " (" + ngay + "/" + thang + "/" + nam + ")");
}
}
}
else
{
MessageBox.Show("Thông Tin :\n" + txtHoTen.Text + " (" + ngay + "/" + thang + "/" + nam + ")");
}

# data[].attributes.body
public Bth9_2()
{
InitializeComponent();
this.ActiveControl = txtA;
}
private void txtA_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtA.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa NHập A");
txtA.Text = "";
txtA.Focus();
}
else
{
txtB.Focus();
}
}
else if(e.KeyChar<48 || e.KeyChar>57)
{
MessageBox.Show("Nội Dung Bạn Nhâp Không Phải Số");
e.Handled = true;
txtA.Text = "";
txtA.Focus();
}
}
private void txtB_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtB.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa NHập B");
txtB.Text = "";
txtB.Focus();
}
else
{
btnResult.Focus();
}
}
else if (e.KeyChar < 48 || e.KeyChar > 57)
{
MessageBox.Show("Nội Dung Bạn Nhâp Không Phải Số");
e.Handled = true;
txtB.Text = "";
txtB.Focus();
}
}
private void btnResult_Click(object sender, EventArgs e)
{
int a = int.Parse(txtA.Text);
int b = int.Parse(txtB.Text);
txtCong.Text = (a + b).ToString();
txtTru.Text= (a - b).ToString();
txtNhan.Text= (a * b).ToString();
txtChia.Text= (a / b).ToString();
btnReset.Focus();
}
private void btnReset_Click(object sender, EventArgs e)
{
txtA.Text = "";
txtB.Text = "";
txtCong.Text = "";
txtTru.Text = "";
txtNhan.Text = "";
txtChia.Text = "";
txtA.Focus();
}
private void btnExit_Click(object sender, EventArgs e)
{
Close();
}
}

# data[].attributes.body
FrmDanhNhap danhNhap;
public Bth10()
{
InitializeComponent();
this.ActiveControl = txtUser;
}
private void txtUser_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==13)
{
if(txtUser.Text.Trim()=="")
{
MessageBox.Show("Bạn Chưa Nhập User");
}
else
{
txtPass.Focus();
}
}
}
private void txtPass_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtPass.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập User");
}
else
{
btnOk.Focus();
}
}
}
private void btnOk_Click(object sender, EventArgs e)
{
if (txtUser.Text == "admin")
{
if (txtPass.Text == "123")
{
danhNhap = new FrmDanhNhap(txtUser.Text);
danhNhap.ShowDialog();
}
else
{
MessageBox.Show("Sai Mật Khẩu");
txtPass.Text = "";
txtPass.Focus();
}
}
else if(txtUser.Text=="user")
{
if(txtPass.Text=="456")
{
danhNhap = new FrmDanhNhap(txtUser.Text);
danhNhap.ShowDialog();
}
else
{
MessageBox.Show("Sai Mật Khẩu");
txtPass.Text = "";
txtPass.Focus();
}
}
else
{
MessageBox.Show("Tên User Không Đúng");
txtUser.Text = "";
txtUser.Focus();
}
}

# data[].attributes.body
string name = "";
public FrmDanhNhap(string userName)
{
InitializeComponent();
name = userName;
}
private void FrmDanhNhap_Load(object sender, EventArgs e)
{
if(name=="user")
{
grbColor.Visible = false;
}
}
private void cxbBold_CheckedChanged(object sender, EventArgs e)
{
if(cxbBold.Checked==true)
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Bold);
}
else
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Regular);
}
}
private void cxbItali_CheckedChanged(object sender, EventArgs e)
{
if (cxbItali.Checked == true)
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Italic);
}
else
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Regular);
}
}

private void cxbBlue_CheckedChanged(object sender, EventArgs e)
{
if (cxbBlue.Checked == true)
{
txtNoiDung.ForeColor = Color.Blue;
}
else
{
txtNoiDung.ForeColor = Color.Black;
}
}
private void cxbRed_CheckedChanged(object sender, EventArgs e)
{
if (cxbRed.Checked == true)
{
txtNoiDung.ForeColor = Color.Red;
}
else
{
txtNoiDung.ForeColor = Color.Black;
}
}
private void cxbGreen_CheckedChanged(object sender, EventArgs e)
{
if (cxbGreen.Checked == true)
{
txtNoiDung.ForeColor = Color.Green;
}
else
{
txtNoiDung.ForeColor = Color.Black;
}
}
private void cxbLine_CheckedChanged(object sender, EventArgs e)
{
if (cxbLine.Checked == true)
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Underline);
}
else
{
txtNoiDung.Font = new Font(txtNoiDung.Font, FontStyle.Regular);
}
}

# data[].attributes.body
1. Thiều Trung  Chiến
2. Phan Ngọc   Đức: 8
3. Lê Thị Thu  Hiền
4. Phạm Suối  Tiên:
5. Hà Thị Trang
6. Võ Đình  Tuấn: 8
7. Võ Văn  Ý
8. Võ Thành  Phú

# data[].attributes.body
1. Nguyễn Việt  Anh: 9
2.Đinh Thiên  Bảo: 7
3. Nguyễn Trần Trường  Giang: 7
4.Đào Duy  Luân:
5. Trương Hạo  Nam: 6
6. Nguyễn Minh Quân: 6
7. Huỳnh Minh Tân: 6
8. Lê Nhựt  Nam: 10
9. Phạm Văn Quang: 9

# data[].attributes.body
1. Lê Thị Vân Anh: 7
2.Trần Minh  Hậu: 6
3. Lê Âu Minh Hiếu: 7
4. Trần Anh Qúi: 6
5. Lê Thanh  Sơn: 10
6. Nguyễn Khánh Tâm:
7. Lê Ngọc Thanh: 7
8. Nguyễn Hoàng Hải  Triều: 6

# data[].attributes.body
1.Trịnh Bảo Đạt:  9
2.Nguyễn Chí  Dũng: 9
3.Trần Minh Hoàng: 6
4.Võ Thanh  Khang: 6
5.Phạm Văn  Phong: 10 (cộng điểm)
6.Nguyễn Tấn  Phúc:
7.Hoàng Thu  Trang: 6
8. Hà Văn  Hoàng: 9
9.Nguyễn Xuân Trường: 6

# data[].attributes.body
1.Trần Văn Chiến: Cách ly
2. Nguyễn Thùy Dung: 6
3.Hoàng Xuân  Hòa: 6
4.Quách Thành Long: 6
5.Trần Hồ Phúc  Nguyên: 9
6.Kiều Thị Huyền  Nhi: 6
7.Nguyễn Văn  Phát: 9
8.Lý Minh  Triệu: 6
10. Đào Duy Luân: 9

# data[].attributes.body
https://www.c10mt.com/2012/09/lap-trinh-truc-quan-c-windows-forms.html

# data[].attributes.attachment_link.readable_text
Xin chào các bạn , lại một mùa học Lập Trình lại tới. Hôm nay , Tâm Gà sẽ share cho các bạn code đáp áp của môn này nhé. Chúng ta cùng nhau học để cùng nhau tiến triển nè. Và để tiện dụng sau này , nhiều bạn chơi khăm Tâm Gà , nên toàn bộ code sẽ được post lên với link ảnh. Các bạn tự code vào máy mình để test nhé.

Và lẽ dĩ nhiên , chúng ta học gì thì Tâm Gà sẽ làm như vậy , và chúng ta không có học C# Console nên cho dù các bạn có down khá nhiều tài liệu trên mạng , thì đại đa số toàn là C# Console không àh . Rất hiếm để tìm được tài liệu và đáp án của môn C# Windows Forms đâu.

Được rồi , xã giao là như thế đó , chúng ta bắt đầu vào phần chính nhé. Đây là toàn bộ 50 bài tập và đáp án đã giải từ Tâm Gà đây. Chúc các bạn học tập vui vẻ

*** Link down Visual Studio 10 : Microsoft Visual Studio 2010 Full + Hướng Dẫn
*** Playlist các code được chạy trực tiếp , trên Youtube :

***
Tạo khung đăng nhập hệ thống với các yêu cầu sau :
- Khi nhập vào Tên đăng nhập : "tamga" và Mật khẩu : "123" thì khi click vào nút Đăng Nhập sẽ hiện " Bạn đã đăng nhập thành công ". Còn ngược lại thì thông báo " Bạn hãy nhập lại "
- Khi click vào nút Thoát , sẽ báo thông báo " Bạn có muốn thoát hay không ? Nhấn Yes là thoát và No là trở lại như cũ.
------------ Đáp án mẫu như sau :

***
Tạo khung thông tin. Trong đó , nhập Họ và Tên , Ngày Tháng Năm Sinh , Sở Thích.
Nhấn nút Xem để hiện thông tin vừa nhập xuống khung kết quả
------------ Đáp án mẫu như sau :

***
Tạo khung Liên Kết Website. Mà trong đó , khi bạn chọn website và nhấn OK thì hiện bên khung kết quả.
Nhấn nút Reset thì xóa khung kết quả.
------------ Đáp án mẫu như sau :

***
Tạo khung Liên Kết Website Phần 2. Mà trong đó , khi bạn click vào khung chọn site ,
thì các phần tử bên đó tự động hiện trong khung kết quả.
Nhấn nút Reset tự động xóa khung kết quả.
------------ Đáp án mẫu như sau :

***
Giải Phương Trình Bậc 1 và Giải Phương Trình Bậc 2. Mà trong đó :
- Khi chọn radio Giải PTBac1 thì khung nhập c bị mờ đi
- Khi chọn radio Giải PTBac2 thì hiện đầy đủ khung nhập
------------ Đáp án mẫu như sau :

***
Giải Phương Trình Bậc 1 và Giải Phương Trình Bậc 2. Mà trong đó :
- Kết hợp 2 Class tên là PTBac1 và PTBac2 trong cùng 1 form
- Khi chọn radio Giải PTBac1 thì khung nhập c bị mờ đi
- Khi chọn radio Giải PTBac2 thì hiện đầy đủ khung nhập
------------ Đáp án mẫu như sau :

-- Xem và Download code tại đây
***
Hãy nhập vào hai số nguyên a và b. Tính
- Tổng , Hiệu , Tích , Thương của hai số vừa nhập.
- Xử lý nút Thoát trong chương trình
------------ Đáp án mẫu như sau :

***
Hãy nhập vào một dãy số nguyên bất kỳ. Với yêu cầu
- Xuất các số vừa nhập ra màn hình
- Tính tổng các số vừa nhập
- Tính tổng số chẵn và tổng số lẻ
- Không được dùng mảng.
------------ Đáp án mẫu như sau :

***
Hãy nhập vào một dãy số nguyên bất kỳ. Với yêu cầu
- Xuất các số vừa nhập ra màn hình
- Tính tổng các số vừa nhập
- Tính tổng số chẵn và tổng số lẻ
- Dùng Class để tạo ra hàm nhập dãy số
------------ Đáp án mẫu như sau :

***
Hãy nhập vào n bất kỳ. Với yêu cầu sau :
- Kiểm tra xem n có phải là số nguyên tố hay không ?
- Tìm các số nguyên tố nhỏ hơn n
------------ Đáp án mẫu như sau :

***
Hãy nhập vào hai phân số bất kỳ. Với yêu cầu sau :
- Tính Tổng , Hiệu , Tích , Thương của hai phân số đó
- Khi click vào các button Phép Toán nào thì hiện lên label bên khung kết quả
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình dành cho
Máy Tính Bỏ Túi đơn giản với các phép toán Cộng, Trừ, Nhân, Chia, Xóa
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình tính Chu Vi và Diện Tích
- Hình vuông , hình tròn , hình chữ nhật , hình tam giác
- Khi click vào radio button nào thì khung tính của cái đó mới hiện ra.
- Kiểm tra xem các cạnh của tam giác nhập vào tạo thành tam giác gì ?
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình nhập chuỗi bất kỳ
- Nhấn chọn radio chữ Hoa hay Chữ Thường thì đoạn chữ sẽ đổi theo
- Cắt bỏ khoảng trắng dư giữa đoạn chuỗi.
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Sắp xếp mảng Tăng và Giảm
- Tìm kiếm giá trị và vị trí phần tử bất kỳ trong mảng
- Xóa giá trị và vị trí phần tử bất kỳ trong mảng
- Thêm giá trị với vị trí được chỉ định trong mảng
- Tính tổng mảng , tổng chẵn và tổng lẻ của mảng.
- Tìm giá trị lớn nhất và nhỏ nhất có trong mảng
- Thay thế giá trị và vị trí với số thay thế bất kỳ trong mảng.
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

***
Viết chương trình nhập Họ và Tên. Với yêu cầu :
- Khi click button Tìm Kiếm thì mở form thứ 2
- Trong form thứ hai có tìm kiếm ký tự và vị trí của nó.
------------ Đáp án mẫu như sau :

***
Viết chương trình , với yêu cầu sau :
- Sử dụng MenuStrip, WebBrowser , Shockware Flash Object
- Khi nhấp vào menu File , chọn Close thì thoát chương trình.
- Khi nhấp Site , chọn site nào thì hiện site đó trong chương trình.
- Khi nhấp vào Video thì có hai lựa chọn , một là thường , hai là chuẩn HD
- Khi nhấp vào Game Online thì có thể chơi bất kỳ game online nào
( ví dụ cơ bản là Game Chân Long Giáng Thế )
------------ Đáp án mẫu như sau :

***
Viết chương trình , với yêu cầu sau :
- Tìm số lớn nhất trong 3 số bất kỳ nhập từ bàn phím.
------------ Đáp án mẫu như sau :

Viết chương trình , với yêu cầu sau :
- Nhập vào một tháng của một năm bất kỳ.
- Hãy cho biết trong tháng đó có bao nhiêu ngày.
------------ Đáp án mẫu như sau :

Viết chương trình , với yêu cầu sau :
- Nhập vào họ và tên sinh viên
- Nhập vào điểm trung bình các môn sau :
ISA , Quản Trị Mạng 2, SQL , C# , An Toàn Mạng,
- Tính trung bình cộng , và xuất ra xếp loại : Xuất Sắc , Giỏi , Khá , Trung Bình và Yếu
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tăng - Chẵn Lẻ - Xóa, với ListBox yêu cầu sau :
- Nhập vào số nguyên n ( giống nhập mảng , nhưng không phải mảng )
- Tăng mỗi phần tử lên 2 nếu click
- Chọn số chẵn đầu nếu click
- Chọn số lẻ đầu nếu click
- Xóa phần tử đang chọn nếu click
- Xóa phần tử đầu tiên nếu click
- Xóa phần tử cuối cùng nếu click
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
- Nhấn nút Thoát sẽ hỏi bạn có muốn thoát hay không ?
------------ Đáp án mẫu như sau :

Viết chương trình Chọn Môn Thể Thao , với yêu cầu sau :
- Chọn họ tên với ComboBox
- Thời gian và ngày tháng năm lấy hiện tại
- Có 4 nút Button :
>> chọn hết tất cả
> chọn từng thành phần qua
< bỏ chọn từng thành phần
<< bỏ chọn tất cả
- Khi click vào button nào ở trên thì listbox1 sẽ hiển thị ở bên listbox2
- Nhấn nút Nhập để xuất kết quả vào khung TextBox .
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
------------ Đáp án mẫu như sau :

Viết chương trình Dịch Vụ Khám Bệnh , với yêu cầu sau :
- Nhập họ tên, ngày tháng năm sinh với TextBox
- Khi click chọn dịch vụ ở trên thì listbox1 sẽ hiển thị ở bên listbox2
- Nhấn nút Chọn để xuất kết quả vào khung TextBox .
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
------------ Đáp án mẫu như sau :

Viết chương trình Đọc số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến 999
- Đọc số vừa nhập vào thành chữ số
Ví dụ : Nhập 11 sẽ được đọc thành Mười Một

------------ Đáp án mẫu như sau :

Viết chương trình Đọc số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến 9
- Đọc số vừa nhập vào thành chữ số
Ví dụ : Nhập 1 sẽ được đọc thành Một
------------ Đáp án mẫu như sau :

Viết chương trình Đổi Số Nhị Phân, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ.
- Đổi số mới nhập vào , thành số nhị phân
Ví dụ : Nhập 9 sẽ được đổi thành 1001
------------ Đáp án mẫu như sau :

Viết chương trình Tính Số Chia Hết, với yêu cầu sau :
- Nhập vào một số nguyên N bất kỳ.
- Tính các số bé hơn hoặc bằng N chia hết cho A và B
------------ Đáp án mẫu như sau :

Viết chương trình Đổi Màu Nền Chữ, với yêu cầu sau :
- Nhập vào một chuỗi bất kỳ.
- Chọn Màu gồm có : Tự động chọn màu , Đỏ , Xanh Lá , Xanh Dương
- Chọn Kiểu gồm có : Đậm , Nghiêng , Gạch dưới , Đậm Nghiêng
------------ Đáp án mẫu như sau :

Viết chương trình Tìm Ước Số và Số Nguyên Tố, với yêu cầu sau :
- Nhập số n bất kỳ từ textbox
- Tìm ước số của số n bất kỳ trong ComboBox
- Tìm số lượng của ước số chẵn , lẻ và số nguyên tố trong listbox
- Báo MessageBox những số nào là số nguyên tố
- Tính tổng các số chẵn , lẻ , tổng số nhập , số nguyên tố trong listbox
------------ Đáp án mẫu như sau :

Viết chương trình tính Điểm Trung Bình Cộng, với yêu cầu sau :
- Nhập một dãy số tương đương với điểm của sinh viên vào textbox1
- Tính ra điểm trung bình cộng , và xuất ra textbox2
------------ Đáp án mẫu như sau :

Viết chương trình tính Điểm Trung Bình Cộng, với yêu cầu sau :
- Nhập một dãy số tương đương với điểm của sinh viên vào listbox
- Tính ra điểm trung bình cộng , và xuất ra textbox2
- Sửa điểm tại vị trí đang chọn
------------ Đáp án mẫu như sau :

Viết chương trình Thao Tác Trên Chuỗi với yêu cầu (có dùng Class) :
- Nhập chuỗi bất kỳ và xuất ra chuỗi vừa nhập có xử lý khoảng trắng
- In Lời Giới Thiệu là : " Chương trình xử lý Chuỗi "
- Lấy Họ Lót riêng và Tên riêng và xuất ra khung kết quả
- Đếm số từ xuất hiện của chuỗi vừa nhập
- In Hoa Đầu Từ mỗi từ
------------ Đáp án mẫu như sau :

-- Xem và Download code tại đây

Viết chương trình Xử Lý Hai Chuỗi với yêu cầu :
- Nhấp vào button So Sánh 2 Chuỗi ( S1 ) :
thì so sánh hai chuỗi S1 và S2 , có phân biệt chữ Hoa và chữ Thường, xuất ra khung KQ
- Nhấp vào button So Sánh 2 Chuỗi ( S2 ) :
thì so sánh hai chuỗi S1 và S2 , không phân biệt chữ Hoa và chữ Thường, xuất ra khung KQ
- Nhấp vào button Nối Hai Chuỗi :
thì nối hai chuỗi S1 và S2 , xuất ra khung KQ
- Nhấp vào button Chèn S2 vào S1 :
thì chèn chuỗi S2 vào sau từ đầu tiên của chuỗi S1 và
chèn chuỗi S2 vào trước từ sau cùng của chuỗi S1 , xuất ra khung KQ
- Nhấp vào button Vị Trí xuất hiện S2 trong S1 :
thì cho biết vị trí xuất hiện của chuỗi S2 trong chuỗi S1. Nếu có S2 trong S1 thì
thay thế S2 (trong S1) bằng chuỗi " Chỗ Này " , xuất ra khung KQ
- Nhấp vào button Vị Trí xuất hiện www.c10mt.tk :
thì cho biết vị trí xuất hiện của chuỗi www.c10mt.tk trong labelTieuDe. Nếu có thì
xóa chuỗi đó ra khỏi labelTieuDe, xuất ra khung KQ
- Nhấp vào button Xóa thì xóa trống, đồng thời đưa con trỏ về Chuỗi S1
- Nhấp vào button Thoát thì dừng chương trình.
------------ Đáp án mẫu như sau :

Viết chương trình Nhập Thông Tin Khách Hàng Du Lịch
- Khi chọn Địa Điểm Đi và Địa Điểm Đến thì sẽ hiện lên khung RichTexbox
- Khi chọn Ngày Đi và Ngày Về sẽ tính Tổng Số Ngày Đã Đi
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tiền Điện trong đó :
- Số kw trong định mức là 50 thì giá sẽ là 500đ / 1kw
- Nếu số kw tiêu thụ vượt mức 50 thì giá sẽ là 1000đ / 1kw
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tiền Nước trong đó :
- Nếu số nhân khẩu nhỏ hơn 4 thì mặc định số trong định mức là 12
- Trong định mức thì tính giá là 4000đ / 1 mét khối
- Vượt định mức thì tính giá là 8000đ / 1 mét khối
------------ Đáp án mẫu như sau :

*** Clip Hướng dẫn Kết Nối Dữ Liệu :
Viết chương trình kết nối dữ liệu từ file SQL Quản Lý Sinh Viên vào trong Visual Studio với C#
------------ Đáp án mẫu như sau :

*** Link download mediafire chuẩn HD : http://www.mediafire.com/?zl76ztk3wxfnwwv
*** Link video xem online : http://youtu.be/JBYUHdcM690?hd=1

Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ bảng DataDridView lên các Textbox
- Sử dụng được các nút Thêm, Xóa, Sửa, Lưu, Hủy, Thoát
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

Viết chương trình Thống Kê Sinh Viên theo Môn Học bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Thống Kê Sinh Viên theo Khoa bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Tìm Kiếm Thông Tin Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Tìm Kiếm Kết Quả Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Tính Điểm Trung Bình của sinh viên đó theo môn học
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

Viết chương trình Quản Lý Khoa bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Tính Tổng các Khoa.
- Có sử dụng Class để kết nối dữ liệu
- Sử dụng nút Thêm , Lưu , Xóa , Sửa , Hủy , Thoát
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Quản Lý Điểm của Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
- Sử dụng nút Thêm , Lưu , Xóa , Sửa , Hủy , Thoát
- Tính tổng số lần thi của sinh viên
Chú ý :
- Có sử dụng việc bắt lỗi.
---- Khi nhập Mã SV vào dữ liệu quá 2 lần sẽ không được lưu.
---- Khi nhập trong số lần thi của lần 1 và lần 2 là số khác sẽ báo lỗi không cho lưu.
------------ Đáp án mẫu như sau :

Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Có sử dụng Class để Kết Nối Dữ Liệu
- Sử dụng được các Form
---- Quản Lý Sinh Viên
---- Quản Lý Khoa
---- Quản Lý Điểm
---- Thống Kê Theo Khoa
---- Thống Kê Theo Môn Học
---- Tìm Kiếm Kết Quả Sinh Viên
---- Tìm Kiếm Thông Tin Sinh Viên
Chú ý :
- Có sử dụng việc bắt lỗi.
=== Phần này Tâm Gà đã giải và chia ra thành từng phần nhỏ.
Các bạn dựa theo từng phần nhỏ để ráp lại thành một bài tập hoàn chỉnh nhé.
------------ Đáp án mẫu như sau :

*** Bài 46 : Quản Lý Thông Tin Sinh Viên - Cách 2
Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ bảng DataDridView lên các Textbox
- Sử dụng được các nút Thêm, Xóa, Sửa, Lưu, Hủy, Thoát
Chú ý :
- Có sử dụng việc bắt lỗi.
- Không dùng Class để Kết Nối Dữ Liệu mà chạy trực tiếp câu lệnh SQL trên Form
- Dữ liệu SQL Server Quản Lý Sinh Viên sử dụng của cô Thà thay cho dữ liệu của cô Oanh
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Nghe Nhạc Đơn Giản trong đó :
- Tạo button Open File để mở ra hộp thoại cho người dùng chọn đến file
nhạc cần mở. Sau khi chọn file nhạc thì sẽ tự động phát nhạc ngay.
- Tạo menustrip gồm có các nút Play, Pause , Stop , Thoát.
- Khi nhấn nút Thoát sẽ hỏi bạn có muốn Thoát hay không ? Chọn Yes để thoát
hay chọn No để chạy tiếp chương trình
------------ Đáp án mẫu như sau :

Viết chương trình Tính Hóa Đơn cho Phòng Khám Răng trong đó :
- Khi chọn dịch vụ và điền thông tin khách hàng xong, nhấp chuột và nút tính tiền
sẽ xuất thông báo tổng tiền mà khách phải trả.
- Click nút Thoát sẽ hiện thông báo , bạn có muốn thoát hay không ?
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Nhập từng phần tử mảng bất kỳ.
- Sắp xếp mảng Tăng và Giảm
- In và xóa Mảng
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Xuất mảng bất kỳ, giới hạn bởi số phần tử mảng.
- Tính Tổng mảng , tổng chẳn , tổng lẻ
- Tìm kiếm giá trị , tìm max , tìm min
- Thay thế phần tử bằng giá trị theo ý thích
- Đếm số chẵn , đếm số lẻ
- Xóa giá trị
- Tìm số nguyên tố , đếm có bao nhiêu số nguyên tố
- Đảo mảng
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Tính N dùng với Vòng Lặp For . Với yêu cầu :
- Tính 1+2+...+(n-1)+n
- Tính 1*2+2*3+...+n*(n+1)
- Tính 1*2+2*3+...+n*(n+1)/ 1+2+...+(n-1)+n
- Tính 1*2+2*3+...+n*(n+1)^2/ 1+2+...+(n-1)+n
- Tổng chẵn từ 1 -> N
- Kiểm tra Số nguyên tố
- Các số nguyên tố từ 2 -> N
------------ Đáp án mẫu như sau :

Hãy viết chương trình ChàoTheo Giờ . Với yêu cầu :
- Nhập vào tên . Xuất kết quả ra form khác
- Xuất ra đồng hồ điện tử trên form 1
- Xuất ra định dạng ngày giờ của hệ thống
- Xuất ra định dạng ngày tháng năm của hệ thống
- Xuất ra Chào buổi sáng, hay chiều ,tối ứng với thời gian của hệ thống
------------ Đáp án mẫu như sau :

Hãy viết chương trình Chúc Mừng Sinh Nhật . Với yêu cầu :
- Nhập vào tên bất kỳ và ngày tháng năm sinh.
- Xuất ra tên vừa nhập và tính số tuổi hiện tại.
------------ Đáp án mẫu như sau :

Hãy viết chương trình dùng Progress Bar và Timer . Với yêu cầu :
- Nhập vào số thời gian bất kỳ.
- Dựa theo số n vừa nhập , Progress Bar sẽ chạy tăng và giảm
- Kèm theo đó , dùng Label để đếm tăng và giảm số n.
- Có button Bắt đầu , Ngừng và Thoát
------------ Đáp án mẫu như sau :

Hãy viết chương trình tìm Ước Số Chung Lớn Nhất và Bội Số Chung Nhỏ Nhất.
Với yêu cầu :
- Dùng thuật toán Euclid.
- Có button Tiếp Tục , Thoát và Thực Hiện
------------ Đáp án mẫu như sau :

Hãy viết chương trình Đăng Nhập Sai 3 Lần . Với yêu cầu :
- Gồm có 3 Form : Form chính , Form Thành Công , Form Thất Bại
- Nếu đăng nhập đúng với user và pass thì chuyển sang Form Thành Công
- Ngược lại thì báo khóa tài khoản và chờ sau khoảng thời gian 100 giây
- Lưu tài khoản và mật khẩu xuống máy tính dưới dạng text
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Đọc trên Sáu số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến n
- Đọc số vừa nhập vào thành chữ số
Ví dụ :
Nhập 1 sẽ được đọc thành Một
Nhập 10 sẽ được đọc thành Mười Một
Nhập 100 sẽ được đọc thành Một Trăm
Nhập 1000 sẽ được đọc thành Một Ngàn
Nhập 10000 sẽ được đọc thành Mười Ngàn
Nhập 100000 sẽ được đọc thành Một Trăm Ngàn
Nhập 1000000 sẽ được đọc thành Một Triệu
Nhập 10000000 sẽ được đọc thành Mười Triệu
Nhập n lần ....
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Kiểm Tra Tam Giác như sau :
- Nhập vào 3 cạnh bất kỳ của tam giác.
- Nhấn nút Tính chất của tam giác để kiểm tra tam giác là gì ?
------------ Đáp án mẫu như sau :

Hãy viết chương trình Giải Phương Trình Trùng Phương. Mà trong đó :
- Nhập vào ba số nguyên dương bất kỳ.
- Nhấn nút Giải sẽ xuất ra nghiệm của phương trình.
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Tính Năm Âm Lịch như sau :
- Nhập vào một số nguyên dương bất kỳ ( 4 số ).
- Nhấn nút Xác Định để xuất kết quả năm Âm Lịch
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

*** :
Hãy viết Chương Trình sử dụng Webcam trên C# :
- Mở, tắt, tiếp tục
- Chụp ảnh màn hình webcam, lưu định dạng ảnh webcam là jpeg
- Xem thông tin và cấu hình cho webcame hiện tại.
------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Password : http://www.c10mt.com/2012/12/huong-dan-lay-password-tren-site-c10mt.html

===============================

# data[].attributes.attachment_link.keywords[]
lập trình trực quan [ full đáp án c# windows forms ]

# data[].attributes.attachment_link.keywords[]
thanh tâm search box: lập trình trực quan [ full đáp án c# windows forms ]

# data[].attributes.attachment_link.title
Lập Trình Trực Quan [ Full Đáp Án C# Windows Forms ]

# data[].attributes.attachment_link.description
Xin chào các bạn , lại một mùa học Lập Trình lại tới. Hôm nay , Tâm Gà sẽ share cho các bạn code đáp áp của môn này nhé. Chúng ta cùng nhau học để cùng nhau tiến triển nè.

# data[].attributes.body
code phần form chính
public FrmNhapSoNguyen nhapSo = new FrmNhapSoNguyen();
List<int> cacSo = new List<int>();

public FrmDaySoNguyenVaTinhToan()
{
InitializeComponent();
nhapSo.nhap += NhapSo_nhap;
}
private void btnNhap_Click(object sender, EventArgs e)
{
nhapSo.ShowDialog();
}
private void NhapSo_nhap(int n)
{
cacSo.Add(n);
int tong = 0;
txtNoiDung.Text = "";
for(int i=0;i<cacSo.Count;i++)
{
txtNoiDung.Text += cacSo[i].ToString() + " ";
tong += cacSo[i];
}
txtTong.Text = tong.ToString();

//Kiểm Tra Chẵn Lẻ
int tongLe = 0;
int tongChan = 0;
for (int i = 0; i < cacSo.Count; i++)
{
if (cacSo[i] % 2 == 0)
{
tongChan += cacSo[i];
}
else
{
tongLe += cacSo[i];
}
}
txtTongChan.Text = tongChan.ToString();
txtTongLe.Text = tongLe.ToString();
}
private void btnReset_Click(object sender, EventArgs e)
{
cacSo.Clear();
txtNoiDung.Text = "";
txtTong.Text = "";
txtTongChan.Text = "";
txtTongLe.Text = "";
btnNhap.Focus();
}
private void btnExit_Click(object sender, EventArgs e)
{
DialogResult dl;
dl = MessageBox.Show("Bạn Có Chắc Muốn Thoát", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if(dl==DialogResult.Yes)
{
Close();
}
}

code phần form con
public delegate void soNhap(int n);
public event soNhap nhap;
int n=0;
public FrmNhapSoNguyen()
{
InitializeComponent();
this.ActiveControl = txtSoNguyen;
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOK_Click(object sender, EventArgs e)
{
try
{
n = int.Parse(txtSoNguyen.Text);
nhap(n);
this.Close();
}
catch
{
MessageBox.Show("Lỗi Chương Trình");
txtSoNguyen.Text = "";
txtSoNguyen.Focus();
}
}
private void txtSoNguyen_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==13)
{
if(txtSoNguyen.Text.Trim()=="")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtSoNguyen.Text = "";
txtSoNguyen.Focus();
}
else
{
btnOK.Focus();
}
}
else if((e.KeyChar<48 || e.KeyChar>57) && e.KeyChar!=127)
{
MessageBox.Show("Bạn Phải Nhập Số");
e.Handled = true;
txtSoNguyen.Text = "";
txtSoNguyen.Focus();
}
}
private void FrmNhapSoNguyen_Load(object sender, EventArgs e)
{
this.ActiveControl = txtSoNguyen;
txtSoNguyen.Text = "";
txtSoNguyen.Focus();
}

# data[].attributes.body
namespace bài
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
lbHienThi.Text = cbxChon.SelectedItem.ToString();
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btnReset_Click(object sender, EventArgs e)
{
this.lbHienThi.ResetText();
}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{

}
}
}

# data[].attributes.body
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 Bài_nhóm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 31; i++)
cbNgay.Items.Add(i);
cbNgay.SelectedIndex = 0;
for (int i = 1; i <= 12; i++)
cbThang.Items.Add(i);
cbThang.SelectedIndex = 0;
for (int i = 1950; i <= 2021; i++)
cbNam.Items.Add(i);
cbNam.SelectedIndex = 0;
}

private void btnXem_Click(object sender, EventArgs e)
{
txtKetqua.Text = txtHovaten.Text + "\r\n"
+ cbNgay.Text + "/" + cbThang.Text + "/" + cbNam.Text + "\r\n"
+ txtSothich.Text;
byte thang = Byte.Parse(cbThang.SelectedItem.ToString());
byte ngay = Byte.Parse(cbNgay.SelectedItem.ToString());
int nam = Int16.Parse(cbNam.SelectedItem.ToString());
switch (thang)
{
case 4:
case 6:
case 9:
case 11:
if (ngay > 30)
MessageBox.Show("Ngày sinh không hợp lệ");
break;
case 2:
if (((nam % 4 == 0) && (nam % 100 != 0)) || (nam % 400 == 0))
{
//Đây là năm nhuận
if (ngay > 29)
MessageBox.Show("Ngày sinh không hợp lệ");
}
else
{
if (ngay > 28)
MessageBox.Show("Ngày không hợp lệ");
}
break;
default:
if (ngay > 31)
MessageBox.Show("Ngày không hợp lệ");
break;
}
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

# data[].attributes.body
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 BT_Thuc_Hanh
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void rdoptbac1_CheckedChanged(object sender, EventArgs e)
{
txtc.Enabled = false;
}

private void Form1_Load(object sender, EventArgs e)
{
rdoptbac1.Checked = true;
txtc.Enabled = false;
txtkq.Enabled = false;

}

private void rdoptbac2_CheckedChanged(object sender, EventArgs e)
{
txtc.Enabled = true;
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}

public static string giaiptbac1(float a,float b)
{
string kq = " ";
if (a == 0)
{
if (b == 0)
kq = "PT có vô số nghiệm";
else
kq = "PT vô nghiệm";
}
else
kq = "pt có nghiệm \r\n\t x=" + (-b / a).ToString();
return kq;
}
private void btnGiai_Click(object sender, EventArgs e)
{
string kq = " ";
float a, b, c;
if (string.IsNullOrEmpty(txta.Text) || string.IsNullOrEmpty(txtb.Text))
{
if (rdoptbac2.Checked)
{
if (string.IsNullOrEmpty(txtc.Text))
MessageBox.Show("Bạn chưa nhập đủ a,b,c");
}
else
MessageBox.Show("Bạn chưa nhập đủ a,b");
}
else if (rdoptbac1.Checked)
if (!float.TryParse(txta.Text, out a) || !float.TryParse(txtb.Text, out b))
MessageBox.Show("a hoặc b không phải là số");
else
kq = giaiptbac1(a, b);
else
{
float delta;
if (!float.TryParse(txta.Text, out a)||!float.TryParse(txtb.Text, out b)||!float.TryParse(txtc.Text, out c))
MessageBox.Show("a,b hoặc c không phải là số");
else if (a==0)
{
if (MessageBox.Show("a=0, pt trở thành pt bậc 1,bạn có muốn giải ?","Thông báo",MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
kq = giaiptbac1(b, c);
else
{
txta.Clear();
txta.Focus();
}
}
else
{
delta = (b * b) - 4 * a * c;
if(delta < 0)
kq = "pt vô nghiệm";
else if (delta > 0)
{
kq = "pt có 2 nghiệm phân biệt:\r\n";
kq += "\t x1=" + (Math.Round((Math.Sqrt(delta) - b) / (2 * a), 2)).ToString() +"\r\n";
kq += "\t x2=" + (Math.Round((-Math.Sqrt(delta)- b) / (2 * a), 2)).ToString();
}
else
{
kq = " Pt có nghiệm kép";
kq += "\t x1=x2="+(-b/(2*a)).ToString();
}
}
}
txtkq.Text = kq;
}

}
}

# data[].attributes.body
namespace bài
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
lbHienThi.Text = cbxChon.SelectedItem.ToString();
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btnReset_Click(object sender, EventArgs e)
{
this.lbHienThi.ResetText();
}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{

}
}
}

10:32

# data[].attributes.body
namespace bài
{
public partial class Form1 : Form
{
bool taodai = false;

public Form1()
{

InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if(taodai == true)
{
lbHienThi.Text = cbxChon.SelectedItem.ToString();
}
else
{
MessageBox.Show("Bạn hãy chọn lại!");
}
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btnReset_Click(object sender, EventArgs e)
{
this.lbHienThi.ResetText();
}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{

}

private void richTextBox2_TextChanged(object sender, EventArgs e)
{

}

private void cbxChon_SelectedIndexChanged(object sender, EventArgs e)
{
taodai = true;
}
}
}

# data[].attributes.body
private void btdangnhap_Click(object sender, EventArgs e)
{
if (this.khungdangnhap.Text == "phanduc" && this.khungmatkhau.Text == "456")
{
MessageBox.Show("Bạn đã đăng nhập thành công");
}

else
{
MessageBox.Show("Bạn vui lòng nhập lại");
this.khungdangnhap.Focus();
}
}

private void btthoat_Click(object sender, EventArgs e)
{
DialogResult thongbao;
thongbao = (MessageBox.Show("Bạn có muốn thoát ?", "chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Warning));
if (thongbao == DialogResult.Yes)
Application.Exit();
}
}
}

# data[].attributes.body
| Phan Ngọc  | Đức 5
| Trần Hồ Phúc  | Nguyên 5
| Lê Thanh  | Sơn: thuyết trình 8
| Hà Thị  | Trang 5
| Võ Văn  | Ý
| Võ Thành  | Phú 5

# data[].attributes.body
| Hoàng Xuân  | Hòa
| Phạm Văn  | Phong: thuyết trình
| Nguyễn Minh  | Quân
| Hoàng Thu  | Trang
| Lý Minh  | Triệu
| Phạm Suối  | Tiên

# data[].attributes.body
| Nguyễn Việt  | Anh: thuyết trình
| Đinh Thiên  | Bảo
| Thiều Trung  | Chiến
| Nguyễn Khánh  | Tâm
| Nguyễn Xuân  | Trường

# data[].attributes.body
| Lê Thị Vân  | Anh
| Đào Duy  | Luân
| Nguyễn Tấn  | Phúc
| Huỳnh Minh  | Tân
| Lê Ngọc  | Thanh: thuyết trình
| Phạm Văn  | Quang

# data[].attributes.body
| Trần Minh  | Hậu
| Lê Thị Thu  | Hiền
| Lê Âu Minh  | Hiếu
| Trần Anh  | Qúi
| Nguyễn Hoàng Hải  | Triều
| Nguyễn Văn  | Phát: thuyết trình

# data[].attributes.body
| Trịnh Bảo  | Đạt: thuyết trình
| Nguyễn Thùy  | Dung
| Trần Minh  | Hoàng
| Võ Thanh  | Khang
| Quách Thành  | Long
| Kiều Thị Huyền  | Nhi

# data[].attributes.body
| Nguyễn Trần Trường  | Giang 6
| Trương Hạo  | Nam 6
| Võ Đình  | Tuấn 7
| Hà Văn  | Hoàng 7
| Nguyễn Chí  | Dũng 7
| Lê Nhựt  | Nam: thuyết trình 8

# data[].attributes.body
https://www.c10mt.com/2012/09/lap-trinh-truc-quan-c-windows-forms.html

# data[].attributes.attachment_link.readable_text
Xin chào các bạn , lại một mùa học Lập Trình lại tới. Hôm nay , Tâm Gà sẽ share cho các bạn code đáp áp của môn này nhé. Chúng ta cùng nhau học để cùng nhau tiến triển nè. Và để tiện dụng sau này , nhiều bạn chơi khăm Tâm Gà , nên toàn bộ code sẽ được post lên với link ảnh. Các bạn tự code vào máy mình để test nhé.

Và lẽ dĩ nhiên , chúng ta học gì thì Tâm Gà sẽ làm như vậy , và chúng ta không có học C# Console nên cho dù các bạn có down khá nhiều tài liệu trên mạng , thì đại đa số toàn là C# Console không àh . Rất hiếm để tìm được tài liệu và đáp án của môn C# Windows Forms đâu.

Được rồi , xã giao là như thế đó , chúng ta bắt đầu vào phần chính nhé. Đây là toàn bộ 50 bài tập và đáp án đã giải từ Tâm Gà đây. Chúc các bạn học tập vui vẻ

*** Link down Visual Studio 10 : Microsoft Visual Studio 2010 Full + Hướng Dẫn
*** Playlist các code được chạy trực tiếp , trên Youtube :

***
Tạo khung đăng nhập hệ thống với các yêu cầu sau :
- Khi nhập vào Tên đăng nhập : "tamga" và Mật khẩu : "123" thì khi click vào nút Đăng Nhập sẽ hiện " Bạn đã đăng nhập thành công ". Còn ngược lại thì thông báo " Bạn hãy nhập lại "
- Khi click vào nút Thoát , sẽ báo thông báo " Bạn có muốn thoát hay không ? Nhấn Yes là thoát và No là trở lại như cũ.
------------ Đáp án mẫu như sau :

***
Tạo khung thông tin. Trong đó , nhập Họ và Tên , Ngày Tháng Năm Sinh , Sở Thích.
Nhấn nút Xem để hiện thông tin vừa nhập xuống khung kết quả
------------ Đáp án mẫu như sau :

***
Tạo khung Liên Kết Website. Mà trong đó , khi bạn chọn website và nhấn OK thì hiện bên khung kết quả.
Nhấn nút Reset thì xóa khung kết quả.
------------ Đáp án mẫu như sau :

***
Tạo khung Liên Kết Website Phần 2. Mà trong đó , khi bạn click vào khung chọn site ,
thì các phần tử bên đó tự động hiện trong khung kết quả.
Nhấn nút Reset tự động xóa khung kết quả.
------------ Đáp án mẫu như sau :

***
Giải Phương Trình Bậc 1 và Giải Phương Trình Bậc 2. Mà trong đó :
- Khi chọn radio Giải PTBac1 thì khung nhập c bị mờ đi
- Khi chọn radio Giải PTBac2 thì hiện đầy đủ khung nhập
------------ Đáp án mẫu như sau :

***
Giải Phương Trình Bậc 1 và Giải Phương Trình Bậc 2. Mà trong đó :
- Kết hợp 2 Class tên là PTBac1 và PTBac2 trong cùng 1 form
- Khi chọn radio Giải PTBac1 thì khung nhập c bị mờ đi
- Khi chọn radio Giải PTBac2 thì hiện đầy đủ khung nhập
------------ Đáp án mẫu như sau :

-- Xem và Download code tại đây
***
Hãy nhập vào hai số nguyên a và b. Tính
- Tổng , Hiệu , Tích , Thương của hai số vừa nhập.
- Xử lý nút Thoát trong chương trình
------------ Đáp án mẫu như sau :

***
Hãy nhập vào một dãy số nguyên bất kỳ. Với yêu cầu
- Xuất các số vừa nhập ra màn hình
- Tính tổng các số vừa nhập
- Tính tổng số chẵn và tổng số lẻ
- Không được dùng mảng.
------------ Đáp án mẫu như sau :

***
Hãy nhập vào một dãy số nguyên bất kỳ. Với yêu cầu
- Xuất các số vừa nhập ra màn hình
- Tính tổng các số vừa nhập
- Tính tổng số chẵn và tổng số lẻ
- Dùng Class để tạo ra hàm nhập dãy số
------------ Đáp án mẫu như sau :

***
Hãy nhập vào n bất kỳ. Với yêu cầu sau :
- Kiểm tra xem n có phải là số nguyên tố hay không ?
- Tìm các số nguyên tố nhỏ hơn n
------------ Đáp án mẫu như sau :

***
Hãy nhập vào hai phân số bất kỳ. Với yêu cầu sau :
- Tính Tổng , Hiệu , Tích , Thương của hai phân số đó
- Khi click vào các button Phép Toán nào thì hiện lên label bên khung kết quả
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình dành cho
Máy Tính Bỏ Túi đơn giản với các phép toán Cộng, Trừ, Nhân, Chia, Xóa
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình tính Chu Vi và Diện Tích
- Hình vuông , hình tròn , hình chữ nhật , hình tam giác
- Khi click vào radio button nào thì khung tính của cái đó mới hiện ra.
- Kiểm tra xem các cạnh của tam giác nhập vào tạo thành tam giác gì ?
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình nhập chuỗi bất kỳ
- Nhấn chọn radio chữ Hoa hay Chữ Thường thì đoạn chữ sẽ đổi theo
- Cắt bỏ khoảng trắng dư giữa đoạn chuỗi.
------------ Đáp án mẫu như sau :

***
Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Sắp xếp mảng Tăng và Giảm
- Tìm kiếm giá trị và vị trí phần tử bất kỳ trong mảng
- Xóa giá trị và vị trí phần tử bất kỳ trong mảng
- Thêm giá trị với vị trí được chỉ định trong mảng
- Tính tổng mảng , tổng chẵn và tổng lẻ của mảng.
- Tìm giá trị lớn nhất và nhỏ nhất có trong mảng
- Thay thế giá trị và vị trí với số thay thế bất kỳ trong mảng.
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

***
Viết chương trình nhập Họ và Tên. Với yêu cầu :
- Khi click button Tìm Kiếm thì mở form thứ 2
- Trong form thứ hai có tìm kiếm ký tự và vị trí của nó.
------------ Đáp án mẫu như sau :

***
Viết chương trình , với yêu cầu sau :
- Sử dụng MenuStrip, WebBrowser , Shockware Flash Object
- Khi nhấp vào menu File , chọn Close thì thoát chương trình.
- Khi nhấp Site , chọn site nào thì hiện site đó trong chương trình.
- Khi nhấp vào Video thì có hai lựa chọn , một là thường , hai là chuẩn HD
- Khi nhấp vào Game Online thì có thể chơi bất kỳ game online nào
( ví dụ cơ bản là Game Chân Long Giáng Thế )
------------ Đáp án mẫu như sau :

***
Viết chương trình , với yêu cầu sau :
- Tìm số lớn nhất trong 3 số bất kỳ nhập từ bàn phím.
------------ Đáp án mẫu như sau :

Viết chương trình , với yêu cầu sau :
- Nhập vào một tháng của một năm bất kỳ.
- Hãy cho biết trong tháng đó có bao nhiêu ngày.
------------ Đáp án mẫu như sau :

Viết chương trình , với yêu cầu sau :
- Nhập vào họ và tên sinh viên
- Nhập vào điểm trung bình các môn sau :
ISA , Quản Trị Mạng 2, SQL , C# , An Toàn Mạng,
- Tính trung bình cộng , và xuất ra xếp loại : Xuất Sắc , Giỏi , Khá , Trung Bình và Yếu
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tăng - Chẵn Lẻ - Xóa, với ListBox yêu cầu sau :
- Nhập vào số nguyên n ( giống nhập mảng , nhưng không phải mảng )
- Tăng mỗi phần tử lên 2 nếu click
- Chọn số chẵn đầu nếu click
- Chọn số lẻ đầu nếu click
- Xóa phần tử đang chọn nếu click
- Xóa phần tử đầu tiên nếu click
- Xóa phần tử cuối cùng nếu click
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
- Nhấn nút Thoát sẽ hỏi bạn có muốn thoát hay không ?
------------ Đáp án mẫu như sau :

Viết chương trình Chọn Môn Thể Thao , với yêu cầu sau :
- Chọn họ tên với ComboBox
- Thời gian và ngày tháng năm lấy hiện tại
- Có 4 nút Button :
>> chọn hết tất cả
> chọn từng thành phần qua
< bỏ chọn từng thành phần
<< bỏ chọn tất cả
- Khi click vào button nào ở trên thì listbox1 sẽ hiển thị ở bên listbox2
- Nhấn nút Nhập để xuất kết quả vào khung TextBox .
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
------------ Đáp án mẫu như sau :

Viết chương trình Dịch Vụ Khám Bệnh , với yêu cầu sau :
- Nhập họ tên, ngày tháng năm sinh với TextBox
- Khi click chọn dịch vụ ở trên thì listbox1 sẽ hiển thị ở bên listbox2
- Nhấn nút Chọn để xuất kết quả vào khung TextBox .
- Nhấn nút Reset hoàn trả về ban đầu, lúc chưa nhập gì.
------------ Đáp án mẫu như sau :

Viết chương trình Đọc số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến 999
- Đọc số vừa nhập vào thành chữ số
Ví dụ : Nhập 11 sẽ được đọc thành Mười Một

------------ Đáp án mẫu như sau :

Viết chương trình Đọc số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến 9
- Đọc số vừa nhập vào thành chữ số
Ví dụ : Nhập 1 sẽ được đọc thành Một
------------ Đáp án mẫu như sau :

Viết chương trình Đổi Số Nhị Phân, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ.
- Đổi số mới nhập vào , thành số nhị phân
Ví dụ : Nhập 9 sẽ được đổi thành 1001
------------ Đáp án mẫu như sau :

Viết chương trình Tính Số Chia Hết, với yêu cầu sau :
- Nhập vào một số nguyên N bất kỳ.
- Tính các số bé hơn hoặc bằng N chia hết cho A và B
------------ Đáp án mẫu như sau :

Viết chương trình Đổi Màu Nền Chữ, với yêu cầu sau :
- Nhập vào một chuỗi bất kỳ.
- Chọn Màu gồm có : Tự động chọn màu , Đỏ , Xanh Lá , Xanh Dương
- Chọn Kiểu gồm có : Đậm , Nghiêng , Gạch dưới , Đậm Nghiêng
------------ Đáp án mẫu như sau :

Viết chương trình Tìm Ước Số và Số Nguyên Tố, với yêu cầu sau :
- Nhập số n bất kỳ từ textbox
- Tìm ước số của số n bất kỳ trong ComboBox
- Tìm số lượng của ước số chẵn , lẻ và số nguyên tố trong listbox
- Báo MessageBox những số nào là số nguyên tố
- Tính tổng các số chẵn , lẻ , tổng số nhập , số nguyên tố trong listbox
------------ Đáp án mẫu như sau :

Viết chương trình tính Điểm Trung Bình Cộng, với yêu cầu sau :
- Nhập một dãy số tương đương với điểm của sinh viên vào textbox1
- Tính ra điểm trung bình cộng , và xuất ra textbox2
------------ Đáp án mẫu như sau :

Viết chương trình tính Điểm Trung Bình Cộng, với yêu cầu sau :
- Nhập một dãy số tương đương với điểm của sinh viên vào listbox
- Tính ra điểm trung bình cộng , và xuất ra textbox2
- Sửa điểm tại vị trí đang chọn
------------ Đáp án mẫu như sau :

Viết chương trình Thao Tác Trên Chuỗi với yêu cầu (có dùng Class) :
- Nhập chuỗi bất kỳ và xuất ra chuỗi vừa nhập có xử lý khoảng trắng
- In Lời Giới Thiệu là : " Chương trình xử lý Chuỗi "
- Lấy Họ Lót riêng và Tên riêng và xuất ra khung kết quả
- Đếm số từ xuất hiện của chuỗi vừa nhập
- In Hoa Đầu Từ mỗi từ
------------ Đáp án mẫu như sau :

-- Xem và Download code tại đây

Viết chương trình Xử Lý Hai Chuỗi với yêu cầu :
- Nhấp vào button So Sánh 2 Chuỗi ( S1 ) :
thì so sánh hai chuỗi S1 và S2 , có phân biệt chữ Hoa và chữ Thường, xuất ra khung KQ
- Nhấp vào button So Sánh 2 Chuỗi ( S2 ) :
thì so sánh hai chuỗi S1 và S2 , không phân biệt chữ Hoa và chữ Thường, xuất ra khung KQ
- Nhấp vào button Nối Hai Chuỗi :
thì nối hai chuỗi S1 và S2 , xuất ra khung KQ
- Nhấp vào button Chèn S2 vào S1 :
thì chèn chuỗi S2 vào sau từ đầu tiên của chuỗi S1 và
chèn chuỗi S2 vào trước từ sau cùng của chuỗi S1 , xuất ra khung KQ
- Nhấp vào button Vị Trí xuất hiện S2 trong S1 :
thì cho biết vị trí xuất hiện của chuỗi S2 trong chuỗi S1. Nếu có S2 trong S1 thì
thay thế S2 (trong S1) bằng chuỗi " Chỗ Này " , xuất ra khung KQ
- Nhấp vào button Vị Trí xuất hiện www.c10mt.tk :
thì cho biết vị trí xuất hiện của chuỗi www.c10mt.tk trong labelTieuDe. Nếu có thì
xóa chuỗi đó ra khỏi labelTieuDe, xuất ra khung KQ
- Nhấp vào button Xóa thì xóa trống, đồng thời đưa con trỏ về Chuỗi S1
- Nhấp vào button Thoát thì dừng chương trình.
------------ Đáp án mẫu như sau :

Viết chương trình Nhập Thông Tin Khách Hàng Du Lịch
- Khi chọn Địa Điểm Đi và Địa Điểm Đến thì sẽ hiện lên khung RichTexbox
- Khi chọn Ngày Đi và Ngày Về sẽ tính Tổng Số Ngày Đã Đi
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tiền Điện trong đó :
- Số kw trong định mức là 50 thì giá sẽ là 500đ / 1kw
- Nếu số kw tiêu thụ vượt mức 50 thì giá sẽ là 1000đ / 1kw
------------ Đáp án mẫu như sau :

Viết chương trình Tính Tiền Nước trong đó :
- Nếu số nhân khẩu nhỏ hơn 4 thì mặc định số trong định mức là 12
- Trong định mức thì tính giá là 4000đ / 1 mét khối
- Vượt định mức thì tính giá là 8000đ / 1 mét khối
------------ Đáp án mẫu như sau :

*** Clip Hướng dẫn Kết Nối Dữ Liệu :
Viết chương trình kết nối dữ liệu từ file SQL Quản Lý Sinh Viên vào trong Visual Studio với C#
------------ Đáp án mẫu như sau :

*** Link download mediafire chuẩn HD : http://www.mediafire.com/?zl76ztk3wxfnwwv
*** Link video xem online : http://youtu.be/JBYUHdcM690?hd=1

Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ bảng DataDridView lên các Textbox
- Sử dụng được các nút Thêm, Xóa, Sửa, Lưu, Hủy, Thoát
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

Viết chương trình Thống Kê Sinh Viên theo Môn Học bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Thống Kê Sinh Viên theo Khoa bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Tìm Kiếm Thông Tin Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Tìm Kiếm Kết Quả Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Tính Điểm Trung Bình của sinh viên đó theo môn học
- Có sử dụng Class để kết nối dữ liệu
------------ Đáp án mẫu như sau :

Viết chương trình Quản Lý Khoa bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Tính Tổng các Khoa.
- Có sử dụng Class để kết nối dữ liệu
- Sử dụng nút Thêm , Lưu , Xóa , Sửa , Hủy , Thoát
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Quản Lý Điểm của Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ ComboBox sẽ hiện lên Textbox và DataGridView
- Có sử dụng Class để kết nối dữ liệu
- Sử dụng nút Thêm , Lưu , Xóa , Sửa , Hủy , Thoát
- Tính tổng số lần thi của sinh viên
Chú ý :
- Có sử dụng việc bắt lỗi.
---- Khi nhập Mã SV vào dữ liệu quá 2 lần sẽ không được lưu.
---- Khi nhập trong số lần thi của lần 1 và lần 2 là số khác sẽ báo lỗi không cho lưu.
------------ Đáp án mẫu như sau :

Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Có sử dụng Class để Kết Nối Dữ Liệu
- Sử dụng được các Form
---- Quản Lý Sinh Viên
---- Quản Lý Khoa
---- Quản Lý Điểm
---- Thống Kê Theo Khoa
---- Thống Kê Theo Môn Học
---- Tìm Kiếm Kết Quả Sinh Viên
---- Tìm Kiếm Thông Tin Sinh Viên
Chú ý :
- Có sử dụng việc bắt lỗi.
=== Phần này Tâm Gà đã giải và chia ra thành từng phần nhỏ.
Các bạn dựa theo từng phần nhỏ để ráp lại thành một bài tập hoàn chỉnh nhé.
------------ Đáp án mẫu như sau :

*** Bài 46 : Quản Lý Thông Tin Sinh Viên - Cách 2
Viết chương trình Quản Lý Sinh Viên bằng C# với database SQL trong đó :
- Load dữ liệu từ file SQL vào Visual Studio
- Click hiện thông tin từ bảng DataDridView lên các Textbox
- Sử dụng được các nút Thêm, Xóa, Sửa, Lưu, Hủy, Thoát
Chú ý :
- Có sử dụng việc bắt lỗi.
- Không dùng Class để Kết Nối Dữ Liệu mà chạy trực tiếp câu lệnh SQL trên Form
- Dữ liệu SQL Server Quản Lý Sinh Viên sử dụng của cô Thà thay cho dữ liệu của cô Oanh
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Nghe Nhạc Đơn Giản trong đó :
- Tạo button Open File để mở ra hộp thoại cho người dùng chọn đến file
nhạc cần mở. Sau khi chọn file nhạc thì sẽ tự động phát nhạc ngay.
- Tạo menustrip gồm có các nút Play, Pause , Stop , Thoát.
- Khi nhấn nút Thoát sẽ hỏi bạn có muốn Thoát hay không ? Chọn Yes để thoát
hay chọn No để chạy tiếp chương trình
------------ Đáp án mẫu như sau :

Viết chương trình Tính Hóa Đơn cho Phòng Khám Răng trong đó :
- Khi chọn dịch vụ và điền thông tin khách hàng xong, nhấp chuột và nút tính tiền
sẽ xuất thông báo tổng tiền mà khách phải trả.
- Click nút Thoát sẽ hiện thông báo , bạn có muốn thoát hay không ?
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Nhập từng phần tử mảng bất kỳ.
- Sắp xếp mảng Tăng và Giảm
- In và xóa Mảng
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình nhập và xuất mảng một chiều. Với yêu cầu :
- Xuất mảng bất kỳ, giới hạn bởi số phần tử mảng.
- Tính Tổng mảng , tổng chẳn , tổng lẻ
- Tìm kiếm giá trị , tìm max , tìm min
- Thay thế phần tử bằng giá trị theo ý thích
- Đếm số chẵn , đếm số lẻ
- Xóa giá trị
- Tìm số nguyên tố , đếm có bao nhiêu số nguyên tố
- Đảo mảng
- Bắt lỗi một vài trường hợp ( theo ý thích, không bắt buộc )
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Tính N dùng với Vòng Lặp For . Với yêu cầu :
- Tính 1+2+...+(n-1)+n
- Tính 1*2+2*3+...+n*(n+1)
- Tính 1*2+2*3+...+n*(n+1)/ 1+2+...+(n-1)+n
- Tính 1*2+2*3+...+n*(n+1)^2/ 1+2+...+(n-1)+n
- Tổng chẵn từ 1 -> N
- Kiểm tra Số nguyên tố
- Các số nguyên tố từ 2 -> N
------------ Đáp án mẫu như sau :

Hãy viết chương trình ChàoTheo Giờ . Với yêu cầu :
- Nhập vào tên . Xuất kết quả ra form khác
- Xuất ra đồng hồ điện tử trên form 1
- Xuất ra định dạng ngày giờ của hệ thống
- Xuất ra định dạng ngày tháng năm của hệ thống
- Xuất ra Chào buổi sáng, hay chiều ,tối ứng với thời gian của hệ thống
------------ Đáp án mẫu như sau :

Hãy viết chương trình Chúc Mừng Sinh Nhật . Với yêu cầu :
- Nhập vào tên bất kỳ và ngày tháng năm sinh.
- Xuất ra tên vừa nhập và tính số tuổi hiện tại.
------------ Đáp án mẫu như sau :

Hãy viết chương trình dùng Progress Bar và Timer . Với yêu cầu :
- Nhập vào số thời gian bất kỳ.
- Dựa theo số n vừa nhập , Progress Bar sẽ chạy tăng và giảm
- Kèm theo đó , dùng Label để đếm tăng và giảm số n.
- Có button Bắt đầu , Ngừng và Thoát
------------ Đáp án mẫu như sau :

Hãy viết chương trình tìm Ước Số Chung Lớn Nhất và Bội Số Chung Nhỏ Nhất.
Với yêu cầu :
- Dùng thuật toán Euclid.
- Có button Tiếp Tục , Thoát và Thực Hiện
------------ Đáp án mẫu như sau :

Hãy viết chương trình Đăng Nhập Sai 3 Lần . Với yêu cầu :
- Gồm có 3 Form : Form chính , Form Thành Công , Form Thất Bại
- Nếu đăng nhập đúng với user và pass thì chuyển sang Form Thành Công
- Ngược lại thì báo khóa tài khoản và chờ sau khoảng thời gian 100 giây
- Lưu tài khoản và mật khẩu xuống máy tính dưới dạng text
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Viết chương trình Đọc trên Sáu số thành Chữ, với yêu cầu sau :
- Nhập vào một số nguyên dương bất kỳ từ 1 đến n
- Đọc số vừa nhập vào thành chữ số
Ví dụ :
Nhập 1 sẽ được đọc thành Một
Nhập 10 sẽ được đọc thành Mười Một
Nhập 100 sẽ được đọc thành Một Trăm
Nhập 1000 sẽ được đọc thành Một Ngàn
Nhập 10000 sẽ được đọc thành Mười Ngàn
Nhập 100000 sẽ được đọc thành Một Trăm Ngàn
Nhập 1000000 sẽ được đọc thành Một Triệu
Nhập 10000000 sẽ được đọc thành Mười Triệu
Nhập n lần ....
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Kiểm Tra Tam Giác như sau :
- Nhập vào 3 cạnh bất kỳ của tam giác.
- Nhấn nút Tính chất của tam giác để kiểm tra tam giác là gì ?
------------ Đáp án mẫu như sau :

Hãy viết chương trình Giải Phương Trình Trùng Phương. Mà trong đó :
- Nhập vào ba số nguyên dương bất kỳ.
- Nhấn nút Giải sẽ xuất ra nghiệm của phương trình.
------------ Đáp án mẫu như sau :

Hãy viết Chương Trình Tính Năm Âm Lịch như sau :
- Nhập vào một số nguyên dương bất kỳ ( 4 số ).
- Nhấn nút Xác Định để xuất kết quả năm Âm Lịch
------------ Đáp án mẫu như sau :

- Xem và Download code tại đây

*** :
Hãy viết Chương Trình sử dụng Webcam trên C# :
- Mở, tắt, tiếp tục
- Chụp ảnh màn hình webcam, lưu định dạng ảnh webcam là jpeg
- Xem thông tin và cấu hình cho webcame hiện tại.
------ Đáp án mẫu như sau :

- Xem và Download code tại đây

Password : http://www.c10mt.com/2012/12/huong-dan-lay-password-tren-site-c10mt.html

===============================

# data[].attributes.attachment_link.keywords[]
lập trình trực quan [ full đáp án c# windows forms ]

# data[].attributes.attachment_link.keywords[]
thanh tâm search box: lập trình trực quan [ full đáp án c# windows forms ]

# data[].attributes.attachment_link.title
Lập Trình Trực Quan [ Full Đáp Án C# Windows Forms ]

# data[].attributes.attachment_link.description
Xin chào các bạn , lại một mùa học Lập Trình lại tới. Hôm nay , Tâm Gà sẽ share cho các bạn code đáp áp của môn này nhé. Chúng ta cùng nhau học để cùng nhau tiến triển nè.

# data[].attributes.body
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 bài_nhóm_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
txtKetqua.ForeColor = Color.Green;
}

private void label4_Click(object sender, EventArgs e)
{

}

private void btnReset_Click(object sender, EventArgs e)
{
txtNhap.ResetText();
txtKetqua.ResetText();
txtKetqua.ForeColor = Color.Black;
rdoAutocolor.Checked = false;
rdoDo.Checked = false;
rdoXanhduong.Checked = false;
rdoXanhla.Checked = false;
cbDam.Checked = false;
cbNghieng.Checked = false;
cbGachchan.Checked = false;
cbDamghieng.Checked = false;
}

private void txtNhap_TextChanged(object sender, EventArgs e)
{
txtKetqua.Text = txtNhap.Text;
}

private void rdoAutocolor_CheckedChanged(object sender, EventArgs e)
{
Random tamga = new Random();
txtKetqua.ForeColor = Color.FromArgb(tamga.Next(255), tamga.Next(255), tamga.Next(255));
}

private void rdoDo_CheckedChanged(object sender, EventArgs e)
{
txtKetqua.ForeColor = Color.Red;
}

private void rdoXanhduong_CheckedChanged(object sender, EventArgs e)
{
txtKetqua.ForeColor = Color.Blue;
}

private void cbDam_CheckedChanged(object sender, EventArgs e)
{
if (cbDam.Checked == true)
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Bold);
else
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Regular);
}

private void cbNghieng_CheckedChanged(object sender, EventArgs e)
{
if (cbNghieng.Checked == true)
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Italic);
else
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Regular);

}

private void cbGachchan_CheckedChanged(object sender, EventArgs e)
{
if (cbGachchan.Checked == true)
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Underline);
else
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Regular);
}

private void cbDamghieng_CheckedChanged(object sender, EventArgs e)
{
if (cbDamghieng.Checked == true)
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Bold | FontStyle.Italic);
else
txtKetqua.Font = new Font(txtKetqua.Font, FontStyle.Regular);
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

# data[].attributes.body
public FrmXepLoaiHocLuc()
{
InitializeComponent();
this.ActiveControl = txtNhap;
}
private void txtNhap_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==13)
{
if(txtNhap.Text.Trim()=="")
{
MessageBox.Show("Bạn Chưa Nhập Tên");
txtNhap.Text = "";
txtNhap.Focus();
}
else
{
txtSever.Focus();
}
}
}
private void txtSever_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtSever.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtSever.Text = "";
txtSever.Focus();
}
else
{
txtLTTQ.Focus();
}
}
else if(e.KeyChar<48||e.KeyChar>57)
{
MessageBox.Show("Điểm Bạn Nhập Bắt Buộc Là Số");
e.Handled = true;
txtSever.Focus();
}
}
private void txtLTTQ_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtLTTQ.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtLTTQ.Text = "";
txtLTTQ.Focus();
}
else
{
txtQT.Focus();
}
}
else if (e.KeyChar < 48 || e.KeyChar > 57)
{
MessageBox.Show("Điểm Bạn Nhập Bắt Buộc Là Số");
e.Handled = true;
txtLTTQ.Focus();
}
}
private void txtQT_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtQT.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtQT.Text = "";
txtQT.Focus();
}
else
{
txtQT1.Focus();
}
}
else if (e.KeyChar < 48 || e.KeyChar > 57)
{
MessageBox.Show("Điểm Bạn Nhập Bắt Buộc Là Số");
e.Handled = true;
txtQT.Focus();
}
}
private void txtQT1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtQT1.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtQT1.Text = "";
txtQT1.Focus();
}
else
{
txtQT2.Focus();
}
}
else if (e.KeyChar < 48 || e.KeyChar > 57)
{
MessageBox.Show("Điểm Bạn Nhập Bắt Buộc Là Số");
e.Handled = true;
txtQT1.Focus();
}
}
private void txtQT2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtQT2.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Nội Dung");
txtQT2.Text = "";
txtQT2.Focus();
}
else
{
btnNhap.Focus();
}
}
else if (e.KeyChar < 48 || e.KeyChar > 57)
{
MessageBox.Show("Điểm Bạn Nhập Bắt Buộc Là Số");
e.Handled = true;
txtQT2.Focus();
}
}
private void btnNhap_Click(object sender, EventArgs e)
{
double trungBinh=0;
double mon1 = double.Parse(txtSever.Text);
double mon2 = double.Parse(txtLTTQ.Text);
double mon3 = double.Parse(txtQT.Text);
double mon4 = double.Parse(txtQT1.Text);
double mon5 = double.Parse(txtQT2.Text);
trungBinh = (mon1 + mon2 + mon3 + mon4 + mon5) / 5;
txtDiemtb.Text = trungBinh.ToString();

//Xếp Loại
string str = txtNhap.Text +" \n"+"Xếp Loại: ";
if (trungBinh>9)
{
str += "Xuất Xắc";
}
else if(trungBinh>=8)
{
str += "Giỏi";
}
else if(trungBinh>6.5)
{
str += "Khá";
}
else if(trungBinh>=5)
{
str += "Trung Bình";
}
else
{
str += "Yếu";
}
rtxtThongTin.Text = str;
btnReset.Focus();
}
private void btnReset_Click(object sender, EventArgs e)
{
txtNhap.Text = "";
txtSever.Text = "";
txtLTTQ.Text = "";
txtQT.Text = "";
txtQT1.Text = "";
txtQT2.Text = "";
rtxtThongTin.Text = "";
txtDiemtb.Text = "";
txtNhap.Focus();
}

private void btnThoat_Click(object sender, EventArgs e)
{
DialogResult dl;
dl = MessageBox.Show("Bạn Có Chắc Muốn Thoát", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dl==DialogResult.Yes)
{
Close();
}
}

# data[].attributes.body
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 thuchanh2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btthoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btreset_Click(object sender, EventArgs e)
{
txtkhungdiemtrungbinh.ResetText();
txtkhungnhapdiem.ResetText();
n = 0;
s = " ";
}
int n = 0, i, dodaichuoi;
int[] a = new int[100];
string s,s1;
private void bttinhdiemtb_Click(object sender, EventArgs e)
{
s = (txtkhungnhapdiem.Text);
i = s.LastIndexOf(" ");
while (i != -1)
{
s1 = s.Substring(i);
s = s.Substring(0,i);
a[n] = Convert.ToInt32(s1);
n++;
i = s.LastIndexOf(" ");
}
a[n] = Convert.ToInt32(s);
s = " ";
for (int i = n; i >= 0; i--)
s = s + a[i].ToString();
string kq = s.Trim();
dodaichuoi = kq.Length;
int tong = 0;
for (i = 0; i <= n; i++)
tong += a[i];
float tbc = (float)tong / dodaichuoi;
txtkhungdiemtrungbinh.Text = tbc.ToString();
}
}
}

# data[].attributes.body
| Nguyễn Việt  | Anh: trình bày 9
| Đinh Thiên  | Bảo: trình bày 9
| Thiều Trung  | Chiến 7
| Phan Ngọc  | Đức 7
| Nguyễn Chí  | Dũng 8
| Trần Minh  | Hậu. 4

# data[].attributes.body
| Lê Thị Vân  | Anh 8
| Trịnh Bảo  | Đạt: trình bày 9
| Nguyễn Thùy  | Dung 0
| Nguyễn Trần Trường  | Giang 5
| Lê Thị Thu  | Hiền 0
| Lê Âu Minh  | Hiếu. 5

# data[].attributes.body
| Hoàng Xuân  | Hòa 5
| Võ Thanh  | Khang 5
| Đào Duy  | Luân 8
| Trần Hồ Phúc  | Nguyên 5
| Phạm Văn  | Phong: trình bày 10
| Quách Thành  | Long 5

# data[].attributes.body
| Nguyễn Tấn  | Phúc
| Trần Anh  | Qúi
| Nguyễn Khánh  | Tâm
| Lê Ngọc  | Thanh: trình bày
| Hoàng Thu  | Trang
| Trương Hạo  | Nam

# data[].attributes.body
| Nguyễn Minh  | Quân 6
| Lê Thanh  | Sơn: Trình bày 8
| Huỳnh Minh  | Tân 6
| Phạm Suối  | Tiên 6
| Hà Thị  | Trang 7
| Kiều Thị Huyền  | Nhi 6

# data[].attributes.body
| Võ Đình  | Tuấn 8
| Nguyễn Hoàng Hải  | Triều 6
| Lê Nhựt  | Nam: trình bày 9
| Nguyễn Xuân  | Trường 8
| Võ Thành  | Phú 8
| Trần Minh  | Hoàng 5

# data[].attributes.body
| Võ Văn  | Ý
| Nguyễn Văn  | Phát: Trình bày
| Hà Văn  | Hoàng
| Lý Minh  | Triệu
| Phạm Văn  | Quang: Trình bày

# data[].attributes.body
public FrmCongTyDuLich()
{
InitializeComponent();
this.ActiveControl = txtTen;
}
private void txtTen_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==13)
{
if(txtTen.Text.Trim()=="")
{
MessageBox.Show("Bạn Chưa Nhập Tên Khách Hàng");
}
else
{
dtpNgaySinh.Focus();
}
}
}
private void txtDiaChi_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtDiaChi.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Tên Khách Hàng");
txtDiaChi.Text = "";
txtDiaChi.Focus();
}
else
{
cmbDiaDiemDi.Focus();
}
}
}
private void btnNhap_Click(object sender, EventArgs e)
{
string format = "dd/MM/yyyy";
string ngaySinh = dtpNgaySinh.Value.ToString(format);
string str = "Khách Hàng: " + txtTen.Text +
"\n"+"Ngày Sinh: "+ngaySinh+
"\n"+"Địa Chỉ: "+txtDiaChi.Text+
"\n"+"Địa Điểm Xuất Phát: "+cmbDiaDiemDi.Text+
"\n"+"Địa Điểm Đến: "+cmbDiaDiemDen.Text;
rtxtThongTin.Text = str;
dtpNgayVe_ValueChanged(sender, e);
}
private void dtpNgayVe_ValueChanged(object sender, EventArgs e)
{
txtTongNgay.Text=Convert.ToInt32((dtpNgayVe.Value - dtpNgayDi.Value).TotalDays).ToString();
}

# data[].attributes.body
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 BTthuchanh3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnthoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btnreset_Click(object sender, EventArgs e)
{
khungxuat.ResetText();
khungnhaphoten.ResetText();
khungngay.ResetText();
khungthang.ResetText();
khungnam.ResetText();
lbdanhsachchon.Items.Clear();
}
private void Form1_Load(object sender,EventArgs e)
{
this.lbchondichvu.Items.Add("Siêu Âm");
this.lbchondichvu.Items.Add("Thử Máu");
this.lbchondichvu.Items.Add("Nội Soi");
this.lbchondichvu.Items.Add("X-Quang");

}

private void lbchondichvu_SelectedIndexChanged(object sender, EventArgs e)
{
this.lbdanhsachchon.Items.Add(lbchondichvu.SelectedItem.ToString());
}

private void btnchon_Click(object sender, EventArgs e)
{
int i;
int n =lbdanhsachchon.Items.Count;
khungxuat.Text="Họ Tên: "+khungnhaphoten.Text + "\r\nNgày Sinh: "+khungngay.Text + "/"+khungthang.Text + "/" + khungnam.Text + "\r\nDịch vụ đã chọn: ";
for (i=0;i<n;i++)
{
lbdanhsachchon.SelectedIndex = i;
khungxuat.Text += lbdanhsachchon.Text + ",";
}

}
}
}

# data[].attributes.body
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 tinhtiendien
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}
int n1,n2,n3, n4,n5;

private void buin_Click(object sender, EventArgs e)
{
txtxuathaodon.Text = cobkhachhang.SelectedItem + "\r \n" + "Số Kw tiêu thụ: " + txttieuthu.Text + "\r \n" + "Thành tiền: " + txtthanhtien.Text;
}

private void butinh_Click(object sender, EventArgs e)
{
n3 = Convert.ToInt32(txttieuthu.Text);
n4 = Convert.ToInt32(txtkwtrongdinhmuc.Text);
n5 = Convert.ToInt32(txtkwvuotdinhmuc.Text);
if (n3 <= 50)
{
txtthanhtien.Text = Convert.ToInt32(n4 * 500).ToString();
}
else
{
txtthanhtien.Text = Convert.ToInt32((n4 * 500) + (n5 * 1000)).ToString();
}
}

private void butiep_Click(object sender, EventArgs e)
{

}

int kwtrongdinhmuc = 50, kwvuotdinhmuc = 0;

private void txttieuthu_TextChanged(object sender, EventArgs e)
{
n3 = Convert.ToInt32(txttieuthu.Text);
if (n3 <= 50)
{
txtkwtrongdinhmuc.Text = n3.ToString();
txtkwvuotdinhmuc.Text = kwvuotdinhmuc.ToString();
}
else
{
txtkwtrongdinhmuc.Text = kwtrongdinhmuc.ToString();
int n4 = Convert.ToInt32(txtkwtrongdinhmuc.Text);
txtkwvuotdinhmuc.Text = Convert.ToInt32(n3 - n4).ToString();
}
}

private void txtcsmoi_TextChanged(object sender, EventArgs e)
{
n1 = Convert.ToInt32(txtcscu.Text);
n2 = Convert.ToInt32(txtcsmoi.Text);
txttieuthu.Text = Convert.ToInt32(n2 - n1).ToString();
}

private void buthoat_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

# data[].attributes.body
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 bài_tập_nhóm_9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void label1_Click(object sender, EventArgs e)
{

}

private void label2_Click(object sender, EventArgs e)
{

}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}

private void label3_Click(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
int i;
int n = lbdanhsanhcacmon.Items.Count;
for (i = 0; i <= n - 1; i++)
{
lbdanhsanhcacmon.SelectedIndex = 0;
lbdanhsachchon.Items.Add(lbdanhsanhcacmon.SelectedItem.ToString());
lbdanhsanhcacmon.Items.Remove(lbdanhsanhcacmon.SelectedItem.ToString());
}
}

private void label5_Click(object sender, EventArgs e)
{

}

private void label4_Click(object sender, EventArgs e)
{

}

private void cbonhapten_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void btthoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void btreset_Click(object sender, EventArgs e)
{
rtbketqua.ResetText();
lbdanhsachchon.Items.Clear();
lbdanhsanhcacmon.Items.Clear();
btnngaythang.ResetText();
btnthoigian.ResetText();
cbonhapten.ResetText();

lbdanhsanhcacmon.Items.Add("bóng đá");
lbdanhsanhcacmon.Items.Add("bóng bàn");
lbdanhsanhcacmon.Items.Add("cầu lông");
lbdanhsanhcacmon.Items.Add("nhảy dù");
lbdanhsanhcacmon.Items.Add("bắn bi");
lbdanhsanhcacmon.Items.Add("bập bênh");
}

private void btchontungfile_Click(object sender, EventArgs e)
{
int i = lbdanhsanhcacmon.SelectedIndex;
string item = lbdanhsanhcacmon.Items[i].ToString();
lbdanhsachchon.Items.Add(item);
lbdanhsanhcacmon.Items.Remove(item);
}

private void btbohet_Click(object sender, EventArgs e)
{
int i;
int n = lbdanhsachchon.Items.Count;
for (i=0;i<=n-1;i++)
{
lbdanhsachchon.SelectedIndex = 0;
lbdanhsanhcacmon.Items.Add(lbdanhsachchon.SelectedItem.ToString());
lbdanhsachchon.Items.Remove(lbdanhsachchon.SelectedItem.ToString());
}
}

private void btbotungfile_Click(object sender, EventArgs e)
{
int i = lbdanhsachchon.SelectedIndex;
string item = lbdanhsachchon.Items[i].ToString();
lbdanhsanhcacmon.Items.Add(item);
lbdanhsachchon.Items.Remove(item);
}

private void btnhap_Click(object sender, EventArgs e)
{
int i;
int n = lbdanhsachchon.Items.Count;
rtbketqua.Text = cbonhapten.Text +
"\r\n" + btnngaythang.Text +
" " + btnthoigian.Text +
"\r\n** môn đã chọn: \r\n";
for (i=0;i<n;i++)
{
lbdanhsachchon.SelectedIndex = i;
rtbketqua.Text += lbdanhsachchon.Text + ",";
}

}
}
}

# data[].attributes.body
| Lê Thị Vân  | Anh 5
| Trịnh Bảo  | Đạt: trình bày 10
| Nguyễn Thùy  | Dung 5
| Nguyễn Trần Trường  | Giang 5
| Lê Thị Thu  | Hiền 5
| Lê Âu Minh  | Hiếu. 5

# data[].attributes.body
| Nguyễn Việt  | Anh: trình chiếu 10
| Đinh Thiên  | Bảo: trình bày 10
| Thiều Trung  | Chiến 8
| Phan Ngọc  | Đức 8
| Nguyễn Chí  | Dũng 8
| Trần Minh  | Hậu. 5

# data[].attributes.body
| Hoàng Xuân  | Hòa 5
| Võ Thanh  | Khang 5
| Đào Duy  | Luân 6
| Trần Hồ Phúc  | Nguyên 5
| Phạm Văn  | Phong: thuyết trình 10
| Quách Thành  | Long 5

# data[].attributes.body
| Nguyễn Tấn  | Phúc 5
| Trần Anh  | Qúi 5
| Nguyễn Khánh  | Tâm 4
| Lê Ngọc  | Thanh: thuyết trình 9
| Hoàng Thu  | Trang 5
| Trương Hạo  | Nam 5

# data[].attributes.body
| Nguyễn Minh  | Quân 5
| Lê Thanh  | Sơn: Thuyết trình 9
| Huỳnh Minh  | Tân 5
| Phạm Suối  | Tiên 5
| Hà Thị  | Trang 6
| Kiều Thị Huyền  | Nhi 5

# data[].attributes.body
| Võ Đình  | Tuấn 7
| Nguyễn Hoàng Hải  | Triều 5
| Lê Nhựt  | Nam: trình bày 8
| Nguyễn Xuân  | Trường 7
| Võ Thành  | Phú 5
| Trần Minh  | Hoàng 5

# data[].attributes.body
| Võ Văn  | Ý vắng
| Nguyễn Văn  | Phát: trình bày 8
| Hà Văn  | Hoàng 7
| Lý Minh  | Triệu 5
| Phạm Văn  | Quang 8

# data[].attributes.body
Code Form Chính:
public partial class FrmKhamRang : Form
{
int tongTien = 0;
HoaDon hoaDon;
Color colorButton;
public FrmKhamRang()
{
InitializeComponent();
ToolTip tip = new ToolTip();
tip.SetToolTip(groupBox1, "Các Dịch Vụ");
tip.SetToolTip(btnTinh, "Thanh Toán Nếu Bạn Đã Chọn Dịch Vụ Xong");
tip.SetToolTip(btnThoat, "Nhấn Để Thoát Chương Trình");
colorButton = btnTinh.BackColor;
}
#region Các Sự Kiện Của Checkbox
private void cbxTramRang_CheckedChanged(object sender, EventArgs e)
{
if(cbxTramRang.Checked==true)
{
tongTien += 100000;
}
else
{
tongTien -= 100000;
}
}
private void cbxNiengRang_CheckedChanged(object sender, EventArgs e)
{
if (cbxNiengRang.Checked == true)
{
tongTien += 200000;
}
else
{
tongTien -= 200000;
}
}
private void cbxCaoVoiRang_CheckedChanged(object sender, EventArgs e)
{
if (cbxCaoVoiRang.Checked == true)
{
tongTien += 300000;
}
else
{
tongTien -= 300000;
}
}
private void cbxTrongRangGia_CheckedChanged(object sender, EventArgs e)
{

if (cbxTrongRangGia.Checked == true)
{
txtSoLuongRangGia.Enabled = true;
}
else
{
txtSoLuongRangGia.Enabled = false;
}
}
#endregion

#region Các Sự Kiện Keypress
private void txtTen_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtTen.Text.Trim() == "")
{
MessageBox.Show("Bạn Chưa Nhập Tên ");
txtTen.Text = "";
txtTen.Focus();
}
else
{
btnTinh.Focus();
}
}
}
private void txtSoLuongRangGia_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
if (txtSoLuongRangGia.Text.Trim() == "")
{
MessageBox.Show("Mời Nhập Số Răng Giả");
txtSoLuongRangGia.Focus();
}
else
{
btnTinh.Focus();
}
}
else if ((e.KeyChar < 48 || e.KeyChar > 57)&&e.KeyChar!=8)
{
MessageBox.Show("Bạn Phải Nhập Số");
e.Handled = true;
txtSoLuongRangGia.Focus();
}
}
#endregion

#region Các Sự Kiện Click Của Các Button
private void btnTinh_Click(object sender, EventArgs e)
{
if(txtTen.Text.Trim()=="")
{
MessageBox.Show("Bạn Chưa Nhập Tên Khách Hàng");
txtTen.Text = "";
txtTen.Focus();
}
else
{
if (cbxTrongRangGia.Checked == true)
{
if(txtSoLuongRangGia.Text.Trim()=="")
{
MessageBox.Show("Bạn Phải Nhập Số Răng Giả Cho Dịch Vụ");
txtSoLuongRangGia.Text = "";
txtSoLuongRangGia.Focus();
}
else
{
int soluongRangGia = int.Parse(txtSoLuongRangGia.Text);
tongTien += 1000000 * soluongRangGia;
txtTongTien.Text = tongTien.ToString() + "đ";
hoaDon = new HoaDon(txtTen.Text, tongTien);
hoaDon.ShowDialog();
btnReset.Focus();
}
}
else
{
txtTongTien.Text = tongTien.ToString() + "đ";
hoaDon = new HoaDon(txtTen.Text, tongTien);
hoaDon.ShowDialog();
btnReset.Focus();
}
}
}
private void btnReset_Click(object sender, EventArgs e)
{
txtTen.Text = "";
txtTongTien.Text = "";
tongTien = 0;
foreach (CheckBox cbx in groupBox1.Controls.OfType<CheckBox>())
{
if (cbx.Checked == true)
{
cbx.Checked = false;
}
}
txtSoLuongRangGia.Text = "";
txtTen.Focus();
}
private void btnThoat_Click(object sender, EventArgs e)
{
DialogResult dl;
dl = MessageBox.Show("Bạn Có Chắc Muốn Thoát", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if(dl==DialogResult.Yes)
{
Close();
}
}
#endregion

#region Các Sự Kiện Rê Chuột
private void btnTinh_MouseMove(object sender, MouseEventArgs e)
{
btnTinh.BackColor = Color.Blue;
}
private void btnTinh_MouseLeave(object sender, EventArgs e)
{
btnTinh.BackColor = colorButton;
}
private void btnThoat_MouseMove(object sender, MouseEventArgs e)
{
btnThoat.BackColor = Color.Blue;
}
private void btnThoat_MouseLeave(object sender, EventArgs e)
{
btnThoat.BackColor = colorButton;
}
private void btnReset_MouseMove(object sender, MouseEventArgs e)
{
btnReset.BackColor = Color.Blue;
}
private void btnReset_MouseLeave(object sender, EventArgs e)
{
btnReset.BackColor = colorButton;
}
#endregion
}

Code Form Phụ:
public partial class HoaDon : Form
{
public HoaDon(string ten,int tongTien)
{
InitializeComponent();
lbTen.Text = ten;
lbTongTien.Text = tongTien.ToString()+"đ";
}
private void btnOk_Click(object sender, EventArgs e)
{
Close();
}
private void HoaDon_Load(object sender, EventArgs e)
{
if(lbTongTien.Text== "0đ")
{
lbTongTien.Text += " (Bạn Chưa Chọn Các Dịch Vụ)";
}
}
}

# data[].attributes.body
Code form 1:
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

private void btnchao_Click(object sender, EventArgs e)
{
formchao kt = new formchao();
kt.Message = khungnhapten.Text;
kt.Show();
}

private void btnthoat_Click(object sender, EventArgs e)
{
DialogResult thongbao;
thongbao = (MessageBox.Show("Bạn có muốn thoát ? ","thông báo ",MessageBoxButtons.YesNo, MessageBoxIcon.Warning));
if (thongbao == DialogResult.Yes)
Application.Exit();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1_Tick.Start();
}
}
}

Code form 2
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 btthuchanh4
{
public partial class formchao : Form
{
public formchao()
{
InitializeComponent();
}

private void btthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private string _message;
public String Message
{
get { return _message;}
set { _message = value;}
}
int day = DateTime.Now.Day;
int month = DateTime.Now.Month;
int year = DateTime.Now.Year;
int gio = DateTime.Now.Hour;
int phut = DateTime.Now.Minute;

private void formchao_Load(object sender, EventArgs e)
{
labelTen.Text = _message;
string s = labelTen.Text.Trim();
while (s.IndexOf("   ") >= 0)
s = s.Replace(" ", " ");
labelTen.Text = "Chào: "+s.ToString();
thoigian.Text = "Bây giờ là: " + gio + " Giờ " + phut + " Phút ";
ngaythangnam.Text ="Hôm nay là: " + "Ngày " + day + " Tháng " + month + " Năm " + year;
if(gio<13)
{ sangchieutoi.Text = "Nhóm 7 xin chào buổi sáng "+ s.ToString();}
else if (gio<=18)
{ sangchieutoi.Text = "Nhóm 7 xin chào buổi chiều "+ s.ToString();}
else
{ sangchieutoi.Text = "Nhóm 7 xin chào buổi tối "+ s.ToString();}
}
}
}

# data[].attributes.body
namespace bài_tập_4
{
public partial class Form1 : Form
{
int a, b, c, x, y, z;
public Form1()
{
InitializeComponent();
}

private void btthoat_Click(object sender, EventArgs e)
{
this.Close();
}

private void bttinhchatcuatamgiac_Click(object sender, EventArgs e)
{
a = Convert.ToInt32(btncanha.Text);
b = Convert.ToInt32(btncanhb.Text);
c = Convert.ToInt32(btncanhc.Text);
x = a * a;
y = b * b;
z = c * c;

if (a + b > c && a + b > b && b + c > a)
{
if (x == y || y == z ||z == x )
{
if (x == y && y == z)
lblketqua.Text = ("tam giác đều");
else
{
if (x == y + z || y == x + z || z == x + y)
lblketqua.Text = ("tam giác vuông cân");
else
lblketqua.Text = ("tam giac cân");
}
}
else
{
if (x == y + z || y == z + x || z == x + y)
lblketqua.Text = ("tam giac vuong");
else
lblketqua.Text = ("tam giác thường");
}
}
else
lblketqua.Text = ("ba cạnh ko tạo thành tam giác");
}
}
}

# data[].attributes.body
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 Bài_nhóm_bài_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void btnXoa_Click(object sender, EventArgs e)
{
txtKetqua.ResetText();
txtNhap.ResetText();
}

private string donvi (int n)
{
switch (n)
{
case 0: return "không";
case 1: return "một";
case 2: return "hai";
case 3: return "ba";
case 4: return "bốn";
case 5: return "năm";
case 6: return "sáu";
case 7: return "bảy";
case 8: return "tám";
default: return "chín";

}
}

private string hangchuc (int n)
{
switch (n)
{
case 0: return "linh";
case 1: return "mười";
case 2: return "hai mươi";
case 3: return "ba mươi";
case 4: return "bốn mươi";
case 5: return "năm mươi";
case 6: return "sáu mươi";
case 7: return "bảy mươi";
case 8: return "tắm mươi";
default: return "chín mươi";
}
}

private string hangtran (int n)
{
switch (n)
{
case 0: return "không trăm";
case 1: return "một trăm";
case 2: return "hai trăm";
case 3: return "ba trăm";
case 4: return "bốn trăm";
case 5: return "năm trăm";
case 6: return "sáu trăm";
case 7: return "bảy trăm";
case 8: return "tám trăm";
default: return "chín trăm";
}
}

private void btnThuchien_Click(object sender, EventArgs e)
{
string s, s1, s2, s3, k3, k1, k2;
int d, c, t;
s = txtNhap.Text;
if (s.Length == 1)
{
k1 = s.Substring(s.Length - 1, 1);
d = int.Parse(k1);
s1 = donvi(d);
txtKetqua.Text = s1;
}
else if (s.Length == 2)
{
k1 = s.Substring(s.Length - 1, 1);
k2 = s.Substring(s.Length - 2, 1);
d = int.Parse(k1);
c = int.Parse(k2);
s1 = donvi(d);
s2 = hangchuc(c);
txtKetqua.Text = s2 + " " + s1 + " ";
}

else if (s.Length == 3)
{
k1 = s.Substring(s.Length - 1, 1);
k2 = s.Substring(s.Length - 2, 1);
k3 = s.Substring(s.Length - 3, 1);
d = int.Parse(k1);
c = int.Parse(k2);
t = int.Parse(k3);
s1 = donvi(d);
s2 = hangchuc(c);
s3 = hangtran(t);
txtKetqua.Text = s3 + " " + s2 + " " + s1;
}

else
{
txtKetqua.Text = "chưa lập trình tới";
}
}

private void btnThoat_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

# data[].attributes.attachment_link.readable_text
Biến và kiểu dữ liệu cơ bản C#

Tạo dự án mẫu CS02VariablesConstantsIO để thực hành

Trước tiên để thực hành gõ các lệnh tạo dự án mới đặt tên tên là CS002_VariablesConstantsIO rồi sau đó mở nó ra bằng VSC

mkdir CS002_VariablesConstantsIO
cd CS002_VariablesConstantsIO/
dotnet new console
code .

Khi mở thư mục dự án bằng Visual Studio Code (VSC) ( có thể dùng lệnh code lệnh này có là do thiết lập VSC), trong VSC chọn menu View > Command Pallet ... gõ vào .NET - từ menu đổ xuống chọn mục: NET: Generate Assets for Build and Debug - để VSC thêm vào dự án file cấu hình build và chạy ứng dụng (trong thư mục.vscode).

Như phần Giới thiệu C#, bạn mở file Program.cs và bắt đầu viết code từ hàm Main trong file này.
Lưu ý
Để khi nhấn CTRL + F5 hay F5 chạy chương trình nó nhận tương tác tốt từ terminal thay có thể thay đổi cấu hình khởi chạy dự án của VSC. Hãy mở file./vscode/launch.json, tìm đến dòng"console": "internalTerminal" hãy thay bằng"console": "integratedTerminal" hoặc "console": "externalTerminal" (mở của sổ Terminal mới khi chay)

Biến trong C#

Biến dùng để lưu các giá trị dữ liệu vào bộ nhớ, giá trị lưu trữ vào đó có thể đọc và thay đổi bởi chương trình C# khi nó chạy. Để dùng biến, trước tiên phải đặt một cái tên cho biến và chỉ ra biến đó sẽ lưu loại dữ liệu nào (số nguyên - int, số thực double, chuỗi - string ...), việc này gọi là khai báo biến

Khi đặt tên biến C# cần lưu ý: tên biến có thể chứa chữ, số và ký tự _ nhưng ký tự đầu tiên của tên biến không được dùng số, tên biến trong C# có phân biệt chữ hoa chữ thường. Hãy đặt tên biến sao cho nó ngắn gọn nhưng gọi nhớ đến thông tin dữ liệu biến đó lưu trữ. Ví dụ như studentName, studentAge ... sẽ hay hơn abc, xyz ... Ngoài ra cũng không đặt tên biến trùng với những từ khóa dành riêng cho câu lệnh C#
Các từ khóa trong C#

abstract    as	        base	    bool        break	byte	    case
catch	    char        checked	    class       const	continue    decimal
default	    delegate	do          double      else	enum	    event
explicit    extern      false	    finally     fixed	float	    for
foreach	    goto        if          implicit    in      int
interface   internal	is          lock        long	namespace   new
null	    object      operator    out	        out     override    params
private	    protected	public	    readonly	ref     return	    sbyte
sealed	    short       sizeof	    stackalloc	static	string	    struct
switch	    this        throw	    true        try     typeof	    uint
ulong	    unchecked	unsafe	    ushort      using	virtual	    void
volatile    while

add         alias	ascending   descending	dynamic	from	    get
global      group	into	    join	let	orderby
partial     remove	select	    set

Khai báo biến để khai báo biến bạn cần chỉ ra kiểu dữ liệu của biến (như int, float, string ... sẽ tìm hiểu ngay sau đây) và tên biến, ví dụ:

//Khai báo biến có tên studentName, lưu loại dữ liệu chuỗi (string)
string studentName;

Ở trên bạn đã khai báo một biến có tên là studentName với kiểu dữ liệu là string, dòng khai báo đó kết thúc bởi ký hiệu ; là ký hiệu kết thúc câu lệnh C#

Câu lệnh C# là một tác vụ nào đó được chương trình C#, mặc định mỗi câu lệnh C# kết thúc bởi ký hiệu ;

Gán giá trị cho biến: ở trên, biến studentName đã được khai báo, nhưng nó chưa gán giá trị nào cả (nó chứa giá trị mặc định - tùy kiểu dữ liệu, như string là null, int là 0 ...), trước khi sử dụng biến - bạn cần gán giá trị cho biến, bạn có thể gán giá trị ngay tại dòng khai báo biến hoặc sử dụng toán trước khi biến được sử dụng.

// Khai báo biến và gán ngay giá trị lưu vào biến
string address = "Hà Nội, Việt Nam";

// Khai báo biến, sau đó trước khi sử dụng gán giá trị cho biến
int studentAge;
studentAge = 22;

Kiểu dữ liệu C# định nghĩa sẵn

Kiểu dữ liệu C# cơ bản, định nghĩa sẵn (buil-in) trong C# cơ bản có:

float số thực chấm động (dùng 32 bit biểu diễn phù hợp số có bảy chữ số, độ chính xác số dấu chấm động 1.5 × 10−45 đến 3.4 × 10³⁸)

object đối tượng, biểu diễn các đối tượng C#, nó là kiểu cơ sở - mọi đối tượng C# đều kế thừa từ kiểu này.

Ví dụ khai báo biến sử dụng vào kiểu dữ liệu trên.

int seconds = 60;                    //khai báo biến số nguyên
double so_pi = 3.14;                 //khai báo biến số thực
bool deltaIsSezo = true;             //Khai báo biến logic
char chooseAction = 'S' ;            //Khai báo biến kiểu ký tự
string msgResult = "Kết quả giải:" ; // khai báo biến chuỗi

Để biểu diễn giá trị của một chuỗi sử dụng ký hiệu "" như "nội - dung - chuỗi", nhưng biểu diễn một ký tự dùng ký hiệu '' như 'A'

Xuất dữ liệu ra màn hình Console

Thư viện lớp C# cung cấp sẵn một lớp tên là Console ( System.Console) trong đó có chữa một số phương thức tĩnh để nhập / xuất dữ liệu với màn hình dòng lệnh terminal. Một số phương thức bạn có thể sử dụng ngay trong việc in dữ liệu đó là:

Console.Write(value) - in value ra màn hình, nhưng không xuống dòng mới - value có thể là một số, chữ, chuỗi ...

Console.WriteLine(value) - in value ra màn hình, sau đó xuống dòng

Console.ForegroundColor - thuộc tính để gán màu chữ xuất ra, nó có thể gán các màu như ConsoleColor.Red, ConsoleColor.Green, ConsoleColor.White ...

Console.ResetColor() - đưa Console về màu mặc định

Ví dụ:

Console.WriteLine();                                                //Xuống dòng
Console.WriteLine();                                                //Xuống dòng

Console.ForegroundColor = ConsoleColor.DarkMagenta;                 //Đặt màu chữ
Console.WriteLine("XIN CHÀO - CHƯƠNG TRÌNH NHẬP XUẤT DỮ LIỆU");     //In dòng chữ
Console.ResetColor();                                               //Reset màu

Console.Write("Giá trị biến so_pi là : ");                          //In dòng chữ
Console.WriteLine(so_pi);                                           //In giá trị biến
Console.WriteLine();                                                //Xuống dòng

Chạy thử (CTRL + F5)

Bạn có thể dùng format string để tạo ra chuỗi in ra nhằm giảm thiểu dòng code.

int a = 123;
double b = 567.123;

Console.WriteLine("Biến a = {0}, biến b = {1}", a, b);

//Xuất ra: Biến a = 123, biến b = 567.123

Trong chuỗi định dạng trên chỗ nào có ký hiệu {0} thì sẽ được thay thế bởi tham số thứ nhất a, và ký hiệu {1} thì thay bởi tham số thứ 2.

Ngoài ra cũng định dạng để chèn cả một biểu thức vào vị trí ấn định trong chuỗi, nếu trước ký hiệu chuối điền ký tự $, thì trong chuỗi chỗ nào muốn thay bằng biểu thức thì viết biểu thực tại đó và bọc trong cặp{}

int a = 123;
double b = 567.123;

Console.WriteLine($"Biến a = {a}, biến b = {b} - tích là {a * b}");

//Xuất ra: Biến a = 123, biến b = 567.123 - tích là 69756.129

Nhập dữ liệu trong C#

Có hàm Console.ReadLine() cho phép nhập dữ liệu cho đến khi nhấn Enter, hàm này trả về chuỗi mà người dùng nhập vào. Tương tự hàm Console.ReadKey() trả về ngay thông tin phím bấm khi người dùng bấm, ở trường hợp này để lấy chữ mã người dùng bấm thì viết Console.ReadKey().KeyChar

string userLogin;
Console.Write("Nhập username : ");
userLogin = Console.ReadLine();
Console.WriteLine($"Tên nhập vào là: {userLogin}");
Chuyển kiểu dữ liệu
Mặc định hàm Console.ReadLine() trả về string nếu muốn chuỗi đó nhập xong chuyển thành các kiểu dữ liệu khác như int, float ... thì cần các hàm chuyển kiểu, một số hàm đó là:

Convert.ToInt32(value) chuyển value thành kiểu int

Convert.ToDouble(value) chuyển value thành kiểu double

Convert.ToBoolean(value) chuyển value thành kiểu bool

Console.Write("Nhập một số thức : ");
// Nhập chuỗi - chuyển ngay chuỗi đó thành số thực
double dinput = Convert.ToDouble(Console.ReadLine());
Console.WriteLine($"Số đã nhập là: {dinput}");

Khai báo biến kiểu ngầm định với var

Mặc định C# khi khai báo biến cần phải chỉ rõ một cách tường minh kiểu dữ liệu (int, float ...) của biến, ở ở các ví dụ trên. Để linh hoạt, C# còn có một cơ chế khai báo biến với từ khóa var, mà không cần chỉ rõ ngay kiểu dữ liệu của biến mà kiểu của biến được xác định theo kiểu biểu thức gán vào biến ngay sau đó. (cũng có nghĩa là phải khởi tạo ngay). Ví dụ:

var bien1 = 3.14;                                           // biến sẽ có kiểu double
var bien2 = 3;                                              // biến sẽ có kiểu int
var bien3 = "Biến khai báo với var phải khởi tạo ngay";     // string
var bien4 = (5 < 4);                                        // bool

Hãy thử tạo breakpoint tại biến 1, tiến hành nhấn F5 để Debug, sau đó Step Into F11 qua từng dòng để thấy thông tin thực sự các biến trên, bạn sẽ thấy kiểu dữ liệu của biến nó được xác định giống như biểu thức gán vào biến

Nếu dùng var khai báo mà không khởi tạo sẽ lỗi; ví dụ var a; sẽ lỗi nhưng var a = 123; thì đúng chuẩn.

Sử dụng var có ích giúp code ngắn gọn ở rất nhiều trường hợp với các kiểu dữ liệu phức tạp sau này.

Hằng số trong C#

Hằng số lưu trữ các giá trị mà không thay đổi được nữa, dùng từ khóa const để khai báo hằng số (như khai báo, khởi tạo biến nhưng phía trước có từ khóa const)

const string MON = "THỨ HAI";
Console.WriteLine(MON);

Source code: CS002_VariablesConstantsIO (Git), hoặc tải ex002

# data[].attributes.attachment_link.title
Biến hằng số kiểu dữ liệu và nhập xuất dữ liệu C# .NET Core

# data[].attributes.attachment_link.description
Tạo dự án mẫu CS02VariablesConstantsIO để thực hành Trước tiên để thực hành gõ các lệnh tạo dự án mới đặt tên tên là CS002_VariablesConstantsIO rồi sau đó mở nó ra bằng VSC mkdir CS002_VariablesConstantsIO cd CS002_VariablesConstantsIO/ dotnet new console code .

# data[].attributes.body
bài làm