版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第一部分VFP實驗1.1VisualFoxPro系統(tǒng)初步實驗1VFP環(huán)境和項目管理器1)實驗?zāi)康耐ㄟ^本次實驗掌握VFP啟動、退出、四種操作方式及系統(tǒng)設(shè)置,熟悉項目管理器的使用。2)實驗要求和內(nèi)容1啟動分別用Windows的【開始】按鈕→【程序】的菜單方法和從桌面上建立的【快捷圖標(biāo)】啟動VisualFoxPro6.0系統(tǒng)。2了解VFP的主界面了解VFP的主界面,如標(biāo)題欄、菜單欄、常用工具欄、狀態(tài)欄和命令窗口等。掌握命令窗口的顯示與隱藏。(單擊【常用】工具欄上的【命令窗口】按鈕;或通過【窗口】菜單下的【命令窗口】選項來切換;或直接按Ctrl+F2或Ctrl+F4組合鍵)3了解設(shè)置VFP的配置環(huán)境.定制自己的使用環(huán)境單擊菜單欄中的【工具】→【選項】,打開【選頂】對話框,選擇【文件位置】選項卡,將【默認(rèn)目錄】改為“E:\實驗”(該路徑可以根據(jù)需要設(shè)置)。單擊該對話框中的其他選項卡,設(shè)置環(huán)境并保存,使系統(tǒng)能滿足個人的要求。4掌握項目管理器的使用①創(chuàng)建項目管理器在E盤上建立一個項目叫“學(xué)生學(xué)籍管理”,保存在“E:\實驗”中。②各選項卡和按鈕的使用單擊【項目管理器】窗口中的各個選項卡,了解各個選項卡包含的文件類型。在【數(shù)據(jù)】選項卡與【文檔】選項卡中,用按鈕完成新建、添加、修改、移去、刪除及文件共享等操作,了解向?qū)Ш驮O(shè)計器操作方式,體會“目錄樹”結(jié)構(gòu)。在不同的對象上單擊右鍵完成【編輯說明】等操作。單擊不同類型的文件,觀察項目管理器右側(cè)的6個按鈕的顯示情況(黑色或灰色)。③定制對建立的項目完成移動、縮放、折疊、拆分、停放等操作。5退出VFP返回Windows操作系統(tǒng)四種方法:用鼠標(biāo)左鍵單擊VisualFoxPro6.0標(biāo)題欄最右面的關(guān)閉窗口按鈕。從【文件】下拉菜單中選擇【退出】選項。單擊主窗口左上方的標(biāo)題欄的狐貍圖標(biāo),從窗口下拉菜單中選擇【關(guān)閉】,或者按Alt+F4鍵。在命令窗口中鍵入QUIT命令后按回車鍵。1.2數(shù)據(jù)與數(shù)據(jù)運算實驗2VisualFoxPro6.0的基本操作1)實驗?zāi)康模?)進一步熟悉VisualFoxPro6.0的窗口界面及各菜單項的基本用途。(2)初步掌握VisualFoxPro的基本數(shù)據(jù)類型。掌握變量的賦值、輸出、清除、保存以及恢復(fù);區(qū)分常量、變量的不同;掌握運算符使用及表達式的書寫。(3)初步掌握VisualFoxPro的常用函數(shù)的使用及表達式的書寫規(guī)則。2)實驗要求(1)實驗前復(fù)習(xí)VisualFoxPro的用戶界面、操作方式、命令的結(jié)構(gòu)。(2)掌握VisualFoxPro的數(shù)據(jù)類型、運算規(guī)則和函數(shù)功能。(3)掌握交互式命令執(zhí)行方法。3)實驗內(nèi)容1簡單內(nèi)存變量的賦值與輸出(1)用賦值號“=”,對變量A,B,C,D,E分別賦值為數(shù)值常量123,字符常量“abc□□”,日期常量{^2006-09-10},邏輯常量.t.,字符常量”□□□CDF”(其中“□”表示空格);(2)在下一行輸出A,B,C,D的值;(3)用命令STORE對變量X1,X2,XYZ,XZ均賦值為10;(4)在當(dāng)前行輸出X1,X2,XYZ,XZ的值;(5)分別用listmemory/displaymemory顯示內(nèi)存中的變量,觀察這兩個命令的區(qū)別。2數(shù)組的賦值與輸出(1)定義兩個數(shù)組變量X(3),Y(2,3)(2)用displaymemory顯示數(shù)組x,y,觀察其元素個數(shù)及值(3)在命令窗口依次執(zhí)行如下三條命令:x=3y(1,1)=5y(2,2)=.t.(4)輸出x(1),x(2),x(3),y(1,1),y(1,2),y(2,2),y(1),y(5)的值,觀察其結(jié)果,注意數(shù)組變量賦值和數(shù)組元素賦值的不同,體會一維數(shù)組和二維數(shù)組的關(guān)系。3變量的清除、保存以及恢復(fù)(1)將以上定義的變量保存在文件bl.mem中(2)將X開頭的內(nèi)存變量清除,并用displaymemory顯示(3)將文件bl.mem中的變量恢復(fù)到內(nèi)存中,并用displaymemory顯示,觀察與②有何不同?4利用前面定義的變量A、B、C、D、E,完成以下操作,注意變量與常量的區(qū)別:(1)輸出變量B和字符串常量”B”,觀察兩者有何不同;(2)輸出日期型常量{^2006-09-10}和變量C;(3)給變量t賦值為2,執(zhí)行命令?.t.,t注意觀察結(jié)果。5利用前面定義的變量A、B、C、D、E,完成以下操作,注意運算符的使用:(1)輸出當(dāng)天日期與日期型變量C相差的天數(shù);(2)輸出當(dāng)天日期的前10天和后10天的日期;(3)輸出變量A加上20后的結(jié)果;(4)執(zhí)行命令?B+E+"Z",B-E+"Z",觀察兩者有何不同;(5)輸出表達式C+10<DATE()的值;(6)輸出表達式B="ab"和B="ab">D的值;(7)執(zhí)行命令setexacton后,輸出(6)中表達式的值,與上題輸出的值進行比較。6轉(zhuǎn)換成VFP的表達式,并計算表達式的值(1);(3);(3),設(shè)x=8.5,y=12.6;(4)設(shè)直角三角形的兩條直角邊長分別為a=12,b=13,求斜邊c的長度,并保留一位小數(shù)。7利用函數(shù)完成以下操作,注意函數(shù)的使用:(1)求N的絕對值和絕對值的平方根;(2)輸出N的整數(shù)部分,不允許四舍五入;(3)對N保留小數(shù)2位;(4)將N的值轉(zhuǎn)換字符型,總位數(shù)為7位,小數(shù)位為1位。假設(shè)S1="重慶計算機基礎(chǔ)學(xué)會"(5)從字符串S1中分別取出字符串"重慶"、"計算機"、"學(xué)會";(6)分別測試字符串"計算機"、"計算機學(xué)會"在字符串S1中的起始位置。(7)測試字符串"學(xué)會"在字符串"重慶計算機基礎(chǔ)學(xué)會是西南地區(qū)計算機基礎(chǔ)研究學(xué)會"第二次出現(xiàn)的位置;(8)將字符串S1中的"重慶"改成"西部地區(qū)";(9)將字符串S1中的"基礎(chǔ)"去掉;(10)在字符串S1的前后各加5個星號;假設(shè)S2="□□□abCD34fgS□□"(其中“□”表示空格)(11)分別刪除字符串S2的首部空格、尾部空格、首尾的所有空格;(12)將字符串S2中所有字母分別轉(zhuǎn)換為大寫字母、小寫字母;(13)輸出當(dāng)前的系統(tǒng)日期、系統(tǒng)時間,并分別測試其類型;(14)取出系統(tǒng)日期時間中的年、月、日、時、分、秒;假設(shè)C="07/21/2005"(15)將字符串C轉(zhuǎn)換為日期型并求出它15天后的日期;(16)分別將字符串""、"34abc56"、"ab123"轉(zhuǎn)換成數(shù)值型,并觀察它們的不同;(17)執(zhí)行命令?mod(35,6),mod(-35,6),mod(35,-6),mod(-35,-6)注意觀察當(dāng)兩個參數(shù)符號改變后其值有何不同;(18)分別測試字符串"A","ABC"的ASCⅡ碼。(19)輸出比"Z"的ASCII小20的字符。(20)隨機輸出字符串“yes!”或”no!”8觀察?輸出的結(jié)果,分析下列命令中SET命令的作用?DATE()SETCENTURYON?DATE()SETDATETOANSI?DATE()1.3VisualFoxPro數(shù)據(jù)庫及其操作實驗3表設(shè)計1)實驗?zāi)康募耙笠笳莆誚FP數(shù)據(jù)表的設(shè)計方法,主要要求掌握【表設(shè)計器】及【表向?qū)А康氖褂?。同時掌握表記錄數(shù)據(jù)的輸入方法——包括備注型和通用型字段數(shù)據(jù)的輸入方法。2)實驗內(nèi)容1創(chuàng)建數(shù)據(jù)表(1)VFP表設(shè)計器設(shè)計表所示的學(xué)生檔案表結(jié)構(gòu),文件名為“”。(2)輸入表所示的學(xué)生檔案信息到學(xué)生表中。表學(xué)生檔案表結(jié)構(gòu)信息字段名字段類型字段寬度小數(shù)位數(shù)學(xué)號字符型8-姓名字符型8-性別字符型2-出生日期日期型--專業(yè)班級字符型20-照片通用型--簡歷備注型--表學(xué)生檔案表學(xué)號姓名性別出生日期專業(yè)班級照片簡歷20050005張廣田男10/11/1987計算機1班GenMemo20050010蜂雪燕女07/02/1987計算機1班GenMemo20050015何芳女05/06/1987計算機1班GenMemo20050020馮艷女09/09/1987計算機1班GenMemo20050025陳興華男02/14/1987英語3班GenMemo20050030陳宗貴男07/02/1987英語3班GenMemo20050035張偉男03/24/1987英語3班GenMemo20050040張光輝男03/07/1987英語3班GenMemo20043567那措央中女06/30/1986機械制造4班GenMemo20043679鄔德齋男04/26/1986機械制造4班GenMemo20045643崔婷婷女06/08/1986機械制造4班GenMemo20047634馮麗娟女06/30/1986機械制造4班GenMemo操作步驟:①【文件】菜單中選擇【新建】選項,在彈出的【新建】對話框中選擇【表】選項,如圖(a)所示,單擊【新建文件】按鈕,彈出【創(chuàng)建】對話框,在此填寫表文件名“”,如圖1.3.1(b)所示。圖(a)【新建】對話框圖1.3.1(b)【創(chuàng)建】對話框②單擊【保存】按鈕,打開【表設(shè)計器】,在表設(shè)計器中將各字段信息設(shè)定好,如圖所示,單擊【確定】按鈕,完成表結(jié)構(gòu)的設(shè)計。圖【表設(shè)計器】對話框③首次創(chuàng)建數(shù)據(jù)表完成時,系統(tǒng)會提示是否輸入數(shù)據(jù),如果選擇【是】,進入數(shù)據(jù)錄入窗口,如圖所示。(注:通用型字段數(shù)據(jù)輸入時,雙擊gen,彈出“”窗口,然后在【編輯】菜單中選擇【插入】對象,在【插入對象】對話框中選擇【由文件創(chuàng)建】單選鈕,再單擊【瀏覽】按鈕,找到要插入的圖片,然后單擊【確定】按鈕,完成圖片的插入,最后單擊“”窗口的【關(guān)閉】按鈕保存。備注型字段數(shù)據(jù)輸入,雙擊memo,彈出“”窗口,在此窗口中輸入備注信息,單擊“”窗口上的【關(guān)閉】按鈕保存。圖數(shù)據(jù)錄入窗口(3)用VFP表設(shè)計器建立選課成績表和,并輸入表和表1.3.4中的數(shù)據(jù),文件名分別為“”和“”。表選課成績表學(xué)號/C/8課程號/C/3學(xué)期/C/2成績/N/5/1補考成績/N/5/120050010001138.020050020001120050025030188.0020050010030167.0020050005010158.0200500250342020045643001120050035023202004564303320表課程表課程號/C/3課程名/C/20學(xué)時/N/3學(xué)分/N/2必修否/L/1001高等數(shù)學(xué)I1208.T.010大學(xué)英語28012.T.030計算機基礎(chǔ)603.F.033操作系統(tǒng)基礎(chǔ)602.T.034微型計算機原理803.T.2數(shù)據(jù)表的簡單操作(1)打開“”數(shù)據(jù)表,用LIST和LISTSTRUCTURE命令分別顯示表的記錄和結(jié)構(gòu);(2)為打開的“”數(shù)據(jù)表增加一個“入學(xué)總分/N/5/1”字段,在“照片”字段之前插入,并輸入數(shù)據(jù)內(nèi)容(470到650之間);(3)打開“”數(shù)據(jù)表,用MODIFYSTRUCTURE命令,將“補考成績/N/5/1”字段改成“重修成績/N/3”(4)恢復(fù)對以上數(shù)據(jù)表的修改。實驗4數(shù)據(jù)表的操作1)實驗?zāi)康募耙笸ㄟ^本實驗掌握數(shù)據(jù)表的基本操作,主要要求掌握數(shù)據(jù)表中記錄的顯示、編輯、修改、插入與刪除,索引的建立與使用,記錄的查詢、統(tǒng)計計算等操作。2)實驗內(nèi)容1用“COPYTO<文件名>”命令復(fù)制當(dāng)前打開的表文件(1)將打開的數(shù)據(jù)表“”復(fù)制一個備份,文件名為:“”,打開“”表并顯示;(2)將已打開的“”表文件中計算機1班的男生復(fù)制到“”中,打開“”表并顯示;(3)將已打開的“”表文件復(fù)制到“”,只取“姓名”,“性別”,“專業(yè)班級”等字段,打開“XSDA2.DBF”表并顯示;(4)將已打開的“”表文件中86年出生的女生復(fù)制到“”,只取“姓名”,“性別”,“出生日期”字段,打開“XSDA3.DBF”表并顯示;2用COPYSTRU命令復(fù)制當(dāng)前表文件的結(jié)構(gòu)。(1)打開數(shù)據(jù)表“”,用LISTSTRU顯示表的結(jié)構(gòu),將“”表文件的結(jié)構(gòu)復(fù)制到“”,打開數(shù)據(jù)表“”,用LISTSTRU顯示表的結(jié)構(gòu);(2)將“”表文件結(jié)構(gòu)復(fù)制到“”,只取“姓名”,“性別”,“專業(yè)班級”等字段,打開數(shù)據(jù)表“XS2.DBF”,用LISTSTRU顯示表的結(jié)構(gòu)。3對學(xué)生檔案表完成下列操作:(1)向數(shù)據(jù)表末尾追加一記錄,各字段值自定;(2)將專業(yè)班級字段的值全部修改為“自動化1班”;(3)按性別字段建立結(jié)構(gòu)復(fù)合索引,其標(biāo)識名為“性別”,并顯示其結(jié)果;(4)邏輯刪除所有男生的記錄。操作步驟:①打開表的命令為“USE<數(shù)據(jù)表名>”,添加一條記錄的命令為“APPEND”,在“命令窗口”中輸入下列命令來完成第一個任務(wù)。USE學(xué)生檔案&&打開學(xué)生表APPEND&&在表尾部添加一條記錄,并彈出錄入窗口,在此輸入數(shù)據(jù)②在命令窗口中輸入:REPLACEALL專業(yè)班級WITH“自動化1班”LIST&&查看命令執(zhí)行結(jié)果這樣將對每一條記錄中的專業(yè)班級字段修改為“自動化1班”③在命令窗口輸入:Indexon性別tag性別LIST&&注意觀察排序結(jié)果,記錄號的位置變化這樣將對表按性別字段進行復(fù)合索引④在命令窗口輸入:DELETEFOR性別=”男”LIST&&注意觀察邏輯刪除的記錄這樣將邏輯刪除所有男生記錄多表關(guān)聯(lián)將學(xué)生檔案數(shù)據(jù)表、學(xué)生選課成績表、學(xué)生課程表進行關(guān)聯(lián),并顯示學(xué)生的學(xué)號、姓名、課程名及學(xué)生的成績操作步驟:在命令窗口中輸入:SELECT1USE學(xué)生檔案ALIASDA&&為學(xué)生檔案數(shù)據(jù)表定義別名DAINDEXON學(xué)號TAGXHSELECT2USE課程ALIASKC&&為課程表定義別名KC INDEXON課程號TAGKCH SELECT3 USE成績 SETRELATIONTO學(xué)號INTODA&&成績表與學(xué)生檔案表建關(guān)聯(lián) SETRELATIONTO課程號INTOKCADDITIVE&&成績表與課程表建關(guān)聯(lián) LIST學(xué)號,DA.姓名,KC.課程名,成績&&注意觀察顯示結(jié)果 CLOSEALL5建表,完成下列操作:(1)按如下內(nèi)容建立職工工資表(ZGGZ.DBF):Gh表示職工號,Xm表示姓名,Jbgz表示基本工資,Gwgz表示崗位工資,Bt表示補貼,Df表示電費,F(xiàn)z表示房租,Kkhj表示扣款合計,Yfgz表示應(yīng)發(fā)工資,Sfgz表示實發(fā)工資,Bm表示部門,其中建表時Kkhj、Yfgz和Sfgz等字段中的記錄值為空,必須通過命令REPLACE計算得到,計算公式為:Kkhj=Df+Fz;Yfgz=Jbgz+Gwgz+Bt;Sfgz=Yfgz-kk表職工工資表GhXmBmJbgzGwgzBtDfFzKkhjYfgzSfgz1001李明洋廠部2003黃紅兵供應(yīng)科1003趙偉康銷售科1004李良廠部2006黃金保銷售科61002孫武供應(yīng)科2001錢紅銷售科2002楊鈴嵐銷售科2004陳宏廠部(2)計算銷售科所有職工的應(yīng)發(fā)工資總和;(3)計算銷售科的最高基本工資和最低基本工資;(3)按部門進行匯總,統(tǒng)計各部門應(yīng)發(fā)工資的總和;(5)給廠部的職工基本工資增加300元,銷售科職工的基本工資增加250元,供應(yīng)科職工的基本工資增加150元。操作步驟:①命令窗口輸入:SUMyfgzTOsfFORBm="銷售科"&&sf為保存應(yīng)發(fā)工資的變量?sf&&顯示應(yīng)發(fā)工資這樣就將銷售科應(yīng)發(fā)工資保存到變量sf中了②命令窗口輸入:CALCULATEMAX(Jbgz),MIN(Jbgz)TOzg,zdFORBm="銷售科"&&用變量zg,zd分別保存最高基本工資和最低基本工資?zg,zd&&顯示最高基本工資和最低基本工資這樣就將銷售科最高基本工資和最低基本工資就保存到變量zg和zd中了③命令窗口輸入:LIST&&查看命令執(zhí)行結(jié)果,注意和原表進行比較這樣就將各部門應(yīng)發(fā)工資以記錄的方式保存到表Zggz1中了④命令窗口輸入:REPLACEJbgzWITHJbgz+300FORBm="廠部"REPLACEJbgzWITHJbgz+250FORBm="銷售科"REPLACEJbgzWITHJbgz+150FORBm="供應(yīng)科"LIST&&查看命令執(zhí)行結(jié)果這樣就將廠部、銷售科、供應(yīng)科職工分別增加相應(yīng)的基本工資6對選課成績表作備份,文件名為“”;打開“”表,完成下列操作:(1)在數(shù)據(jù)表的第3條記錄之前插入一條記錄,各字段值自定,并顯示;(2)將所有學(xué)生的成績都加10分,并將重考成績字段的值全部修改為0;(3)用LOCATE和CONTINUE命令查詢學(xué)號為“20050010”的所有記錄并顯示,同時分別用RECNO()、FOUND()和EOF()函數(shù)測試記錄號、是否找到以及指針是否指到結(jié)束位置;(4)對數(shù)據(jù)表按“學(xué)期”升序,學(xué)期相同時按“成績”降序建立單索引文件,索引文件名為XQSY.IDX,并顯示其結(jié)果;(5)對數(shù)據(jù)表按“學(xué)期”降序,學(xué)期相同時按“成績”降序建立結(jié)構(gòu)復(fù)合索引文件,索引標(biāo)識名為XQ,并顯示其結(jié)果;(6)按學(xué)號字段升序建立結(jié)構(gòu)復(fù)合索引,標(biāo)識名為XH,并顯示其結(jié)果;(7)用SEEK和FIND命令分別查詢學(xué)號為“20050010”的第一條記錄,若要讓指針指到第二條記錄如何處理;(8)邏輯刪除前5條記錄中不及格的記錄,顯示后恢復(fù);(9)物理刪除第二學(xué)期的記錄,并顯示;(10)用ZAP命令刪除CJ.DBF表文件中的所有記錄,再用LIST、LISTSTRU命令顯示文件內(nèi)容和結(jié)構(gòu);(11)測試空表的特征,顯示CJ.DBF表文件的BOF(),EOF(),RECNO()各函數(shù)的值。實驗5數(shù)據(jù)庫設(shè)計1)實驗?zāi)康耐ㄟ^本實驗掌握數(shù)據(jù)庫的建立方法,包括數(shù)據(jù)庫的設(shè)計、永久關(guān)系的建立、字段級規(guī)則和記錄級規(guī)則的建立,觸發(fā)器及參照完整性設(shè)計等操作。2)實驗內(nèi)容),將實驗二建立的三個表添加到數(shù)據(jù)庫中,并在三個表間建立永久關(guān)系。(2)分別為各表建立字段和記錄級規(guī)則。(3)為數(shù)據(jù)庫建立參照完整性規(guī)則。操作步驟:①選擇【文件】菜單下的【新建】命令項,在彈出的【新建】窗口中選擇【數(shù)據(jù)庫】,然后單擊【新建文件】,如圖所示,在彈出的【創(chuàng)建】對話框中輸入數(shù)據(jù)庫名“”,再單擊【保存】按鈕,如圖1.3.5所示。圖【新建】窗口圖1.3.5【創(chuàng)建】對話框②將“”、“”以及“”添加到數(shù)據(jù)庫中。在彈出的【數(shù)據(jù)庫設(shè)計器】的空白處單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇【添加表】選項,如圖所示,然后選擇要添加的表“”、“”以及“”。圖【數(shù)據(jù)庫設(shè)計器】窗口③在【數(shù)據(jù)庫設(shè)計器】中選定表“學(xué)生檔案”,單擊鼠標(biāo)右鍵,選擇【修改】菜單項,如圖所示,啟動【表設(shè)計器】,在【索引】選項卡中設(shè)置“學(xué)號”索引的索引類型為“主索引”,如圖1.3.8所示。使用相同的方法設(shè)置其他的索引類型。圖在【數(shù)據(jù)庫設(shè)計器】中修改表結(jié)構(gòu)圖設(shè)置主索引④在【數(shù)據(jù)庫設(shè)計器】中,將“學(xué)生檔案”表的主索引“學(xué)號”索引拖到“選課成績”表的“學(xué)號”索引上放下,在“學(xué)生檔案”表和“選課成績”表之間出現(xiàn)的一條線為關(guān)系線,如所示。圖建立數(shù)據(jù)庫表之間的永久關(guān)系使用同樣的方法,將“課程”的主索引“課程號”索引拖放到“選課成績”表的“課程號”上,建立永久關(guān)系。⑤在【數(shù)據(jù)庫設(shè)計器】中,選定相應(yīng)的表,單擊鼠標(biāo)右鍵,選擇【修改】命令項,啟動【表設(shè)計器】,在【表設(shè)計器】中選定相應(yīng)字段,在字段有效性中設(shè)置“規(guī)則”、“信息”和“默認(rèn)值”(可以單擊對應(yīng)文本框后的“”按鈕,啟動【表達式編輯器】修改和編輯表達式),如圖所示為“學(xué)生檔案”表中性別字段的有效性規(guī)則的設(shè)置,然后單擊【確定】保存對表結(jié)構(gòu)的修改。圖字段有效性設(shè)置⑥選定相應(yīng)表,啟動【表設(shè)計器】,選擇【表】選項卡,在【記錄有效性】中設(shè)置“規(guī)則”和“信息”,如圖所示為“選課成績”表中設(shè)置記錄有效性規(guī)則。圖記錄有效性設(shè)置⑦選擇【數(shù)據(jù)庫】菜單下的【清理數(shù)據(jù)庫】命令項,將數(shù)據(jù)庫表中作刪除標(biāo)記的記錄清除掉;選擇【數(shù)據(jù)庫】菜單下的【編輯參照完整性】命令項,彈出【參照完整性生成器】對話框,如圖所示。圖【參照完整性生成器】對話框此圖設(shè)置參照完整性的規(guī)則使用同樣方法設(shè)置“學(xué)生檔案-選課成績”關(guān)系的“更新規(guī)則”、“刪除規(guī)則”、“插入規(guī)則”為需要的規(guī)則,單擊【確定】按鈕,彈出詢問是否保存改變的參照完整性的對話框,如圖所示,單擊【是】按鈕,彈出詢問是否生成新的參照完整性代碼的對話框,如圖1.3.15所示,單擊【是】按鈕,就完成了參照完整性的設(shè)置。圖保存對參照完整性的修改圖生成新的參照完整性代碼查詢與視圖及SQL實驗6【查詢設(shè)計器】的使用1)實驗?zāi)康恼莆帐褂谩静樵冊O(shè)計器】進行各種查詢操作。2)實驗內(nèi)容簡單查詢練習(xí)建立查詢文件CX1,查詢“”中計算機1班的學(xué)生信息。操作步驟:①創(chuàng)建查詢:選擇【文件】菜單下【新建】命令或【新建】按鈕進入【新建】對話框,選擇【查詢】,單擊【新建文件】。②添加表或視圖,添加“”。③確定輸出選項。在字段選項卡選擇:全部添加。在篩選選項卡構(gòu)造條件:學(xué)生檔案.專業(yè)班級="計算機1班",如圖1.4.1所示圖圖1.設(shè)置篩選條件④保存查詢:選擇【文件】菜單下【另存為】命令,進入“另存為”對話框,給定文件名CX1,單擊【保存】。⑤運行查詢:使用工具欄【運行查詢】按鈕運行查詢。結(jié)果如圖1.所示。圖1.計算機1班學(xué)生信息分組計算查詢建立查詢文件CX2,查詢選修了兩門及以上課程的學(xué)生學(xué)號、選課門數(shù)和平均成績了。操作步驟:①創(chuàng)建查詢,方法見簡單查詢。②添加表或視圖,添加選課成績.dbf。③確定輸出選項。在字段選項卡構(gòu)造:選課成績.學(xué)號,COUNT(選課成績.課程號),AVG(選課成績.成績)AS平均成績。如圖1.所示。圖選擇構(gòu)造輸入字段表達式在分組依據(jù)選項卡選擇設(shè)置:學(xué)號,并單擊【滿足條件】按鈕,構(gòu)造分組條件,如圖1.所示。圖設(shè)置分組條件④保存查詢:見實驗內(nèi)容1中步驟4,給定文件名CX2。⑤運行查詢:方法見簡單查詢,結(jié)果如圖1.所示。圖分組計算查詢結(jié)果多表查詢建立查詢文件CX3,查詢學(xué)生姓名、選修課程名和成績,結(jié)果按成績由高到低排序到WW.DBF。操作步驟:①創(chuàng)建查詢,方法見簡單查詢。②添加表或視圖,添加學(xué)生檔案.dbf,選課成績.dbf,課程.dbf(注意添加表的順序,學(xué)生檔案.dbf和課程.dbf沒有直接對應(yīng)關(guān)系)。③確定輸出選項。觀察連接選項卡添加的條件。在排序依據(jù)選項卡設(shè)置排序:選課成績.成績,并選擇降序,如圖1.所示。圖設(shè)置排序依據(jù)④運行查詢:方法見簡單查詢,結(jié)果如圖1.所示。圖多表查詢默認(rèn)瀏覽輸出⑤設(shè)置查詢?nèi)ハ颍哼x擇【查詢】菜單下【查詢?nèi)ハ颉窟M入“查詢?nèi)ハ颉睂υ捒?,選擇“表”,單擊【確定】按扭,輸入表名WW。⑥保存查詢:見實驗內(nèi)容1中步驟4,給定文件名CX3。⑦運行查詢:方法見簡單查詢,(此時不會出現(xiàn)默認(rèn)的瀏覽窗口)。⑧打開表WW,瀏覽:USEWWBROWSE瀏覽窗口與圖相同,只是窗口名稱為表名WW,可以瀏覽窗口修改數(shù)據(jù),而默認(rèn)的查詢輸出瀏覽窗口名稱均為查詢,數(shù)據(jù)只能顯示,不能修改。綜合查詢建立查詢文件CX4,查詢70分以上的學(xué)生信息,包括姓名、年齡、課程名、成績,結(jié)果按年齡由高到低排序。操作步驟:①創(chuàng)建查詢,方法見簡單查詢。②添加表或視圖,添加學(xué)生檔案.dbf,選課成績.dbf。③確定輸出選項。在篩選選項卡構(gòu)造條件:選課成績.成績>=70。在排序依據(jù)選項卡設(shè)置排序:year(date())-year(學(xué)生檔案.出生日期)as年齡,并選擇降序。④保存查詢:見實驗內(nèi)容1中步驟4,給定文件名CX4。⑤運行查詢:方法見簡單查詢,結(jié)果如圖1.所示。圖圖綜合查詢結(jié)果實驗7【視圖設(shè)計器】的使用1)實驗?zāi)康恼莆帐褂谩疽晥D設(shè)計器】設(shè)計視圖、使用視圖。2)實驗內(nèi)容建立視圖創(chuàng)建視圖ST1,包含學(xué)生檔案.dbf中的學(xué)號、姓名,課程.dbf中的課程名,選課成績.dbf中的成績,修改視圖中的成績?yōu)槊織l記錄加5分,并將結(jié)果發(fā)送回選課成績.dbf中。操作步驟:①打開建立視圖的數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)選擇【文件】菜單下【打開】命令進入“打開”對話框,選擇“數(shù)據(jù)庫”,選擇“文件學(xué)生學(xué)籍管理系統(tǒng)”。②創(chuàng)建視圖選擇【文件】菜單下【新建】命令進入“新建”對話框,選擇“視圖”,單擊【新建文件】。③添加表或視圖,根據(jù)本題要求,將學(xué)生檔案.dbf,選課成績.dbf和課程.dbf加入到視圖設(shè)計器。④確定視圖選項。觀察連接選項卡添加的條件。設(shè)置更新條件:在更新條件選項卡設(shè)置關(guān)鍵字段為選課成績.學(xué)號,可更新字段為選課成績.成績,單擊選中“發(fā)送SQL更新”復(fù)選框,結(jié)果如圖1.所示。圖設(shè)置更新條件⑤保存視圖:選擇【文件】菜單下【另存為】命令,進入“另存為”對話框,給定視圖名ST1并保存。⑥瀏覽視圖右鍵單擊視圖打開快捷菜單【瀏覽】。瀏覽窗口如圖1.所示。圖視圖瀏覽窗口⑦修改視圖的成績字段,使成績加5分。命令格式:REPLACEALL成績WITH成績+5操作結(jié)果如圖1.所示。圖修改后的視圖⑧觀察選課成績.dbf數(shù)據(jù)。打開此表瀏覽,由于該表學(xué)號不唯一,在使用視圖更新表時,會發(fā)生更新沖突,因此這種更新只有當(dāng)關(guān)鍵字段唯一時方能正常進行。2使用視圖完成前面的查詢前面4個查詢操作,除了實驗內(nèi)容3的查詢?nèi)ハ虿荒茉谝晥D中進行設(shè)置外,其余均可由視圖來完成查詢。實驗8使用SQL語言操作表數(shù)據(jù)1)實驗?zāi)康睦斫釹QL語句的功能,掌握使用SQL語言來操作數(shù)據(jù)表(即數(shù)據(jù)表的定義、表數(shù)據(jù)的更新和查詢)。2)實驗內(nèi)容1用SQL語句建立數(shù)據(jù)庫及數(shù)據(jù)表(1)建立人事數(shù)據(jù)庫,根據(jù)表給出的表結(jié)構(gòu),使用SQL語言建立數(shù)據(jù)庫表職工zgb.dbf,職工號為主索引。操作步驟:①創(chuàng)建數(shù)據(jù)庫。參考命令:CREATEDATABASE人事②打開數(shù)據(jù)庫設(shè)計器。參考命令:MODIFYDATABASE人事③建立職工表。參考命令:CREATETABLEzgb(職工號C(5)PRIMARYKEY,部門號C(2),姓名C(8),;性別C(2),職稱C(10),出生日期D,婚否L,工資N(8,2)表職工表結(jié)構(gòu)(zgb.dbf)字段號類型寬度小數(shù)位數(shù)職工號C5部門號C2姓名C8性別C2職稱C10出生日期D8婚否L1工資N72(2)按照(1)的方法建立部門表bmb.dbf(部門代碼C(2),部門名稱C(10),負(fù)責(zé)人C(8)),部門代碼為主索引。(3)按照(1)的方法建立工資表gzb.dbf,結(jié)構(gòu)如下:其中職工號為主索引。職工號C(5),基本工資N(8,2),津貼N(7,1),獎金N(3),會費N(5,2),公積金N(3)2修改表結(jié)構(gòu)(1)刪除職工表的婚否字段,增加年齡,將姓名字段寬度改為6.參考命令:ALTERTABLEzgbADD年齡ALTER姓名C(6)DROP婚否(2)職稱增加默認(rèn)值“教授”。參考命令:ALTERTABLEzgbALTER職稱SETDEFAULT"教授"3輸入、修改和刪除表數(shù)據(jù)(1)使用SQL的INSERT輸入的數(shù)據(jù),數(shù)據(jù)見表所示(操作前將職工數(shù)據(jù)表瀏覽窗口打開,操作中注意觀察表數(shù)據(jù)變化)。參考命令:INSERTINTOzgbVALUES("02365","11","周小杰","男","講師",;{^1970-12-25},.T.,863.00)其他數(shù)據(jù)請補充完整。表職工號部門號姓名性別職稱出生日期婚否工資0236511周小杰男講師12/25/70.T.0252812王雨女副教授03/12/60.T.0102311李思男副教授07/08/61.T.0103512蔡英女講師09/18/76.F.0252621劉紅女副教授12/15/70.T.0123421李瑪麗女副教授05/23/70.T.0245822李新男教授03/11/58.T.0263622鄭然女助教06/19/80.F.(2)按上面的方法完成部門數(shù)據(jù)表bmb.dbf和工資數(shù)據(jù)表f的數(shù)據(jù)輸入,參考數(shù)據(jù)見表、表1.4.4所示。表部門數(shù)據(jù)表bmb.dbf部門代碼部門名稱負(fù)責(zé)人22網(wǎng)絡(luò)教研室李新12基礎(chǔ)教研室王雨21軟件教研室李瑪麗11教育教研室李思表工資數(shù)據(jù)表職工號基本工資津貼獎金會費公積金0236511590025281441400102313612001035968002526115120012341151200145815616002636787001020147160(3)將zgb.dbf添加的年齡字段,使用出生日期數(shù)據(jù)進行更新,工資表中的會費由基本工資的千分之五替換,注意觀察表數(shù)據(jù)變化。參考命令:UPDATE職工SET年齡=YEAR(DATE())-YEAR(出生日期)&&計算替換年齡UPDATE工資SET會費=0&&會費清零UPDATE工資SET會費=基本工資*0.005&&據(jù)工資修改會費ALTERTABLE職工DROP年齡&&刪除年齡字段(4)刪除zgb.dbf中男職工的記錄。參考命令:DELETEFROM職工WHERE性別="男"觀察表變化,然后使用RECALLALL恢復(fù)。4查詢表數(shù)據(jù)(以下操作將基于上面給出的三個表的數(shù)據(jù))(1)查詢zgb.dbf中的職稱和年齡情況。參考命令:SELECT職稱,YEAR(DATE())-YEAR(出生日期)AS年齡FROMzgb(2)查詢bmb.dbf信息。參考命令:SELECT*FROMzgb(3)查詢部門代碼第一個字符為2的部門信息。參考命令:SELECT*FROMbmbWHERELEFT(部門代碼,1)="2"(4)查詢zgb.dbf中70年(含70年)以前出生的男職工的姓名和工資。參考命令:SELECT姓名,工資FROMzgbWHEREYEAR(出生日期)<=1970AND性別="男"(5)查詢zgb.dbf中1960年到1970年(含1960年1970年)出生的職工姓名和出生日期。參考命令:SELECT姓名,出生日期FROMzgbWHEREYEAR(出生日期)BETWEEN1960AND1970(6)統(tǒng)計zgb.dbf中記錄數(shù)和部門數(shù)。參考命令:SELECTCOUNT(*)AS記錄數(shù),COUNT(DISTINCT部門號)AS部門數(shù)FROMzgb(7)統(tǒng)計zgb.dbf中工資總和及平均工資。參考命令:SELECTSUM(工資)工資總和,AVG(工資)平均工資FROMzgb(8)按部門統(tǒng)計各部門的人數(shù)、工資和、最高工資、最低工資、平均工資。參考命令:SELECT部門號,COUNT(*)人數(shù),SUM(工資)工資和,;MAX(工資)最高工資,MIN(工資)最低工資,AVG(工資)平均工資;FROMzgbGROUPBY部門號(9)觀察下述命令的執(zhí)行結(jié)果,體會分組依據(jù)(職稱和性別)前后順序變化的影響。參考命令:SELECT職稱,性別,COUNT(*),AVG(工資)FROMzgbGROUPBY職稱,性別SELECT性別,職稱,COUNT(*),AVG(工資)FROMzgbGROUPBY性別,職稱(10)查詢zgb.dbf中副教授以上的記錄,并按工資降序排序,工資相同時按出生日期升序排序。參考命令:SELECT*FROMzgbWHERE職稱IN("教授","副教授");ORDERBY工資DESC,出生日期1.5結(jié)構(gòu)化程序及面向?qū)ο蠡A(chǔ)實驗9程序控制結(jié)構(gòu)1)實驗?zāi)康耐ㄟ^本實驗,要求大家熟練掌握用程序的基本控制結(jié)構(gòu)特別是循環(huán)結(jié)構(gòu)來進行程序設(shè)計。2)實驗內(nèi)容1簡單程序設(shè)計(1)編寫一程序,其功能是輸出-100到100中能被7整除的偶數(shù)。(2)有一數(shù)列,前兩個數(shù)是1、1,第三個數(shù)是前兩個數(shù)的和,以后的每個數(shù)都是其前兩個數(shù)的和。請編寫程序,要求輸出這個數(shù)列的前30個數(shù)。(3)根據(jù)輸入的學(xué)生姓名查詢中的信息,查到則顯示該學(xué)生信息,否則顯示“查無此人”的提示信息。(4)逐條統(tǒng)計“”中男生人數(shù)。參考程序:(1)CLEAR(2)CLEARFORI=-100TO100STEP2A=1IFMOD(I,7)=0B=1?I?A,BENDIFFORI=3TO30ENDFORC=ARETURNA=B(3)CLEARB=A+CUSE學(xué)生檔案??BACCEPT"請輸入學(xué)生姓名:"TONAMEENDFORLOCATEFOR姓名=NAMERETURNIFFOUND()DISPLAYELSE?"查無此人"ENDIFUSERETURN(4)方法一:方法二:CLEARCLEARUSE學(xué)生檔案USE學(xué)生檔案STORE0TOMSTORE0TOMDOWHILENOTEOF()SCANFOR性別="男"IF性別=”男”M=M+1M=M+1ENDSCANENDIF?"男生人數(shù):"+STR(M)SKIPUSEENDDORETURN ?"男生人數(shù):"+STR(M) USERETURN2多表程序設(shè)計(1)有兩個教材管理的表文件如下:1)教材信息表()編號書名編著者出版社單價00101計算機原理揚山天天出版社23.8005991高等數(shù)學(xué)李理彩云出版社17.0000120普通化學(xué)浦云科技出版社10.8000210物理學(xué)陳劉科技出版社16.5000311大學(xué)英語歐陽上海出版社18.602)教材使用專業(yè)表()編號使用專業(yè)人數(shù)00101計算機20054000101工自20053000311企管20046000311會計20045400101機電20054500311計算機20054000311機電20054500210機電200545注:教材使用專業(yè)人數(shù)即為預(yù)訂教材冊數(shù)。①編制程序(PROG1_1.PRG),輸入教材的編號,顯示出其書名、使用專業(yè)、人數(shù),格式如下:編號:XXXXX書名:XXXX序號使用專業(yè)人數(shù)1.....②編寫程序(PROG1_3.PRG)計算每種教材的預(yù)定金額,并按如下格式顯示。(算法:每種教材總的預(yù)定冊數(shù)*單價。)書名單價預(yù)定總冊數(shù)預(yù)定總金額計算機原理23.80…………③編寫程序(PROG1_4.PRG)通過輸入“書名”,可以反復(fù)查找購買該教材的“專業(yè)名稱”、“冊數(shù)”等,按下列格式顯示出來:教材銷售單書名:計算機原理使用專業(yè)冊數(shù)……合計..(冊)...(元)(2)有一職工代碼表(),人事信息表()代碼職稱編號姓名性別職稱基本工資工齡工資扣款實發(fā)工資013助理工程師1041趙娟女015技術(shù)工人5101駱?biāo)嚹?02工程師1030沈崢女01587.005.0011.00001高工4103劉芳女5130楊山男1025劉柳男編一個程序(文件名PROG2.PRG),完成以下任務(wù):①計算發(fā)工資(實發(fā)工資=基本工資+工齡工資-扣款)并填入F中。②統(tǒng)計各類職稱的基本工資,工齡工資,扣款,實發(fā)工資總數(shù)。③顯示統(tǒng)計結(jié)果,其中統(tǒng)計表中“高工,工程師,助理工程師,技術(shù)工人”等職稱名字必須通過職工代碼表得到,并以代碼的索引順序顯示,其格式如下:基本工資工齡工資扣款實發(fā)工資高工......工程師.............合計......(3)某大學(xué)暑假舉辦各種培訓(xùn)班,有關(guān)部門對學(xué)員進行管理,每個學(xué)員要登記兩張表,如表1、表2所示。(說明:每個學(xué)員可以參加1個以上學(xué)習(xí)班,表2為按學(xué)員累計姓名住宿情況)表1:表2:姓名學(xué)習(xí)班名稱學(xué)費姓名每日宿費天數(shù)李璐計算機300.00李璐40.0012趙勇英語250.00歐陽芳55.0010歐陽芳文秘200.00王靜35.0020王靜財會250.00劉欣45.0020王靜文秘200.00趙勇40.0030劉欣計算機300.00周陽55.0010趙勇財會李璐英語趙勇計算機周陽英語250.00①編寫程序(文件名PROG3_1.PRG)統(tǒng)計并輸出每位學(xué)員各項明細(xì)費用及總費用,按下列格式顯示出來:學(xué)員費用情況單姓名學(xué)費住宿費總費用李璐550.00480.00103…………(注:住宿費=每日宿費*天數(shù),學(xué)費為該學(xué)員所上各學(xué)習(xí)班學(xué)費總和總費用=學(xué)費+住宿費)②編寫程序(文件名PROG3_2.PRG)利用以上兩個表,通過輸入的學(xué)習(xí)班名稱,查詢該學(xué)習(xí)班的每個學(xué)員的姓名,每日宿費,天數(shù)以及應(yīng)繳的住宿費(=每日宿費*天數(shù))。按下列格式顯示出來(例如下面是計算機學(xué)習(xí)班的情況):學(xué)習(xí)班學(xué)員住宿情況學(xué)習(xí)班名稱:計算機姓名每日宿費天數(shù)住宿費李璐40.001248劉欣45.002090趙勇40.0030120合計………參考程序:(1)*cleacleaallsettalkoffsetsafeoffsele1usejckindeon編號tagbhsele2usejczysetrelato編號intojckacce"請輸入教材的編號:"tobhlocafor編號=bh?"序號使用專業(yè)人數(shù)"i=1scanfor編號=bh ?i,使用專業(yè),人數(shù) i=i+1endsclosallsettalkonsetsafeonretu*cleacleaallsettalkoffsetsafeoffsele1usejczyindeon編號tagbhtotalon編號tohzsele2usehzindeon編號tagbhsele3usejcksetrelato編號intohz?"書名單價預(yù)定總冊數(shù)預(yù)定總金額"scanendsclosallsettalkonsetsafeonretu*cleacleaallsettalkoffsetsafeoffsele1usejckindeon編號tagbhsele2usejczysetrelato編號intojckdowhile.t. acce"請輸入書名:"tosm ?"教材銷售單" ?"書名:"+sm ?"使用專業(yè)冊數(shù)" scanforjck.書名=sm ?使用專業(yè),人數(shù) ends sum人數(shù)torsforjck.書名=sm locaforjck.書名=sm ?"合計",rs,"(冊)",je,"(元)" wait"是否繼續(xù)(Y/N)?"tox ifupper(x)="N" exit endifenddclosallsettalkonsetsafeonretu(2)*PROG2.PRGcleacleaallsettalkoffsetsafeoffsele1usersreplaceall實發(fā)工資with基本工資+工齡工資-扣款indeon職稱tagzcdmtotalon職稱tohzusehzindeon職稱tagzcdmsele2usezdsetrelato代碼intohzindeon代碼tagdm&&按代碼升序排列?"基本工資工齡工資扣款實發(fā)工資"scanendscansumhz.基本工資,hz.工齡工資,hz.扣款,hz.實發(fā)工資tojb,gl,kk,sf?"合計",jb,gl,kk,sfclosallsettalkonsetsafeonretu(2)*cleacleaallsettalkoffsetsafeoffsele1use學(xué)費indeon姓名tagxmtotalon姓名tohzsele2usehzindeon姓名tagxmsele3use住宿費setrelationto姓名intohz?"學(xué)員費用情況單"?"姓名學(xué)費住宿費總費用"scan ?姓名,hz.學(xué)費,每日宿費*天數(shù),hz.學(xué)費+每日宿費*天數(shù)endsclosallsettalkonsetsafeonretu*cleacleaallsettalkoffsetsafeoffsele1use住宿費aliazsfindeon姓名tagxmsele2use學(xué)費setrelato姓名intozsfacce"請輸入學(xué)習(xí)班名稱:"tomc?"學(xué)習(xí)班名稱:"+mc?"姓名每日宿費天數(shù)住宿費"store0tox1,x2,x3scanfor學(xué)習(xí)班名稱=mcendssumzsf.每日宿費,zsf.天數(shù),zsf.每日宿費*zsf.天數(shù)tox1,x2,x3for學(xué)習(xí)班名稱=mc?"合計"+""+str(x1,6,2)+""+alltrim(str(x2))+""+str(x3,7,2)closallsettalkonsetsafeonretu實驗10模塊化程序設(shè)計1)實驗?zāi)康模和ㄟ^本實驗,要求大家掌握用模塊化的程序程序設(shè)計思想來組織自己的程序系統(tǒng),并對程序模塊間的參數(shù)傳遞及程序變量的作用范圍能夠把握。2)實驗內(nèi)容:1用自定義函數(shù)或子程序的方法編寫程序(1)計算函數(shù)y=3+6x在2,4,6處的值,并求出平均值;(2)輸入梯形的上底長、下底長和高,求梯形的面積。參考程序:①自定義函數(shù)(思考:用子程序的方法如何編寫該程序) CLEAR S=0 N=1FORX=2TO6STEP2?Y(X)S=S+Y(X)N=N+1NEXT ?"平均值為:",S/N RETURNFUNCTIONYPARAMETERSXRETURN3+6*X②自定義函數(shù)(思考:用子程序的方法如何編寫該程序)CLEARINPUT"請輸入梯形的上底長:"TOXINPUT"請輸入梯形的下底長:"TOYINPUT"請輸入梯形的高:"TOZ?"梯形的面積為:",AREA(X,Y,Z)RETURNFUNCTIONAREAPARAMETERSA,B,HS=(A+B)*H/2RETURNS2讀下面的程序?qū)懗鲞\行結(jié)果*主程序PUBLICX1,X12,XYZSTORE5TOX1,X12,XYZ,ADOSUB1?"X1=",X1,"X12=",X12,"XYZ=",XYZ,"A=",ACANCEL*子程序PRIVATEALLLIKEX1*STORE0TOX1,X12,XYZX1=X1+1X12=X12+1XYZ=XYZ+1?"X1=",X1,"X12=",X12,"XYZ=",XYZ,"A=",AWAITDOSUB2RETURN*子程序X1=X1+1X12=X12+1XYZ=XYZ+1RETURN1.6表單設(shè)計實驗11常用表單控件(一)1)實驗?zāi)康模?)熟練掌握表單設(shè)計器的使用方法。(2)熟練在表單新建的方法和步驟。(3)掌握在表單中添加對象的操作方法。(4)掌握在屬性窗口中設(shè)置對象屬性的方法。(5)掌握在對象事件中書寫代碼的方法。(6)掌握常見對象的事件和屬性以及對象的方法。(7)掌握文本框、標(biāo)簽、按鈕的常用屬性、方法的代碼。2)實驗內(nèi)容設(shè)計一個登錄表單LOGIN.SCX,如圖所示。當(dāng)用戶輸入用戶名和密碼并單擊“登錄”按鈕后檢查其輸入是否正確,若正確(假定用戶名為SWNU_JKX,密碼為CCEO),就顯示一個對話框為“歡迎使用學(xué)生信息管理系統(tǒng)”;若不正確,則顯示“用戶名或密碼不正確!”。單擊“取消”按鈕則關(guān)閉表單。(要求將“登錄”按鈕設(shè)置為Default按鈕。另外,密碼輸入時顯示星號“*”。)圖登錄表單效果圖操作步驟:先創(chuàng)建表單,然后在表單上添加兩個標(biāo)簽label1和label2、兩個文本框text1和text2以及兩個命令按鈕Command1和Command2。②設(shè)置表單的Caption為“學(xué)生管理系統(tǒng)登錄”;分別設(shè)置label1和label2的Caption屬性值為“用戶名”和“密碼”;分別設(shè)置Command1和Command2按鈕的Caption屬性值為“登錄”和“退出”,“登錄”按鈕的Default屬性值設(shè)置為.T.;設(shè)置文本框text2的Passwordchar屬性值為“*”。③雙擊“登錄”按鈕啟動代碼窗口,在Command1的Click事件中設(shè)置如下代碼:IFThisform.Text1.value="SWNU_JKX"ANDThisform.Text2.Value="CCEO"&&注意大小寫,在這里是要求區(qū)分大小寫的=MESSAGEBOX("歡迎使用學(xué)生信息管理系統(tǒng)","提示信息")&&產(chǎn)生提示窗口,第一個字符串為要提示的信息,第二個為窗口標(biāo)題ELSE=MESSAGEBOX("用戶名或密碼錯誤!","提示信息")ENDIF④雙擊“退出”按鈕,在Command2的Click事件中設(shè)置如下代碼:Thisform.Release&&調(diào)用表單release方法關(guān)閉表單⑤保存表單。單擊工具欄上【保存】按鈕,在【另存為】對話框中將表單保存為“”。⑥運行表單。單擊工具欄上【運行】按鈕,執(zhí)行表單,觀察效果。實驗12常用表單控件(二)1)實驗?zāi)康模?)掌握組合框的常用屬性和方法以及事件的使用方法。(2)掌握列表框的常用屬性和方法以及事件的使用方法。(3)掌握復(fù)選框的常用屬性和方法以及事件的使用方法。(4)體會在控件中編寫查詢代碼的方法。2)實驗內(nèi)容1設(shè)計查詢表單設(shè)計一個選擇查詢表單SEARCH.SCX,如圖所示。要求表單運行時,可以先在右側(cè)下拉列表框中選擇要打開并查詢的表的文件(此時,表的字段要自動顯示在左側(cè)的列表框內(nèi));然后在列表框中選擇要輸出的字段;最后單擊“查詢”按鈕,顯示指定表中的記錄在指定字段上的內(nèi)容。圖選擇查詢操作步驟:①創(chuàng)建表單,然后在表單上添加兩個標(biāo)簽Label1和Label2、添加一個列表框List1、一個組合框Combo1以及兩個按鈕Command1和Command2。②設(shè)置表單Caption屬性值為“選擇查詢”;分別設(shè)置標(biāo)簽label1和label2的Caption為“選擇字段”和“選擇表文件”;分別設(shè)置命令按鈕Command1和Command2的Caption屬性值為“查詢”和“關(guān)閉”。③設(shè)置組合框Combo1的Style屬性值為“2-下拉列表框”,RowSourceType屬性值為“7-文件”(將盤上根目錄或子目錄中的文件名作為下拉列表框的條目),RowSource屬性值為“*.DBF”(在列表中只顯示VisualFoxPro表文件);設(shè)置列表框List1的RowSourceType屬性值為“8-結(jié)構(gòu)”(在列表中顯示當(dāng)前打開表中的字段信息),MultiSelect屬性值為.T.。④雙擊組合框Combo1在InteractiveChange事件中設(shè)置如下代碼:table=This.ValueUSE&tableThisForm.List1.RowSource=This.Value⑤雙擊“查詢”按鈕,在Command1的Click事件中設(shè)置如下代碼:zd=""Fori=1ToThisForm.List1.ListCountIFThisForm.List1.Selected(i)zd=zd+","+ThisForm.List1.List(i)ENDIFENDFOR&&循環(huán)產(chǎn)生查詢要顯示的字段信息zd=SUBSTR(zd,2)&&去掉多余的第一個逗號“,”SELECT&zdFROM&table&&利用宏代換技術(shù)生成SELECT-SQL語句⑥雙擊“關(guān)閉”按鈕,在Command2的Click事件中設(shè)置代碼:ThisForm.Release。⑦保存表單到表單文件“”。⑧運行表單。2修改查詢表單修改前面得到的表單SEARCH.SCX,如圖所示,添加一個復(fù)選框控件和文本框控件,當(dāng)復(fù)選框被選中時文本框成為可見的,單擊“查詢”按鈕就可以進行條件查詢;復(fù)選框沒有選中時,文本框不可見,單擊“查詢”按鈕就可查詢表中全部記錄。圖加條件的選擇查詢操作步驟:①打開表單“”,在表單上添加一個復(fù)選框Check1和一個文本框Text1。②設(shè)置復(fù)選框Check1的Caption屬性值為“查詢條件”;設(shè)置文本框Text1的Visible屬性值為.F.。③雙擊復(fù)選框Check1,設(shè)置Click事件代碼為:IFThis.Value=1ThisForm.Text1.Visible=.T.&&當(dāng)復(fù)選框選中時text1就設(shè)置為可見的ELSE.Visible=.F.&&當(dāng)復(fù)選框取消選中時text1就設(shè)置為不可見ENDIF④修改“查詢”按鈕的Click事件代碼為:zd=""&&初值為空串Fori=1ToThisForm.List1.ListCountIFThisForm.List1.Selected(i)zd=zd+","+ThisForm.List1.List(i)ENDIFENDFOR&&循環(huán)產(chǎn)生查詢要顯示的字段信息zd=SUBSTR(zd,2)&&去掉多余的第一個逗號“,”IFThisForm.Check1.Value=1SELECT&zdFROM&tableWHERE&tj&&利用宏代換技術(shù)生成SELECT-SQL語句ELSESELECT&zdFROM&tableENDIF⑤保存表單并運行。實驗13常用表單控件(三)1)實驗?zāi)康模?)練習(xí)并掌握表格控件的使用方法。(2)掌握表格常用屬性的使用方法。(3)掌握選項組控件的使用方法。2)實驗內(nèi)容設(shè)計一個學(xué)生成績綜合查詢表單,如圖所示,要求根據(jù)對查詢依據(jù)的選擇,文本框前面的標(biāo)簽就顯示相應(yīng)的文字;然后在文本框中輸入要查詢的信息,單擊“查詢”按鈕就可進行模糊查詢,并將查詢結(jié)果顯示在表格中。圖學(xué)生成績綜合查詢表操作步驟:①啟動【表單設(shè)計器】,設(shè)置表單的Caption屬性為“學(xué)生成績綜合查詢”;然后在表單上添加標(biāo)簽label1,設(shè)置Caption屬性為“請選擇查詢依據(jù)”;在表單上添加一個選項組控件對象OptionGroup1,選定該對象然后單擊鼠標(biāo)右鍵選擇【生成器】菜單項,在【選項組生成器】窗口的【按鈕】選項卡中設(shè)置“按鈕的數(shù)目”為4,標(biāo)題分別設(shè)置為“按姓名查詢”,“按學(xué)號查詢”,“按院系查詢”和“按課程名查詢”,在【布局】選項卡中設(shè)置“按鈕布局”為“水平”,然后單擊【確定】按鈕。②再添加一標(biāo)簽控件label2,設(shè)置Caption屬性為“請輸入姓名:”;添加一文本框控件對象Text1;添加一個命令按鈕,設(shè)置Caption屬性為“查詢”;添加一表格控件Grid1,設(shè)置RecordSourceType屬性為“4-SQL說明”。③雙擊OptionGroup1在它的Click事件中添加代碼,使得當(dāng)選擇相應(yīng)選項按鈕時,label2就顯示對應(yīng)的提示信息,代碼如下:docasecasethis.value=1&&OptionGroup對象的Value屬性返回選中按鈕的序號thisform.label2.caption="請輸入姓名:"casethis.value=2thisform.label2.caption="請輸入學(xué)號:"casethis.value=3thisform.label2.caption="請輸入專業(yè)班級:"casethis.value=4thisform.label2.caption="請輸入課程名:"endcase④雙擊“查詢”按鈕在Click事件中添加代碼,實現(xiàn)生成查詢使用的SELECT-SQL語句,并且使用代碼的方式設(shè)置Grid1的RecordSource為此SQL語句,代碼如下:docasecasethisform.optiongroup1.value=1tj="姓名like'%"+alltrim(thisform.text1.value)+"%‘"casethisform.optiongroup1.value=2tj="學(xué)生檔案.學(xué)號like'%"+alltrim(thisform.text1.value)+"%‘"casethisform.optiongroup1.value=3tj="專業(yè)班級like'%"+alltrim(thisform.text1.value)+"%’"casethisform.optiongroup1.value=4tj="課程名like'%"+alltrim(thisform.text1.value)+"%’"endcase&&根據(jù)選擇的不同查詢依據(jù)產(chǎn)生查詢條件sql="SELECT學(xué)生檔案.學(xué)號AS學(xué)號,姓名,性別,專業(yè)班級,課程名,成績,;重考成績FROM學(xué)生檔案,選課成績,課程;WHERE選課成績.學(xué)號=學(xué)生檔案.學(xué)號AND選課成績.課程號=課程.課程號;AND"+tj+"INTOCURSORtemp"Thisform.Grid1.RecordSource=sql⑤保存表單文件為ZHCX.SCX。⑥實驗14常用表單控件(四)1)實驗?zāi)康模?)練習(xí)頁框控件的使用。(2)練習(xí)定時器控件的使用。(3)了解表單中對象移動的原理。(4)練習(xí)超鏈接控件的使用。2)實驗內(nèi)容設(shè)計一個表單ABOUT.SCX,表單中有一個頁框其中包含兩個頁“開發(fā)團隊”和“推薦搜索引擎”,在“開發(fā)團隊”中實現(xiàn)“制作群”及其以下的文字緩緩地向上移動到一定位置停下。在“推薦搜索引擎”中添加一張圖片,當(dāng)單擊圖片時就啟動網(wǎng)頁瀏覽器并訪問網(wǎng)站“”。單擊“確定”按鈕就關(guān)閉窗口。操作步驟:①啟動表單設(shè)計器,設(shè)置表單的Caption屬性為“有關(guān)我們的情況”。②在表單中添加一個頁框?qū)ο驪ageFrame1,設(shè)置其PageCount屬性為2。③選定頁框?qū)ο?,單擊鼠?biāo)右鍵選擇“編輯”命令項,這時我們就可以選擇頁框中的頁對象Page1設(shè)置Caption屬性為“開發(fā)團隊”,在Page1中添加標(biāo)簽Label1,Label2,Label3,分別設(shè)置他們的Caption屬性為“制作群”,“公共計算機基礎(chǔ)教育部”,“系統(tǒng)研發(fā)小組”;再添加一個計時器Timer1,設(shè)置Interval屬性為100(相當(dāng)于0.1秒)。④雙擊計時器Timer1在Timer事件(每隔Interval指定的時間就觸發(fā)一次)中添加代碼,實現(xiàn)標(biāo)簽的移動,代碼如下:IFThis.Parent.Label1.Top>20&&如果第一個標(biāo)簽的Top大于20像素時繼續(xù)移動Tarent.Label1.Top=This.P&&向上移動一個像素This.Parent.Label2.Top=This.PThis.Parent.Label3.Top=This.PThis.Parent.Label4.Top=This.PELSEThis.Enabled=.F.&&標(biāo)簽移動到位時,計時器設(shè)為不可用標(biāo)簽不再移動ENDIF⑤選擇頁框中的頁對象Page2設(shè)置Caption屬性為“推薦搜索引擎”,在Page2上添加一圖片控件對象Image1,設(shè)置Picture屬性為“”(這里我們使用的是從網(wǎng)上下載的Google的圖片logo.gif保存到c:\myfile文件夾下的),設(shè)置BackStyle屬性為“0-透明”;再添加一超級鏈接控件對象HyperLink1。⑥雙擊Image1,在Click事件中添加如下代碼:This.Parent.HyperLvigateTo("")&&HyperLink對象的NavigateTo方法指定鏈接的地址表單中添加命令按鈕,設(shè)置Caption屬性為“確定”⑧保存表單到文件About.SCX。⑨運行表單。實驗15表單控件綜合設(shè)計(一)1)實驗?zāi)康模?)理解表單、控件的關(guān)系(2)掌握設(shè)計表單的方法(3)熟練掌握表單設(shè)計器的操作(4)掌握表單、頁框、標(biāo)簽、文本框、命令按鈕、列表框等常用對象的主要屬性、事件和方法2)實驗要求(1
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年商業(yè)店鋪水電安裝合作協(xié)議
- 2024年個人住宅建設(shè)施工協(xié)議
- 2024年合作伙伴防水堵漏服務(wù)協(xié)議
- 2024年修訂版:工業(yè)設(shè)備安裝工程質(zhì)量保證協(xié)議
- 2024年品牌代理協(xié)議
- 2024年升級版:油品海上運輸安全協(xié)議
- 2024年合作發(fā)展協(xié)議:資源共享互利共贏
- 2024年員工股權(quán)分配協(xié)議
- 2024年二層住宅加建施工協(xié)議
- 2024年上饒婚姻解除協(xié)議書范本
- 室內(nèi)維修方案
- 小學(xué)信息技術(shù)課堂與學(xué)科教學(xué)逆向融合管見 論文
- 軍士生生涯規(guī)劃
- 北師大版數(shù)學(xué)三年級上冊全冊分層作業(yè)設(shè)計含答案
- 認(rèn)知障礙人員培訓(xùn)課件
- 中國艾滋病現(xiàn)狀
- 國際業(yè)務(wù)基礎(chǔ)知識培訓(xùn)
- 急診科中的老年病急癥救治
- 亞馬遜賬戶安全培訓(xùn)內(nèi)容
- 生活區(qū)消防安全培訓(xùn)課件
- 關(guān)愛職工眼健康知識講座
評論
0/150
提交評論