BÁO CÁO:
BÀI TẬP TỔNG HỢP 1
Nhóm 9:
Vũ Huyền Anh
Hà Thị Ánh
Phần 1: Cấu tạo của chương trình bài tập tổng hợp 1
Chương trình được chia làm 7 from:
From 1: Trang để đăng nhập
Form 2: Menu chính
Form 3: Các loại phương trình (bậc 1, bậc 2)
Form 4: Giải phương trình bậc 1
Form 5: Giải phương trình bậc 2
Form 6: Kiểm tra các loại số (số hoàn hảo, số chính phương, số nguyên tố)
Form 7: Cấu trúc dữ liệu và giải thuật
Sơ đồ liên kết các Form:
Phần 2: Cấu tạo từng Form
2.1 Form 1 – Trang đăng nhập:
Form 1 bao gồm các Label, Textbox, Button và Check Box.
Các Button đã được lập trình là: Nút “LOGIN” và nút “QUIT”
private void exit_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
if (texttaikhoan.Text == "" || textmatkhau.Text == "")
{
MessageBox.Show("Yêu cầu nhập tài khoản và mật khẩu");
}
if(texttaikhoan.Text == "huyenanh" && textmatkhau.Text == "123")
{
MENUCHINH fk = new MENUCHINH();
fk.Show();
Visible = false;
}else
{
if(texttaikhoan.Text == "anhha" && textmatkhau.Text == "123")
{
MENUCHINH fk = new MENUCHINH();
fk.Show();
Visible = false;
}
}
}
Check Box đã được lập trình là tuỳ chọn có hiển thị mật khẩu hay không:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
textmatkhau.UseSystemPasswordChar = false;
}
else textmatkhau.UseSystemPasswordChar = true;
}
2.2 Form 2 – Menu chính:
Ở trang này ta có 4 Button là : “Giải phương trình”, “Kiểm tra các loại số”, “Mảng” có nhiệm vụ để chuyển sang trang với chức năng người dùng cần sử dụng và nút “ Thoát” có nhiệm vụ để thoát phần mềm này.
Code Button 1: “Giải phương trình”
private void button1_Click(object sender, EventArgs e)
{
giaipt fk = new giaipt();
fk.Show();
Visible = false;
}
Code Button 2: “Kiểm tra các loại số”
private void button2_Click(object sender, EventArgs e)
{
ktraso fk = new ktraso();
fk.Show();
Visible = false;
}
Code Button 3: “Mảng”
private void button3_Click(object sender, EventArgs e)
{
mang fk = new mang();
fk.Show();
Visible = false;
}
Code Button 4: “Thoát”
private void nutthoat_Click(object sender, EventArgs e)
{
this.Close();
}
Khi kích vào nút Giải phương trình sẽ chuyển sang Form 3 và Form 2 sẽ được đóng lại.
2.3: Form 3 – Các loại phương trình cơ bản:
Ở trang này ta tiếp tục có 3 nút: “Giải phương trình bậc nhất”, “Giải phương trình bậc hai” để chuyển sang các form tương ứng với các loại phương trình cần giải và nút “Trở về” để quay về trang trước đó là form 2 – Menu chính.
Code: tương tự như code của các nút ở trong form 2.
2.4: Form 4 –Giải phương trình bậc nhất
Ở đây ta có 3 nút:
-
Nút “Kết quả”: Đưa ra nghiệm của phương trình
private void button1_Click(object sender, EventArgs e)
{
if (textb.Text == "" || texta.Text == "")
{
MessageBox.Show("Yêu cầu nhập giá trị của a và b!");
}
double x;
double a1 = Convert.ToDouble(texta.Text);
double b1 = Convert.ToDouble(textb.Text);
if (a1 != 0 && b1 != 0)
{
x = -b1 / a1;
MessageBox.Show("Phương trình có nghiệm x =" + x);
}
else
{
if (a1 == 0 && b1 != 0) MessageBox.Show("Phương trình vô nghiệm");
else
{
if (a1 != 0 && b1 == 0) MessageBox.Show("Phương trình nghiệm x = 0");
else MessageBox.Show("Phương trình có vô số nghiệm");
}} }
-
Nút “Xoá”: Xoá đi các giá trị “a” và “b” để nhập các giá trị mới
private void button2_Click(object sender, EventArgs e)
{
texta.Text = "";
textb.Text = "";
}
-
Nút “Trở về”: Để trở về trang trước
private void nutthoat_Click(object sender, EventArgs e)
{
giaipt fk = new giaipt();
fk.Show();
Visible = false;
}
2.5: Form 5 – Giải phương trình bậc hai
Ở đây ta có tương tự như Form 4 cũng có 3 nút chỉ khác ở code của phần nút “ Kết quả”:
Code: private void button1_Click(object sender, EventArgs e)
{
if (textb.Text == "" || texta.Text == "" || textc.Text == "")
{
MessageBox.Show("Yêu cầu nhập giá trị của a, b và c!");
}
double deta, x1, x2;
double a1 = Convert.ToDouble(texta.Text);
double b1 = Convert.ToDouble(textb.Text);
double c1 = Convert.ToDouble(textc.Text);
if (a1 == 0)
MessageBox.Show("Điều kiện của phương trình bậc 2 là a phải khác 0!");
else
{
deta = b1 * b1 - 4 * a1 * c1;
if (deta < 0) MessageBox.Show("Phương trình vô nghiệm!");
else
{
if (deta > 0)
{
x1 = (-b1 + (float)Math.Sqrt(deta)) / (2 * a1);
x2 = (-b1 - (float)Math.Sqrt(deta)) / (2 * a1);
MessageBox.Show("Phương trình có nghiệm x1=" + x1 + " và x2= " + x2);
} else
{
x1 = -b1 / (2 * a1);
MessageBox.Show("Phương trình có 1 nghiệm kép x =" + x1);
}
}
}
}
2.7: Form 6 – Kiểm tra các loại số
Ta có tất cả 5 nút trong đó có 3 nút kiểm tra số có phải các số đặc biệt cần kiểm tra không:
private void button1_Click(object sender, EventArgs e)
{
if (textkiemtra.Text == "") MessageBox.Show("Chưa nhập số sao kiểm tra!");
int a = Convert.ToInt32(textkiemtra.Text);
int dem = 0;
if( a >= 4 )
{
for (int i = 2; i <= a; i++)
{
if (i * i == a) dem = dem + 1;
} if (dem == 1) MessageBox.Show("Số " + a + " là số chính phương");
else MessageBox.Show("Số " + a + " không là số chính phương");
}else MessageBox.Show("Số " + a + " không là số chính phương");
}
private void button2_Click(object sender, EventArgs e)
{
if (textkiemtra.Text == "") MessageBox.Show("Chưa nhập số sao kiểm tra!");
int a = Convert.ToInt32(textkiemtra.Text);
int dem = 0;
if (a == 2 ) MessageBox.Show("Số 2 là số nguyên tố");
else
{if (a > 2)
{
for (int i = 1 ; i <= a; i++)
{
if (a % i == 0) dem = dem + 1;
}
if (dem == 2) MessageBox.Show("Số " + a + " là số nguyên tố");
else MessageBox.Show("Số "+ a + " Không phải số nguyên tố");
}else MessageBox.Show("Số " + a + " Không phải số nguyên tố");
}
}
private void button3_Click(object sender, EventArgs e)
{
if (textkiemtra.Text == "") MessageBox.Show("Chưa nhập số sao kiểm tra!");
int a = Convert.ToInt32(textkiemtra.Text);
int tong = 0;
for ( int i = 1; i < a; i++)
{
if (a % i == 0) tong = tong + i;
}
if (tong == a) MessageBox.Show("Số " + a + " là số hoàn hảo");
else MessageBox.Show("Số " + a + " không là số hoàn hảo");
}
Còn lại hai nút còn lại tương tự như các nút đã xuất hiện ở các Form trước đó.
2.8: Form 7 – Cấu trúc dữ liệu và giải thuật
Trong form này ta có các nút:
private void button_TaoTuDong_Click(object sender, EventArgs e)
{
int n = int.Parse(text_SoLuongPhanTu.Text);
M = new int[n];
label_htMangNhap.Text = "";
for (i = 0; i < n; i++)
{
M[i] = rado.Next(100);
label_htMangNhap.Text += M[i] + " ";
}
}
private void nutTaoThuCong_Click(object sender, EventArgs e)
{
int n = int.Parse(text_SoLuongPhanTu.Text);
M = new int[n];
nutNhap.Enabled = true;
nutTaoTuDong.Enabled = true;
text_Nhappt.Enabled = true;
label_NhapPhanTu.Enabled = true;
count = 0;
}
private void nutNhap_Click(object sender, EventArgs e)
{
M[count] = int.Parse(text_Nhappt.Text);
count++;
int dem = count + 1;
nguon VI OLET