<style id="uedzd"></style>
  • <style id="uedzd"></style>
  • <dfn id="uedzd"></dfn>
  • <dfn id="uedzd"></dfn>
    1. <ruby id="uedzd"></ruby>
      <ruby id="uedzd"></ruby>
    2. 案例庫
      您當(dāng)前的位置: 首頁>案例庫

      綜合案例四
      學(xué)生選課系統(tǒng)

      發(fā)布時間: 2019-01-16      信息來源:       閱讀次數(shù):

      綜合案例四  學(xué)生選課系統(tǒng)

      【實(shí)驗(yàn)?zāi)康呐c要求】  

      1.熟練使用VFP的操作環(huán)境

      2.熟練使用項(xiàng)目管理器管理各種文件

      3.掌握數(shù)據(jù)庫的設(shè)計方法和步驟

      4.熟練掌握數(shù)據(jù)庫表及其表之間關(guān)系的創(chuàng)建與使用

      5.掌握查詢與視圖的創(chuàng)建與使用

      6.掌握程序設(shè)計的基本方法

      7.掌握表單及其表單中各種控件的設(shè)計與使用

      8.掌握菜單的創(chuàng)建和使用

      【實(shí)驗(yàn)要求】

      (1)能輸入、修改、查詢選課有關(guān)的信息,如學(xué)生檔案、課程信息、教師信息、成績信息等;

      (2)能進(jìn)行統(tǒng)計,如學(xué)生選修課程的平均成績、某課程的平均成績。

      (3)能打印學(xué)生成績單、教師工作量表等。

      用戶提出開發(fā)應(yīng)用系統(tǒng)的要求后,軟件開發(fā)者應(yīng)通過調(diào)查研究歸納出目標(biāo)系統(tǒng)的數(shù)據(jù)需求和功能需求。

      (一)數(shù)據(jù)需求

      通過調(diào)查,總結(jié)出用戶對數(shù)據(jù)的需求如下:

      (1)學(xué)生信息

      包括:學(xué)生姓名、性別、出生日期、是否團(tuán)員、專業(yè)、入學(xué)時間、入學(xué)成績、簡歷、照片等。

      (2)課程信息

      包括:課程名稱、課程性質(zhì)、學(xué)時數(shù)、學(xué)分等。

      (3)教師信息

      包括:教師姓名、性別、職稱、通信地址、電話、電子信箱等。

      (4)選課信息

      包括:學(xué)生姓名、課程名稱、開課時間、成績等。

      (二)功能需求

      功能分析的任務(wù)是了解用戶對數(shù)據(jù)的處理方法和輸出格式。

      1.基礎(chǔ)數(shù)據(jù)錄入

      基礎(chǔ)數(shù)據(jù)包括學(xué)生數(shù)據(jù)、課程數(shù)據(jù)、教師數(shù)據(jù)和學(xué)生選課數(shù)據(jù)以及編碼數(shù)據(jù)等。要求系統(tǒng)能錄入這些數(shù)據(jù),并且能夠進(jìn)行修改。注意在數(shù)據(jù)錄入和修改的過程中應(yīng)保持?jǐn)?shù)據(jù)的參照完整性。

      2、查詢

      能夠查詢出學(xué)生數(shù)據(jù)、課程數(shù)據(jù)、教師數(shù)據(jù)以及學(xué)生選課數(shù)據(jù)等。

      3、統(tǒng)計

      要求能根據(jù)學(xué)生選課信息按學(xué)生統(tǒng)計平均成績和按課程統(tǒng)計平均成績。

      4、打印輸出

      打印學(xué)生成績單和教師工作量表。

      【概要設(shè)計】

      ? 項(xiàng)目設(shè)計

      一個典型的數(shù)據(jù)庫應(yīng)用程序有數(shù)據(jù)結(jié)構(gòu)、用戶界面、查詢選項(xiàng)和報表組成。在設(shè)計應(yīng)用程序時,應(yīng)仔細(xì)考慮每個組件將提供的功能以及與其他組件之間的關(guān)系。

      一個經(jīng)過良好組織的Visula FoxPro應(yīng)用程序一般需要為用戶提供菜單;一個或多個表單,供數(shù)據(jù)輸入并顯示。同時還需要添加某些事件響應(yīng)代碼,提供特定的功能,保證數(shù)據(jù)的完整性和安全性。此外,還需要提供查詢和報表,允許用戶從數(shù)據(jù)庫中選擇信息。

      Visual FoxPro提供的項(xiàng)目管理器作為集成管理各相關(guān)組件的組織工具,并把它們編譯為單個應(yīng)用文件。使用項(xiàng)目管理器創(chuàng)建一個項(xiàng)目后,就可以應(yīng)用程序已具備一個開發(fā)框架了,下一步的工作就是如何在這個框架之下利用項(xiàng)目管理器所提供的強(qiáng)大功能,按照需求來實(shí)現(xiàn)應(yīng)用程序所要求的功能。

      1.建立學(xué)生選課系統(tǒng)“項(xiàng)目

      為快速建立一個應(yīng)用程序及其項(xiàng)目,即一個完整“應(yīng)用程序框架”的項(xiàng)目,可以使用“應(yīng)用程序向?qū)А保陧?xiàng)目建立后,便打開了應(yīng)用程序生成器。也可以使用“新建文件”,彈出創(chuàng)建對話框,指定項(xiàng)目及其組件的存儲路徑為“C:¥ 學(xué)生選課系統(tǒng)”,項(xiàng)目名為“學(xué)生選課系統(tǒng)”。

      2.設(shè)置主文件

      當(dāng)用戶運(yùn)行應(yīng)用程序時,Visual FoxPro將啟動主文件,然后主文件再依次調(diào)用所需要的應(yīng)用程序其他組件。一般最好的方法是為應(yīng)用程序建立一個主程序。但是,使用一個表單作為主程序,可以將主程序的功能和初始界面集成在一起。

      本項(xiàng)目設(shè)置主文件為程序文件“主程序”,如圖1所示。

      方法:在“主程序”上單擊鼠標(biāo)右鍵,選中“設(shè)置主文件”菜單項(xiàng),或先選中“主程序”,單擊“項(xiàng)目”菜單,選中選中“設(shè)置主文件”菜單項(xiàng)。

      例如,主文件代碼編寫如下:

      clear all

      set talk off

      set default to c:¥學(xué)生選課系統(tǒng)¥                && 設(shè)置程序的默認(rèn)路徑

      public xh,jsbh,kcbh                                            && xh、jsbh、kcbh分別用于存儲輸入的學(xué)號、

      &&教師編號、課程編號

      do form 封面                                                                      && 調(diào)用封面程序

      modify window screen title '學(xué)生選課管理系統(tǒng)'  && 設(shè)置主窗口的標(biāo)題

      do 主菜單.mpr                                                        && 調(diào)用出菜單

      read event                                                                      && 建立時間循環(huán)

      quit                                                                                    && 退出VFP

      /xcxxgc_jpkc/upload/images/2019/1/1610514723.jpg

      1 設(shè)置項(xiàng)目的主文件

      ? 數(shù)據(jù)庫的設(shè)計

      數(shù)據(jù)庫設(shè)計的任務(wù)是確定系統(tǒng)所需的數(shù)據(jù)庫。數(shù)據(jù)庫是表的集合,通常一個系統(tǒng)只需一個數(shù)據(jù)庫。數(shù)據(jù)庫的設(shè)計一般可分為邏輯設(shè)計和物理設(shè)計兩步。邏輯設(shè)計的任務(wù)是根據(jù)需求分析,確定數(shù)據(jù)庫所包含的表及字段、表間的關(guān)系,物理設(shè)計就是具體確定表的結(jié)構(gòu),包括字段名、字段類型及寬度,需要的索引等。

      (一)邏輯設(shè)計

      根據(jù)對需求得到的數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,按數(shù)據(jù)輸入輸出的要求,確定表和表間的關(guān)系,并進(jìn)行驗(yàn)證、調(diào)整、修改、完善,使其能夠?qū)崿F(xiàn)用戶對數(shù)據(jù)和功能的要求。本例根據(jù)分析確定系統(tǒng)要設(shè)置如下表:

      (1)學(xué)生基本表,包括字段:學(xué)號、姓名、性別、出生日期、是否團(tuán)員、照片、入學(xué)時間、入學(xué)成績、專業(yè)編號、簡歷。學(xué)號為主索引,為專業(yè)編號建立索引,通過該索引和專業(yè)基本表建立關(guān)聯(lián)。

      (2)教師基本表,包括字段:教師編號、教師姓名、性別、職稱、電話、通訊地址、郵政編碼、電子信箱。教師編號為主索引。

      (3)課程基本表,包括字段:課程編號、課程名稱、課程性質(zhì)、學(xué)時、學(xué)分、備注。課程編號為主索引。

      (4)學(xué)生選課表,字段包括:學(xué)號、課程編號、開課時間、成績。學(xué)生、課程編號和開課時間共同做主索引,分別為學(xué)號、課程編號、開課時間、成績建立索引,通過學(xué)號和學(xué)生基本表建立關(guān)聯(lián),通過課程編號和課程基本表建立關(guān)聯(lián),開課時間和成績索引用于做統(tǒng)計計算。

      (5)教師任課表,包括字段:教師編號、課程編號。分別為教師編號和課程編號建立索引,通過教師編號和教師基本表建立關(guān)聯(lián),通過課程編號和課程基本表建立關(guān)聯(lián)。

      (6)專業(yè)表,字段包括:專業(yè)編號、專業(yè)名稱、所屬系、備注。為專業(yè)編號建立索引,通過專業(yè)編號和學(xué)生基本表建立關(guān)聯(lián)。

      (二)物理設(shè)計

      下面列出選課系統(tǒng)所有表的結(jié)構(gòu)和索引,為了便于理解,將部分?jǐn)?shù)據(jù)列出。

      1.學(xué)生基本表

      表名:學(xué)生

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      學(xué)號

      字符型

      12

      主索引

      姓名

      字符型

      8

      性別

      字符型

      2

      出生日期

      日期型

      是否團(tuán)員

      邏輯型

      照片

      通用型

      入學(xué)時間

      日期型

      入學(xué)成績

      數(shù)值型

      3

      0

      專業(yè)編號

      字符型

      4

      普通索引

      簡歷

      記憶型

      記錄:

      學(xué)號

      姓名

      專業(yè)編號

      性別

      出生日期

      入學(xué)時間

      入學(xué)成績

      團(tuán)員否

      200010301001

      謝勝

      03

      1980-10-23

      2000-9-1

      589

      TRUE

      200010301020

      張輝

      03

      1981-5-20

      2000-9-1

      608

      TRUE

      200020302045

      陳誠

      03

      1980-8-4

      2000-9-1

      598

      TRUE

      200034201002

      劉玫

      42

      1980-9-4

      2000-9-1

      567

      FALSE

      200034202123

      李丹

      42

      1981-3-5

      2000-9-1

      601

      TRUE

      199920403128

      胡廣飛

      04

      1980-4-6

      1999-9-1

      521

      FALSE

      199924104112

      廖榮化

      41

      1980-10-31

      1999-9-1

      534

      FALSE

      199934205255

      趙雅娟

      42

      1980-7-8

      1999-9-1

      546

      TRUE

      200010401081

      李文

      04

      1981-9-20

      2000-9-1

      638

      TRUE

      200010401032

      陶冶

      04

      1980-7-30

      2000-9-1

      599

      TRUE

      199934202152

      王濤

      42

      1980-1-2

      1999-9-1

      576

      TRUE

      199934101067

      高磊

      41

      1980-5-3

      1999-9-1

      543

      FALSE

      2.教師基本表

      表名:教師

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      教師編號

      字符型

      4

      主索引

      教師姓名

      字符型

      8

      性別

      字符型

      2

      職稱

      字符型

      8

      通訊地址

      字符型

      40

      郵政編碼

      字符型

      6

      電話

      字符型

      20

      電子信箱

      字符型

      40

      記錄:

      教師編號

      教師姓名

      性別

      職稱

      通訊地址

      郵政編碼

      電話

      電子信箱

      CC01

      陳利民

      教授

      武漢大學(xué)182棟8號

      430072

      027-87675423

      lmchen@263.net

      CC02

      王惠敏

      副教授

      武漢市武昌區(qū)民主路2345號

      430043

      027-87876745

      hmwang@163.net

      CC03

      劉江

      講師

      武漢大學(xué)11棟12號

      430072

      CS01

      張健中

      副教授

      武漢市中山大道345號

      430030

      027-83457231

      jzzhang@263.net

      CS02

      吳秀芝

      講師

      武漢大學(xué)14棟8號

      430072

      027-87883476

      xzwu@263.net

      3.課程基本表

      表名:課程

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      課程編號

      字符型

      4

      主索引

      課程名稱

      字符型

      20

      學(xué)時

      數(shù)值型

      3

      0

      學(xué)分

      數(shù)值型

      2

      0

      課程性質(zhì)

      字符型

      8

      備注

      備注型

      記錄:

      課程編號

      課程名稱

      學(xué)時

      學(xué)分

      課程性質(zhì)

      CC01

      C語言程序設(shè)計

      48

      3

      選修課

      CC02

      FoxPro數(shù)據(jù)庫及程序設(shè)

      32

      2

      選修課

      CC03

      多媒體計算機(jī)技術(shù)

      32

      2

      選修課

      CS01

      計算機(jī)原理

      48

      3

      必修課

      CS02

      編譯原理

      48

      3

      指定選修

      4.學(xué)生選課表

      表名:學(xué)生選課

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      學(xué)號

      字符型

      12

      普通索引

      課程編號

      字符型

      4

      普通索引

      開課時間

      日期型

      普通索引

      成績

      數(shù)值型

      3

      0

      普通索引

      記錄:

      學(xué)號

      課程編號

      開課時間

      成績

      200010301001

      CC01

      2001-2-20

      0

      200010301001

      CC03

      2001-2-20

      0

      200010301001

      CS01

      2001-9-1

      0

      200010301020

      CC02

      2001-2-20

      0

      200010301020

      CS03

      2001-2-20

      0

      200020302045

      CC02

      2001-2-20

      0

      200034201002

      CC03

      2001-2-20

      0

      200034202123

      CS02

      2001-9-1

      0

      199920403128

      CC01

      2000-2-23

      86

      199924104112

      CS02

      2000-2-23

      50

      199924104112

      CS02

      2001-2-20

      0

      199934202152

      CC02

      2000-2-23

      91

      199934202152

      CC03

      2000-2-23

      85

      199934202152

      CS01

      2000-9-3

      78

      199934202152

      CS02

      2000-9-3

      75

      200010401081

      CC02

      2001-2-20

      0

      5.教師任課表

      表名:教師任課表

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      課程編號

      字符型

      4

      普通索引

      教師編號

      字符型

      8

      普通索引

      記錄:

      課程編號

      教師編號

      CC01

      CC01

      CC01

      CC02

      CC02

      CC01

      CC02

      CC03

      CC03

      CC02

      CC03

      CC03

      CS01

      CS01

      CS01

      CS02

      CS02

      CS01

      6.專業(yè)表

      表名:專業(yè)表

      結(jié)構(gòu):

      字段名

      類型

      寬度

      小數(shù)位數(shù)

      索引

      專業(yè)編號

      字符型

      4

      主索引

      專業(yè)名稱

      字符型

      40

      所屬系

      字符型

      40

      備注

      備注型

      記錄:

      專業(yè)編號

      專業(yè)名稱

      所屬系

      03

      水動

      水利

      04

      農(nóng)田

      水利

      05

      水資源

      水利

      41

      自動化

      電力

      42

      熱動

      電力

      ? 應(yīng)用程序設(shè)計

      (一)程序總體結(jié)構(gòu)設(shè)計

      在開始程序設(shè)計前,應(yīng)先將程序的總體結(jié)構(gòu)以層次圖的形式表示出來,便于對程序分層編程和實(shí)現(xiàn)。如圖3所示。

      /xcxxgc_jpkc/upload/images/2019/1/1610515565.jpg

      圖的第一層為系統(tǒng)層,通常對應(yīng)主程序;第二層為子系統(tǒng)層,一般起劃分系統(tǒng)功能的作用,通常對應(yīng)主菜單;第三層為功能層,對應(yīng)菜單項(xiàng),一般通過表單的調(diào)用實(shí)現(xiàn)某些特定的功能。

      (二)界面設(shè)計

      1.封面設(shè)計(封面.scx

      選中項(xiàng)目管理器中文檔-表單,按下“新建”按鈕,在隨后打開的對話框中單擊“新建表單”按鈕,彈出表單設(shè)計器和一個表單,其對象名為Form1。在表單中添加一個Lable對象,采用系統(tǒng)默認(rèn)名稱Label1,一個Timer對象,系統(tǒng)默認(rèn)名稱Timer1,如圖4所示。設(shè)置對象屬性如下:

      /xcxxgc_jpkc/upload/images/2019/1/1610515690.jpg

      圖4“封面”表單

      (1)Form1的屬性設(shè)置及事件代碼

      屬性名

      設(shè)置值

      說明

      Left

      0

      Top

      0

      Heigh

      431

      Width

      771

      BorderStyle

      0-無邊框

      Picture

      C:¥windows¥circles.bmp

      設(shè)置窗口背景

      TitleBar

      0-關(guān)閉

      只顯示背景和標(biāo)簽

      Window State

      2-最大化

      Activate事件代碼:              && 調(diào)整標(biāo)簽在啟動窗口中的位置

      thisform.label1.top=thisform.height/3

      thisform.label1.left=(thisform.width-thisform.label1.width)/2

      thisform.label1.visible=.t.

      RightClick事件代碼:

      thisform.release              &&關(guān)閉啟動窗口

      (2)Label1的屬性設(shè)置

      屬性名

      設(shè)置值

      說明

      Top

      132

      Left

      60

      Height

      60

      Width

      517

      Caption

      學(xué)生選課管理系統(tǒng)

      FontName

      隸書

      FontSize

      48

      ForeColor

      255,128,128

      BackStyle

      2-透明

      以免遮住窗口背景

      Visible

      F.-假

      以免在調(diào)整標(biāo)簽位置時閃動

      (3)Timer1的屬性設(shè)置及事件代碼

      屬性名

      設(shè)置值

      說明

      Interval

      5000

      每5000ms調(diào)用一次Timer事件

      Timer事件代碼:

      thisform.release

      2.主菜單設(shè)計(主菜單.mnx

      選中項(xiàng)目設(shè)計器中其他-菜單,單擊“新建”按鈕,在彈出的對話框中選擇“菜單”按鈕,參照總體結(jié)構(gòu)圖,設(shè)計主菜單如下。

      基本信息

      選課信息

      統(tǒng)計查詢

      報表打印

      代碼維護(hù)

      學(xué)生名冊

      (學(xué)生基本情況.scx)

      選課登記

      (選課登記.scx)

      按課程查詢

      (按課程查詢.scx)

      學(xué)生成績單

      課程代碼

      教師名冊

      (教師.scx)

      按學(xué)生查詢

      教師工作量

      課程信息

      (課程信息.scx)

      按課程平均

      (按課程求平均.scx)

      課程成績單

      退出

      (命令)

      按學(xué)生平均

      “退出”菜單項(xiàng)命令如下:

      clear events              && 退出事件循環(huán)

      從菜單文件生成菜單程序“主菜單.mpr

      3.“學(xué)生名冊”表單(學(xué)生基本情況.scx

      學(xué)生名冊表單用于輸入、修改、刪除、查詢學(xué)生信息。窗口設(shè)計見圖5。在窗口上單擊鼠標(biāo)右鍵打開彈出菜單,選擇數(shù)據(jù)環(huán)境打開數(shù)據(jù)環(huán)境設(shè)計器,在數(shù)據(jù)環(huán)境中添加“學(xué)生”、“專業(yè)表”兩個表,建立關(guān)聯(lián)。如圖6所示。

      (1)StudentForm的屬性設(shè)置

      屬性名

      設(shè)置值

      說明

      Name

      StudentForm

      Caption

      學(xué)生基本情況

      AutoCenter

      .T.-真

      窗口自動居中

      BorderStyle

      2-固定對話框

      無需用戶調(diào)整窗口大小

      MaxButton

      .F.-假

      同上

      /xcxxgc_jpkc/upload/images/2019/1/1610515752.jpg

      圖5 學(xué)生基本情況“表單

      /xcxxgc_jpkc/upload/images/2019/1/1610515877.jpg

      圖6“學(xué)生基本情況”表單的數(shù)據(jù)環(huán)境設(shè)置

      (2)標(biāo)簽和文字框的設(shè)置

      從數(shù)據(jù)環(huán)境將下列字段拖到表單中規(guī)定的位置,產(chǎn)生相應(yīng)的標(biāo)簽和文本框:學(xué)生表中的學(xué)號、姓名、出生日期、入學(xué)時間、入學(xué)成績、簡歷等字段;專業(yè)表中的專業(yè)編號、專業(yè)名稱、所屬系等字段。從數(shù)據(jù)環(huán)境來產(chǎn)生標(biāo)簽和文本框,不僅速度快,而且標(biāo)簽的Caption和Name屬性、文本框的Name屬性都會自動設(shè)定位與源字段有關(guān)的名字,文本框也會自動與源表中的源字段綁定。

      (3)“專業(yè)編號”列表框的設(shè)置及事件代碼

      從表單控件工具欄中選擇“組合框”工具,在窗口上相應(yīng)位置單擊,產(chǎn)生一個組合框Combo1,設(shè)置其屬性。

      屬性名

      設(shè)置值

      說明

      Name

      Combo1

      ControlSource

      學(xué)生.專業(yè)編號

      數(shù)據(jù)存儲的字段

      RowSource

      專業(yè)表.專業(yè)編號

      列表框中數(shù)據(jù)來源字段

      RowSourceType

      6-字段

      數(shù)據(jù)來源為字段

      Style

      2-下拉列表框

      Valid事件代碼:

      thisform.refresh

      (4)“團(tuán)員”復(fù)選框的設(shè)置

      從數(shù)據(jù)環(huán)境中將“學(xué)生.團(tuán)員否“字段拖到窗口上相應(yīng)的位置,會自動產(chǎn)生團(tuán)員復(fù)選框。并且將它與學(xué)生.團(tuán)員字段綁定。

      (5)“性別”選項(xiàng)按鈕組的設(shè)置

      從表單控件工具欄中選擇選項(xiàng)按鈕組工具,在窗口相應(yīng)的位置單擊鼠標(biāo)左鍵,創(chuàng)建選項(xiàng)按鈕組控件,在控件上單擊鼠標(biāo)右鍵打開彈出式菜單,選擇生成器材單項(xiàng),打開選項(xiàng)組生成器窗口,如圖7所示,按步驟完成如下操作。

      /xcxxgc_jpkc/upload/images/2019/1/1610515955.jpg

      圖7設(shè)置“性別”選項(xiàng)組

      第一步,將標(biāo)題改為“男”、“女”;

      第二步,將布局改為水平排列;

      第三步,將值與學(xué)生.性別字段綁定。單擊“確定”完成設(shè)置。

      (6)命令按鈕組設(shè)置與事件代碼

      從表單控件工具欄中選擇命令按鈕組工具,在窗口相應(yīng)的位置單擊鼠標(biāo)左鍵創(chuàng)建命令按鈕組控件CommandGroup1,在控件上單擊鼠標(biāo)右鍵彈出菜單,選擇生成器菜單項(xiàng),打開命令組生成器窗口,格式與圖8.14類似。按要求第一步設(shè)置按鈕數(shù)目及每個按鈕的標(biāo)題(見圖8.12);第二步設(shè)置布局為水平排列,單擊“確定”即可生成按鈕組。

      CommandGroup1的Click事件代碼:

      do case

      case this.value=1              && 到首頁

                                 go top

      case this.value=2              && 到上頁

                                 if not bof()

                                               skip -1

                                 endif

      case this.value=3              && 到下頁

                                 skip

                                 if eof()

                                               skip -1

                                 endif

      case this.value=4              && 到末頁

                                 go bottom

      case this.value=5              && 按學(xué)號查詢

                                 xh=''

                                 do form 輸入學(xué)號                            && 打開學(xué)號輸入窗口(見下文),關(guān)閉時

      && 將輸入的學(xué)號返回

                                 dqjlh=recno()

                                 if len(xh)<>0

                                               locate for 學(xué)號=xh

                                               if not found()

                                                             wait window '無此學(xué)號!'

                                                             go dqjlh

                                               endif

                                 endif

      case this.value=6              && 新增學(xué)生名單

                                 zy=messagebox('需要增加學(xué)生名單嗎?',4+32+256,'確認(rèn)')

                                 if zy=6              && 對話框含“是”“否”按鈕,按下“是”按鈕返回6

                                               append blank

                                 endif

      case this.value=7              && 刪除當(dāng)前學(xué)生名單

                                 sy=messagebox('需要刪除當(dāng)前的學(xué)生名單嗎?',4+32+256,'確認(rèn)')

                                 if sy=6

                                               delete

                                               pack

                                 endif

      case this.value=8              && 關(guān)閉當(dāng)前窗口

                                 thisform.release              

      endcase

      thisform.refresh

      4.“輸入學(xué)號”表單(輸入學(xué)號.scx

      在“學(xué)生名冊”窗口中,當(dāng)單擊尋頁按鈕時,調(diào)用“輸入學(xué)號”表單,通過公共變量xh,將輸入的需要查詢的學(xué)號傳回到“學(xué)生名冊”窗口,并進(jìn)行定位,如果沒有相應(yīng)學(xué)號的數(shù)據(jù),則在等待窗口中顯示“無此學(xué)號”?!拜斎雽W(xué)號”窗口如圖8所示。

      /xcxxgc_jpkc/upload/images/2019/1/16105162.jpg

      圖8 “輸入學(xué)號”表單窗口

      (1)Form的屬性設(shè)置

      屬性名

      設(shè)置值

      說明

      AutoCenter

      .T.-真

      BorderStyle

      2-固定對話框

      Caption

      輸入學(xué)號

      ControlBox

      .F.-假

      Name

      noForm

      WindowStyle

      1-模式

      在窗口關(guān)閉前不能操作其他窗口

      (2)命令按鈕組的屬性設(shè)置及事件代碼

      利用生成器,創(chuàng)建命令按鈕組CommandGroup1其中包含“確定”、“取消”兩個按鈕。

      CommandGroup1的Click事件代碼:

      do case

                   case this.value=1              &&單擊“確定”,將文本框中的值賦予全局變量xh

                                 xh=trim(thisform.text1.value)

                                 thisform.release

                   case this.value=2              &&單擊“取消”,將全局變量xh賦空字符串

                                 xh=''

                                 thisform.release

      endcase

      5.“選課登記”表單(選課登記.scx

      “選課登記”表單用于輸入、修改和查詢學(xué)生選課信息,需要使用學(xué)生選課表、學(xué)生表和課程表三個表。在“選課登記”表單的數(shù)據(jù)環(huán)境中加入這三個表,同時以建立學(xué)生選課表為主表建立學(xué)生選課表和學(xué)生表、學(xué)生選課表和課程表之間的關(guān)聯(lián),如圖9所示。

      /xcxxgc_jpkc/upload/images/2019/1/161051664.jpg

      圖9 “選課登記”表單的數(shù)據(jù)環(huán)境

      和“學(xué)生名冊”表單類似,從數(shù)據(jù)環(huán)境中將需要的數(shù)據(jù)拖到表單窗口的相應(yīng)位置,創(chuàng)建“選課登記”表單如圖10所示。

      /xcxxgc_jpkc/upload/images/2019/1/1610516111.jpg

      圖10 “選課登記”表單

      窗口屬性的設(shè)置和“學(xué)生名冊”表單類似,其中命令組可以從“學(xué)生名冊”表單中復(fù)制過來,修改其Click事件中的代碼如下:

      do case

                   case this.value=1

                                 go top

                   case this.value=2

                                 if not bof()

                                               skip -1

                                 endif

                   case this.value=3

                                 skip

                                 if eof()

                                               skip -1

                                 endif

                   case this.value=4

                                 go bottom

                   case this.value=5

                                 kcbh=''

                                 do form 輸入學(xué)號

                                 dqjlh=recno()

                                 if len(kcbh)<>0

                                               locate for 課程編號=kcbh

                                               if not found()

                                                             wait window '無此選課記錄!'

                                                             go dqjlh

                                               endif

                                 endif

                   case this.value=6

                                 zy=messagebox('需要增加選課記錄嗎?',4+32+256,'確認(rèn)')

                                 if zy=6

                                               append blank

                                 endif

                   case this.value=7

                                 sy=messagebox('需要刪除當(dāng)前的選課記錄嗎?',4+32+256,'確認(rèn)')

                                 if sy=6

                                               delete

                                               pack

                                 endif

                   case this.value=8

                                 thisform.release              

      endcase

      thisform.refresh

      “課程編號”列表框?qū)傩缘脑O(shè)置參照“學(xué)生名冊”表單。

      6.“按課程查詢”表單(按課程查詢.scx

      該表單可以按所選定的課程查詢出選修了該課程的所有學(xué)生名單、開課時間以及成績,數(shù)據(jù)涉及到學(xué)生選課和課程,將這兩個表加入到數(shù)據(jù)環(huán)境中,窗口格式的建立如圖11所示。

      /xcxxgc_jpkc/upload/images/2019/1/1610516174.jpg

      圖11 “按課程查詢”表單

      (3)關(guān)閉命令按鈕的Click時間代碼

      thisform.release

      7.“按課程統(tǒng)計”表單(按課程統(tǒng)計.scx

      “按課程統(tǒng)計”表單提供用戶按課程統(tǒng)計沒門課程的平均成績,為了使表單界面設(shè)計簡單,可以先建立視圖,將成績按課程分組求平均值,視圖的建立可利用VFP提供的視圖設(shè)計器,將學(xué)生選課表和課程表加入視圖設(shè)計器中,將學(xué)生選課.課程編號、課程.課程名稱從可選字段列表加入到選定字段列表框中,利用表達(dá)式生成器生成AVG(學(xué)生選課.成績),并將它加入到選定字段列表框中。如圖12所示。

      /xcxxgc_jpkc/upload/images/2019/1/1610516267.jpg

      圖12視圖設(shè)計器

      設(shè)置連接條件為:學(xué)生選課.課程編號=課程.課程編號

      篩選條件為:NOT 學(xué)生選課.成績=0

      排序依據(jù)為:學(xué)生選課.課程編號

      分組依據(jù)為:學(xué)生選課.課程編號

      視圖名為: v學(xué)生選課_課程_統(tǒng)計1

      最后將新建的視圖加到表單的數(shù)據(jù)環(huán)境中,表單窗口的設(shè)計如圖13所示。

      /xcxxgc_jpkc/upload/images/2019/1/1610516376.jpg

      圖13 “按課程平均”表單

      成績列表框仍然利用列表框生成器設(shè)計。


      日韩无码第一页,一区_97资源人妻碰碰碰_有码无码人妻Av_午夜亚洲国产理论片2020网站 亚洲无码片AV一级 岛国av无码专区免费看
      <style id="uedzd"></style>
    3. <style id="uedzd"></style>
    4. <dfn id="uedzd"></dfn>
    5. <dfn id="uedzd"></dfn>
      1. <ruby id="uedzd"></ruby>
        <ruby id="uedzd"></ruby>