Form tÝnh hảc băng sinhviởn

Một phần của tài liệu Chương trình quản lý sinh viên (Trang 40 - 55)

III. Mét sè giao diơn chÝnh cĐa chŨng trÈnh 1 Form giao diơn chÝnh cĐa chŨng trÈnh.

5.Form tÝnh hảc băng sinhviởn

Chng IV : CÌi ợật vÌ hắng phĨt triốn

1. CÌi ợật Visual Foxpro Ỉ Yởu cđu vồ hơ ợiồu hÌnh:

Hơ ợiồu hÌnh Windows 95 hoậc phiởn bộn mắi hŨn. Ỉ Yởu cđu vồ mĨy

- MĨy 486 vắi tèc ợé cĐa bé xö lý 66Mhz hoậc lắn hŨn. - Chuét

- Bé nhắ 16 MB RAM.

- ớưa cụng cã dung lîng cßn lÓi 85 Mb(nỏu cÌi ợật Typical), 90 MB nỏu cÌi ợđy ợĐ.

- MÌn hÈnh VGA hoậc cao hŨn, cã ợé phờn giội tèt. Ỉ Tiỏn hÌnh cÌi ợật

CÌi ợật Visual Foxpro bững ợưa CD, hay ợưa mồm. Trắc khi cÌi ợật Visual Foxpro, phội t¾t chỏ ợé bộo vơ chèng Virus. CĨc bắc cÌi ợật nh sau:

- ớa ợưa CD vÌo ă CD. - Chản lơnh Run.

- Gâ lơnh X:\SETUP, trong ợã X chừ tởn ă ợưa Cd, sau ợã nhÊn phÝm Enter hoậc chản Ok.

- Chản nhƠng cĨch cÌi ợật sau:

- CÌi tèi thiốu (15MB): chừ cÌi mét sè File thiỏt yỏu cĐa Visual Foxpro. - CÌi ợđy ợĐ : yởu cđu 192 MB ợưa trèng.

2. ớĨnh giĨ kỏt qu thùc hiơn vÌ phng hắng phĨt triốn.

Sau mét thêi gian thùc hiơn, chŨng trÈnh ợîc hoÌn thÌnh vÌ ợỈ ợÓt ợîc nhƠng kỏt qĐa nhÊt ợẺnh. Cã thố cẹp nhẹt hạ sŨ sinh viởn, nhẹp ợiốm cho sinh viởn sau mçi kÈ thi, in bộng ợiốm cho mçi sinh viởn sau khi tèt nghiơp vÌ cã thố tÈm kiỏm thỡng tin vồ sinh viởn....Tuy nhiởn do thêi gian hÓn chỏ nởn chng trÈnh khỡng thố trĨnh ợîc nhƠng sai sãt trong quĨ trÈnh thùc hiơn.

PhŨng hắng trong tŨng lai tiỏp tôc phĨt triốn ợố chŨng trÈnh ngÌy cÌng phĨt triốn hŨn ợố cã thố trẽ thÌnh mét phđn mồm hoÌn chừnh

3. Cộm Ũn

Trong quĨ trÈnh thùc hiơn vắi sù gióp ợì rÊt tẹn tÈnh cĐa thđy Th. ChŨng trÈnh ợîc hoÌn thÌnh mét cĨch tèt ợỦp, nhê trong quĨ trÈnh thùc hiơn thđy rÊt tẹn tÈnh chừ bộo, kố cộ nhƠng lóc bẹn rén nhÊt thđy còng luỡn sỎn sÌng bắt chót thêi gian giội ợĨp th¾c m¾c. VÈ vẹy gióp cho em thÊy ợîc nhƠng lçi mÌ mÈnh khỡng phĨt hiơn ra vÌ nhê ợã mÌ em rót ra ợîc nhiồu kinh nghiơm quý bĨu. Em rÊt cộm Ũn sù hắng dÉn tẹn tÈnh cĐa thđy.

Mét sè Code cĐa chng trÈnh: 1. Chng trÈnh chÝnh: clear all

clear set talk off set date french SET STATUS OFF

SET COLOR TO b+/GB+ set cent on

set noti off set safe off

set exclusive off && De nhieu nguoi cung mo duoc du lieu(Chay tren mang)

set dele on

Public _Curpath, _Datapath, _Temppath,_AppTitle, _CurUser, _CurPass _Curpath = SYS(5)+CURD()

_Temppath = "C:\TEMP\"

_AppTitle = "Qun lý sinh viởn Version 1.0" _Datapath = SYS(5)+CURD()+"DATA\" _CurUser = []

_CurPass = [] _CodeLogin= []

*DO GetDataPath && Bien doi gia tri dung cua _Datapath *If !File(_Datapath+ "QLSV.DBC")

* =MessageBox("Cha cã file c sẽ dƠ liơu...",0,_AppTitle) * Return .f.

*Endif

Do form Manhinh\Login (adsbygoogle = window.adsbygoogle || []).push({});

Open database (_Datapath+ "QLSV") do HideWindow

_screen.picture="bitmap\qlsv.bmp" _screen.picture="bitmap\Bandoc.jpg" _Screen.Icon = "bitmap\Qlsv.ico"

_screen.Caption = "Chng trÈnh qun lý sinh viởn -Lở Thanh tuÊn- Tin 41B" _screen.Closable = .f. _screen.Maxbutton=.f. _screen.MinButton=.t. _Screen.Height=600 _screen.Width=800 do qlsvmenu.mpr keyboard "{ALT+D}"

read event clear all clear *---* Procedure Getdatapath If !File("Bitmap\QLSV.INI") DO Form Manhinh\DataPath Endif mHandle = FOPEN("Bitmap\QLSV.INI") S=FGets(mHandle) _Datapath = Allt(Substr(s,AT("=",S)+1)) =Fclose(mHandle) Return *--- Procedure HideWindow =HideWind("Color Palette") =HideWind("Database Designer") =HideWind("Form Controls") =HideWind("Form Designer") =HideWind("Layout") =HideWind("Print Preview") =HideWind("Query Designer") =HideWind("Report Constrols") =HideWind("Report Designer") =HideWind("Standard") =HideWind("View Designer") Return *---* Procedure HideWind para p_WinddowName If wexist(p_WinddowName)

Hide window (p_WinddowName) Endif Return *---* Procedure ShowWind para p_WinddowName If wexist(p_WinddowName)

Show window (p_WinddowName) Endif

*---* Function MoDBF

para p_file, p_alias, p_Co_mo_Exclusive Private p_para p_para = PARA() If used(p_alias) If p_para=3 =DongDBF(p_alias) select 0

use (p_file) alias (p_alias) Exclusive Else Select (p_alias) Endif Else select 0 If p_para=3

use (p_file) alias (p_alias) Exclusive Else

use (p_file) alias (p_alias) Endif Endif return *---* Function DongDBF para p_alias If used(p_alias) use in (p_alias) Endif return *---* Function GetLopSv

Para p_maso, p_namhoc

Private p_malop, p_FileLopsv, p_da_mo, p_Tag, p_curr, p_nam1, p_nam2 p_malop= "" p_nam1 = Val(Left(p_namhoc,4)) p_nam2 = Val(Right(p_namhoc,4)) p_curr = SELE() p_FileLopsv = _Datapath+"LOPSV" If Used('LOPSV')

Select LOPSV p_Tag = Tag()

Set order to i_LopSV p_da_mo = .T.

ELse

=MoDbf(p_FileLopsv,[LOPSV]) Set order to i_LopSV

p_da_mo = .F. Endif

*--- set near on seek p_maso set near off If Found()

scan while maso=p_maso

if year(tungay)<=p_nam1 if empty(denngay) p_malop = malop exit else if year(denngay)>=p_nam2 p_malop = malop exit endif endif endif ends Endif

IF p_da_mo And !Empty(p_Tag) Set order to (p_Tag)

Endif If !p_da_mo =Dongdbf('LOPSV') Endif Select (p_curr) Return p_malop

* CHUONG TRINH CHUAN HOA DU LIEU TRONG FOXPRO set talk off

clea

defi wind w from 0,0 to 21,106 font '.VnTime' defi wind w1 from 0,0 to 18,106 font '.VnTime' acti wind w

***

dgd=spac(30)

@1,5 say 'Tởn ợêng dÉn tắi tơp dƠ liơu cđn s¾p xỏp ' font '.VnTime',12 styl 'BI' get dgd font 'system'

read (adsbygoogle = window.adsbygoogle || []).push({});

dng=allt(dgd) set defa to &dng clea

@3,5 say ' NhƠng tơp dƠ liơu cã ẽ trong th môc hiơn thêi ' font '.vntime',12 colo w+/bg+

dir hh='C'

@1,5 say ' Tơp dƠ liơu cđn chuẻn hoĨ cã ẽ ợờy kh"ng ? (C/K) ' font '.vntime',12 styl 'BI' colo w+/br+ get hh pict '!@'

read if hh<>'C'

deac wind all set defa to &dng retu

endi *** clea

@1,10 say ' CĨc tơp c sẽ dƠ liơu cã ẽ th môc hiơn thêi ' font '.VnTime',12 style 'BI' colo w+/bg+

dir

wait ' NhƠng tơp CH*.DBF lÌ nhƠng tơp ợỈ chuẻn hoĨ. NhÊn phÝm Enter ợố tiỏp tôc ... '

htc=space(8)

@20,10 say ' Muèn chuẻn hoĨ dƠ liơu cĐa tơp : ' font '.VnTime',12 style 'IB' get htc colo w+/br+ read ttc=allt(htc) use &ttc ttt='ch'+ttc copy to &ttt

@20,5 say 'Xem dƠ liơu trắc khi chuẻn hoĨ ... NhÊn phÝm Esc ợố tiỏp tôc ... '+space(41) ;

font '.VnTime',11 style 'BI' colo w+/br+ acti wind w1 use &ttt brow deac wind w1 ***** do whil !eof()

repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') skip endd *-- go top dt=fsize('hoten') dime c(dt) for j=1 to dt c(j)=' ' endf do whil !eof() dd=len(allt(hoten)) i=1 ct=' ' ****** do whil i<=dd ht=allt(hoten) if asc(ht)>=97.and.asc(ht)<=122 c(1)=chr(asc(subs(ht,1,1))-32) endi if ((asc(subs(hoten,i,1))>=65.and.asc(subs(hoten,i,1))<=90).or. (asc(subs(hoten,i,1))>=161; .and.asc(subs(hoten,i,1))<=167)).and.asc(subs(hoten,i-1,1))<>32 c(i)=' '+chr(asc(subs(hoten,i,1))) else c(i)=subs(hoten,i,1) endi i=i+1 endd

i=1

do whil i<=dd ct=ct+c(i) i=i+1 endd

repl hoten with allt(ct) skip endd go top do whil !eof() dd=len(allt(hoten)) ht=allt(hoten) if asc(ht)>=97.and.asc(ht)<=122 c(1)=chr(asc(subs(ht,1,1))-32) else if asc(ht)=174 c(1)=chr(167) else c(1)=subs(ht,1,1) endi endi bt=' ' i=2 do whil i<=dd do case case asc(subs(ht,i,1))=32.and.asc(subs(ht,i+1,1))>=97.and.asc(subs(ht,i+1,1))<=12 2 c(i)=' ' c(i+1)=chr(asc(subs(ht,i+1,1))-32) i=i+1 case asc(subs(ht,i,1))=32.and.asc(subs(ht,i+1,1))>=167.and.asc(subs(ht,i+1,1))<=1 74 c(i)=' ' c(i+1)=chr(asc(subs(ht,i+1,1))-7) i=i+1 othe c(i)=subs(ht,i,1) endc i=i+1

endd i=1 do whil i<=dd bt=bt+c(i) i=i+1 endd

repl hoten with allt(bt) skip

endd ***

@20,5 say 'Xem dƠ liơu sau khi chuẻn hoĨ ... NhÊn phÝm Esc ợố tiỏp tôc ...' + space(41);

font '.VnTime',11 style 'BI' colo w+/br+ go top

acti wind w1 brow

deac wind w1 deac wind w set defa to &dng *retu

quit

** CHUONG TRINH SAP XEP TRUONG HOTEN TRONG FOXPRO set talk off

set safe off clea

defi wind w from 0,0 to 21,106 font '.VnTime',10

defi wind w1 from 0,0 to 18,106 font '.VnTime',10 colo w+/bg acti wind w (adsbygoogle = window.adsbygoogle || []).push({});

dgd=spac(30)

@1,5 say 'Tởn ợêng dÉn tắi tơp dƠ liơu cđn s¾p xỏp ' font '.VnTime',11 styl 'BI' get dgd font 'system'

read

dng=allt(dgd) set defa to &dng clea

@1,5 say ' NhƠng tơp dƠ liơu cã ẽ trong th môc hiơn thêi ' font '.vntime',11 colo w+/bg+

dir hh='C'

@18,5 say ' Tơp dƠ liơu cđn s¾p xỏp cã ẽ ợờy kh"ng ? (C/K) ' font '.vntime',11 styl 'BI' colo w+/br+ get hh pict '!@'

read if hh<>'C'

deac wind all set defa to &dng retu

endi

tp=spac(20)

@18,5 say ' Tởn tơp dƠ liơu cđn s¾p xỏp ' font '.VnTime',11 styl 'BI' get tp font 'system'

read tt=allt(tp) clea

@20,5 say ' Xin mêi xem dƠ liơu trắc khi s¾p xỏp. NhÊn Esc ợố tiỏp tôc ... ' ; font '.VnTime',11 styl 'BI' colo w+/rg+

acti wind w1 use &tt

copy to t1 fiel exce htnguoc,mhtnguoc use t1

brow

deacti wind w1 use &tt

clea

@18,10 say ' Nỏu cha cã trêng htnguoc,mhtnguoc thÈ thởm trêng ợã vắi htnguoc (C30), ;

mhtnguoc (C60) ' colo w+/br+

@19,10 say ' b"ng cĨch nhÊn phÝm mòi tởn xuèng rại thởm vÌo. Nỏu cã rại thÈ nhÊn Enter ;

ợố tiỏp tôc . . . '+spac(6) colo w+/br+

modi stru &&Thởm cĨc trêng htnguoc (C30) clea

**Chng trÈnh ợo ngîc b¾t ợđu tõ ợờy go top

dime m(10) do whil !eof()

* Chó ý: Trong cĨc cờu lơnh dắi ợờy, giƠa hai dÊu nhĨy ợn lÌ mét ký tù trèng for i=1 to 10 m(i)=' ' endf c=allt(hoten) sktt=occu(' ',c) xx=at(' ',c)

yy=rat(' ',c) zz=at(' ',c,2) do case case sktt=1 m(1)=subs(c,1,xx) m(2)=subs(c,yy) case sktt=2 m(1)=subs(c,1,xx) m(2)=subs(c,xx,zz-xx) m(3)=subs(c,yy) othe m(1)=subs(c,1,xx) m(2)=subs(c,xx,zz-xx) m(sktt+1)=subs(c,yy) for i=3 to sktt

m(i)=subs(c,at(' ',c,i-1),at(' ',c,i)-at(' ',c,i-1)) endf

endc tht=' ' (adsbygoogle = window.adsbygoogle || []).push({});

for i=sktt+1 to 1 step -1 tht=tht+' '+allt(m(i)) endf

repl htnguoc with allt(tht) skip endd ** Chng trÈnh ợo ngîc kỏt thóc ẽ ợờy ch1='AaÌỈĨÓ¡Ù"ÒỎ¾ậằờđẻÉÊẹBbCcDdớợ' ch2='EeỉịỹƯỦẳởồốÔỏơGgHhIiÈừưÝẺKkLlMmNn' ch3='Ooßáâãảẵ"ạăçèéặêẽìắîPpQqRrSs' ch4='TtUuĩĐòóôỠõöƠụùVvXxYyúủüýẼ' Vs=allt(ch1)+allt(ch2)+allt(ch3)+allt(ch4) ASt=' ' for i=1 to 118 ASt=ASt+chr(i) endf AS=Allt(ASt)

Repl all mhtnguoc with chrt(htnguoc,VS,AS) kq='Sx'+tt

sort to &kq on mhtnguoc fiel exce htnguoc,mhtnguoc

@10,2 say 'Chó ý: Trong th môc hiơn thêi nhƠng tơp b¾t ợđu b"ng Sx lÌ nhƠng tơp ợỈ s¾p xỏp';

font '.VnTime',11 styl 'BI'

@11,8 say 'vÝ dô, tơp SxDsach.dbf lÌ tơp s¾p xỏp cĐa tơp Dsach.dbf' font '.VnTime',11 styl 'BI'

@13,10 say ' NhÊn Enter ợố tiỏp tôc...' styl 'BI' colo w+/br+ wait ' '

clea

@20,5 say ' Xin mêi xem dƠ liơu sau khi s¾p xỏp. NhÊn Esc ợố tiỏp tôc ... ' ; font '.VnTime',11 styl 'BI' colo w+/rb+

acti wind w1 use &kq brow

deac wind all set defa to &dng close all

*quit retu

Code cĐa nót ghi:

Private m_makhoa, m_tenkhoa

m_makhoa = Thisform.txtMakhoa.Value m_tenkhoa = Thisform.txtTenkhoa.Value If Empty(m_Makhoa)

=messagebox("MỈ khoa kh"ng ợîc ợố tr¾ng...",0,_AppTitle) Thisform.txtMakhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f.

Endif

If Empty(m_Tenkhoa)

=messagebox("Tởn khoa kh"ng ợîc ợố tr¾ng...",0,_AppTitle) Thisform.txtTenkhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f.

Endif

SELECT dskhoa Seek m_makhoa If Found()

=messagebox("ớỈ cã mỈ khoa nay...",0,_AppTitle)

Thisform.txtMakhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f.

Endif

Insert into Dskhoa(makhoa, tenkhoa) values(m_makhoa, m_tenkhoa) release thisform

Private p_makhoa, p_manv, p_password, p_Tenkhoa p_makhoa =DSKHOA.makhoa p_Tenkhoa = thisform.CboTenkhoa.value p_manv = thisform.txtmanv.value p_password=thisform.txtpassword.value sele user seek p_makhoa+p_manv if !found()

=messagebox("Kh"ng cã nhờn viởn "+p_manv+" trong khoa "+p_tenkhoa+"...",64,_Apptitle) thisform.txtmanv.setfocus return .f. else if upper(allt(password))<>upper(allt(p_password)) =messagebox("Sai mẹt khẻu...",64,_Apptitle) thisform.txtpassword.setfocus return .f. else _CurUser = p_manv *Role = ROLE _CurPass = p_password _CodeLogin = p_makhoa *NameLogin = Allt(thisform.txttendv.value) * Close Data * =DongDBF("USER") * =DongDBF("DSKHOA") Release thisform Endif Code nót tÈm kiỏm set safe off

Masv=alltrim(upper(Thisform.text1.value)) Tensv=alltrim(upper(Thisform.text2.value)) Lop=alltrim(upper(Thisform.text3.value)) dk="" if len(masv)>0 dk=dk+"Alltrim(upper(masinhvien))='"+masv+"'" endif if len(tensv)>0 dk=dk+" and alltrim(upper(tensinhvien))='"+tensv+"'" endif if Len(lop)>0

dk=dk+" and alltrim(upper(lop))='"+lop+"'" endif (adsbygoogle = window.adsbygoogle || []).push({});

if len(masv)=0

dk=substr(dk,5,len(dk)-4) endif

defi wind hien at 1,1 size 35,150 color rgb(,,125,125,125) font ".vntime" 14

sele sinhvien

Join with sinhvien for sinhvien.masv=lop.masv to Dssv sele 0

use dssv loca for &dk if found() acti wind Hien

brow Field Hovaten,diachi,masv,lop,ngaysinh for &dk wind hien noedit rele wind Hien

else

Wait wind "Khong thay" endif

use

Môc lôc:

CHỠặNG I: PhŨng phĨp luẹn phờn tÝch thiỏt kỏ hơ thèng thỡng tin quộn lý sinh viởn

I.KhĨi quĨt vồ hơ thèng qun lý sinh viởn

II.CĨc giai ợoÓn phờn tÝch thiỏt kỏ hơ thèng thỡng tin Chng iI : Giắi thiơu vồ VisualFoxPro

CHỠặNG III : Phờn tÝch ,thiỏt kỏ vÌ xờy dùng hơ thèng quộn lý sinh viởn I.Phờn tÝch hơ thèng quộn lý sinh viởn

II.Thiỏt kỏ hơ thèng quộn lý sinh viởn

III.Thiỏt kỏ giao diơn vÌ xờy dùng chng trÈnh ChŨng IV : CÌi ợật ợĨnh giĨ vÌ hắng phĨt triốn 1. CÌi ợật

2. ớĨnh giĨ kỏt quộ thùc hiơn 3. PhŨng hắng phĨt triốn 4. Lêi cộm Ũn.

TÌi liơu tham khộo

1. GiĨo trÈnh hơ thèng thỡng tin quộn lý.

TS TrŨng VÙn Tó - TS Trđn ThẺ Song Minh. 2. Sö dông & khai thĨc Microsoft VISUAL FOXPRO.

NguyÔn Ngảc Minh. 3. NhƠng bÌi thùc hÌnh VISUAL FOXPRO.

Vn-Gide. 4. BÌi giộng cĐa thđy.

Một phần của tài liệu Chương trình quản lý sinh viên (Trang 40 - 55)