Xây dng phn mm hướng đối tượng GVHD: Trn Anh Dũng
HƯỚNG DN THC HÀNH TUN 7
(Thiết kế và xây dng phn mm theo mô hình 3 tng x lý)
1. Mc đích:
Lưu trữ dữ liệu
Xử lý thông tin
Giao diện người dùng
2. Thiết kế CSDL:
a. S dng li CSDL ca tun th 6 (QLHOCSINH.mdb)
HOCSINH
STT Tên trường Kiu d liu Ghi chú
1 MaHS Text(10) PrimaryKey
2 TenHS Text(255)
3 NgaySinh Date/Time
4 DiaChi Text(255)
5 DTB Number
6 MaLop Text(10) ForeignKey (tham chiếu đến
Lop(MaLop)
LOP
STT Tên trường Kiu d liu Ghi chú
1 MaLop Text(10) PrimaryKey
2 TenLop Text(255)
3 SiSo Number
Xây dng phn mm hướng đối tượng GVHD: Trn Anh Dũng
3. Phân tích, thiết kế chc năng ca phn mm theo mô hình 3 tng x lý
Da vào hướng dn thiết kế theo hình ba tng trên lp thuyết, sinh
viên phi phân tích, thiết kế
- Xác định và mô t phát tho các lp đối tượng
- Lp sơ đồ lp mc phân tích
- Lp sơ đồ lp mc thiết kế
- Mô t chi tiết các lp đối tượng
- Lp sơ đồ kiến trúc tng th ca phn mm
- Lp sơ đồ phi hp ca các biến c
4. Cài đặt:
a. To project “QLHocSinh”
b. Mô hình 3 tng ca chương trình:
c. To lp DataProvider để qun vic kết ni truy vn cơ s d
liu:
Vic kết ni cơ s d liu th được thc hin qua nhiu dng
Provider khác nhau như SqlClient, OleDb, Odbc… Do đó, để th d dàng
thay đổi Provider khi h qun tr cơ s d liu thay đổi, ta cn thiết lp mt
lp DataProvider riêng vi các hàm tương ng.
Các bước thc hin:
- Chn Project -> Add Class: Đặt tên cho class là DataProvider.
- đây ta kết ni vi cơ s d liu Microsoft Access nên ta s dng
OleDb để kết ni. Thêm 2 dòng lnh sau vào đầu file DataProvider.cs:
Giao din
Cơ s d liu
HocSinhCtl
HocSinhData
DataProvider
HocSinhInfo
Xây dng phn mm hướng đối tượng GVHD: Trn Anh Dũng
using System.Data;
using System.Data.OleDb;
Vi mi ln kết ni, ta s dng cùng mt connectionString chung.
Khai báo mt biến static mt property để lưu gi connection string
xuyên sut trong chương trình.
protected static string _connectionString;
public static string ConnectionString
{
get
{
return _connectionString;
}
set
{
_connectionString = value;
}
}
Đồng thi ta cn khai báo các biến để thc hin thao tác trên cơ s d liu
bao gm:
protected OleDbConnection connection;
protected OleDbDataAdapter adapter;
protected OleDbCommand command;
Tương t như bài trước, ta viết hàm kết ni CSDL:
public void connect()
{
connection = new OleDbConnection(_connectionString);
}
Và hàm ngt kết ni CSDL:
public void disconnect()
{
connection.Close();
}
Để thc hin truy vn d liu vi các u truy vn d liu sn, ta to
hàm truy vn executeQuery để tr ra 1 DataReader
public IDataReader executeQuery(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
return command.ExecuteReader();
}
public void executeNonQuery(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
command.ExecuteNonQuery();
}
Xây dng phn mm hướng đối tượng GVHD: Trn Anh Dũng
public object executeScalar(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
return command.ExecuteScalar();
}
d. To lp HocSinhData (add class HocSinhData.cs) để thc hin các
thao tác cp nht cơ s d liu vi d liu hc sinh tương ng
Lp HocSinhData s chu trách nhim thc hin cp nht CSDL
thông qua DataProvider đã có.
Mi đối tượng HocSinhData s gi mt Data Provider để thc hin
truy xut CSDL
using System.Data;
using System.Data.OleDb;
namespace QLHocSinh
{
class DataProvider
{
protected static string _connectionString;
protected OleDbConnection connection;
protected OleDbDataAdapter adapter;
protected OleDbCommand command;
public static string ConnectionString
{
get
{
return _connectionString;
}
set
{
_connectionString = value;
}
}
public void connect()
{
connection = new OleDbConnection(_connectionString);
}
public void disconnect()
{
connection.Close();
}
public IDataReader executeQuery(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
return command.ExecuteReader();
}
public void executeNonQuery(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
command.ExecuteNonQuery();
}
Xây dng phn mm hướng đối tượng GVHD: Trn Anh Dũng
public object executeScalar(string sqlString)
{
command = new OleDbCommand(sqlString, connection);
return command.ExecuteScalar();
}
}
}
e. X lý tính toán:
To lp HocSinhInfo cha các thông tin ca mt hc sinh
vi ràng buc nghip v tương ng
Lp HocSinhInfo cha các thông tin lưu tr ca mt đối tượng hc
sinh. Lp này ch gm các biến thuc tính (hot động tương t như mt
struct). Đây chính lp truyn ti d liu gia tng giao din và tng x
tính tóan
using System;
namespace QLHocSinh
{
class HocSinhInfo
{
private string _maHS;
private string _tenHS;
private string _diachi;
private DateTime _ngaysinh;
private float _dtb;
private string _maLop;
public string MaHS
{
get
{
return _maHS;
}
set
{
if (value == null)
throw new Exception("Ma HS khong duoc rong");
_maHS = value;
}
}
public string TenHS
{
get
{
return _tenHS;
}
set
{
if (value == null)
throw new Exception("Ten HS khong duoc rong");
_tenHS = value;
}