Do vậy mà trong việc phát triển phần mềm ,sự đòi hỏi không phải là sự chính xác ,xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu cầu khác như là tốc độ, giao diện thân thi
Trang 1HCM KHOA CÔNG NGHỆ THÔNG TIN
MÔN HỌC: CÔNG NGHỆ PHẦN MỀM
BÁO CÁO :
Đề tài :Quản lý học sinh cấp 3
Giáo viên hướng dẫn: Lâm Thanh Hùng
Sinh Viên Thực Hiện: Bàng Minh Quân
Nguyễn Hoàng Vĩnh
Thành phố Hồ Chí Minh, tháng 4-2014
Trang 2Nhận xét của giáo viên:
MỤC LỤC
Trang 3LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Trường cao đẳng Kỹ thuật Lý Tự Trọng
đã tạo điều kiện thuận lợi cho chúng em và đặc biệt chúng em xin cảm ơn thầy giáo
Hùng đã tận tình chỉ bảo trong quá trình thực hiện đề tài.
Chúng em cũng xin chân thành cảm ơn các thầy cô giáo trong khoa Công nghệ thông tin đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết trong thời gian vừa qua
Mặc dù đã cố gắng hoàn thành báo với tất cả sự nỗ lực không ngừng nhưng do thời gian, nhân lực, kiến thức còn hạn chế nên bài báo cáo chắc chắn sẽ không tránh khỏi những thiết sót nhất định, kính mong nhận được sự cảm thông và chỉ bảo tận tình của các thầy cô giáo và sự góp ý của các bạn để đề tài được hoàn thiện hơn.
Xin chân thành cảm ơn!
Trang 4I Hiện trạng và yêu cầu:
1 Hiện trạng:
a ) Giới thiệu về thới giới thực quan
Hiện nay CNTT được xem là ngành rất quan trọng của các quốc gia ,đặc biệt là các quốc gia đang phát triển mạnh mẽ Cùng với sự phát triển mạnh mẽ của phần cứng máy tính, các phần mềm càng trở nên đa dạng ,phong phú và hỗ trợ cho con người nhiều hơn Các phần mềm hiện nay ngày càng mô phỏng được rất nhiều nghiệp vụ khó khăn ,hỗ trợ cho người dùng thuận tiện sử dụng ,thời gian xử lý nhanh chóng và một số nghiệp vụ được tự động hóa cao
Do vậy mà trong việc phát triển phần mềm ,sự đòi hỏi không phải là sự chính xác ,xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu cầu khác như là tốc độ, giao diện thân thiện , mô hình hóa được thực tế vào máy tính để người sử dụng tiện lợi, quen thuộc ,tính tương thích cao, bảo mật cao (đối với các dữ liệu nhây cảm )…Các phần mềm giúp tiết kiệm một lượng lớn thời gian ,công sức của con người ,tăng độ chính xác và hiệu quả trong công việc
Một ví dụ cụ thể việc quản lý học vụ trong trường THPT Nếu không có sự hỗ trợ của phần mềm quản lý ,việc quản lý này cần phải có khá nhiều người, chia thành nhiều khâu mới có thể quản lý được toàn bộ hồ sở của học sinh (thông tin, điểm số, kỷ luật ,học bạ…) ,lớp học (sỉ số ,GVCN,thời khóa biểu ,…), giáo viên (thông tin, lịch dạy,….) Cũng như nghiệp vụ sắp thời khóa biểu ,tính điểm TB, xếp loại học lực , nghiệp vụ tiếp nhận học sinh vào trường ,xếp lớp Các công việc này đòi hỏi nhiều thời gian và công sức ,mà sự chính xác hiệu quả không cao Vì đa số làm bằng thủ công rất ít tự động Một số thao tác như tra cứu ,thống kê và điều chỉnh thông tin khá vất vả Ngoài ra còn 1 số khó khăn về vấn đề lưu trữ khá nhiều ,dễ bị thất lạc ,tốn kém…
Trong khi đó các nghiệp vụ ,thao tác trên hoàn toàn có thể được CNTT hổ trợ một cách
dễ dàng nhất , ở đây là dùng phần mềm quản lý Với sự hổ trợ của phần mềm việc quản
lý sẽ được quản lý dễ dàng , đơn giản , thuận tiện ,nhanh chóng ,và hiệu quả hơn rất nhiều.
b ) Mô tả qui trình các công việc liên quan đến đề tài
Trang 5Nội dung Tiếp nhận học sinh vào học tại trường
Nội dung Phân lớp sau đó lưu lại thông tin học sinh
công giảng dạy từng môn và phân công giáo viên làm chủ nhiệm cho từng lớp.
vụ điểm danh cho các học sinh từng lớp
Trang 6sau đó lưu lại để tính điểm chuyên cần sau này.
Nội dung Tra cứu thông tin học sinh cần tìm, khi có
nhu cầu có thể chuyển lớp
học sinh và sau đó đánh giá hạnh kiểm.
c ) Mô tả các biểu mẫu có liên quan
Trang 7sửa thông tin học sinh
Tuổi học sinh từ 15 đền 20 tuổi
Trang 8BM5.1: Báo cáo tổng kết môn
Trang 9QĐ5.2:Học sinh đạt nếu đạt tất cả các môn
d) Mô tả các qui định ràng buộc có liên quan
Tính tiến hóa
Trang 101.2 Danh sách thành phần của sơ đồ
1 DIEM Để lưu trữ các điểm số của các môn học
2 DIEMDANH Để lưu lại các ngày học và nghĩ của học
sinh để chấm điểm chuyên cần
3 DIHOC Để lưu trữ các học sinh có đi học
4 GIAOVIEN Để lưu thông tin giáo viên như địa chỉ,số
điện thoại
6 HOCSINH Để lưu trữ thông tin các học sinh
7 KHOI Để lưu trữ các khối trong trường
8 LOP Để lưu trữ các lớp trong trường
10 NIENKHOA Lưu trữ niên khóa
11 PHANLOP Lưu trữ các thông tin về phân lớp
Trang 11STT Thuộc tính Kiểu dữ liệu Miền giá trị Ghi chú
Trang 121 MaHS Chuổi Khóa chính
Trang 131 MaXL Số Khóa chính
1.3 Danh sách các ràng buộc
2) Thiết kế giao diện
2.1 Sơ đồ các màn hình chính
Màn hình
HelpGiới thiệu
Thống kêQuản lý
Hệ thống
ĐiểmTiếp nhận HS mới
Đổi mật mã
Xuất kết quả đậu rớt của học sinh
Điểm danhPhân quyền
Phân lớp Thoát
Trang 142.2 Danh sách các màn hình
1 1 Form chính Chứa các thành phần của chương
trình.
2 2 Form đăng nhập Đăng nhập vào chương trình
3 3 Form đổi mật mã Cho phép đổi mật mã cho tài
khoản đang đăng nhập
4 4 Form quản lý
học sinh
Thêm, xóa, sửa thông tin học sinh
5 5 Form điểm danh Điểm danh các học sin đi học hoặc
nghĩ
6 6 Form phân lớp Phân lớp cho các học sinh.
2.3 Mô tả chi tiết từng màn hình:
Màn hình đăng nhập:
Danh sách các tình huống/sự kiện và xử lí tương ứng trên màn hình:
STT Tình huống Ý nghĩa Xử lí tương đương Mã số xử lí
1 Click vào nút
đăng nhập Đăng nhập vào màn hình chính Tùy vào quyền của user đăng nhập vào sẽ mở ra các
chức năng tương ứng trên thanh menu
1
2 Click vào nút hủy Đóng form đăng
Màn hình chính:
Trang 15Danh sách các tình huống/sự kiện và xử lí tương ứng trên màn hình:
STT Tình huống Ý nghĩa Xử lí tương đương Mã số xử lí
1 Click vào chữ bất kì trên
thanh menu Chọn các chức năng Mở form tương ứng hay button tương ứng 3
Màn hình tiếp nhận học sinh
Trang 16Danh sách các tình huống/sự kiện và xử lí tương ứng trên màn hình:
STT Tình huống Ý nghĩa Xử lí tương đương Mã số xử lí
1 Click vào
nút Thêm Tiếp nhận một học sinh mới Mở khóa các điều khiển textbox, combobox, xóa nội
dung trong textbox
4
2 Click vào
nút Sửa Sửa thông tin nhân viên Mở khóa các điều khiển textbox tên nhân viên, số
điện thoại, lương cơ bản, địa chỉ, ngày sinh, giới tính.
8
10 Click vào
nút Không Không lưu thông tin học sinh Xóa hết thông tin trong textbox, khóa các điều
khiển textbox và combobox, datetimepicker
Trang 17Màn hinh điểm danh
Danh sách các tình huống/sự kiện và xử lí tương ứng trên màn hình:
STT Tình huống Ý nghĩa Xử lí tương đương Mã số xử lí
16
Trang 18Mô tả chi tiết đăng nhập:
Dữ liệu vào và ra:
Dữ liệu vào: user name, password
Dữ liệu ra: nếu đúng user name và password, vào màn hình chính Giải thuật
Để vào được chương trình người dùng cần phải đăng nhập vào chương trình với user name và password hợp lệ
Mô tả chi tiết thông tin học sinh
Dữ liệu vào và ra
Trang 19Dữ liệu vào: học sinh cần xóa
Dữ liệu ra đã xóa Giải thuật
Chọn 1 học sinh trên datagridview rồi xóa
Mô tả chi tiết thông tin học sinh
Dữ liệu vào và ra
Dữ liệu vào: thông tin học sinh
Dữ liệu ra: đã thêm/cập nhật Giải thuật:
Thêm/ cập nhật học sinhvào bảng
III Cài đặt và thử nghiệm:
1.Cài đặt
Bảng phân công cài đặt
hiện
Ghi chú
Quân, Nguyễn Hoàng Vĩnh
Quân, Nguyễn Hoàng Vĩnh.
3 Tiếp nhận học sinh Form Bàng Minh
Quân, Nguyễn Hoàng Vĩnh
Quân, Nguyễn Hoàng Vĩnh
Quân, Nguyễn Hoàng Vĩnh
Trang 20Danh sách tình trạng cài đặt các chức năng
Trang 21Bảng dữ liệu lớp
Trang 22Bảng dữ liệu khối
Bảng dữ liệu học kỳ
Trang 23Bảng dữ liệu môn học
Bảng dữ liệu phân lớp
Trang 24IV.Tổng kết
1. Các kết quả đã thực hiện:
- Thêm, sửa, xóa học sinh
- Điểm danh các học sinh ở mỗi lớp
- Phân lớp
- Chuyển lớp
2 Đánh giá ưu khuyết điểm:
Một số yêu cầu của đề tài chưa hoàn thành Chưa thống kê được kết quả học tập
Trang 25private void btnDN_Click(object sender, EventArgs e)
{
int kq1, kq2;
string DK = "User='" + txtUser.Text + "'";
DL.MaHoa(txtPass.Text, ref strMatMa);
kq1 = string.Compare(txtUser.Text, DL.DLookUp("User",
MessageBox.Show("Mật mã hợp lệ", "Kiểm tra mật mã");
frmMain frm = new frmMain();
Trang 26clsDuLieu DL = new clsDuLieu();
DataTable tblLC = new DataTable();
DataTable tblLM = new DataTable();
DataTable tblPL = new DataTable();
private void btnDong_Click(object sender, EventArgs e)
dgr.Columns["HoTen"].HeaderText = "Tên học sinh";
dgr.Columns["GioiTinh"].HeaderText = "Giới tính";
dgr.Columns["NgaySinh"].HeaderText = "Ngày sinh";
dgr.Columns["MaHS"].Visible = false;
dgr.Columns["HoTen"].Width = 140;
dgr.Columns["GioiTinh"].Width = 65;
dgr.Columns["NgaySinh"].Width = 90;
dgr.Columns["NoiSinh"].Visible = false;
dgr.Columns["QueQuan"].Visible = false;
dgr.Columns["DiaChi"].Visible = false;
dgr.Columns["DanToc"].Visible = false;
dgr.Columns["TonGiao"].Visible = false;
Trang 27else
{
cboKhoiMoi.SelectedIndex = cboKhoiCu.SelectedIndex + 1;
}
cboNienKhoaMoi.SelectedIndex = cboNienKhoaCu.SelectedIndex+ 1;
Trang 28cboLopCu.DataSource = DL.LayDLCoDK("LOP", "MaKhoi='" +
cboLopMoi.DataSource = DL.LayDLCoDK("LOP", "MaLop<>'" +
cboLopCu.SelectedValue.ToString() + "' and MaKhoi='" +
dgrDSLCu.CurrentRow.Cells["MaHS"].Value.ToString());
}
if (radChuyenLop.Checked)
Trang 29DataTable tblK = dl.LayDLCoSX("KHOI", "TenKhoi");
DataTable tblL = dl.LayDLCoSX("LOP", "TenLop");
foreach (DataRow drwK in tblK.Rows)
{
TreeNode nK = new TreeNode();
nK.Text = drwK["TenKhoi"].ToString();
Trang 30foreach (DataRow drwL in tblL.Rows)
{
TreeNode nL = new TreeNode();
if (drwK["MaKhoi"].Equals(drwL["MaKhoi"].ToString())) {
nL.Text = drwL["TenLop"].ToString();
nL.Tag = drwL["MaLop"].ToString();
dgr.Columns["HoTen"].HeaderText = "Tên học sinh";
dgr.Columns["HoTen"].Width = 150;
dgr.Columns["NgayDD"].HeaderText = "Ngày điểm danh";
dgr.Columns["NgayDD"].Width = 120;
dgr.Columns["Phep"].HeaderText = "Phép";
Trang 32clsDuLieu DL = new clsDuLieu();
DataTable tblDSHS = new DataTable();
DataTable tblTTHS = new DataTable();
txtMaHS.Text = drw["MaHS"].ToString();
txtHoTen.Text = drw["HoTen"].ToString();
radNam.Checked = (bool)drw["GioiTinh"];
radNu.Checked = !radNam.Checked;
txtNoiSinh.Text = drw["NoiSinh"].ToString();
dpkNgaySinh.Value = (DateTime)drw["NgaySinh"];
txtQueQuan.Text = drw["QueQuan"].ToString();
txtDiaChi.Text = drw["DiaChi"].ToString();
txtDanToc.Text = drw["DanToc"].ToString();
txtTonGiao.Text = drw["TonGiao"].ToString();
drwDongMoi["MaHS"] = txtMaHS.Text;
drwDongMoi["HoTen"] = txtHoTen.Text;
Trang 33drwDongMoi["GioiTinh"] = radNam.Checked;
drwDongMoi["NoiSinh"] = txtNoiSinh.Text;
drwDongMoi["NgaySinh"] = dpkNgaySinh.Value;
drwDongMoi["DiaChi"] = txtDiaChi.Text;
drwDongMoi["QueQuan"] = txtQueQuan.Text;
drwDongMoi["DanToc"] = txtDanToc.Text;
drwDongMoi["TonGiao"] = txtTonGiao.Text;
DataRow drwDongMoi = tbl.Rows[vt];
drwDongMoi["MaHS"] = txtMaHS.Text;
drwDongMoi["HoTen"] = txtHoTen.Text;
drwDongMoi["GioiTinh"] = radNam.Checked;
drwDongMoi["NoiSinh"] = txtNoiSinh.Text;
drwDongMoi["NgaySinh"] = dpkNgaySinh.Value;
drwDongMoi["DiaChi"] = txtDiaChi.Text;
drwDongMoi["QueQuan"] = txtQueQuan.Text;
drwDongMoi["DanToc"] = txtDanToc.Text;
drwDongMoi["TonGiao"] = txtTonGiao.Text;
}
}
private void FormatLuoi(DataGridView dgr)
{
dgr.Columns["MaHS"].HeaderText = "Mã học sinh";
dgr.Columns["HoTen"].HeaderText = "Tên học sinh";
dgr.Columns["HoTen"].Width = 125;
dgr.Columns["GioiTinh"].HeaderText = "Giới tính";
dgr.Columns["GioiTinh"].Width = 65;
dgr.Columns["NgaySinh"].HeaderText = "Ngày sinh";
dgr.Columns["DiaChi"].HeaderText = "Địa chỉ";
dgr.Columns["DiaChi"].Width = 200;
dgr.Columns["NoiSinh"].HeaderText = "Nơi sinh";
dgr.Columns["NoiSinh"].Width = 75;
dgr.Columns["QueQuan"].HeaderText = "Quê quán";
dgr.Columns["DanToc"].HeaderText = "Dân tộc";
dgr.Columns["DanToc"].Width = 75;
dgr.Columns["TonGiao"].HeaderText = "Tôn giáo";
dgr.Columns["TonGiao"].Width = 75;
Trang 34int MaTang = dgrDSHS.Rows.Count + 1;
txtMaHS.Text = MaTang > 9 && MaTang < 100 ? "HS00" + MaTang : MaTang > 99 && MaTang < 1000 ? "HS0" + MaTang : MaTang > 999 && MaTang <
Trang 35if (txtHoTen.TextLength > 2 && txtDiaChi.TextLength > 2 && txtNoiSinh.TextLength > 2 && txtQueQuan.TextLength > 2 &&
txtDanToc.TextLength > 2 && txtTonGiao.TextLength > 2)