版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計實例(一)建立/編輯自由表結(jié)構(gòu)(1)表設(shè)計器:(2)命令(3)SQL建立如圖的學(xué)生情況表結(jié)構(gòu),命名為Students.dbf,為下一步錄入記錄數(shù)據(jù)做好準(zhǔn)備。學(xué)號姓名性別出生日期專業(yè)入學(xué)成績班級簡歷相片05001李國防男05/12/87營銷學(xué)598營銷05-1memoGenC(5)C(10)C(2)D(8)C(10)N(6,2)C(12)M(4)G(4)(二)自由表_ 添加新記錄(1)輸入框(2)程序*.prg(3)表單*.scx錄入李國防同學(xué)的信息05001李國防男05/12/87營銷學(xué)598營銷05-1簡歷相片在E: vfp實驗 文件夾中保存一份王碼個人簡歷 “李國防簡歷.txt”文
2、檔和一張李國防個人相片“李國防.bmp”。員工(員工編號 C(4),姓名 C(8),性別 C(2),出生日期 D(8),職務(wù) C(10),工資 N(7,2),簡歷 M(4),相片 G(4)15 / 14文檔可自由編輯打印準(zhǔn)備建立一張“員工.dbf”一建立表單1建立form,標(biāo)簽,文本框,單選鈕組, 組合框,微調(diào)框,編輯框,圖象框 命令按鈕2屬性設(shè)置*.caption=Combo1捆綁數(shù)據(jù)列表(經(jīng)理、班長、銷售員)二建立數(shù)據(jù)環(huán)境 添加“員工.dbf”三對象事件過程form_load:定義公共變量瀏覽:選擇員工的相片添加:選擇當(dāng)前表“員工.dbf”,數(shù)組元素接收各控件的當(dāng)前值將數(shù)組寫入員工.dbf
3、表尾記錄取消:清除各控件值退出:釋放表單四運行form_load:定義公共變量public p, public array a(7) p=“”瀏覽:選擇員工的相片p=getpict()thisform.image1.picture="&p"添加:接收各控件的當(dāng)前值,然后將數(shù)組寫入員工.dbf表尾記錄a(1)=thisform.text1.valuea(2)=thisform.text2.valueIf thisform.optiongroup1.option1.value=1a(3)="男"elsea(3)="女"endifc
4、srq=""+thisform.text3.value+""a(4)=&csrqa(5)=bo1.valuea(6)=thisform.spinner1.valuea(7)=thisform.edit1.valueselect 員工Append from array a fields 員工編號,姓名,性別,出生日期,職務(wù),工資 if empty(thisform.edit1.value)=.f.replace 簡歷 with a(7) addiendifif empty(p)=.f.append gene 相片 from "&p
5、" endif取消:清除各控件值thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""bo1.value=""thisform.spinner1.value=0thisform.edit1.value=""thisform.image1.picture=“”P=“”退出:釋放表單thisform.release(三)記錄數(shù)據(jù)的計算(1)命令:(2)prg程序(3)表單*.scx在VFP系統(tǒng)的默認(rèn)文件夾中
6、有數(shù)據(jù)“表”如圖,要求統(tǒng)計并顯示男同學(xué)的人數(shù)、總分、平均入學(xué)成績。寫出其操作指令 解題思路(算法)1、打開表2、計算男人數(shù),賦給n3、計算男總分,賦給s4、計算男平均,賦給p5、顯示 n, s, p7、關(guān)閉表Use studentscount all for 性別=”男” to nsum all for 性別=”男” 入學(xué)成績to saverage all for 性別=”男”入學(xué)成績 to p? “男生人數(shù)=”,n? “男生入學(xué)總成績=”,s? “男生平均入學(xué)成績”,puse在VFP系統(tǒng)的默認(rèn)文件夾中有數(shù)據(jù)“表”如圖,若A、B、C三個數(shù)據(jù)能構(gòu)成三角形,則計算三角形面積,將面積S和“構(gòu)成三角形
7、”信息寫入對應(yīng)記錄的字段,若A、B、C三個數(shù)據(jù)不能構(gòu)成三角形,則將面積“0”和“不能構(gòu)成三角形” 信息寫入對應(yīng)記錄的字段。提示:1、構(gòu)成三角形條件:二邊之和必大于第三邊2、 其中input"三角形的第一邊長=" to xinput"三角形的第二邊長=" to yinput"三角形的第三邊長=" to zif x=0 or y=0 or z=0 or x+y<=z or x+z<=y or y+z<=x?"不能構(gòu)成三角形"elsep=(x+y+z)/2s=sqrt(p*(p-x)*(p-y)*(p-
8、z)?"三角形的面積=",sendif(四)記錄數(shù)據(jù)的刪除(1)命令:(2)prg程序(3)表單scx例:在VFP系統(tǒng)的默認(rèn)文件夾中有數(shù)據(jù)“表”如圖,編寫實現(xiàn)按“姓名”進(jìn)行刪除記錄的程序。 要求:程序中要對刪除的記錄進(jìn)一步的確認(rèn),若沒有指定姓名的記錄,要有信息報告“查無此人!”Use studentsAccept “姓名” to xmLocate all for 姓名=xmIf found( )=.T. display K=messagebox("要刪除記錄請選擇確定,否則選擇取消",1+32,"確認(rèn)刪除操作?")If K=1 del
9、ete pack endifelseY=messagebox("查無此人","信息報告")End if(五)記錄數(shù)據(jù)的查詢(1)命令:(2)prg程序(3)SQL(4)表單*.scx在VFP系統(tǒng)的默認(rèn)文件夾中有數(shù)據(jù)“表”如圖,編寫程序?qū)崿F(xiàn)按銷售員查詢員工的銷售清單“銷售日期,商品,金額”,若沒有指定姓名的員工,則信息報告“查無此人!”查詢 COMMAND1按鈕的Click事件過程:xm=alltrim(bo1.value)Locate all for 銷售員=xmIf found( )select 銷售日期,商品,sum(數(shù)量*單價*折扣率) as &q
10、uot;金額" from 明湖超市.dbf where 銷售員=xm into dbf bb.dbfthisform.grid1.recordsource="bb"thisform.grid1.recordsourcetype=0thisform.refreshelsey=messagebox("查無此人!")endifreturn 準(zhǔn)備建立一張“students.dbf”一建立表單1建立form,標(biāo)簽,文本框, 命令按鈕,表格控件2屬性設(shè)置*.caption=二建立數(shù)據(jù)環(huán)境 添加“students.dbf”三對象事件過程查詢選擇當(dāng)前表stud
11、ents接收text1當(dāng)前值查找If 找到Sql查詢產(chǎn)生一張自由表szy使表格grid1捆綁szy.dbf更新否則信息報告“查無”四運行select studentszy=trim(thisform.text1.value)locate all for zy $ students.專業(yè)if found() select 專業(yè),姓名,入學(xué)成績; from students; where zy $ students.專業(yè); into dbf szy; order by 入學(xué)成績 desc thisform.grid1.recordsourcetype=1 thisform.grid1.record
12、source="szy" thisform.refresh else y=messagebox("查無此專業(yè)的學(xué)生記錄!") endif(六)菜單(1)新菜單替代系統(tǒng)菜單:(2)新菜單插入在系統(tǒng)菜單:(3)新菜單出現(xiàn)在表單*.scx:建立如圖菜單:操作退出顯示查詢(八)表單的其它應(yīng)用(1)登錄身份驗證:系統(tǒng)登錄的密碼驗證表單要求:1設(shè)計表單(如圖)2選擇用戶名和輸入密碼:3身份驗證,驗證用戶名和密碼 正確,信息報告“身份驗證通過”。 不正確,信息報告“沒通過”。4三次口令均不正確,關(guān)閉VFP系統(tǒng)。準(zhǔn)備: 建立”pass.dbf”一建立表單1建立form,
13、標(biāo)簽,組合框, 文本框,命令按鈕2屬性設(shè)置 *.caption=Combo1捆綁表pass.用戶姓名二建立數(shù)據(jù)環(huán)境 添加“pass.dbf”三對象事件過程輸入用戶姓名、密碼在pass中查找用戶姓名、密碼If 找到信息報告“”否則信息報告“”計數(shù)n=n+1If n>=3,成立,退出VFP四運行form_loadpublic nn=0 Command1_clickxm=bo1.valuemm=val(thisform.text1.value)locate for pass.用戶姓名=xm and pass.密碼=mmif found()y=messagebox("正確!身份驗證通過
14、")Thisform.releaseelsey=messagebox("錯誤!身份驗證沒通過")endifn=n+1if n>=3quitendif(2)觸發(fā)器密碼輸入:students-修改clearaccept "輸入插入觸發(fā)器密碼ps1:" to ps1accept "輸入更新觸發(fā)器密碼ps2:" to ps2if ps1="42" and ps2="142" use 員工信息 appendelse Y=messagebox("密碼錯誤","信
15、息報告")(3)文檔備份對話框:(4)瀏覽記錄瀏覽刪除表單:表單中刪除按鈕的代碼:ans=messagebox("確定要刪除當(dāng)前記錄嗎?",4+32,"信息提醒")if ans=6 delete pack messagebox("當(dāng)前記錄已經(jīng)被成功刪除") endif go top thisform.refresh注意:執(zhí)行此表單時一定要將數(shù)據(jù)環(huán)境中的員工表的屬性exclusive設(shè)為.T.瀏覽修改與查詢表單: 查詢按鈕代碼:n1=alltrim(bo1.value) do case case n1="姓名&quo
16、t; locat for 姓名=alltrim(thisform.text1.value) if found() thisform.txt員工編號.value=alltrim(員工.員工編號) thisform.txt姓名.value=alltrim(員工.姓名) thisform.txt性別.value=alltrim(員工.性別) thisform.txt出生日期.value=dtoc(員工.出生日期) thisform.txt職務(wù).value=alltrim(員工.職務(wù)) thisform.txt工資.value=str(員工.工資) thisform.edt簡歷.value=alltr
17、im(員工.簡歷) * thisform.pageframe1.page1.ole.controlsource=員工.相片 else messagebox("沒有該員工") endif case n1="員工編號" locat for 員工編號=alltrim(thisform.text1.value) if found() thisform.txt員工編號.value=alltrim(員工.員工編號) thisform.txt姓名.value=alltrim(員工.姓名) thisform.txt性別.value=alltrim(員工.性別) this
18、form.txt出生日期.value=dtoc(員工.出生日期) thisform.txt職務(wù).value=alltrim(員工.職務(wù)) thisform.txt工資.value=str(員工.工資) thisform.edt簡歷.value=alltrim(員工.簡歷)else messagebox("沒有該員工") endif endcase thisform.refresh (九)數(shù)值(數(shù)學(xué))計算(1)順序:1XX超市面上的商品交易結(jié)算,輸入商品數(shù)量和單價,計算出應(yīng)付金額input " 商品單價p=" to pinput "商品數(shù)量x=&
19、quot; to xy=p*x?" 應(yīng)付金額=",y2輸入一個三位整數(shù),將其反向輸出(如輸入123,輸出321)input "輸入數(shù)據(jù)X=" to xc=mod(x,10)a=int(x/100)b=int(x/10)%10x=c*100+b*10+a?"x=",x(2)分支:1計算:在VFP系統(tǒng)的默認(rèn)文件夾中有數(shù)據(jù)“表”如圖,計算個人的社會保險,所得稅和實發(fā)金額。提示:1、社會保險為總收入的10%2、個人所得稅納稅條例規(guī)定:個人總收入不足2000元的不納稅,個人總收入超過2000元的,超過部分按20%納稅。input "
20、總收入x=" to xinput "社會保險y=" to yy=x*0.1?" 社會保險=",yinput "總收入x=" to xif x>2000x=x*0.8elsex=xendif?"實際收入x=",x2教材p164.3輸入學(xué)生成績,若大于80,則輸出“優(yōu)良” ,小于60則輸出“不合格”,否則輸出“良好”input”輸入學(xué)生成績x=” to xif x>80p=”優(yōu)秀”else if x<60p=”不合格”else p=”中等” endifendif? “這個學(xué)生屬于”,p(3)
21、循環(huán):1求1100之間全部奇數(shù)(或偶數(shù))之和。y=0for x=1(奇)/x=2(偶) to 100 step 2y=y+xendfor?" 1到100之間奇數(shù)和y=",y2P146例9.6求水仙花數(shù)for x=100 to 999a=int(x/100)b=int(x/10)%10c=mod(x,10)if x=a3+b3+c3?"水仙花數(shù)",xendifendfor3P146例9.7 查最值input "從鍵盤中輸入一個數(shù):" to a store a to max,minfor i=2 to 15input "從鍵盤中
22、輸入一個數(shù):" to a if max<amax=aendifif min>amin=a endifendfor?"最大值為:",max?"最小值為:",min4輸入一個下整數(shù)N,計算N的階乘結(jié)果(4!=1*2*3*4=24)* 求5的階乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDO?jRETURN5輸入一個整數(shù)N,判斷N是否素數(shù)(質(zhì)數(shù)),是打印N是素數(shù),還是就打印N不是素數(shù)。input "要判定的正整數(shù)=" to nk=1for a=2 to n-1 step 1k=(n
23、%a)*kendforif k=0p="合數(shù)"elsep="質(zhì)數(shù)"endif?" 判定結(jié)果",p(4)過程:1 P153例9.122 P153例9.143 計算組合數(shù)(m,n)的結(jié)果,例組合數(shù)(4,2)的結(jié)果12。(十)文件管理(1)備份:為了防止學(xué)生情況表(students.dbf)因機器故障、病毒攻擊、不當(dāng)操作而丟失,為及時做好備份,要求復(fù)制副本文件名為”bak_students” 保存位置是“d:備份”文件夾close alluse students.dbfcopy to d:備份bak_ students use(2)恢復(fù):因
24、學(xué)生情況表(students.dbf)因機器故障、病毒攻擊、不當(dāng)操作,造成數(shù)據(jù)丟失和數(shù)據(jù)混亂,要求及時將備份在d:備份bak_ students.dbf的副本文件恢復(fù)回計算機,以保證數(shù)據(jù)管理的正確性。close alluse students.dbf exclusivezapappend from d:備份bak_ students.dbfwait “數(shù)據(jù)成功恢復(fù)” windows at 20, 40 return(3)合并:有二張結(jié)構(gòu)完全相同的自由表students, students2,現(xiàn)要求將students2中的全部記錄添加到students尾部,實現(xiàn)二表的合并Use st
25、udentsAppend from students2browse(4)記錄移動: 設(shè)備表(sb)如圖,將設(shè)備調(diào)拔給一車間(ycj),實物已轉(zhuǎn)移交接,要求實現(xiàn)資產(chǎn)信息的轉(zhuǎn)移。(即sb中刪除移出的記錄,ycj中添加轉(zhuǎn)入的記錄),提示二個表的結(jié)構(gòu)完全相同。解題思路(算法)1、工作區(qū)2,打開ycj表 2、工作區(qū)1,打開sb表 3、從鍵盤上輸入設(shè)備的編號4、查找設(shè)備編號查詢5、if 判斷(找到) 顯示定位記錄 定位記錄的數(shù)據(jù)復(fù)制到a數(shù)組 將定位記錄打上刪除標(biāo)記 將有刪除標(biāo)記記錄清除 選擇2號工作區(qū) 在一車間表(ycj)尾部添一空記錄 將數(shù)組a元素的值,寫入這個空記錄 報告“記錄成功轉(zhuǎn)移”信息 否則(沒
26、找到) 報告“查無此設(shè)備”信息6、關(guān)閉表程序設(shè)計(代碼)Use ycj in 2Use sb in 1 Accept “設(shè)備編號” to bhLocate all for 設(shè)備編號=bhIf found( ) disp scatter to a delete pack select 2 append blank gather from a wait “記錄成功轉(zhuǎn)移” windowselse y=messagebox(“查無此設(shè)備”)End ifClose table all階乘:(1)input "需求階乘數(shù)=" to ny=ndo while n>2y=y*(n-1
27、)n=n-1enddo?"結(jié)果=",y(2)input "需求階乘數(shù)=" to ay=1for x=1 to a step 1y=y*xendfor?"結(jié)果",y操作:1、建立表單:安放控件(如圖)2、數(shù)據(jù)環(huán)境定義:students.dbf3、各對象控件捆綁students.dbf表中字段4、編寫程序(1)文件首:go top ; 更新;按鈕抑制(2)上一個記錄:skip -1; 更新;按鈕抑制(3)下一個記錄:skip +1; 更新;按鈕抑制(4)文件尾:go bottom; 更新;按鈕抑制(5)退出游覽:thisform.rele
28、ase(1)go topthisform.refreshif bof()=.T.mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.t.mand4.enabled=.t.elsemand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.endif(2)skip-1thisform.refreshif bof()=.T.mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.t.mand4.enabled=.t.elsemand1.
29、enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.endif(3)skip+1thisform.refreshif eof()=.T.mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.f.mand4.enabled=.f.elsemand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.endif(4)go bottomthisform.refreshif eof()=.T.mand1.enabl
30、ed=.t.mand2.enabled=.t.mand3.enabled=.f.mand4.enabled=.f.elsemand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.endif(5)thisform.release計算階乘fac=5! (即fac =1*2*3*4*5)Input “x=” to xfac=1for n=1 to x step 1fac=fac*nendfor? “fac=” , fac一定范圍內(nèi)質(zhì)數(shù)之和clears=0for i=2 to 100 n=0 for j=1 to i-1
31、if mod(i,j)=0 n=n+1 endif endfor if n=1 s=s+i endifendfor?"1100的素數(shù)之和:",s計算11000之間全部奇數(shù)之和及全部偶數(shù)之和y1=0y2=0for x=1 to 100if x%2 <> 0/if mod(x,2)=0y1=y1+xelsey2=y2+xendifendfor?"11000之間所有的奇數(shù)和為:",y1?"11000之間所有的偶數(shù)和為:",y2口令主程序的設(shè)計。(1)輸入用戶名和密碼:與pass.dbf中預(yù)設(shè)權(quán)限比較。(2)用戶名和密碼正確通過,
32、信息框報告“執(zhí)行子程序sub1操作”。(3)用戶名和密碼不正確,提示信息“用戶名或密碼錯誤!”,若三次均不正確,關(guān)閉VFP系統(tǒng)。1變量Xm,mm2計算處理3解題思路(算法):1打開pass表2組織循環(huán)n=1 3 輸入姓名xm,mm 順序查找locate for if 判斷查找(用戶姓名和密碼正確) 調(diào)用子程序(do sub1.prg) 否則 顯示報告信息Go top3 if n>3 條件成立,退出VFP系統(tǒng)。4事件保持4程序設(shè)計 (命令窗口) modi comm p95上機運行通過(正確) (命令窗口)do p9.prgUse pass.dbfFor n=1 to 3 step 1Accept “用戶姓名=” to xmInput “密碼=” to mmLocate all for 用戶姓名=xm and 密碼=mmIf found( )Y=messagebox(“執(zhí)行do sub1,進(jìn)行sub1過程操作”) exit && do sub1.prgelse wait “用戶名或密碼錯誤!,再來一次”EndifEndforIf ( n >3) QuitEndifReturn &&read events明湖百貨有限公司的商品銷售表“明湖超市.dbf”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育家精神引領(lǐng)高校思政課教師職業(yè)素養(yǎng)評價體系建構(gòu)研究
- 二零二五版鋁合金建筑模板采購協(xié)議書4篇
- 商場內(nèi)品牌專賣店裝修許可協(xié)議(2025年)2篇
- 2025年度苗木種植與林業(yè)產(chǎn)業(yè)發(fā)展合作合同4篇
- 二手房合作投資合同模板2024版B版
- 二零二五年度人工智能教育培訓(xùn)合同補充協(xié)議6篇
- 二零二五年度旅行社與航空公司合作協(xié)議書3篇
- 2025年度品牌跨界合作與品牌授權(quán)合作協(xié)議4篇
- 二零二五版?zhèn)€人貸款居間中介服務(wù)協(xié)議書6篇
- 2025年度個人房產(chǎn)抵押借款合同規(guī)范文本8篇
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細(xì)則版B版
- 幼兒園籃球課培訓(xùn)
- 【企業(yè)盈利能力探析的國內(nèi)外文獻(xiàn)綜述2400字】
- 統(tǒng)編版(2024新版)七年級《道德與法治》上冊第一單元《少年有夢》單元測試卷(含答案)
- 100道20以內(nèi)的口算題共20份
- 高三完形填空專項訓(xùn)練單選(部分答案)
- 護(hù)理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
評論
0/150
提交評論