Java學生選課系統(tǒng)實驗報告_第1頁
Java學生選課系統(tǒng)實驗報告_第2頁
Java學生選課系統(tǒng)實驗報告_第3頁
Java學生選課系統(tǒng)實驗報告_第4頁
Java學生選課系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、java學生選課系統(tǒng)實驗報告java學生選課系統(tǒng)實驗報告 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內容進行仔細校對,但是難免會有疏漏的地方,但是任然希望(java學生選課系統(tǒng)實驗報告)的內容能夠給您的工作和學習帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為java學生選課系統(tǒng)實驗報告的全部內容。38課 程 設 計 論 文組員姓名: 組員學號:專業(yè):指導老師:提交日期:基于delphi7的教務管理

2、系統(tǒng)的設計與實現(xiàn)摘 要:隨著計算機技術的飛速發(fā)展和高等教育體制改革的不斷深入,傳統(tǒng)教育管理方法、手段以及工作效率已不能適應新的發(fā)展需要,無法很好地完成教學管理工作。提高教務管理水平的主要途徑是更新管理者的思想,增強對管理活動的科學認識?;赿elphi 7與數據庫技術建立一個高校教務管理系統(tǒng)該系統(tǒng)為學生和教師提供了查詢、修改、存儲、增加記錄、選課等功能,功能比較落齊全,基本上能滿足學生和老師的要求.目 錄摘 要2前言41 需求分析41。1 功能需求分析41.2 性能需求分析51。3 數據庫需求分析數據流圖61。4數據庫需求分析數據流圖62概要結構設計122。1系統(tǒng)功能結構設計122.2 數據庫

3、概念結構設計143邏輯結構設計184詳細設計及功能實現(xiàn)234。1用戶登錄模塊設計與實現(xiàn)235總結41參考文獻41前言 教務管理工作是高等學校教育工作的一項重要內容,是整個學校管理的核心和基礎.教務管理工作是指學校管理人員按照一定教育方針,運用先進的管理手段,組織 、協(xié)調 、指揮并指導各方面人員的活動,以便高效率、高質量地完成各項教學任務,完成國家所制定的教育目標。教務管理工作是學校教學工作的中樞,是保證高校教學機制正常運轉的樞紐,它是一項目的性、計劃性、適用性、創(chuàng)造性和科學性很強的工作。教務管理工作關系到高校教學秩序的穩(wěn)定和教學質量的提高,關系到高校的發(fā)展和人才的培養(yǎng),教務管理高校中占有相當重

4、要的地位。隨著計算機技術的飛速發(fā)展和高等教育體制改革的不斷深入,傳統(tǒng)教育管理方法、手段以及工作效率已不能適應新的發(fā)展需要,無法很好地完成教學管理工作.提高教務管理水平的主要途徑是更新管理者的思想,增強對管理活動的科學認識。同時,運用先進的信息技術,開發(fā)高校綜合教務管理信息系統(tǒng),是深化教務體制改革的有利措施。delphi7是以組件化的編程方式、面向對象的程序設計、快速的pascal編譯器、眾多的組件和強大的數據庫及網絡應用開發(fā)支持,在競爭激勵的開發(fā)工具市場中越來越羸得程序設計者的青睞。delphi7是windows系統(tǒng)下的可視化集成開發(fā)工具,提供了強大的可視化組件功能,使程序員能夠快速、高效地開

5、發(fā)出windows系統(tǒng)下的應用程序,特別是在數據庫和網絡方面,delphi7與其它開發(fā)工具相比更是勝出一籌??梢暬饕侵搁_發(fā)圖形用戶界面時,不需編寫大量程序代碼以描述界面的外觀特性,而只需把所需的組件加入窗體相應位置即可。1 需求分析1.1 功能需求分析 該教務管理系統(tǒng)具備兩方面的功能:一方面是學生用戶,學生通過輸入學號和密碼進下該系統(tǒng)后,可以進行一些基礎維護(學生信息維護、班級信息維護、課程信息維護)、教學管理(課表查詢、學生選課)、報表統(tǒng)計(打印成績單)、用戶維護;另一方面老師進入該系統(tǒng)則比學生多一個權限:成績輸入。具體功能的詳細描述如下1.1。1 選擇基礎維護 班級信息維護菜單命令,即

6、可進入 班級信息維護功能窗體,在其中輸入學校班級相關的信息,如果需要新增或修改班級信息,則單擊相應的按紐,輸入新信息后單擊保存就可以了。需要刪除一條信息,則只要選擇這條信息再點擊 刪除。在搜索條件中輸入相關的條件,單擊 搜索就可查找信息。1.1。2 選擇基礎維護 學生信息維護菜單命令,即可進入 學生信息維護功能窗體,在其中輸入學號姓名信息。其中班級編號、政治面貌編號民族編號籍貫編號和學籍編號列表框是通過和數據庫中相應的代碼表相聯(lián)而生成的。1.1.3 選擇基礎維護 課程信息維護菜單命令,即可進入 課程信息維護功能窗體。1。1。4 選擇教學管理 學生選課菜單命令,即可進入 學生選課功能窗體,在學號

7、框中輸入學號。然后在課程信息 組合框中輸入條件,查詢并選擇要選的課程,單擊選課,系統(tǒng)將會檢查該門課程是否已選擇,其中班級編號、政治面貌編號民族編號籍貫編號和學籍編號列表框是通過和數據庫中相應的代碼表相聯(lián)而生成的.1。1.5 選擇教學管理課表查詢 界面,學生輸入學號等信息就可以看到自己的課表。1。1.6 選擇教學管理成績輸入 界面此界面對學生是不可見的,按中止選課按紐后,再選擇一門課程,在下面的表格中將顯示所有選了這門課的學生信息,教師將學生的成績輸入或修改,按最終提交后成績不能再修改。1.1。7 選擇報表統(tǒng)計 打印成績單 輸入學號等信息就可打印成績。h 選擇用戶維護 修改密碼 用戶可根據界面的

8、提示信息修改自己的密碼;選擇退出將退出整個系統(tǒng)。1.2 性能需求分析時間特性要求:在軟件方面,響應時間,更新處理時間都要求比較快而且迅速,這就需要采用存儲過程技術,才能夠滿足用戶的需要,在這個系統(tǒng)中用到了兩個存儲過程,它們分別是成績提交 、終止選課, 其中成績提交用來存儲教師在修改成績后提交的結果,終止選課用來存儲結束選課.安全性:設立口令號和密碼驗證方式,防止非法用戶登錄進行操作。也就是用戶只有學生和教師才能進入這個系統(tǒng),此系統(tǒng)沒有高及到管理員的操作,用戶憑學生的口令號 即 學號進入;教師的口令號和密碼進入此系統(tǒng)。1.3 數據庫需求分析數據流圖在教務系統(tǒng)中功能模塊主要牽涉到的信息包括:是學生

9、信息(xsxx)、課程信息(kcxx)、選課信息(xkxx)、籍貫代碼表(jgdmb)、政治面貌代碼表(zzmmdmb)、成績表(cjb)、課程表(kcb)、班級信息(bjxx)、民族代碼表(mzdmb)、登陸表(dlb)和學籍代碼表(xjdmb)。學生信息:包含學號(xh)、姓名(xm)、班級編號(bjbh)、性別(xb)、政治面貌編號(zzmmbh)、身份證號(sfzh)、籍貫編號(jgbh)、學籍編號(xjbh)、民族編號(mzbh)。課程信息:包括課程編號(kcbh)、課程名稱(kcmc)、本學期課程(bxqkc)、教師(js)、開課系別(kkxb)、學分(xf)、課程簡稱(kcjc)

10、、拼音碼(pym)。選課信息包括:編號(bh)、學號(xh)、課序號(kxh).籍貫代碼表包括:籍貫編號(jgbh)、籍貫(jg)。政治面貌代碼表包括:政治面貌編號(zzmmbh)、政治面貌(zzmm).成績表包括:編號(bh)、學號(xh)、課程編號(kcbh)、成績(cj)、考試次數(kscs)、是否補修(sfbx)、是否重考(sfck)、是否已確定成績(sfyqdcj)。 課程表包括:編號(bh)、課序號(kxh)、課程編號(kcbh)、上課時間天(sksjt)、上課時間節(jié)(sksjj)、上課地點(skdd)。班級信息包括:班級編號(bjbh)、年級(nj)、班級名稱(bjmc)、人數(

11、rs)、班主任(bzr).民族代碼表包括:民族編號(mzbh)、民族(mz).登陸表包括:口令號(klh)、密碼(mm)、權限(qx)。學籍代碼表包括:學籍編號(xjbh)、學籍(xj)。數 據 庫返回信息賬號信息2 開發(fā)環(huán)境與工具介紹前端客戶端我用的是macromedia dreamweaver 8來編寫jsp文件。中間業(yè)務邏輯層的javabeans用的是jbuilderx enterprisex版。數據庫的編寫是采用mysql數據庫.2.1開發(fā)環(huán)境由于我用的是jbuilderx enterprise版開發(fā)的這個系統(tǒng),這個開發(fā)軟件功能十分強大,所以自然對開發(fā)環(huán)境要求相對來說比較高。1對系統(tǒng)硬

12、件的要求:最小512m ram,推薦786mb ram。2. 對系統(tǒng)平臺的要求: windows平臺 cpu:intel pentiumiii 及以上兼容系列500mhz以上。 操作系統(tǒng):microsoft windows2000(sp4)、windowxp或者windowsserver2003。linux平臺 cpu:intel pentiumiii 及以上兼容系列500mhz以上。操作系統(tǒng):sun java desktop system release2或者redhat enterprise linux 3 .0 2。2 運行環(huán)境: 硬件:適用于數據吞吐量較大的不同服務器; 軟件 :服務器

13、端:windows xp+mysql用戶端: windowxp+ie登陸信息操 作登 錄根據以上劃分的具體數據信息,得到數據流圖如1.1所示: 尋找信息錯誤信息1.1數據庫需求分析數據流圖1.4。1 數據項: 表1-1fieldtypenullkeycomment xhchar(14)pri學號xmchar(10)yes-姓名bjbhchar(14)班級編號xbchar(2)yes性別njchar(4)yes年級zzmmbhchar(2)政治面貌編號mzbhchar(2)民族編號jgbhchar(2)籍貫編號xjbhchar(2)-學籍編號sfzhchar(18)yes身份證號bjbhchar

14、(14)pri班級編號bjmcchar(30)yes班級名稱njchar(4)yes年級rschar(5)yes-人數bzrchar10)yes班主任kcbhchar(14)-pri課程編號kcmcchar(30)yes課程名稱bxqkcchar(4)yes本學期課程kkxbchar(5)yes開課系別jschar10)yes-教師xfint(4)yes-學分kcjcchar(10)yes課程簡稱pymchar(10)yes-拼音碼bhint(4)pri編號xhchar(14)yespri學號kxhchar(14)yespri課序號bhchar(2)pri編號kcbhchar(10)yespr

15、i課程編號kxhchar(14)yespri課序號sksjjchar(4)yes上課時間節(jié)sksjtchar(4)yes上課時間天skddchar(20)yes-上課地點bhchar(2)-pri編號kcbhchar(10)yespri課程編號xhchar(14)yespri學號cjint(4)yes-成績kscsint(4)yes-考試次數sfbxchar(10)yes是否補修sfckchar(10)yes是否重考sfyqdcjchar(10)yes-是否已確定成績mzbhchar(2)-pri民族編號mz char(18)yes-民族zzmmbhchar(2)-pri政治面貌編號zzmm

