TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
MÔN: LẬP TRÌNH WINDOWS
Đề tài: Quản lý ký túc xá sinh viên Trường Đại học
Tài Nguyên và Môi Trường
Giáo viên hướng dẫn: Th.s Đỗ Ngọc Sơn
Sinh viên thực hiện: Nhóm 9+10-Lớp CĐ Tin2-K11
1
1: Phạm Ích Nam
2: Lê Văn Hưởng
3. Hoàng Công Thuận
4: Lê Huy Lân
5: Đặng Thị Hà
6: Nguyễn Tiến Đạt
Hà Nội 05/2011
Lời nói đầu
Trong thời đại hiện nay, ứng dụng tin học hóa vào các ngành kinh tế góp
phần quan trọng trong sự thành công và tăng trưởng của từng ngành. Đặc biệt là
việc ứng dụng tin học vào các lĩnh vực quản lý của các hệ thống như bến xe, công
ty, ngân hàng, ký túc xá…đã giảm thiểu được số lượng phí đầu tư cho nguồn nhân
công, đồng thời còn giúp tăng hiệu quả tính chính xác trong việc quản lý.
Trường Đại học Tài Nguyên và Môi Trường với số lượng sinh viên tương
đối nhiều. Việc quản lý ký túc xá sinh viên của trường là rất khó khăn nếu không
có sự ứng dụng của tin học. Vì vậy để có thể quản lý được ký túc xá sinh viên một
cách chặt chẽ hiệu quả cần xây dựng một hệ thống quản lý bằng tin học. Đây là
vấn đề rất bức thiết đối với nhà trường.
Dựa vào mô hình cụ thể, quản lý ký túc xá sinh viên Đại học Tài Nguyên
và Môi Trường chúng em đã tìm hiểu và đi sâu vào nghiên cứu đề tài: “Hệ thống
quản lý ký túc xá sinh viên trường Đại học Tài Nguyên và Môi Trường” dưới sự
hướng dẫn của thầy giáo Đỗ Ngọc Sơn phụ trách bộ môn Lập trình Windows.
Trong bài tập chúng em còn có nhiều sai sót, rất mong thầy giáo và các bạn
chỉ bảo thêm.
Nhóm chúng em xin chân thành cảm ơn!!!
2
MỤC LỤC
3
PHẦN 1: KHẢO SÁT NGHIỆP VỤ ĐỀ TÀI
I - Cơ cấu tổ chức của hệ thống quản lý ký tác xá sinh viên trường ĐH
Tài Nguyên và Môi Trường
Gồm 6 bộ phận:
- Quản lý hợp đồng
- Quản lý sinh viên
- Quản lý phòng
- Quản lý nhân viên
- Quản lý điện nước
- Báo cáo thống kê
II - Chức năng, nhiệm vụ của các bộ phận trong hệ thống quản lý ký túc xá
sinh viên trường ĐH Tài Nguyên và Môi Trường
1. Quản lý hợp đồng
- Kiểm tra hồ sơ sinh viên
- Nhập hợp đồng
- Sửa hợp đồng
- Xóa hợp đồng
2. Quản lý sinh viên
- Nhập thông tin sinh viên
- Sửa thông tin sinh viên
- Xóa thông tin sinh viên
4
3. Quản lý phòng
- Nhập mới thông tin phòng
- Sửa thông tin phòng
- Xoá thông tin phòng
4. Quản lý nhân viên
- Nhập thông tin nhân viên
- Sửa thông tin nhân viên
- Xoá thông tin nhân viên
5. Quản lý điện nước
- Nhập thông tin điện nước
- Sửa thông tin điện nước
- Xoá thông tin điện nước
- Lập báo cáo hoá đơn
6. Báo cáo thống kê
- Báo cáo doanh thu
- Thống kê số hợp đồng
- Thống kê tình trạng phòng
5
PHẦN 2: PHÂN TÍCH HỆ THỐNG
1. Hoạt động của hệ thống quản lý ký túc xá
Quản lý hợp đồng: Khi sinh viên có nhu cầu tạm trú trong ký túc xá phải
thực hiện thủ tục đăng ký với tổ công tác sinh viên, bộ phận quản lý hợp đồng sẽ
kiểm tra hồ sơ đăng ký của sinh viên. Nếu hồ sơ được đáp ứng thì hệ thống sẽ
nhập hợp đồng. Khi cần thiết có thể sửa và xóa hợp đồng . Thông tin hợp đồng
gồm: Mã hợp đồng, mã phòng, tên sinh viên, địa chỉ sinh viên, giới tính, lớp,
khoa, ngành, điện thoại, số CMND.
Quản lý sinh viên: Trong thời gian tạm trú ở ký túc xá bộ phận quản lý sinh
viên sẽ nhập và lưu trữ toàn bộ thông tin về sinh viên. Khi cần thiết có thể sửa
và xóa thông tin về sinh viên.Thông tin sinh viên bao gồm: mã sinh viên, tên
sinh viên, ngày sinh, địa chỉ sinh viên, giới tính, điện thoại, mô tả khác.
Quản lý phòng: Nhập mới thông tin phòng, sửa thông tin phòng, xóa thông
tin phòng. Thông tin về phòng bao gồm: mã phòng, tình trạng phòng, số lượng
sinh viên, khu nhà, mô tả khác.
Quản lý nhân viên: Để theo dõi và quản lý nhân viên làm việc ký túc xá thực
hiện thêm mới vào danh sách khi có nhân viên được tuyển, sửa thông tin khi có
những biến đổi xảy ra và xóa thông tin nhân viên khi hết hợp đồng hoặc bị xa
thải. Các thông tin nhân viên bao gồm: mã nhân viên, tên nhân viên, điện thoại
liên hệ, mô tả khác.
Quản lý điện nước: Khi sinh viên ở ký túc xá các phòng sẽ sử dụng điện
nước, hàng tháng bộ phận quản lý điện nước có trách nhiệm lập hóa đơn điện
nước của mỗi phòng. Hóa đơn bao gồm các thông tin: số hóa đơn, mã phòng,
ngày lập, tổng tiền. Thông tin điện nước gồm: mã công tơ, mã phòng, ngày thu,
chỉ số đầu, chỉ số cuối.Ngoài ra bộ phận này còn phải nhập thông tin điện nước,
xóa thông tin điện nước khi có sự thay đổi mức giá điện nước khi có điều chỉnh.
Báo cáo thống kê: Lấy thông tin từ các bộ phận khác và có nhiệm vụ thống
kê số lượng hợp đồng, thống kê tình trạng phòng, báo cáo doanh thu để đưa lên
nhà quản lý khi nhận được yêu cầu từ nhà quản lý ký túc xá.
6
2. Lập từ điển dữ liệu
* Bảng sinh viên
7
* Bảng nhân viên
8
* Bảng phòng
9
* Bảng hợp đồng
10
* Bảng hóa đơn
11
* Bảng điện nước
12
13
3. Mô hình dữ liệu vật lý
14
4. Thiết kế giao diện
4.1 Hệ thống quản lý
* Giao diện đăng nhập
15
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace QLKTX
{
public partial class frmDangNhap :
DevComponents.DotNetBar.Office2007Form
{
int dem;
public frmDangNhap()
{
InitializeComponent();
}
private void butok_Click(object sender, EventArgs e)
{
if (txtuser.Text == "")
{
MessageBox.Show("Nhập User Name", "Thông
Báo",MessageBoxButtons.OK, MessageBoxIcon.Information);
txtuser.Focus();
return;
}
if (txtpass.Text == "")
{
MessageBox.Show("Nhập Pass Word", "Thông
Báo",MessageBoxButtons.OK, MessageBoxIcon.Information);
txtpass.Focus();
return;
}
if ((txtpass.Text == "admin") && (txtuser.Text == "admin"))
{
MessageBox.Show("Đăng nhập thành công!", "Thông Báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
Form frm = new frmMain();
this.Hide();
frm.Show();
}
else
{
dem = dem + 1;
if (dem < 3)
{
if (txtuser.Text != "admin")
{
MessageBox.Show("Sai User Name!", "Thông Báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtuser.Text = ""; txtuser.Focus(); return;
}
16
if (txtpass.Text != "admin")
{
MessageBox.Show("Sai Pass Word!", "Thông Báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtpass.Text = ""; txtpass.Focus(); return;
}
}
else
{
MessageBox.Show("Bạn đã nhập sai 3 lần. Chương trình sẽ
bị đóng!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
}
}
private void butthoat_Click(object sender, EventArgs e)
{
this.Close();
}
private void frmDangNhap_Load(object sender, EventArgs e)
{
}
}
}
17
* Giao diện chính
18
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls;
using System.Data.SqlClient;
namespace QLKTX
{
public partial class frmMain :
DevComponents.DotNetBar.Office2007RibbonForm
{
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
}
private void tabControlPanel1_Click(object sender, EventArgs e)
{
}
#region Tab Hệ Thống Quản Lý
private void butQLSV_Click_1(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Sinh Viên");
frmQLSV k = new frmQLSV();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butQLNV_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Nhân Viên");
frmQLNV k = new frmQLNV();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butQLP_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Phòng");
frmQLP k = new frmQLP();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
19
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butQLHopDong_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Hợp Đồng");
frmQLHopDong k = new frmQLHopDong();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butQLHoaDon_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Hóa Đơn");
frmQLHoaDon k = new frmQLHoaDon();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butQLDN_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Quản Lý Điện Nước");
frmQLDN k = new frmQLDN();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
#endregion
#region Tab Tìm Kiếm
private void butTKSV_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Sinh Viên");
frmTKSV k = new frmTKSV();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butTKNV_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Nhân Viên");
frmTKNV k = new frmTKNV();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
20
private void butTKP_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Phòng");
frmTKP k = new frmTKP();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butTKHopDong_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Hợp Đồng");
frmTKHopDong k = new frmTKHopDong();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butTKHoaDon_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Hóa Đơn");
frmTKHoaDon k = new frmTKHoaDon();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void buttkDN_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Tìm Kiếm Điện Nước");
frmTKDN k = new frmTKDN();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
#endregion
#region Tab Báo Cáo
private void butBCSV_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Sinh Viên");
frmBCSV k = new frmBCSV();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butBCNV_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Nhân Viên");
frmBCNV k = new frmBCNV();
21
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butBCP_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Phòng");
frmBCP k = new frmBCP();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butBCHopDong_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Hợp Đồng");
frmBCHopDong k = new frmBCHopDong();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butBCHoaDon_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Hóa Đơn");
frmBCHoaDon k = new frmBCHoaDon();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
private void butBCDN_Click(object sender, EventArgs e)
{
TabItem t = tabControl1.CreateTab("Báo Cáo Điện Nước");
frmBCDN k = new frmBCDN();
k.TopLevel = false;
k.Dock = DockStyle.Fill;
t.AttachedControl.Controls.Add(k);
k.Show();
tabControl1.SelectedTabIndex = tabControl1.Tabs.Count - 1;
}
#endregion
private void ribbonControl1_Click(object sender, EventArgs e)
{
}
}
}
22
* Quản lý thông tin sinh viên:
23
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.SqlClient;
namespace QLKTX
{
public partial class frmQLSV : DevComponents.DotNetBar.Office2007Form
{
string strCon = "Data Source = localhost;Database =
QLKTX;Integrated Security=true";
//Khai báo biến
private SqlConnection myConnection;
private SqlDataAdapter myDataAdapter;
private DataSet myDataSet;
private DataTable myTable;
private SqlCommand myCommand;
private int pos;
private SqlDataAdapter myDataAdapter1;
private DataSet myDataSet1;
private DataTable myTable1;
public frmQLSV()
{
InitializeComponent();
}
//Phương thức kiểm tra bảng dữ liệu có rỗng không
private bool kt_rong()
{
string SqlStr = "SELECT * FROM Bangsinhvien";
myDataAdapter = new SqlDataAdapter(SqlStr, strCon);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "dssv");
myTable = myDataSet.Tables["dssv"];
return myTable.Rows.Count == 0;
}
//Phương thức hiển thị dữ liệu lên lưới
private void hienthi()
{
string SqlStr = "SELECT * FROM Bangsinhvien";
myDataAdapter = new SqlDataAdapter(SqlStr, strCon);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "dssv");
myTable = myDataSet.Tables["dssv"];
// Chuyển dữ liệu lên lưới
dataGridView_QLSV.DataSource = myTable;
dataGridView_QLSV.AutoGenerateColumns = false;
}
private void frmQLSV_Load(object sender, EventArgs e)
{
myConnection = new SqlConnection(strCon);
myConnection.Open();
string SqlStr = "SELECT * FROM Bangsinhvien";
myDataAdapter = new SqlDataAdapter(SqlStr, strCon);
24
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "dssv");
myTable = myDataSet.Tables["dssv"];
//Chuyển dữ liệu lên lưới
dataGridView_QLSV.DataSource = myTable;
dataGridView_QLSV.AutoGenerateColumns = false;
//Hiển thị bản ghi dữ liệu đầu tiên lên hộp Text
if (myTable.Rows.Count == 0)
return;
pos = 0;
txtMaSV_QLSV.Text = myTable.Rows[pos]["MaSinhVien"].ToString();
txtGioiTinh_QLSV.Text = myTable.Rows[pos]
["GioiTinh"].ToString();
txtNgaySinh_QLSV.Text = myTable.Rows[pos]
["NgaySinh"].ToString();
txtHoTen_QLSV.Text = myTable.Rows[pos]
["TenSinhVien"].ToString();
txtMaPhong_QLSV.Text = myTable.Rows[pos]["MaPhong"].ToString();
txtLop_QLSV.Text = myTable.Rows[pos]["Lop"].ToString();
txtQueQuan_QLSV.Text = myTable.Rows[pos]["QueQuan"].ToString();
}
private void butThem_QLSV_Click(object sender, EventArgs e)
{
if (butThem_QLSV.Text == "&Thêm")
{
//Đổi nhãn nút lệnh
butThem_QLSV.Text = "&Lưu";
//Khóa các nút khác
butSua_QLSV.Enabled = false;
butXoa_QLSV.Enabled = false;
butTien_QLSV.Enabled = false;
butLui_QLSV.Enabled = false;
dataGridView_QLSV.Enabled = false;
//Xóa dữ liệu hộp Text
txtMaSV_QLSV.Clear();
txtGioiTinh_QLSV.Clear();
txtNgaySinh_QLSV.Clear();
txtHoTen_QLSV.Clear();
txtMaPhong_QLSV.Clear();
txtLop_QLSV.Clear();
txtQueQuan_QLSV.Clear();
}
else
// Kiểm tra trùng mã
{
string strsql = "SELECT * FROM Bangsinhvien WHERE
MaSinhVien = '" + txtMaSV_QLSV.Text + "'";
myDataAdapter1 = new SqlDataAdapter(strsql, strCon);
myDataSet1 = new DataSet();
myDataAdapter1.Fill(myDataSet1, "dssv");
myTable1 = myDataSet1.Tables["dssv"];
if (myTable1.Rows.Count != 0)
{
MessageBox.Show("Mã nhập vào đã tồn tại. Vui lòng nhập
mã khác.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtMaSV_QLSV.Clear();
txtMaSV_QLSV.Focus();
25