Professional Documents
Culture Documents
LỜI CẢM ƠN
Sau quá trình họ c tậ p và rèn luyện tạ i khoa Cô ng nghệ thô ng tin trườ ng Đạ i họ c
Trầ n Đạ i Nghĩa chú ng em đã đượ c trang bị cá c kiến thứ c cơ bả n, cá c kỹ năng thự c
tế để có thể hoà n thà nh đồ á n mô n họ c củ a mình.
Trong quá trình là m đồ á n mô n khô ng trá nh khỏ i đượ c nhữ ng sai só t, chú ng em
mong nhậ n đượ c sự gó p ý củ a quý thầ y và cá c bạ n để đượ c hoà n thiện hơn.
GVHD: ĐẶ NG THẾ HÙ NG
1
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
MỤC LỤC
GVHD: ĐẶ NG THẾ HÙ NG
2
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Hệ thố ng quả n lí điểm sinh viên này sẽ giú p cô ng tá c quả n lí điểm Sinh viên
Trườ ng Đạ i họ c Trầ n Đạ i Nghĩa giả i quyết đượ c nhữ ng khó khă n trên và tă ng tính
hiệu quả cho cô ng tá c quả n lí.
GVHD: ĐẶ NG THẾ HÙ NG
3
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
GVHD: ĐẶ NG THẾ HÙ NG
4
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
không có gì lầm lẫn thì tập hợp các đặc tính này gọi chung là đặc tính của đối
tượng.
Lập trình hướng đối tượng là một phương pháp lập trình có 4 tính chất chính sau:
Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ
qua hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm
việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết. Mỗi đối
tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội
bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà
không cần cho biết làm cách nào đối tượng tiến hành được các thao tác. Tính chất
này thường được gọi là sự trừu tượng của dữ liệu.
Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một số
đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản
thân đối tượng ban đầu này có thể không có các biện pháp thi hành. Tính trừu
tượng này thường được xác định trong khái niệm gọi là lớp trừu tượng hay lớp cơ
sở trừu tượng.
Tính đóng gói (encapsulation) và che giấu thông tin (information
hiding): Tính chất này không cho phép người sử dụng các đối tượng thay đổi
trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng
cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác
động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy
thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn của đối tượng.
Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông
điệp (message). Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm
bên trong của một đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ
tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau.
Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các
phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng
cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng
theo đặc tính của từng đối tượng mà không bị nhầm lẫn.
Ví dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì có một
phương thức chung là "chu_vi". Khi gọi phương thức này thì nếu đối tượng là
"hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là "hinh_tron".
Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể
có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa. Điều này cho
phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến
hành định nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào
cũng có tính chất này.
GVHD: ĐẶ NG THẾ HÙ NG
5
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Giai đoạ n khả o sá t là mộ t trong 6 giai đoạ n rấ t quan trọ ng. Và trong
quá trình họ c tậ p tô i thấ y rằ ng hệ thố ng quả n lý điểm đang cò n nhiều bấ t
cậ p và khó khă n. Nhậ p và tính toá n điểm bằ ng Excel, Sinh viên chưa thể tự
độ ng xem và theo dõ i điểm củ a mình trong suố t quá trình theo họ c tạ i
trườ ng. Đặ c biệt gặ p khó khă n trong quá trình tổ ng kết điểm và thà nh tích
họ c tậ p củ a sinh viên và o dịp cuố i nă m họ c.
GVHD: ĐẶ NG THẾ HÙ NG
6
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
GVHD: ĐẶ NG THẾ HÙ NG
7
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Danh sá ch mô n họ c
Bả ng điểm cá nhâ n
Họ tên:............................................. Lớ p:..........................................................
............
Ngà y sinh:...................................... Khó a:...........................................................
Giớ i tính:......................................... Chuyên ngà nh:........................................
Quê quá n:....................................... Hệ đà o tạ o:...............................................
Danh sá ch họ c bổ ng
In phiếu điểm
Cập nhật điểm MH
Dù ng kí hiệu hình elip để miêu tả tá c nhâ n bên ngoà i củ a hệ thố ng, tên tá c
nhâ n ghi bên trong.
Sinh viên
GVHD: ĐẶ NG THẾ HÙ NG
9
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
B
áo
cá
o BỘ PHẬN QUẢN LÝ
BỘ PHẬN QUẢN LÝ kế
Q t SINH VIÊN
ĐÀO TẠO u q
y u
tắ ả -Tiếp nhận thông tin
-Tiếp nhận danh sách ch c từ
tí n sinh viên
sinh viên u n g
ẩn h kỳ
to -Cập nhật danh sách
-Pha công lớp theo xé sinh viên
t án
chuyên nghành
+
ti - In danh sách sinh
- Phân công giáo êu viên
viên giảng dạy
-In thẻ sinh viên
Th Th
ờ M ô
ik ã Th n
h số ẻ g
ó si ti
a si n n
b n h si
iể h K vi n
vi ết h
u ên ên vi
q
u ên
ả
sa
Điểm sau thi u
GIÁO VIÊN BỘ MÔN th
i
SINH VIÊN
BỘ PHẬN BAN
KHẢO THÍ
Điểm trước thi
-Tiếp nhận kiểm tra
phiếu điểm
Ký tên khi thi
-Cập nhật điểm môn
học
-Thống kê
GVHD: ĐẶ NG THẾ HÙ NG
10
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
CHƯƠNG 3: CÁC CHỨC NĂNG CHÍNH CỦA PHẦN MỀM QUẢN LÝ ĐIỂM SINH
VIÊN
1. Quản lý người dùng
GVHD: ĐẶ NG THẾ HÙ NG
11
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Form nhậ p thô ng tin sinh viên chỉ sử dụ ng bả ng dữ liệu sinh viên
Chứ c năng củ a giao diên: cậ p nhậ t thô ng tin cầ n thiết củ a mộ t sinh viên khi
mớ i và o trườ ng, trong giao diện có cá c nú t lệnh
Thêm: thêm mộ t bả ng ghi mớ i, trong đó có đầ y đủ thô ng tin sinh viên
Sử a: khi có sự sai só t trong quá trình điền thô ng tin nú t lệnh này cho
phép ngườ i nhậ p có thể sử a bấ t kỳ mộ t thô ng tin nà o
Xó a: xó a toà n bộ bả ng ghi đã chọ n
Thoá t: thoá t khỏ i form nhậ p thô ng tin
GVHD: ĐẶ NG THẾ HÙ NG
12
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Điểm trung bình đượ c tính theo cô ng thứ c : (điểm lầ n 1+ (điểm lầ n 2 *2))/3.
GVHD: ĐẶ NG THẾ HÙ NG
13
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
GVHD: ĐẶ NG THẾ HÙ NG
14
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Khoa
Sinh viên
-Mã khoa
-Tên khoa
-Mã sinh viên
-Họ và tên
-Ngày sinh
-Giới tính
-Địa chỉ
-Mã lớp
Lớp
-Mã lớp
Kết quả -Tên lớp
-Mã khoa
-Mã môn học Giáo viên
-Mã sinh viên
-Điểm trung bình - Mã giáo viên
-Điểm thi lần 1 -Tên giáo viên
-Điểm thi lần 2 Môn học -Giới tính
-Điểm tổng kểt -Ngày sinh
-Học kì - Mã môn học -Email
-Hạnh kiểm -Tên môn học -Sốđiện thoại
-Ghi chú -Mã khoa -Phân loại GV
- Mã GV
-Học kì
-Số đơn vị học phần
GVHD: ĐẶ NG THẾ HÙ NG
15
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmGiangVien : Form
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
public frmGiangVien()
{
InitializeComponent();
}
private void frmGiangVien_Load(object sender, EventArgs e)
{
conn = cc.Connected();
if (conn.State == ConnectionState.Open) ;
string sql = "select * from [Quanlydiem].[dbo].[tblGIANG_VIEN]";
SqlCommand commandsql = new SqlCommand(sql, conn);
SqlDataAdapter com = new SqlDataAdapter(commandsql);
DataTable table = new DataTable();
com.Fill(table);
dgrDSGV.DataSource = table;
GVHD: ĐẶ NG THẾ HÙ NG
16
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
}
// Chức năng nhập
private void button1_Click(object sender, EventArgs e)
{
errorProvider1.Clear();
if (txtMaGV.Text == "")
{
errorProvider1.SetError(txtMaGV, "Mã giảng viên không để trống!");
}
else if (reader2.Read())
{
MessageBox.Show("Bạn đã nhập trùng mã giảng viên", "Thông báo !",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtMaGV.Focus();
cmd2.Dispose();
reader2.Dispose();
}
else
{
// Trả tài nguyên
cmd2.Dispose();
reader2.Dispose();
// Thực hiện truy vấn
string insert = "Insert Into
tblGIANG_VIEN(MaGV,TenGV,Gioitinh,Phone,Email,PhanloaiGV)" +"Values('" +
txtMaGV.Text + "',N'" + txtHoTen.Text + "',N'" + cboGioiTinh.Text + "','" +
mskPhone.Text + "','" + txtEmail.Text + "',N'" + cboPhanloai.Text + "')";
SqlCommand cmd = new SqlCommand(insert, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Thêm mới thành công", "Thông báo!");
}
// Trả tài nguyên
cmd2.Dispose();
reader2.Dispose();
//Fill du lieu
FillDataGridView_SV();
}
GVHD: ĐẶ NG THẾ HÙ NG
17
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
// Đưa ra DataGridView
dgrDSGV.DataSource = ds;
dgrDSGV.DataMember = "SINHVIEN";
cmd.Dispose();
}
}
// Chức năng Xóa
private void button3_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bạn có chắc chắn muốn xóa ?", "Thông báo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
// Thuc hien xoa du lieu
GVHD: ĐẶ NG THẾ HÙ NG
18
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
errorProvider1.Clear();
if (txtMaGV.Text == "")
errorProvider1.SetError(txtMaGV, "Mã giảng viên không để trống!");
else
{
// Thực hiện truy vấn
string update = "Update tblGIANG_VIEN Set TenGV=N'" +
txtHoTen.Text + "',GioiTinh=N'" +
cboGioiTinh.Text + "',Phone='" + mskPhone.Text +
"',Email='" +
txtEmail.Text + "',PhanLoaiGV=N'" +
cboPhanloai.Text + "' where MaGV='" + txtMaGV.Text + "'";
SqlCommand cmd = new SqlCommand(update, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
//Load lai du lieu
FillDataGridView_SV();
// Trả tài nguyên
cmd.Dispose();
}
}
GVHD: ĐẶ NG THẾ HÙ NG
19
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmQLSV : Form
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
public frmQLSV()
{
InitializeComponent();
}
cboKhoahoc.Items.Add(reader.GetString(0));
}
GVHD: ĐẶ NG THẾ HÙ NG
20
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
reader.Dispose();
cmd.Dispose();
cboMalop.Items.Add(reader1.GetString(0));
}
reader1.Dispose();
cmd1.Dispose();
//Load lai du lieu
FillDataGridView_SV();
errorProvider1.Clear();
if (txtMaSV.Text == "")
{
errorProvider1.SetError(txtMaSV, "Mã sinh viên không để trống!");
}
else if (cboMalop.Text == "")
{
errorProvider1.SetError(cboMalop, "Mã lớp không để trống!");
}
else if (reader2.Read())
{
MessageBox.Show("Bạn đã nhập trùng mã sinh viên ", "Thông
báo !",MessageBoxButtons.OK,MessageBoxIcon.Warning);
txtMaSV.Focus();
cmd2.Dispose();
reader2.Dispose();
}
GVHD: ĐẶ NG THẾ HÙ NG
21
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
else
{
// Trả tài nguyên
cmd2.Dispose();
reader2.Dispose();
// Thực hiện truy vấn
string insert = "Insert Into
tblSINH_VIEN(MaSV,HoTen,Ngaysinh,Gioitinh,DiaChi,Malop)" +"Values('" +
txtMaSV.Text + "',N'" + txtHoTen.Text + "','" +mskNgaySinh.Text + "',N'" +
cboGioiTinh.Text + "',N'" + txtDiaChi.Text + "','" + cboMalop.Text + "')";
SqlCommand cmd = new SqlCommand(insert, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Thêm mới thành công", "Thông báo!");
cmd.Dispose();
}
// Trả tài nguyên
cmd2.Dispose();
reader2.Dispose();
//Load lai du lieu
FillDataGridView_SV();
}
public void FillDataGridView_SV()
{
// Thực hiện truy vấn
string select = "Select * From tblSINH_VIEN ";
SqlCommand cmd = new SqlCommand(select, conn);
// Đưa ra DataGridView
dgrDSSV.DataSource = ds;
dgrDSSV.DataMember = "SINHVIEN";
cmd.Dispose();
}
// Chức năng xóa
private void btnXoa_Click(object sender, EventArgs e)
{
//Kiem tra
GVHD: ĐẶ NG THẾ HÙ NG
22
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
if (reader1.Read())
{
{
MessageBox.Show("Bạn phải xóa Mã Sinh viên " + txtMaSV.Text +
"từ bảng Kết quả học tập", "Thông báo", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
else if (MessageBox.Show("Bạn có chắc chắn muốn xóa ?", "Thông báo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
reader1.Dispose();
cmd1.Dispose();
// Thuc hien xoa du lieu
else
{
// Thực hiện truy vấn
string update = "Update tblSINH_VIEN Set HoTen=N'" + txtHoTen.Text +
"',NgaySinh='" +
mskNgaySinh.Text + "',GioiTinh=N'" + cboGioiTinh.Text + "',DiaChi=N'" +
txtDiaChi.Text + "',MaLop='" + cboMalop.Text + "'where MaSV='" + txtMaSV.Text +
"'";
SqlCommand cmd = new SqlCommand(update, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
//Load lai du lieu
FillDataGridView_SV();
GVHD: ĐẶ NG THẾ HÙ NG
23
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
cboLop.Items.Add(reader.GetString(0));
}
//Tra tai nguyen
reader.Dispose();
cmd.Dispose();
// Đưa ra DataGridView
dgrDSSV.DataSource = ds;
dgrDSSV.DataMember = "SINHVIEN";
cmd.Dispose();
}
GVHD: ĐẶ NG THẾ HÙ NG
24
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
} } }
2.3. Lớp quản lý lớp
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmLop : Form
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
public frmLop()
{
InitializeComponent();
}
conn = cc.Connected();
if (conn.State == ConnectionState.Open) ;
string sql = " select * from [Quanlydiem].[dbo].[tblLOP]";
SqlCommand commandsql = new SqlCommand(sql, conn);
SqlDataAdapter com = new SqlDataAdapter(commandsql);
DataTable table = new DataTable();
GVHD: ĐẶ NG THẾ HÙ NG
25
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
com.Fill(table);
dgrLop.DataSource = table;
cboKhoa.Items.Add(reader.GetString(0));
}
reader.Dispose();
cmd.Dispose();
txtMaLop.Focus();
}
else if (reader1.Read())
{
reader1.Dispose();
cmd1.Dispose();
// Thực hiện truy vấn
string insert = "Insert Into tblLOP(MaLop,TenLop,Makhoa)" + "Values('" +
txtMaLop.Text + "',N'" + txtTenlop.Text + "','" + cboKhoa.Text + "')";
SqlCommand cmd = new SqlCommand(insert, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Nhập thông tin thành công", "Thông báo!");
cmd.Dispose();
GVHD: ĐẶ NG THẾ HÙ NG
26
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
}
else
{
MessageBox.Show("Nhập mã khoa không chính xác !", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboKhoa.Focus();
reader1.Dispose();
cmd1.Dispose();
}
reader1.Dispose();
cmd1.Dispose();
}
public void FillDataGridView_Lop()
{
// Thực hiện truy vấn
string select = "Select * From tblLop ";
SqlCommand cmd = new SqlCommand(select, conn);
// Đưa ra DataGridView
dgrLop.DataSource = ds;
dgrLop.DataMember = "SINHVIEN";
cmd.Dispose();
}
if (reader1.Read())
{
{
GVHD: ĐẶ NG THẾ HÙ NG
27
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
}
}
GVHD: ĐẶ NG THẾ HÙ NG
28
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmKhoa : Form
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
public frmKhoa()
{
InitializeComponent();
}
GVHD: ĐẶ NG THẾ HÙ NG
29
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
else if (reader1.Read())
{
{
MessageBox.Show("Thông tin đã tồn tại !", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtKhoa.Focus();
cmd.Dispose();
//Fill du lieu vao Database
FillDataGridView_Khoa();
}
}
// Đưa ra DataGridView
dgrKhoa.DataSource = ds;
dgrKhoa.DataMember = "SINHVIEN";
cmd.Dispose();
}
GVHD: ĐẶ NG THẾ HÙ NG
30
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
conn = cc.Connected();
if (conn.State == ConnectionState.Open) ;
string sqlkhoa = "select * from [Quanlydiem].[dbo].[tblKHOA]";
SqlCommand comand = new SqlCommand(sqlkhoa, conn);
SqlDataAdapter sqlcom = new SqlDataAdapter(comand);
DataTable table = new DataTable();
sqlcom.Fill(table);
dgrKhoa.DataSource = table;
}
if (reader1.Read())
{
{
MessageBox.Show("Bạn phải xóa Mã Khoa "+ txtKhoa.Text +"từ
bảng Lớp","Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else if (MessageBox.Show("Bạn có chắc chắn muốn xóa ?", "Thông báo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
// Thuc hien xoa du lieu
reader1.Dispose();
cmd1.Dispose();
SqlCommand cmd = new SqlCommand("delete from tblKHOA where
MaKhoa='" + txtKhoa.Text + "'", conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Xóa dữ liệu thành công", "Thông báo!");
GVHD: ĐẶ NG THẾ HÙ NG
31
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmQLDiem : Form
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
GVHD: ĐẶ NG THẾ HÙ NG
32
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
public frmQLDiem()
{
InitializeComponent();
}
cboLop.Items.Add(reader.GetString(0));
}
//Tra tai nguyen
reader.Dispose();
cmd.Dispose();
}
conn = cc.Connected();
if (conn.State == ConnectionState.Open) ;
string sql = " select * from [Quanlydiem].[dbo].[tblKET_QUA2]";
SqlCommand commandsql = new SqlCommand(sql, conn);
SqlDataAdapter com = new SqlDataAdapter(commandsql);
DataTable table = new DataTable();
com.Fill(table);
dgrDiem.DataSource = table;
cboKhoaHoc.Items.Add(reader.GetString(0));
}
reader.Dispose();
cmd.Dispose();
GVHD: ĐẶ NG THẾ HÙ NG
33
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
cboMonHoc.Items.Add(reader.GetString(0));
}
//Tra tai nguyen
reader.Dispose();
cmd.Dispose();
}
}
GVHD: ĐẶ NG THẾ HÙ NG
34
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
}
//Tra tai nguyen
reader1.Dispose();
cmd1.Dispose();
}
//Tra tai nguyen
reader1.Dispose();
cmd1.Dispose();
//Load lai du lieu
FillDataGridView_Diem();
}
GVHD: ĐẶ NG THẾ HÙ NG
35
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
{
// Thực hiện truy vấn
string select = "Select * From tblKET_QUA ";
SqlCommand cmd = new SqlCommand(select, conn);
// Đưa ra DataGridView
dgrDiem.DataSource = ds;
dgrDiem.DataMember = "SINHVIEN";
cmd.Dispose();
}
GVHD: ĐẶ NG THẾ HÙ NG
36
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
// }
GVHD: ĐẶ NG THẾ HÙ NG
37
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
if (txtDiemThi1.Text == "")
{
this.txtDiemThi1.Text = "0";
DIEMTB = double.Parse(this.txtDiemTB.Text);
//Tính điểm TK
DIEMTK = (0.3 * DIEMTB + 0.7 * 0);
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
else if (txtDiemTB.Text == "")
{
GVHD: ĐẶ NG THẾ HÙ NG
38
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
this.txtDiemTB.Text = "0";
DIEMTHI = double.Parse(this.txtDiemThi1.Text);
//Tính điểm TK
DIEMTK = (0.3 * 0 + 0.7 * DIEMTHI);
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
else
{
DIEMTHI = double.Parse(this.txtDiemThi1.Text);
DIEMTB = double.Parse(this.txtDiemTB.Text);
//Tính điểm TK
DIEMTK = (0.3 * DIEMTB + 0.7 * DIEMTHI);
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
DIEMTK = double.Parse(this.txtDiemTK.Text);
if (DIEMTK <= 4.5)
{
this.txtGhiChu.Text = "Thi lại";
}
else
{
this.txtGhiChu.Text = "";
}
if (txtDiemTB.Text == "")
{
this.txtDiemTB.Text = "0";
DIEMTHI = double.Parse(this.txtDiemThi1.Text);
//Tính điểm TK
DIEMTK = (0.3 * 0 + 0.7 *DIEMTHI);
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
else if (txtDiemThi1.Text == "")
{
this.txtDiemThi1.Text = "0";
DIEMTB = double.Parse(this.txtDiemTB.Text);
//Tính điểm TK
DIEMTK = (0.3 * DIEMTB + 0.7 * 0);
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
else
{
DIEMTHI = double.Parse(this.txtDiemThi1.Text);
DIEMTB = double.Parse(this.txtDiemTB.Text);
//Tính điểm TK
DIEMTK = (0.3 * DIEMTB + 0.7 * DIEMTHI);
GVHD: ĐẶ NG THẾ HÙ NG
39
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
this.txtDiemTK.Text = Convert.ToString(DIEMTK);
}
DIEMTK = double.Parse(this.txtDiemTK.Text);
if ((DIEMTK <= 4.5))
{
this.txtGhiChu.Text = "Thi lại";
}
else
{
this.txtGhiChu.Text = "";
}
}
}
2.6. Lớp quản lý người dùng
namespace Quản_lý_điểm_sinh_vien_CNTT
{
public partial class frmQuanLyNguoiDung : Form
GVHD: ĐẶ NG THẾ HÙ NG
40
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
{
private CommonConnect cc = new CommonConnect();
SqlConnection conn = null;
public frmQuanLyNguoiDung()
{
InitializeComponent();
}
errorProvider1.Clear();
if (txtTaikhoan.Text == "")
{
errorProvider1.SetError(txtTaikhoan, "Tên tài khoản không để
trống !");
txtTaikhoan.Focus();
}
else if (txtMK.Text == "")
{
errorProvider1.SetError(txtMK, "Bạn chưa nhập mật khẩu !");
txtMK.Focus();
}
else if (txtConfimMk.Text == "")
{
errorProvider1.SetError(txtConfimMk, "Bạn chưa nhập lại mật
khẩu !");
txtConfimMk.Focus();
}
else if (txtConfimMk.Text != txtMK.Text)
else if (reader2.Read())
{
MessageBox.Show("Tài khoản " + txtTaikhoan.Text + " đã tồn tại",
"Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtTaikhoan.Focus();
cmd2.Dispose();
reader2.Dispose();
}
else
{
// Trả tài nguyên
cmd2.Dispose();
GVHD: ĐẶ NG THẾ HÙ NG
41
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
reader2.Dispose();
// Thực hiện truy vấn
string insert = "Insert Into
tblLOGIN(TenDN,MatKhau,HoTen,Gioitinh,Phone,Email,Quyen)" + "Values('" +
txtTaikhoan.Text + "','" + txtMK.Text + "',N'" + txtHoTen.Text + "',N'" +
cboGioiTinh.Text + "','" + mskPhone.Text + "','" + txtEmail.Text + "',N'" +
cboQuyen.Text + "')";
SqlCommand cmd = new SqlCommand(insert, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("Thêm mới thành công", "Thông báo!");
// Trả tài nguyên
cmd.Dispose();
}
// Trả tài nguyên
cmd2.Dispose();
reader2.Dispose();
//Fill du lieu
FillDataGridView_Login();
}
this.tblLOGINTableAdapter.Fill(this.quanlydiemDataSet25.tblLOGIN);
conn = cc.Connected();
if (conn.State == ConnectionState.Open) ;
//Fill du lieu
FillDataGridView_Login();
}
public void FillDataGridView_Login()
{
// Thực hiện truy vấn
string select = "Select * From tblLOGIN ";
SqlCommand cmd = new SqlCommand(select, conn);
// Đưa ra DataGridView
dgrLogin.DataSource = ds;
dgrLogin.DataMember = "SINHVIEN";
cmd.Dispose();
}
GVHD: ĐẶ NG THẾ HÙ NG
42
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
cboGioiTinh.Text = dgrLogin.CurrentRow.Cells[3].Value.ToString();
mskPhone.Text = dgrLogin.CurrentRow.Cells[4].Value.ToString();
txtEmail.Text = dgrLogin.CurrentRow.Cells[5].Value.ToString();
cboQuyen.Text = dgrLogin.CurrentRow.Cells[6].Value.ToString();
}
GVHD: ĐẶ NG THẾ HÙ NG
43
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Trong phầ n mềm hiện tạ i đặ t hai quyền hoạ t độ ng : admin và member. Khi
ngườ i sử dụ ng đă ng nhậ p hệ thố ng thì bắ t buộ c phả i chọ n đú ng quyền củ a mình.
Mỗ i mộ t member sẽ đượ c hệ thố ng cung câ p mộ t user và password riêng:
Sau khi đă ng nhậ p thà nh cô ng, giao diện chính hệ thố ng sẽ xuấ t hiện:
GVHD: ĐẶ NG THẾ HÙ NG
44
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Nếu muố n truy cậ p danh sá ch, tìm kiếm, thêm hoặ c sử a , xó a lớ p, giả ng viên,
khoa, sinh viên thì click chuộ t và o QL Sinh Viên, QL Khoa, QL Lớ p giao diện như
hình sau:
GVHD: ĐẶ NG THẾ HÙ NG
45
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Trong quá trình sử dụ ng hệ thố ng, nếu bộ phậ n quả n lí muố n thay đổ i ngườ i
sử dụ ng và vậ n hành hệ thố ng nà y thì có thể thay đổ i như sau:
GVHD: ĐẶ NG THẾ HÙ NG
46
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
Trong quá trình sử dụ ng hệ thố ng, nếu có vấ n đề khó khă n hoặ c chưa hiểu rõ
về cơ chế hoạ t độ ng thì có thể Click chuộ t và o mụ c Trợ giú p. Hệ thố ng sẽ hỗ trợ
tố i đa cho ngườ i dù ng.
GVHD: ĐẶ NG THẾ HÙ NG
48
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
KẾT
LUẬN
Qua 3 chương phâ n tích và tìm hiểu hệ thố ng thô ng tin về bà i toá n quả n lí
điểm sinh viên dâ n sự Trườ ng đạ i họ c Trầ n Đạ i Nghĩa. Nhó m chú ng em đã đưa ra
nhữ ng phâ n tích về hệ thố ng ở cả hai phuong diện chứ c nă ng và dữ liệu. Về chứ c
năng nhó m đã đưa ra đượ c cá c sơ đồ chứ c nă ng củ a hệ thố ng. Về dữ liệu đã đưa
ra sơ đồ dữ liệu. Tuy nhiên do cò n hạ n chế về nghiên cứ u cũ ng như tiếp cậ n thự c
tế, chính vì vậ y việc phâ n tích khô ng trá nh khỏ i việc sai só t. Việc phâ n chia cá c bộ
phậ n cò n bấ t cậ p. Chứ c nă ng cò n trù ng lặ p và hạ n chế. Thiết kế hệ thố ng cò n chưa
đú ng vớ i thự c tế.
Nhưng trong quá trình là m bà i, nhó m đã nhậ n đượ c sự hỗ trợ nhiệt tình từ
giá o viên hướ ng dẫ n. Nhó m rấ t mong nhậ n đượ c hơn nữ a nhữ ng ý kiến đó ng gó p
để hoà n thà nh đề tà i đượ c tố t hơn. Chú ng em xin châ n thà nh cả m ơn Thầ y.
GVHD: ĐẶ NG THẾ HÙ NG
49
QUẢ N LÍ ĐIỂ M SINH VIÊ N HỆ DÂ N SỰ
GVHD: ĐẶ NG THẾ HÙ NG
50