16、char(14)yes-政治面貌jgbhchar(2)pri籍貫編號 jgchar(18)yes籍貫xjbhchar(2)pri學籍編號xj char(10)yes-學籍klhchar(12)pri口令號mm char(10)yes-密碼qxchar(50)yes權限1.4。2 數據結構:學生信息=組成: 學號(xh)、姓名(xm)、班級編號(bjbh)、性別(xb)、政治面貌編號(zzmmbh)、身份證號(sfzh)、籍貫編號(jgbh)、學籍編號(xjbh)、民族編號(mzbh)課程信息=組成: 課程編號(kcbh)、課程名稱(kcmc)、本學期課程(bxqkc)、教師(js)、開課系別(

17、kkxb)、學分(xf)、課程簡稱(kcjc)、拼音碼(pym)選課信息=組成:編號(bh)、學號(xh)、課序號(kxh)籍貫代碼表=組成:籍貫編號(jgbh)、籍貫(jg)政治面貌代碼表=組成:政治面貌編號(zzmmbh)、政治面貌(zzmm)成績表包括=組成:編號(bh)、學號(xh)、課程編號(kcbh)、成績(cj)、考試次數(kscs)、是否補修(sfbx)、是否重考(sfck)、是否已確定成績(sfyqdcj) 課程表包括=組成:編號(bh)、課序號(kxh)、課程編號(kcbh)、上課時間天(sksjt)、上課時間節(jié)(sksjj)、上課地點(skdd)班級信息=組成:班級編號(

18、bjbh)、年級(nj)、班級名稱(bjmc)、人數(rs)、班主任(bzr)民族代碼表=組成:民族編號(mzbh)、民族(mz)登陸表=組成:口令號(klh)、密碼(mm)、權限(qx)學籍代碼表=組成:學籍編號(xjbh)、學籍(xj)1.4。3 數據流:1.4。3.1 對圖1.1中所涉及的數據流描述如下:1) 數據流名:學號信息說明:根據這個口令號定位到用戶管理數據庫,以便進行身份驗證。數據流來源:登陸界面輸入的口令號和密碼.數據流去向:其中用戶口令信息將存在于整個操作過程中,防止非法登陸。數據流組成:口令號(文本);密碼(文本)2) 數據流名:尋找信息說明:根據學生在班級信息維護的時候

19、所填寫的信息.數據流來源:班級信息維護界面學生輸入包含班級編號、班級名稱、年級、人數、班主任.數據流去向:班級編號將存在整個操作,其它的存入數據庫.數據流組成:班級編號(文本);班級名稱(文本);年級(文本);人數(文本);班主任(文本);3) 數據流名:尋找信息說明:根據學生在學生信息維護的時候所填寫的信息.數據流來源:學生信息維護界面學生輸入包含學號、姓名、班級編號、性別、政治面貌編號、身份證號碼、籍貫編號、學籍編號、民族編號。數據流去向:學號將存在整個操作,其它的存入數據庫。數據流組成:學號(文本)、姓名(文本)、班級編號(文本)、性別(文本)、政治面貌編號(文本)、身份證號碼(文本)、

20、籍貫編號(文本)、學籍編號(文本)、民族編號(文本)。4) 數據流名:尋找信息說明:根據課程在班級維護的時候所填寫的信息。數據流來源:課程信息維護界面學生輸入包含課程編號、課程名稱、本學期課程、教師、開課系別、學分、課程簡稱、拼音碼.數據流去向:課程編號將存在整個操作,其它的存入數據庫.數據流組成:課程編號(文本)、課程名稱(文本)、本學期課程(文本)、教師(文本)、開課系別(文本)、學分(整型)、課程簡稱(文本)、拼音碼(文本).5) 數據流名:返回信息說明:根據課程在學生維護的時候所填寫的信息存入數據庫后。數據流來源:由課程信息維護界面學生輸入的包含課程編號、課程名稱、本學期課程、教師、開

21、課系別、學分、課程簡稱、拼音碼存入數據庫后.數據流去向:課程信息維護界面。數據流組成:課程編號(文本)、課程名稱(文本)、本學期課程(文本)、教師(文本)、開課系別(文本)、學分(整型)、課程簡稱(文本)、拼音碼 (文本)。6) 數據流名:返回信息說明:根據學生在學生信息維護的時候所填寫的信息存入了數據庫之后。數據流來源:由學生信息維護界面學生輸入的包含學號、姓名、班級編號、性別、政治面貌編號、身份證號碼、籍貫編號、學籍編號、民族編號存入數據庫的。數據流去向:學生信息維護界面。數據流組成:學號(文本)、姓名(文本)、班級編號(文本)、性別(文本)、政治面貌編號(文本)、身份證號碼(文本)、籍貫

