Thiết kế chương trình kiểm tra đánh máy mô phỏng các kỹ năng đánh máy của một người bình thường

26 393 0
Thiết kế chương trình kiểm tra đánh máy mô phỏng các kỹ năng đánh máy của một người bình thường

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thiết kế chương trình kiểm tra đánh máy mô phỏng các kỹ năng đánh máy của một người bình thường

KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh Lêi nãi ®Çu HiÖn nay cïng víi sù ph¸t triÓn cña C«ng nghÖ tin häc trªn thÕ giíi nãi chung vµ ViÖt Nam nãi riªng, nh÷ng n¨m gÇn ®©y tin häc ®ang chiÕm mét vai trß quan träng kh«ng thÓ thiÕu ®îc trong tÊt c¶ c¸c lÜnh vùc, vµ lu«n ®îc lµm môc tiªu hµng ®Çu ®Ó con ngêi nghiªn cøu, t×m tßi vµ ¸p dông nh÷ng thµnh tùu to lín cña tin häc vµo trong thùc tÕ, trong nh÷ng lÜnh vùc nh Khoa häc, Kinh tÕ, Kü thuËt,… Trong c«ng cuéc ®æi míi qu¶n lý kinh tÕ x· héi hiÖn nay, viÖc nghiªn cøu ph¸t triÓn hÖ thèng th«ng tin vÒ kinh tÕ x· héi vµ khoa häc kü thuËt cã vÞ trÝ ®Æc biÖt quan träng bëi hÖ thèng th«ng tin kinh tÕ x· héi cã chuÈn x¸c nhanh nh¹y, ®¸p øng ®îc mäi yªu cÇu ®iÒu hµnh th× c«ng t¸c qu¶n lý míi ®¹t hiÖu qu¶ thiÕt thùc Ngîc l¹i, th«ng tin thiÕu, th«ng tin chËm trÔ vµ kh«ng chuÈn x¸c sÏ kh«ng chØ lµm ¶nh h- ëng ®Õn c«ng cuéc ph¸t triÓn kinh tÕ x· héi tríc m¾t mµ ®«i khi cßn g©y t¸c h¹i cho c¶ mét thêi kú rÊt dµi V× vËy, nhu cÇu cÊp thiÕt ®Æt ra cho nh÷ng ngêi lµm c«ng t¸c vÒ c«ng nghÖ th«ng tin lµ ph¶i tæ chøc mét hÖ thèng th«ng tin ®iÒu hµnh s¾c bÐn, phôc vô kÞp thêi mäi yªu cÇu cña ngêi sö dông Do nhu cÇu thùc tÕ ®ßi hái, viÖc nghiªn cøu hÖ thèng th«ng tin kinh tÕ x· héi phôc vô ®iÒu hµnh ph¶i ®îc sím hoµn thµnh vµ ®a vµo thùc tiÔn ¸p dông Nã sÏ kh¾c phôc ®îc nhiÒu khã kh¨n trong viÖc qu¶n lý vµ xö lý th«ng tin Víi viÖc tin häc hãa trong mäi hÖ thèng, c¸c ng«n ng÷ lËp tr×nh ra ®êi ngµy cµng nhiÒu vµ hoµn thiÖn Ng«n ng÷ Pascal lµ 1 ng«n ng÷ thuËt gi¶i ,cã tÝnh cÊu tróc chÆt chÏ ,s¸ng sña HiÖn nay Pascal ®· trë thµnh mét trong c¸c ng«n ng÷ phæ biÕn nhÊt ,thÝch hîp víi nhiÒu øng dông khoa häc, kü thuËt, qu¶n ký vµ ®îc coi lµ ng«n ng÷ thÝch hîp nhÊt cho tÊt c¶ mäi ®èi tîng… X©y dùng mét ch¬ng tr×nh kiÓm tra ®¸nh m¸y m« pháng c¸c kü n¨ng ®¸nh m¸y cña mét ngêi b×nh thêng cho phÐp thùc hiÖn c¸c chøc n¨ng vÒ tèc ®é ®¸nh m¸y cña ngêi ®ã víi c¸c møc ®é khã kh¸c nhau vµ m¸y tÝnh sÏ ®a ra c¸c th«ng tin vÒ sè ký tù ®¸nh ®îc trong mét kho¶ng thêi gian nhÊt ®Þnh §©y lµ mét bµi tËp vÒ lËp tr×nh nh»m n©ng cao kü n¨ng vÒ lËp tr×nh Turbo Pascal vµ kü n¨ng ®å ho¹ §Ó hoµn thµnh bµi tËp nµy, t«i ®· tham kh¶o rÊt nhiÒu c¸c tµi liÖu, còng nh ®- îc sù híng dÉn tËn t×nh cña c¸c thÇy c« gi¸o trong khoa CNTH, ®Æc biÖt lµ thÇy ThS.Th¸i Thanh Tïng lµ ngêi chÞu tr¸ch nhiÖm híng dÉn chÝnh bµi tËp tùc hµnh tèt nghiÖp cho t«i.Tuy nhiªn trong qu¸ tr×nh lËp tr×nh còng nh thiÕt kÕ ®å ho¹ cßn cã nh÷ng sai sãt nªn t«i rÊt mong ®îc sù gãp ý cña c¸c thÇy c« vµ c¸c b¹n Em xin ch©n thµnh c¶m ¬n ! 1 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh Ch¬ng I : c¸c kh¸i niÖm c¬ b¶n ®îc sö dông trong ch¬ng tr×nh Trong ch¬ng tr×nh nµy chØ dïng c¸c hµm vµ thñ tôc vÒ ®å ho¹ nªn t«i chØ tr×nh bµy mét sè kh¸i niÖm liªn quan I Mµn h×nh ®å ho¹ Mµn h×nh v¨n b¶n (Text) ®îc thiÕt lËp ®Ó hiÓn thÞ 25 dßng vµ mçi dßng cã thÓ chøa ®îc 80 ký tù Mµn h×nh ®å ho¹ ®îc cÊu thµnh tõ mét ma trËn c¸c chÊm ¶nh nhá (Pixel) Sù bè trÝ c¸c Pixel trªn mµn h×nh nh thÕ nµo vµ bao nhiªu ®îc gäi lµ ®é ph©n gi¶i cña mµn h×nh (Resolution) Do mçi kiÓu mµn h×nh cã c¸ch xö lý riªng nªn ta thiÕt lËp tËp tin ®iÒu khiÓn ®å ho¹ ( *.bgi ë trong th môc \BGI) vµ kiÓu ch÷ (Font) ( *.chr ë trong th môc \BGI ) §èi víi mµn h×nh VGA (hiÖn nay phæ biÕn ) th× hÖ to¹ ®é lµ 640 x 480 Cã nghÜa lµ chiÒu ngang cã 640 Pixel, chiÒu däc cã 480 Pixel II C¸c hµm ®å ho¹ Trong ch¬ng tr×nh sö dông rÊt nhiÒu hµm , c¸c hµm nµy ®îc ®Þnh nghÜa trong “graphics.h” ë trong th môc \INCLUDE : Setcolor( ) Setbkcolor( ) Setfillstyle( ) Settextstyle( ) Setviewport( ) getcolor() getbkcolor() 2 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh line( ) rectangle( ) bar( ) bar3d( ) circle( ) elippse( ) 3 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh ch¬ng II : ThiÕt kÕ ch¬ng tr×nh phÇn I : C¸c modul chÝnh trong ch¬ng tr×nh Các module chính trong chương trình bao gồm: + Function tg_phut:Word; + Ve_Banphim : thủ tục vẽ bàn phím + VephimNhan(phim:char;kieuve:integer): thủ tục vè phím được nhấn + SinhMa(level:integer):Char: thủ tục sinh một mã phím tuỳ theo mức độ nhất chọn trong chương trình + GoPhim : thủ tục thực hiện thao tác gõ một phím và các tính toán bên trong + Ketqua : thủ tục hiện kết quả của ths sinh đăng nhập kiêm tra gõ bàn phím Các kết quả tính toán như sau: Số ký tự /phút=Số ký tự đánh được trong một phút Độ chính xác của việc gõ phím: Độ chính xác= Số ký tự chính xác/Số ký tự sinh ra*100 4 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh PhÇn II : hai thñ tôc quan träng trong ch¬ng tr×nh I-Thñ tôc Vephimnhan(phim :char,kieuve:integer) Thñ tôc nµy dïng ®Ó thùc hiÖn vÏ mét phÝm trªn bµn phÝm khi phÝm nµy ®îc nhÊn.Nªó c¸c phÝm ký tù ®Æc biÖt trªn bµn phÝm ®îc nhÊn VÝ dô: < , > ,? , +, \ , ( , ) th× ngoµi phÝm ký tù ,phÝm Shift còng ®îc nhÊn theo Thñ tôc nµy ®îc thùc hiÖn nh sau : Khi ngêi sö dông nhÊn mét phÝm trªn bµn phÝm sÏ sinh ra mét ký tù cña phÝm võa nhÊn Thñ tôc Vephimnhan sÏ quÐt qua toµn bé c¸c ký tù trªn bµn phÝm vµ kiÓm tra xem ®ã cã ph¶i lµ c¸c phÝm võa ®îc nhÊn kh«ng Nõu kh«ng ph¶i lµ phÝm ®îc nhÊn th× sÏ kh«ng vÏ l¹i phÝm ®ã.Nõu phÝm ®îc kiÓm tra lµ phÝm nhÊn th× ta sÏ vÏ l¹i phÝm ®ã theo kiÓu vÏ mµ ta ®a vµo KiÓu vÏ phÝm ë ®©y ®îc sö dông gåm cã 2 chÕ ®é: - ChÕ ®é phÝm ®ang ®îc nhÊn :phÝm ®ã sÏ bÞ lón xuèng víi mµu kh¸c tÊt c¶ c¸c phÝm kh¸c trªn bµn phÝm - ChÕ ®é phÝm kh«ng ®îc nhÊn :phÝm ®ã sÏ ®îc vÏ næi vµ cïng mµu víi c¸c phÝm cßn l¹i trªn bµn phÝm *Ta cã thÓ ®a ra ®o¹n m· Code cña ch¬ng tr×nh nh sau : Procedure VephimNhan(phim:char;kieuve:integer); Var i,j,k,x,y:integer; xhien,yhien:integer; Begin xhp2:=xhp1+3*dr div 2+kc; yhp2:=yhp1+ds+kc; xhp3:=xhp1+2*dr+kc; yhp3:=yhp2+ds+kc; xhp4:=xhp1+2*dr+2*kc; yhp4:=yhp3+ds+kc; xhp5:=xhp1+10*(dr+kc); yhp5:=yhp1+4*(ds+kc); xhien:=0;yhien:=0; {Hang 1} for k:=1 to 15 do if (chr(hp1[k])=phim) then 5 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh begin then xhien:=xhp1+(k-1)*(dr+kc); yhien:=yhp1; end; {Hang 2} for k:=1 to 13 do if(chr(hp2[k])=phim) then begin xhien:=xhp2+(k-1)*(dr+kc); yhien:=yhp2; end; {Hang 3} for k:=1 to 12 do if(chr(hp3[k])=phim) then begin xhien:=xhp3+(k-1)*(dr+kc); yhien:=yhp3; end; {Hang 4} for k:=1 to 13 do if(chr(hp4[k])=phim) then begin xhien:=xhp4+(k-1)*(dr+kc); yhien:=yhp4; end; {Hang 5} for k:=1 to 5 do if(chr(hp5[k])=phim) then begin xhien:=xhp5+(k-1)*(dr+kc); yhien:=yhp5; end; if ((phim=#60) or (phim=#62) or (phim=#63) or (phim=#34) or (phim=#58)) if kieuve=1 then ve_shift(kieuve+1) else ve_shift(1); if(phim=#32) then if kieuve=1 then ve_space(kieuve+1) else ve_space(1) else if ((ord(phim) in [27,49,50,51,52,53,54,55,56,57,48,45,43,61,8]) or (ord(phim) in [81,87,69,82,84,89,85,73,79,80,91,93]) or (ord(phim) in [65,83,68,70,71,72,74,75,76,59,58]) 6 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh or (ord(phim) in [90,88,67,86,66,78,77,44,46,39,92,42,47]) or (ord(phim) in [63,60,62,40,41])) then ve_o(kieuve,xhien,yhien,ds,dr,1); End; II – Thñ tôc GoPhim : §©y lµ thñ tôc chÝnh trong ch¬ng tr×nh gâ bµn phÝm Thñ tôc nµy sÏ thùc hiÖn chøc n¨ng gâ phÝm ,tÝnh to¸n sè ký tù mµ ch¬ng tr×nh sinh ra,sè ký tù mµ ngêi sö dông gâ chÝnh x¸c ®Ó tõ ®ã ®a ra ®îc tèc ®é gâ phÝm còng nh ®é chÝnh x¸c trong qu¸ tr×nh gâ phÝm cña ngêi sö dông Thñ tôc GoPhim ®îc thùc hiÖn nh sau : LÊy m· phÝm ®îc sinh ra th«ng qua thñ tôc sinh m· phÝm “SinhMa(Muc)” KiÓm tra xem ®ã cã ph¶i lµ phÝm ESC kh«ng ,nÕu ®óng lµ phÝm ESC th× sÏ dõng viÖc gâ phÝm Ngîc l¹i thñ tôc sÏ chê ngêi sö dông gâ mét phÝm trong mét kho¶ng thêi gian NÕu qu¸ thêi gian ®ã th× thñ tôc sÏ bá qua vµ sinh mét m· kh¸c NÕu ngêi sö dông gâ phÝm th× thñ tôc sÏ gäi l¹i thñ tôc Vephimnhan ®Ó vÏ l¹i phÝm võa ®îc nhÊn vµ kiÓm tra xem phÝm nhÊn ®· chÝnh x¸c víi phÝm võa ®îc sinh ra cha Qu¸ tr×nh nµy sÏ tiÕp tôc cho ®Õn khi ngêi sö dông nhÊn ESC ®Ó kÕt thóc qu¸ tr×nh gâ phÝm *Ta cã thÓ ®a ra ®o¹n m· Code cña ch¬ng tr×nh nh sau: Procedure GoPhim ; Var ch:char; MaDuocSinh:char; bd,kt:Word; Begin Sokytu:=0;SoKyTuSinh:=0; xchu:=30;ychu:=110; bd:=tg_phut; While true do Begin MaDuocSinh:=SinhMa(Muc); VietChu(xchu,ychu,MaDuocSinh); xchu:=xchu+textwidth('H')+1; if xchu>=getmaxx-20 then begin xchu:=30; ychu:=ychu+textheight('H')+10; end; if ychu>=180 then begin xchu:=30; ychu:=110; bar(10,80,80+getmaxx-90,170); Ve_O(1,10,80,100,getmaxx-20,1); end; Delay(1000);{Doi go phim va sinh ma} VephimNhan(Upcase(ch),1); if keypressed then 7 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh begin ch:=readkey; if ch=#27 then break; if ch=#0 then ch:=readkey; SoKyTuSinh:=SoKyTuSinh+1; VephimNhan(Upcase(ch),2); if upcase(ch)=upcase(MaDuocSinh) then Sokytu:=Sokytu+1 else begin Sokytu:=Sokytu-1; sound(1000);delay(100);nosound; end; end; End; kt:=tg_phut; if (kt-bd)0 then TS.tocdo:=Sokytu/(kt-bd) else TS.tocdo:=0; if SokytuSinh=0 then TS.chinhxac:=0 else TS.chinhxac:=Sokytu/(SokytuSinh*100); End; 8 KiÓm tra §¸nh m¸y NguyÔn TrÇn TuÊn Anh Ch¬ng III : PhÇn thÓ hiÖn ch¬ng tr×nh PROGRAM GOBANPHIM; Uses Crt,Dos,Graph; Const yhp1 :integer=230; Const xhp1 :integer=30; Const ds :integer=32; {do sau cua phim} Const dr :integer=34; {do rong cua phim} Const kc :integer=5; {khoang cach giu cac phim} Const xmenu:integer=60; {toa do x cua menu} Const ymenu:integer=10; {toa do y cua menu} Const drm :integer=120; {do rong cua 1 o menu} Const dsm :integer=40; {do sau cua 1 o menu} Const h1:array[1 15]of string=('ESC','1','2','3','4','5','6','7','8','9','0','-','+','=','

Ngày đăng: 27/04/2013, 23:07

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan