?? 主程序.prg
字號:
+CHR(13)+"與白水高中:朱光銳 聯(lián)系獲得序列號,TEL:6726356!,感謝支持正版!",16,"未授權(quán)!")
RETU
ENDIF
DO daorucjb
ENDIF
****************推測年級值開始****************************************
RECALL ALL
DELE FOR 備注="刪除"
PACK
BLAN ALL FIELDS 去尾
REPL ALL 刪除 WITH "*" FOR 備注="流失"
REPL ALL 刪除 WITH "*" FOR 備注="轉(zhuǎn)走"
REPL ALL 刪除 WITH "*" FOR 備注="留級"
REPL ALL 刪除 WITH "#" FOR 備注="借讀"
REPL ALL 刪除 WITH "#" FOR 備注="寄讀"
REPL ALL 刪除 WITH "#" FOR 備注="晚來"
REPL ALL 刪除 WITH "#" FOR 備注="轉(zhuǎn)入"
REPL ALL 刪除 WITH "#" FOR 備注="坐級"
DELE FOR 刪除="*" &&
********找出最少班的人數(shù)
REPL ALL 班級 WITH VAL(SUBS(考號,2,2))
GO TOP
LOCA FOR LEFT(考號,1) $ "123" .AND. 刪除<>"*"
IF FOUND()
nj= VAL(LEFT(考號,1))
ELSE
IF "一年級" $ wjm1
nj=1
ENDIF
IF "二年級" $ wjm1
nj=2
ENDIF
IF "三年級" $ wjm1
nj=3
ENDIF
ENDIF
GO TOP
LOCA FOR kl="2"
IF FOUND()
sffwlk=2
ELSE
sffwlk=1
ENDIF
njmc=SUBS(dxhz,nj*2-1,2)+"年級"
***************推測年級值------結(jié)束***************************************
***************推測年份、階段、考試全稱值------開始***********************
*pathDBF=LEFT(file1,RAT("\",file1)) &&路徑未尾已帶了"\"
ksqc=STRT(wjm1,"成績","")
IF LEFT(ksqc,1) $ ("0123456789")
dqnf=IIF(BETW(VAL(ksqc),1952,2051),VAL(ksqc),IIF(BETW(VAL(ksqc),52,99),VAL(ksqc)+1900,VAL(ksqc)+2000))
ELSE
dqnf=YEAR(dqrq)
ENDIF
jdmc=SUBS(wjm1,AT("年級",wjm1)+4,AT("考試",wjm1)-(AT("年級",wjm1)+4))
IF jdmc $ jdmc_all
jdmcbh=INT((AT(jdmc,jdmc_all)+5)/6)
jdmc=ALLT(SUBS(jdmc_all,jdmcbh*6-5,6))
ksqc=STR(dqnf,4)+"年"+njmc+jdmc+"考試"
ELSE
****根據(jù)文件名推測不成,則根據(jù)當(dāng)前日期來猜測
DO tcnfrqjdmc
ENDIF
**********************************************
SET SAFE OFF
INDE ON 班級 TO cjkidx
SET SAFE OFF
DO tcbjm &&推測班級名
DO tckmm &&推測科目名
DO tcmcm &&推測名次名
***************推測文、理班級數(shù),文、理班級名稱----結(jié)束***********************
***************對推測值進(jìn)行***********************
DO tcbjrs
* DO FORM 班級信息
* DO FORM 科目信息
* DO FORM 校驗分?jǐn)?shù)
REPL ALL kl WITH IIF(sffwlk=1,'1',IIF(SUBS(sy_bj,班級*2-1,2) $ wk_bj,'2','1'))
SELE cjk
BLANK ALL FIELDS 去尾
IF sftjzbs
RECALL FOR 刪除="#"
ELSE
DELE FOR 刪除="#"
ENDIF
DO tcklxx
IF sftjzbs
RECALL FOR 刪除="#"
ELSE
DELE FOR 刪除="#"
ENDIF
DO tcbjrs
IF MESSAGEBOX("是否針對此成績表,建立一個相應(yīng)的各科積分表",36,"確 認(rèn)")=6
DO xinjian2
ENDI
ENDPROC
*************************************************************************************************************
PROC xinjian2() &&新建一個空的積分表
IF ALLT(DBF(1))==""
= MESSAGEBOX("必須先新建一個成績表",16,"提示")
RETU
ENDIF
wjm2=ksqc+'積分表'
file2 =pathdbf+ wjm2
file2 = PUTF('新建積分',file2,"DBF")
IF ALLT(file2)==""
=MESSAGEBOX("積分表,沒命名,沒能建立!",0,"提示")
RETU
ENDI
CREA TABLE (file2) (bj N(2),jsh N(3),kl c(1),klh N(2),教師名 c(8),班級名 c(6),科目名 c(4))
USE
USE (file2) IN 2 ALIA jjk
**********************積分表中的指標(biāo)
FOR i=1 TO 11
zdm="ZB"+ALLT(STR(i))
zdm1="ZBLX"+ALLT(STR(i))
zdm2="ZBKD"+ALLT(STR(i))
zdm3="ZBWS"+ALLT(STR(i))
xxzdm=&zdm+" "+&zdm1+" ("+ALLT(STR(&zdm2))+","+ALLT(STR(&zdm3)) +")"
ALTE TABLE (DBF()) ADD &xxzdm
ENDF
x= MESSAGEBOX("積分表已建立,讓電腦根據(jù)成績表中的科目,班級自動為"+CHR(13)+"該表填充科目名,教師名,班級名,等數(shù)據(jù)!請選擇【是】";
+CHR(13)+"從文件中導(dǎo)入數(shù)據(jù),請選擇【否】,放棄請選擇【取消】";
,547,"選擇")
IF x=6
DO addjjb
ENDI
IF x=7
DO daorujjb
SELE jjk
BROW FREE 教師名 NODE NOAP
ENDIF
ENDPROC
*************************************************************************************************************
PROC addcjb() &&給成績表自動添加數(shù)據(jù)
FOR i=1 TO bjs
STOR min_brs+5-INT(6*RAND()) TO sjbjrs[i]
ENDF
DO FORM 指定班級人數(shù)
SELE cjk
FOR i=1 TO bjs
FOR j=1 TO sjbjrs[I]
APPEN BLAN
REPL 班級 WITH i,考號 WITH STR(nj*10000+i*100+j,5),姓名 WITH "S"+STRT(STR(j,2)," ","0"),;
kl WITH IIF(SUBS(sy_bj,i*2-1,2) $ lk_bj, "1","2")
ENDF
ENDF
IF MESSAGEBOX("成績表已建立,是否讓電腦填充隨機成績及性別來演示!",36,"確 認(rèn)")=6
SELE cjk
REPL ALL 備注 WITH "流失",刪除 WITH "*" FOR RAND()>0.95
REPL ALL 備注 WITH "借讀",刪除 WITH "#" FOR RAND()<0.05
DELE FOR 刪除="*" .OR. (刪除="#" .AND. .NOT. sftjzbs)
REPL ALL 性別 WITH IIF(RAND()>0.4,"女",'男')
FOR N=1 TO kms-1
zdm=SUBS(sy_km,N*4-3,4)
REPL ALL &zdm WITH mf(N)*(0.35+0.65*RAND())*(RAND()*0.08+0.92) FOR (AT(SUBS(sy_bj,班級*2-1,2),wk_bj)>0 .AND. AT(zdm,wk_km)>0);
.OR. (AT(SUBS(sy_bj,班級*2-1,2),lk_bj)>0 .AND. AT(zdm,lk_km)>0)
BLANK ALL FIELDS &zdm FOR 刪除="*"
ENDF
REPL ALL 學(xué)號 WITH "2340"+考號
ENDI
DO tcbjrs
BROW FREE 姓名 NODE NOAPP
ENDPROC
PROC addjjb() &&給積分表自動添加數(shù)據(jù)
SELE jjk
k1=0
FOR i=1 TO kms
FOR j=1 TO bjs
IF ((SUBSTR(sy_bj,j*2-1,2) $ lk_bj) .AND. (SUBS(sy_km,i*4-3,4) $ lk_km) .OR. (SUBSTR(sy_bj,j*2-1,2) $ wk_bj) .AND. (SUBS(sy_km,i*4-3,4) $ wk_km))
k1=k1+1
APPE BLAN
REPL bj WITH j,kl WITH IIF(SUBSTR(sy_bj,j*2-1,2) $ lk_bj, "1","2"),教師名 WITH "T"+STRT(STR(k1,3)," ","0"),;
班級名 WITH SUBSTR(dxhz,nj*2-1,2)+SUBSTR(sy_bj,j*2-1,2)+"班"
REPL klh WITH i
REPL jsh WITH k1
REPL 科目名 WITH SUBS(sy_km,i*4-3,4)
ENDIF
ENDF
IF SUBS(sy_km,i*4-3,4) $ lk_km
APPE BLAN
REPL klh WITH i
REPL 科目名 WITH SUBS(sy_km,i*4-3,4)
REPL bj WITH 0,kl WITH "1",教師名 WITH IIF(sffwlk=1,IIF(klh=kms,"年級",科目名)+"組長","理科"+科目名),班級名 WITH IIF(sffwlk=1,"全年級","理科班")
ENDIF
IF sffwlk=2 .AND.SUBSTR(sy_km,i*4-3,4) $ wk_km
APPE BLAN
REPL klh WITH i
REPL 科目名 WITH SUBS(sy_km,i*4-3,4)
REPL bj WITH 0,kl WITH "2",教師名 WITH "文科"+科目名, 班級名 WITH "文科班"
ENDIF
ENDF
BROW FREE 教師名 NODE NOAP
ENDPROC
*************************************************************************************************************
*************************************************************************************************************
PROC xsbh() &&根據(jù)總分或姓氏等對學(xué)生重新編號
SELE cjk
SET FILT TO
SET DELE OFF
REPL 新號 WITH STR(nj*100000,6) FOR .T.
SET FILT TO 刪除<>'*'
SET SAFE OFF
x=BAR()
DO CASE
CASE x=1
INDE ON - 總分 TO cjkidx
CASE x=2
INDE ON 姓名 TO cjkidx
CASE x=3
INDE ON 學(xué)號 TO cjkidx
ENDCASE
SET SAFE ON
x= MESSAGEBOX(" 采用五位數(shù)字作為考號:前三位為年級,班級,后兩位為序號,請選擇【是】,采用六位數(shù)字"+CHR(13);
+"作為考號:前三位為年級,班級,后三位為序號,請選擇【否】,放棄請選擇【取消】",547,"選擇編考號的方法!")
IF x=7
ALTE TABLE (DBF()) ALTE 考號 c(6)
ALTE TABLE (DBF()) ALTE 新號 c(6)
k1=0
GO TOP
SCAN FOR 刪除<>'*'
k1=k1+1
REPL 新號 WITH STR(nj*100000+ATCC(SUBSTR(sy_bj,班級*2-1,2),bjmc_all)*1000+k1,6)
ENDS
ENDIF
IF x=6
ALTE TABLE (DBF()) ALTE 考號 c(6)
ALTE TABLE (DBF()) ALTE 新號 c(5)
FOR i=1 TO bjs
k1=0
GO TOP
SCAN FOR 班級=i .AND. 刪除<>'*'
k1=k1+1
REPL 新號 WITH STR(nj*10000+ATCC(SUBSTR(sy_bj,i*2-1,2),bjmc_all)*100+k1,5)
ENDS
ENDF
ENDIF
SET FILT TO
SET DELE OFF
ENDPROC
*************************************************************************************************************
PROC sanzf() &&加總分
SELE cjk
* 統(tǒng)計總分
IF "綜理" $ sy_km .AND. zhksjsld
REPL ALL 綜理 WITH &temp1
ENDIF
IF "綜文" $ sy_km .AND. zhksjsld
REPL ALL 綜文 WITH &temp2
ENDIF
IF "總分" $ sy_km
REPL ALL 總分 WITH &temp
ENDIF
IF nj=1
DO CASE
CASE jdmcbh=1
REPL ALL 入學(xué)分 WITH 總分
CASE jdmcbh=2
REPL ALL 一上期中分 WITH 總分
CASE jdmcbh=3
REPL ALL 一上期末分 WITH 總分
CASE jdmcbh=4
REPL ALL 一下期中分 WITH 總分
CASE jdmcbh=5
REPL ALL 一下期末分 WITH 總分
ENDCASE
ENDIF
IF nj=2
DO CASE
CASE jdmcbh=2
REPL ALL 二上期中分 WITH 總分
CASE jdmcbh=3
REPL ALL 二上期末分 WITH 總分
CASE jdmcbh=4
REPL ALL 二下期中分 WITH 總分
CASE jdmcbh=5
REPL ALL 二下期末分 WITH 總分
ENDCASE
ENDIF
IF nj=3
DO CASE
CASE jdmcbh=2
REPL ALL 三上期中分 WITH 總分
CASE jdmcbh=3
REPL ALL 三上期末分 WITH 總分
CASE jdmcbh=4
REPL ALL 三下期中分 WITH 總分
CASE jdmcbh=6
REPL ALL 三下適應(yīng)分 WITH 總分
CASE jdmcbh=7
REPL ALL 中考總分 WITH 總分
ENDCASE
ENDIF
ENDPROC
*************************************************************************************************************
PROC sanzmc()&&算總名次
PRIV N,m,i,i1,i2
SELE cjk
**** 統(tǒng)計全年級各科目名次
****排文科的年級名次
SET DELE OFF
FOR N=1 TO kms
FOR m=1 TO sffwlk
zdm=SUBS(sy_km,N*4-3,4)
zmcm=SUBS(tj_zmc,N*4-3,4)
BLANK ALL FIELDS &zmcm. FOR kl=STR(m,1)
IF .NOT. ( zdm $ (IIF(m=1,lk_km,wk_km)))
LOOP
ENDIF
* @15,15 SAY "正在統(tǒng)計全年級【"+zdm+"】的名次,請稍候... " FONT "宋體",15 STYL "b"
lcMsg = "正在統(tǒng)計全年級【"+zdm+"】的名次,請稍候..."
WAIT WINDOW lcMsg NOCLEAR NOWAIT AT SROW()/2, (SCOLS()-LEN(lcMsg))/2
SET SAFE OFF
INDE ON - &zdm. TO cjkidx
SET SAFE ON
GO TOP
i3=1
i1=-1
DO WHIL .NOT. EOF() .AND. &zdm.>=0
IF kl=STR(m,1)
IF &zdm. <> i1
REPL &zmcm. WITH i3
IF 刪除="*"
BLANK FIEL &zmcm
ENDIF
IF .NOT. DELE()
i1=&zdm.
i2=&zmcm.
ENDIF
ELSE
REPL &zmcm. WITH i2
IF 刪除="*"
BLANK FIEL &zmcm
ENDIF
ENDIF
IF .NOT. DELE()
i3=i3+1
ENDIF
ENDIF
SKIP
ENDDO
ENDF
ENDF
* @ 15,15 SAY ' ' FONT "宋體",15 STYL "B"
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -