Professional Documents
Culture Documents
Lap Trinh 3 Lop
Lap Trinh 3 Lop
Lp giao din
Lp x l Lp d liu
D liu
Lp th nht : Lp giao din (giao tip vi ngi s dng) : ch thun x l vic giao tip vi ngi s dng, nhp xut, m khng thc hin vic tnh ton, kim tra, x l, hay cc thao tc lin quan n c s d liu. Lp th hai : Lp x l : Lp ny chuyn thc hin cc x l , kim tra cc rng buc, cc qui tc ng x ca phn mm , cc chc nng ct yu, Vic thc hin ny c lp vi cch thit k cng nh ci t giao din. Thng tin cho lp ny thc hin cc x l ca mnh c ly t lp giao din. Lp th ba : Lp d liu : Lp ny chuyn thc hin cc cng vic lin quan n d liu. D liu c th ly t c s d liu (Access, SQL Server ) hoc tp tin (text, binary, XML ). i vi c s d liu, lp ny thc hin kt ni trc tip vi c s d liu v thc hin tt c cc thao tc lin
Trang 1
quan n c s d liu m phn mm cn thit. i vi tp tin, lp ny thc hin vic c, ghi tp tin theo yu cu ca phn mm. Vic thc hin ny do lp x l gi. R rng, vi m hnh ny, cc cng vic ca tng lp l c lp vi nhau. Vic thay i mt lp khng lm thay i cc lp cn li, thun tin hn cho qu trnh pht trin v bo tr phn mm. Lu : lp y l tier ch khng phi l class 2. ng dng minh ha: Bi ton Xy dng chng trnh tnh tng 2 phn s theo kin trc 3 lp. Theo d liu ca phn s c c ln t tp tin XML, kt qu sau khi c tnh s c ghi xung tp tin XML Cch lm thng thng l mi vic u c y vo trong 1 form v x l trc tip trong form . Tuy nhin, khi c s thay i xy ra v giao din, x l, hay d liu th vic chnh sa kh kh khn. Do vy, vic xy dng theo kin trc 3 lp s khc phc nhc im ny. Kin trc ca chng trnh nh sau
Mn hnh
Th hin phn s
Trang 2
Xy dng lp th hin phn s (TH_PHANSO) S dng User Control ci t cho TH_PHANSO. Thm User Control vo project bng cch chn Project > Add User Control. t tn User Control . Ta c TH_PHANSO.cs
txtTuSo
txtMauSo
Do th hin t s v th hin mu s u l TextBox do trong lp TH_PHANSO cn thit lp cc properties l tuso v mauso c kiu int.
public int tuso{ set{ this.txtTuSo.Text = value.ToString(); } get{ return int.Parse(this.txtTuSo.Text); } } public int mauso { set { this.txtMauSo.Text = value.ToString(); } get { return int.Parse(this.txtMauSo.Text); } }
Trang 3
Lp lu tr phn s (LT_PHANSO) Tp tin XML lu tr c nh dng nh sau <?xml version ="1.0" encoding = "utf-8"?> <PHANSO> <Tu_so>5</Tu_so> <Mau_so>3</Mau_so> </PHANSO> thc hin vic c v ghi d liu XML ta s dng DOM. Khai bo tuso v mauso thc hin vic lu tr
public int tuso; public int mauso;
Trang 4
Lp lu tr XML (LT_XML) Vic load v save XmlDocument c tch ra thnh mt lp ring l lp LT_XML
public static XmlDocument DocTaiLieu(string strFilename) { XmlDocument kq = new XmlDocument(); try { kq.Load(strFilename); } catch{ return null; } return kq; } public static void GhiTaiLieu(string strFilename, XmlDocument doc) { try{ doc.Save(strFilename); } catch{ } }
Trang 5
Lp x l phn s (XL_PHANSO) Lp ny s thc hin ci t cc hm lin quan n x l v tnh ton trn phn s nh nh ngha php cng 2 phn s, rt gn phn s hay cp nht gi tr t i tng th hin. Khai bo 2 i tng ln lt thuc v lp LT_PHANSO v TH_PHANSO gip to lin kt vi tng x l vi 2 tng cn li l tng d liu v tng giao din.
private LT_PHANSO lt_ps = null; private TH_PHANSO th_ps = null;
Ci t ton t +
public static XL_PHANSO operator +(XL_PHANSO ps1,XL_PHANSO ps2) { XL_PHANSO kq = new XL_PHANSO(new LT_PHANSO(), new TH_PHANSO()); kq.th_ps.tuso = ps1.th_ps.tuso * ps2.th_ps.mauso + ps2.th_ps.tuso * ps1.th_ps.mauso; kq.th_ps.mauso = ps1.th_ps.mauso * ps2.th_ps.mauso; return kq; }
Trang 6
Ci t hm rt gn phn s
public void RutGon() { int tuso = this.th_ps.tuso; int mauso = this.th_ps.mauso; int maxUC = TimMaxUocChung(tuso,mauso); tuso = tuso/maxUC; mauso = mauso/maxUC; this.th_ps.tuso = tuso; this.th_ps.mauso = mauso; }
Trang 7
btnCong btnThoat
Trang 8
Hm x l cho nt Thoat
private void btnThoat_Click(object sender, System.EventArgs e) { this.Close(); }
To cc tp tin phanso1.xml, phanso2.xml, c nh dng nh v d trn. Thc hin bin dch v chy th chng trnh.
Trang 9
3. Nhn xt : Thc hin ci t vi kin trc 3 lp s gip chng trnh d dng thay i, ti s dng li chng trnh. V d: TH_PHANSO khng th hin t s v mu s bng TextBox na m thay bng control khc (v d nh MyControl th cng khng nh hng, lc ch cn thay i code trong phn property t s v mu s m thi.
public int tuso{ set{ this.MyControl.Value = value.ToString(); } get{ return int.Parse(this.MyControl.Value); } } public int mauso { set { this.MyControl.Value = value.ToString(); } get { return int.Parse(this.MyControl.Value); } }
Khi khng lu tr bng XML m chuyn sang dng c s d liu th ta ch cn thay code phn LT_PHANSO, m khng cn thay i code phn TH_PHANSO, cng nh XL_PHANSO. Ch : Khng ph thuc phng php lp trnh. Mi nghip v khng nht thit ch c gii quyt bi 3 i tng. Khng l mt kin trc siu vit.
Trang 10