22、編號(文本)、學籍編號(文本)、民族編號(文本)。7) 數據流名:返回信息說明:根據學生在班級維護的時候所填寫的信息存入數據庫后。數據流來源:由班級信息維護界面學生輸入的包含班級編號、班級名稱、年級、人數、班主任存入數據庫的。數據流去向:班級信息維護界面。數據流組成:班級編號(文本);班級名稱(文本);年級(文本);人數(文本);班主任(文本);1。4.4 數據存儲:sf成績提交=輸入數據流:成績, 數據流去向:成績輸入sf終止選課=輸入數據流:選擇一門課程,數據流去向:數據庫1.4.5 數據處理過程:1。4.5。1 對圖1。1中所涉及的處理過程描述如下:1) 處理過程名:登陸輸入數據流:口令

23、號、密碼輸出數據流:不符合輸入條件的錯誤信息 處理過程邏輯:用 if條件進行判斷。2) 處理過程名:班級信息維護輸入數據流:班級編號、班級名稱、年級、人數、班主任。輸出數據流:班級編號、班級名稱、年級、人數、班主任,其中班級編號將存在整個操作。處理過程號:民族編號,其中學號將存在整個操作。3) 處理過程名:班級信息維護輸入數據流:課程編號、課程名稱、本學期課程、教師、開課系別、學分、4) 處理過程名:學生信息維護輸入數據流:學號、姓名、班級編號、性別、政治面貌編號、身份證號碼、籍貫編號、學籍編號、民族編號。輸出數據流:學號、姓名、班級編號、性別、政治面貌編號、身份證號碼、籍貫編號、學籍編課程簡

24、稱、拼音碼.輸出數據流:課程編號、課程名稱、本學期課程、教師、開課系別、學分、課程簡稱、拼音碼.其中課程編號將存在整個操作。5) 處理過程名:學生選課輸入數據流:學號、姓名、班級、課程拼音、課程編號、課程名稱、課序號輸出數據流:學號、課序號、課程編號、課程名稱、拼音碼、開課系別、教師、其中課程編號將存在整個操作。6) 處理過程名:課表查詢輸入數據流:學號、姓名、班級輸出數據流:學號、課序號、班級名稱、課程名稱、上課時間節(jié)、上課時間天、上課地點、其中課程編號將存在整個操作。7) 處理過程名:成績輸入輸入數據流:課程編號、課程名稱、拼音碼輸出數據流:編號、學號、課程名稱、成績 、其中編號和學號將存

25、在整個操作。2概要結構設計2.1系統(tǒng)功能結構設計2.1.1模塊的功能設計根據需求分析階段得到的功能需求,學生和教師用戶通過輸入口令號(學號)和密碼進下該系統(tǒng)后,可以進行一些基礎維護(學生信息維護、班級信息維護、課程信息維護)、教學管理(課表查詢、學生選課、成績輸入)、報表統(tǒng)計(打印成績單)、用戶維護(修改密碼、退出); 模塊功能大概可以分為如下4個方面:這幾個模塊基礎維護、教學管理、報表統(tǒng)計、用戶維護.其中基礎維護還要包括學生信息維護、班級信息維護、課程信息維護.教學管理包括課表查詢、學生選課、成績輸入.報表統(tǒng)計包括打印成績單。綜上所述,得到客戶端功能模塊圖如下2.1所示.修改密碼 退出修改密

26、碼退出報表統(tǒng)計用戶維護學生信息維護班級信息維護老師登陸2。2 數據庫概念結構設計 根據需求分析階段得到的數據字典以及數據流圖,由以上分析可以得到系統(tǒng)中出現(xiàn)的實體有:學生信息實體、課程信息實體、班級信息實體等等. 可以畫出對應的er圖如下:用戶信息實體的e-r圖如圖2.4所示學籍編號民族編號籍貫編號政治面貌編號班級編號班級編號姓名圖2。4學生信息實體er圖性別學號學生信息身份證號碼班級信息班級名稱學號年級班主任人數圖2.5班級信息實體er圖課程簡稱學分開課系別拼音碼 是否補修考試次數課程編號是否已確定成績是否重考成績表學號編號人數成績圖2.7成績表實體er圖課程編號上課時間天課程表課序號編號上課

27、地點上課時間節(jié)圖2。8課程表實體er圖課序號圖2。9選課表實體e-r圖學號編號選課表學籍代碼表圖2。10學籍代碼表實體e-r圖圖2。11籍貫代碼表實體er圖籍貫代碼表圖2.12政治面貌代碼表實體e-r圖政治面貌代碼表政治面貌編號圖2。13民族代碼表實體er圖民族代碼表對以上得到的各分e-r進行合并,得到總er圖2.14如下:政治面貌代碼表 籍貫代碼表學籍代碼表班級信息學生信息民族代碼表成績表選課表課程表課程信息3邏輯結構設計根據上面概念結構設計階段得到的er圖,下一步應該將它轉化為關系模型.可以得到對應的關系模式為:學生信息(學號、姓名、班級編號、性別、政治面貌編號、身份證號碼、籍貫編號、學籍

28、編號、民族編號)課程信息(課程編號、課程名稱、本學期課程、教師、開課系別、學分、課程簡稱、拼音碼)選課信息(編號、學號、課序號)籍貫代碼表(籍貫編號、籍貫名稱)政治面貌代碼表(政治面貌編號、政治面貌名稱)成績表(編號、學號、課程編號、成績、考試次數、是否補修、是否重考、是否已確定成績) 課程表(編號、課序號、課程編號、上課時間天、上課時間節(jié)、上課地點)班級信息(班級編號、年級、班級名稱、人數、班主任)民族代碼表(民族編號、民族)登陸表(口令號、密碼、權限)學籍代碼表(學籍編號、學籍)采用的microsoft sql server 2000數據庫,根據得到的關系建立起對應的二維表。首先建立一個學

29、生信息量。該表記錄每個學生的具體信息。表的結構如表3.1所示:表3.1學生信息詳細列表fieldtypenullkeycomment xhchar(14)pri學號xmchar(10)yes姓名bjbhchar(14)-班級編號xbchar(2)yes性別njchar(4)yes年級zzmmbhchar(2)-政治面貌編號mzbhchar(2)-民族編號jgbhchar(2)籍貫編號xjbhchar(2)-學籍編號sfzhchar(18)yes身份證號建立一個班級信息。該表記錄各個班級的詳細信息.如表3-2所示。fieldtypenullkeycomment bjbhchar(14)pri班級

30、編號bjmcchar(30)yes班級名稱njchar(4)yes年級rschar(5)yes人數bzrchar10)yes-班主任建立一個課程信息。該表記錄每門課程的詳細信息。如表3-3所示。fieldtypenullkeycomment kcbhchar(14)pri課程編號kcmcchar(30)yes課程名稱bxqkcchar(4)yes-本學期課程kkxbchar(5)yes-開課系別jschar10)yes-教師xfint(4)yes-學分kcjcchar(10)yes課程簡稱pymchar(10)yes拼音碼建立一個選課表.該表記錄了哪個學生選修了哪門課程。如表34所示。fiel

31、dtypenullkeycomment bhint(4)pri編號xhchar(14)yespri學號kxhchar(14)yespri課序號建立一個課程表.該表記錄了哪個學生選修了哪門課程。如表35所示。fieldtypenullkeycomment bhchar(2)-pri編號kcbhchar(10)yespri課程編號kxhchar(14)yespri課序號sksjjchar(4)yes上課時間節(jié)sksjtchar(4)yes-上課時間天skddchar(20)yes上課地點建立一個成績表。該表記錄了哪個學生選修了哪門課程。如表36所示。fieldtypenullkeycomment

32、bhchar(2)pri編號kcbhchar(10)yespri課程編號xhchar(14)yespri學號cjint(4)yes-成績kscsint(4)yes考試次數sfbxchar(10)yes是否補修sfckchar(10)yes-是否重考sfyqdcjchar(10)yes-是否已確定成績建立一個民族代碼表。該表記錄了哪個學生選修了哪門課程。如表3-7所示。fieldtypenullkeycomment mzbhchar(2)pri民族編號 mz char(18)yes民族建立一個政治面貌代碼表。該表記錄了哪個學生選修了哪門課程.如表3-8所示。fieldtypenullkeycom

33、ment zzmmbhchar(2)-pri政治面貌編號zzmmchar(14)yes政治面貌建立一個籍貫代碼表。該表記錄了哪個學生選修了哪門課程。如表3-9所示。fieldtypenullkeycomment jgbhchar(2)pri籍貫編號jgchar(18)yes籍貫建立一個學籍代碼表。該表記錄了哪個學生選修了哪門課程。如表3-10所示.fieldtypenullkeycomment xjbhchar(2)-pri學籍編號 xj char(10)yes學籍建立一個登陸表。該表記錄了哪個學生選修了哪門課程。如表3-11所示。fieldtypenullkeycomment klhchar

