新岳乱合集目录500伦_在教室里被强h_幸福的一家1—6小说_美女mm131爽爽爽作爱

免費咨詢電話:400 180 8892

您的購物車還沒有商品,再去逛逛吧~

提示

已將 1 件商品添加到購物車

去購物車結(jié)算>>  繼續(xù)購物

您現(xiàn)在的位置是: 首頁 > 免費論文 > 會計論文 > 建立憑證的有聲校驗系統(tǒng)

建立憑證的有聲校驗系統(tǒng)

建立憑證的有聲校驗系統(tǒng)
朱偉民
  一、引言

  目前所流行的會計軟件基本上都是“無聲”的。人機(jī)交互一般都是通過鍵盤、鼠標(biāo)、顯示屏、打印機(jī)實現(xiàn)的。事實上,在開發(fā)會計軟件時,我們可以引入多媒體技術(shù),讓電腦與人以“說話”的形式進(jìn)行交流,傳遞指令和信息,從而使電算化會計核算工作做得更有效、更迅捷、更好。
  在帳務(wù)系統(tǒng)憑證輸入方式設(shè)計中,我們可以使用語音輸入技術(shù)(如IBM的Via Voice)將憑證讀入電腦,實現(xiàn)憑證語音錄入。由于會計核算過程中所涉及的詞匯量有限,重復(fù)出現(xiàn)頻率高,因此此項技術(shù)實現(xiàn)難度將遠(yuǎn)低于一般的文章語音錄入。在帳務(wù)系統(tǒng)憑證校對和帳簿信息查詢中,我們可以讓電腦讀憑證和帳簿,實現(xiàn)有聲校對、有聲查詢。本文就VFP系統(tǒng)環(huán)境下,如何應(yīng)用多媒體技術(shù)開發(fā)有聲憑證校驗系統(tǒng),作一個介紹。

  二、界面設(shè)計

  本系統(tǒng)憑證審核界面(見附圖)主要涉及兩個表文件:記帳憑證表和聲源文件表。記帳憑證表結(jié)構(gòu)如下:
  create table pzk (rq c (8), pzh n(4),zy c(40,fy c(2),kmdm1 c(5),yjkm1 c(14),ejkm1 c (14), jf1 n (12.2),df 1 n(12.2),kmdm2 c(5),yjkm2 c(14),e-jkm2 c(14),jf2 n (12.2),df2 n(12.2),kmdm3 c(5),yjkm3 c(14),ejkm3 c(14),jf3 n(12.2),df3 n(12.2),kmdm4 c(5),yjkm4 c(14),ejkm4 c(14),jf4 n(12.2),df4 n(12.2),hidan c(8),shenhe c(8),jizhang c(8),bz c(4)
  其中各字段含義分別是:日期、憑證號、摘要、科目代碼、一級科目名、二級科目名、借方金額、貸方金額、制單人、審核人、記帳人、憑證標(biāo)志。其中科目代碼、科目名稱、借方金額、貸方金額都重復(fù)設(shè)置了四個字段,以使表中一條記錄對應(yīng)一張憑證。
  聲源文件表結(jié)構(gòu)如下:create table sndjd(sd-name c(11),sdpath c(20)
  其中sdname中存放應(yīng)發(fā)聲的文字作為檢索標(biāo)志,sdpath中存放聲音文件在磁盤中的路徑,如上表所示。
  在表單中設(shè)計了一組命令按鈕,以實現(xiàn)憑證審核校對所需的各項功能。表單中安排的科目代碼文本框的目的,主要是供系統(tǒng)根據(jù)文本框內(nèi)的科目代碼檢索出對應(yīng)的發(fā)聲文件所用。在電腦中用“錄音機(jī)”通過話筒錄下各數(shù)字和會計科目對應(yīng)的聲音文件,存入C:zwwav子目錄中,完成聲源資料的儲備。

  三、憑證有聲校驗的實現(xiàn)

  本系統(tǒng)憑證的有聲校驗是借助于Foxtoold.fll中的工具函數(shù)Regfn()和Callfn(),通過調(diào)用動態(tài)鏈接庫Mmsystem.dll中的API函數(shù)sndPlaySound實現(xiàn)的。在表單中安排一個“有聲校驗”按鈕,它的功能是對表單中的憑證號、科目名稱、借貸方向及金額進(jìn)行朗讀,以供操作者校對。實現(xiàn)此功能的相關(guān)程序代碼如下:
  ADD OBJECT command8 AS commandbutton WITH; &&建立“有聲校驗”按鈕
   Top=309;
   Left=18;
   Height=25;
   Width=65;
   FontSize=11;
   Caption=”有聲校驗”;
   Name=“Command8”
  PROCEDURE Init
   public sound1, shuju
   set library to foxtools.fll  &&裝入程序庫
   sound1=regfn(“sndplaysound”,“CI”,“I”,Mm-system”) &&注冊函數(shù)
  ENDPROC
  PROCEDURE Unload
   =callfn(sound1,””,10) &&關(guān)閉聲音及程序庫
   set library to
   clea dlls
   sele 1
   use stpz
   dele for kmdm1=spac(6)
   pack
   use
   sele 2
   use
   sele 1
  ENDPROC
  PROCEDURE command8.Click
   sele 2
   =callfn(sound1,”C:zwwavpzh.wav”,1)
   =inkey(0.5)
   shuju=thisform.pzh1.value
   do snd &&調(diào)用snd.prg讀憑證號
   for I=1 to 4&&循環(huán)中依次讀憑證中每行的科目名,借貸方向及金額
    n=str(I)
    nkmdm=’kmdm’+allt(’&n’)+’1’
    njf=’jf’+allt(’&n’)+’1’
    ndf=’df’+allt(’&b’)+’1’
   kkm=’thisform.’+allt(’&nkmdm’)+’’value’
   jjf=’thisform.’+allt(’&njf’)+’.value’
   ddf=’thisform.’+allt(’&ndf’+’.value’
    loca for sndjd.cdname=allt(&kkm) &&由科目代碼找科目名聲音文件路徑
    ddd=sndjd.sdpath
    =callfn(sound1,“&ddd”,1)&&讀科目名
    =inkey(0.5)
    if &jjf<>0 and &ddf=0
    =callfn (sound1,“C:zwwavd.wav”,1) &&讀借方
    =inkey((0.5)
    shuju=&jjf
    endif
    if &jjf=0 and &ddf<>0
    =Callfn(sound1,“C:zwwavc.wav”,1) &&讀貸方
    =inkey(0.5)
    shuju=&ddf
    endif
    do snd&&調(diào)用snd.prg讀金額
   =inkey(0.8)
   endfor &&以上循環(huán)中依次讀憑證中每行的科目名,借貸方向及金額
  ENDPROC
  *********snd.prg*********
  sele 2
  if shuju>=10000 and shuju<100000 &&讀萬位數(shù)
  loca for sndjd.sdname=allt(str(int(shuju/100000))))
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  =callfn(sound1,”C:zwwav10000.way”.1) &&讀位權(quán)
  =inkcy((.5)
  Shuju=shuju-int(shuju/10000)*10000
   if shuju<1000 and shuju<>0 &&若千位為0,只讀數(shù)不讀位權(quán)
   =callfn(sound1,”C:zwwav.wav,1)
   =inkey(0.5)
   endif
  endif
  if shuju>=1000 and shuju<10000 &&讀千位
  loca for sndjd.sdname=allt(str (int (shuju/1000)))
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
=callfn(sound1,
  =callfn(sound,“C:zwwav1000.wav”,1)
  =inkey(0.5)
  shuju=shuju-int(shuju/1000)*1000
   if shuju<100 and shuju<>0
   =callfn(sound1,“C:zwwav.wav”,1)
   =inkey(0.5)
   endif
  endif
  if shuju>=100 and shuju<1000 &&讀百位
  loca for sndjd.sdname=allt(str int (shuju/100))
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  =callfn(sound1,“C:zwwav100.wav”,1)
  =inkey(0.5)
  shuju=shuju-int(shuju/100)*100
   if shuj<10 and shuju<>0
   =callfn(sound1,“C:zwwav.wav”,1)
   =inkey(0.5)
   endif
  endif
  if shuju>=10 and shuju<100 &&讀十位
  loca for sndjd.sdname=allt(str(int(shuju/10)))
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  =callfn(sound1,“C:zwwav10.wav”,1)
  =inkey(0.5)
  shuju=shuju-int(shuju/10)*10
  endif
  if int(shuju)<>0 &&讀個位
  loca for sndjd.sdname=allt(str(shuju))
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  shuju=shuju-int(shuju)
  endif
  if shuju>0
  =callfn(sound1,“C:zwwavdian.wav”,1) &&讀小數(shù)點
  =inkey(0.5)
  shuju=shuju*100
  loca for sndjd.sdname=allt(str (int (shuju/10))) &&十分位數(shù)
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  shuju=shuju-int(shuju/10)*10
  endif
  if shuju>0
  loca for sndjd.sdname=allt(str (shuju)) &&讀百分位數(shù)
  ddd=sndjd.sdpath
  =callfn(sound1,“&ddd”,1)
  =inkey(0.5)
  endif
  sele 1
  retu
  以上子程序snd.prg只讀出小于十萬的數(shù),小數(shù)點后只讀兩位。若要讀更大范圍的數(shù),可類似地擴(kuò)充程序段。Inkey()函數(shù)用來間隔兩次發(fā)聲時間,以保持語音清晰。
  本系統(tǒng)在帶有聲卡和音箱的pⅡ電腦上,使用Visual Foxpro 6.0軟件編程,通過實際運行檢驗。

  作者單位:上海立信會計高等??茖W(xué)校

服務(wù)熱線

400 180 8892

微信客服