34、(12)pri口令號mm char(10)yes-密碼qxchar(50)yes-權限根據系統(tǒng)需求,應該基于用戶表定義一個視圖,其定義用sql語句描述如下:create view dbo.view1asselect top 100 percent dbo。xsxx。xh as 學號, dbo.xsxx.xm as 姓名, dbo.kcb。kxh as 課棄號, dbo.kcb.sksjt, dbo.kcb.sksjj, 單位dbo。kcb.skdd, dbo.bjxx.bjmc, dbo。kcxx。kcmc, dbo。cjb。cj, dbo.kcxx。kcbh, dbo。bjxx.bjbhfr

35、om dbo。xsxx inner join dbo.xkb on dbo。xsxx.xh = dbo。xkb.xh inner join dbo.kcb on dbo。xkb.kxh = dbo.kcb.kxh inner join dbo.bjxx on dbo。xsxx。bjbh = dbo.bjxx.bjbh inner join dbo.cjb on dbo.xsxx.xh = dbo.cjb。xh and dbo。xsxx。xh = dbo。cjb。xh inner join dbo。kcxx on dbo.cjb。kcbh = dbo。kcxx。kcbh and dbo.cjb.

36、kcbh = dbo。kcxx.kcbhorder by dbo.xsxx.xh desc, dbo。kcxx。kcbh desc, dbo。bjxx。bjbh desc根據系統(tǒng)需求,可以定義兩個存儲過程,其定義語句用sql語句描述如下:成績提交存儲過程:create proc sf_cjtj courseid intasbegin tranupdate cjb set sfyqdcj=ywhere kcbh=courseid and cj0commitgo終止選課存儲過程:create proc sf_zzxk asbegin traninsert into cjb(xh,kcbh,cj,k

37、scs,sfbx,sfck,sfyqdcj) select distinct a.xh ,b。kcbh,0,1,n,n,nfrom xkb as a,kcb as b where a。kxh=b.kxh and rtrim(a.xh)+rtrim(b.kcbh) not in ( select rtrim(a。xh)+rtrim(b。kcbh)from cjb ) commitgo4詳細設計及功能實現(xiàn)4.1用戶登錄模塊設計與實現(xiàn)設計思路:為了檢驗登錄用戶是否是一個合法用戶,當用戶輸入用戶名和密碼后,需要查詢數據庫以便驗證該用戶是否為非法用戶.同時通過用戶輸入的口令號就可知道用戶是學生,還是教師

38、,學生和教師的權限不同。實現(xiàn)功能:用戶可以從登陸界面進入到教務管理系統(tǒng)界面,然后進行一些操作。 圖4。1為系統(tǒng)運行時的截圖:圖4。1 用戶登錄模塊的系統(tǒng)截圖該模塊的核心代碼如下:判斷用戶是否合法和用戶權限。procedure tmain.button1click(sender: tobject);beginif(edit1。text=)or(edit2.text=)then showmessage(用戶名密碼不能為空!)else begin dm_login。adoquery1.close; dm_login.adoquery1.sql.clear; dm_login.adoquery1。sq

39、l.add(select from dlb where klh=+edit1。text+and mm=+edit2.text+); dm_login。adoquery1。open; user_number:=dm_login。adoquery1.fieldbyname(klh)。asstring; user_password:=dm_login.adoquery1.fieldbyname(mm).asstring; user_rright:=dm_login。adoquery1。fieldbyname(qx)。asstring; if(dm_login。adoquery1.recordcoun

40、t=0)then begin showmessage(用戶名或密碼錯誤,請重新輸入!); edit1.text:=; edit2.text:=; end else begin main.caption:=教務管理系統(tǒng); main。width:=820; main。height:=660; label1。visible:=false; label2。visible:=false; button1.visible:=false; button2.visible:=false; edit1.visible:=false; edit2.visible:=false; if(trim(user_rrig

41、ht)=學生)then main.n8。visible:=false; end; end;end;圖4.2 班級信息維護模塊的系統(tǒng)截圖 圖4。3 學生信息維護模塊的系統(tǒng)截圖圖4。4 課程信息維護模塊的系統(tǒng)截圖由于上面的二個模塊都是由一個父窗體繼承而來,則它們的核心代碼都一致。該模塊的核心代碼:/-根據窗口中查詢條件的設置來查詢-procedure tparent.bitbtn1click(sender: tobject);var(設置一個整數,其二進制的三位分別代表查詢條件1到3當某一個查詢條件可見,也就是要使用這個條件時,相應的位置為1,否則置0例如第1,2個條件要使用而第3個不使用時,該整

42、數二進制的值為110,也就是6*)condition:integer;begin/初始化該參數,設為7,二進制數為111 condition:=7;/如果第1個條件不可用,則將該位置0,方法是和整數3(二進制011)進行與操作if label3.visible=false then condition:=(condition)and(3); /如果第2個條件不可用,則將該位置0,方法是和整數5(二進制101)進行與操作if label4.visible=false then condition:=(condition)and(5); /如果第3個條件不可用,則將該位置0,方法是和整數6(二進制

43、110)進行與操作if label5.visible=false then condition:=(condition)and(6);if condition=7 then/三個查詢條件都存在的情況 begin adoquery1。close; adoquery1.sql.clear; adoquery1。sql.add(select * from +adotable1.tablename); adoquery1.sql.add( where(+label3.caption+ like +edit1。text+)); adoquery1.sql。add(and(+label4。caption+

44、 like +edit2。text+%)); adoquery1。sql.add(and(+label5。caption+ like %+edit3。text+); adoquery1。open; /將查詢得到的數據通過clone命令復制到adotable中去 adotable1。clone(adoquery1,ltunspecified); end;if condition=6 then/只存在兩個查詢條件的情況 begin adoquery1。close; adoquery1。sql.clear; adoquery1。sql。add(select * from +adotable1.tab

45、lename); adoquery1.sql.add( where(+label3.caption+ like +edit1.text+); adoquery1.sql。add(and(+label4.caption+ like %+edit2。text+%)); adoquery1.open; /將查詢得到的數據通過clone命令復制到adotable中去 adotable1。clone(adoquery1,ltunspecified); end;if condition=4 then /只存在一個查詢條件的情況 begin adoquery1。close; adoquery1.sql。cl

46、ear; adoquery1.sql。add(select from +adotable1。tablename); adoquery1.sql。add( where(+label3.caption+ like %+edit1.text+); adoquery1。open; /將查詢得到的數據通過clone命令復制到adotable中去 adotable1。clone(adoquery1,ltunspecified); end;end;圖4。5 學生選課模塊的系統(tǒng)截圖學生選課界面的核心代碼:procedure tcourseelect。edit1keypress(sender: tobject;

47、 var key: char);beginif not (key in 0.9,8,#13) then /該文本框中只能輸入數字begin key:=#0; exit;end;/回車輸入,將在籍學生的信息顯示在文本框中if key=13 then begin id:=trim(edit1。text); /清除上一次的數據 edit2.clear; edit3。clear; adoquery2.close; adoquery1.close; adoquery1。sql.clear; adoquery1。sql.add(select xsxx。xm,bjxx。bjmc,xsxx。xjbh from

48、 xsxx,bjxx); adoquery1。sql。add(where (xsxx。xh=+id+)and(xsxx。bjbh=bjxx。bjbh)); adoquery1。open; if trim(adoquery1.fieldbyname(xjbh)。asstring)=01then begin edit2.text:=trim(adoquery1。fieldbyname(xm)。asstring); edit3.text:=trim(adoquery1.fieldbyname(bjmc)。asstring); listcourse(id); /列出已選課程 /允許開始選課 bitbtn2.enabled:=true; bitbtn3.enabled:=true; /bitbtn4。enabled:=true; end else begin /只有在籍學生才能選課 showmessage(該生非在籍學生,不能選課); bitbtn2。enabled:=false; bitbtn3.enabled:=false; id:=; end; end;end;/-顯示學生已經選的課程-procedure tcourseelect.listcourse(id: string);begin /將符合選課條件的學生已經選過的課程列在表中 adoquery2.close; ad

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論