學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計_第1頁
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計_第2頁
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計_第3頁
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計_第4頁
學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

課程設(shè)計報告課程名稱數(shù)據(jù)庫系統(tǒng)原理設(shè)計題目學(xué)生學(xué)籍管理系統(tǒng)學(xué)生姓名學(xué)號專業(yè)班級指導(dǎo)教師2012年12月22日目錄…………3………………3………………3………….5……………..5………………52.3.劃分功能模塊………………7……………………8…………………8………………9………12……………….12…………………13結(jié)構(gòu)設(shè)計…………………14………165.1用戶界面設(shè)計及相關(guān)程序代碼………………16運(yùn)行結(jié)果………28……………32……………33系統(tǒng)概述這次實(shí)驗(yàn)的主要目標(biāo)是能利用課程中學(xué)習(xí)到的數(shù)據(jù)庫知識與技術(shù)較好地開發(fā)設(shè)計出數(shù)據(jù)庫應(yīng)用系統(tǒng),去解決各行各業(yè)信息化處理的要求。本實(shí)驗(yàn)主要在于實(shí)現(xiàn)一個通用學(xué)籍管理系統(tǒng),完成對學(xué)生學(xué)籍信息的增加、刪除、修改、查詢、顯示全部學(xué)生學(xué)籍信息等功能。數(shù)據(jù)庫應(yīng)用設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。為了使數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)設(shè)計合理、標(biāo)準(zhǔn)、有序、正確、高效進(jìn)行,現(xiàn)在廣泛采用的是工程化6個階段開發(fā)設(shè)計過程與方法,它們是需求分析階段、概念結(jié)構(gòu)設(shè)計階段、邏輯結(jié)構(gòu)設(shè)計階段、物理結(jié)構(gòu)設(shè)計階段、數(shù)據(jù)庫的實(shí)施、數(shù)據(jù)庫系統(tǒng)運(yùn)行與維護(hù)階段。系統(tǒng)開發(fā)環(huán)境為局域網(wǎng)或校園網(wǎng)網(wǎng)絡(luò)環(huán)境,網(wǎng)絡(luò)中有一臺安裝Windows2000Server的效勞器,效勞器上安裝SQLServer2000。該軟件是在Windows2000AdvancedServer+VisualBasic6.0+SQLServer2000的環(huán)境下完成的。下面就對這些開發(fā)工具進(jìn)行介紹微軟公司的VisualBasic6.0是Windows應(yīng)用程序開發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。VisualBasic提供了大量的控件,這些控件可用于設(shè)計界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設(shè)計過程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。利用VISUALBASIC程序設(shè)計語言,可以很方便地設(shè)計出在WINDOWS環(huán)境下運(yùn)行的應(yīng)用程序。故而,實(shí)現(xiàn)本系統(tǒng)VB是一個相對較好的選擇。1.2.1.1VisualBasic的編程特點(diǎn)VisualBasic語言的出現(xiàn)為Windows下的編程提出了一個新概念,利用VisualBasic的動態(tài)數(shù)據(jù)交換、對象的鏈接和嵌入、動態(tài)鏈接庫、ActiveX技術(shù)可以很方便地設(shè)計出功能強(qiáng)大的應(yīng)用程序。利用VisualBasic語言編程有以下幾個特點(diǎn):1.可視化程序設(shè)計在VisualBasic中開發(fā)的應(yīng)用程序,不但有豐富的圖形界面,同時由用戶為開發(fā)圖形界面添加的代碼真是少而又少,因?yàn)樵谠O(shè)計圖形界面的過程中只需設(shè)置ActiveX控件的屬性即可。2.強(qiáng)大的數(shù)據(jù)庫和網(wǎng)絡(luò)功能隨著VisualBasic語言的向前開展,它在數(shù)據(jù)庫和網(wǎng)絡(luò)方面的功能優(yōu)勢就愈加明顯,利用VisualBasic中的ODBC——開放式的數(shù)據(jù)庫訪問技術(shù)可以很方便地開發(fā)出自己的數(shù)據(jù)庫應(yīng)用程序;利用VisualBasic自帶的可視化數(shù)據(jù)管理器和報表生成器,完全可以在VisualBasic就完成數(shù)據(jù)庫的開發(fā)工作。3.其它特性在VisualBasic以前的版本中,由于仍然擺脫不了解釋執(zhí)行的代碼運(yùn)行機(jī)制,所以在相當(dāng)?shù)某潭壬现萍s了VisualBasic的開展。從版本開始,在VisualBasic中制作的應(yīng)用程序都改變?yōu)榫幾g執(zhí)行,使得VisualBasic的代碼效率有了很大的提高,同時執(zhí)行的速度也加快了解30%(同相比)。當(dāng)然在VisualBasic中還有其它特性,例如:面向?qū)ο蟮木幊陶Z言;結(jié)構(gòu)化程序設(shè)計;事件驅(qū)動的程序設(shè)計:在傳統(tǒng)的或“過程化〞的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一局部代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)行,必要時才會調(diào)用過程。在事件驅(qū)動的應(yīng)用程序中,代碼不是按預(yù)定的路徑執(zhí)行,而是在響不同的事件時執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序,決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時所經(jīng)過的路徑都是不同的。支持動態(tài)鏈接庫;應(yīng)用程序之間的資源共享。1.2.1.2數(shù)據(jù)庫開發(fā)中的三大工具VisualBasic在數(shù)據(jù)庫應(yīng)用程序的開發(fā)領(lǐng)域中,提供包含數(shù)據(jù)管理〔DataManager〕,數(shù)據(jù)控件〔DataControl〕以及數(shù)據(jù)編程對象〔數(shù)據(jù)訪問對象〔DAO〕、遠(yuǎn)程數(shù)據(jù)對象〔RDO〕和ActiveX數(shù)據(jù)對象〔ADO〕〕等功能強(qiáng)大的工具,協(xié)助設(shè)計人員輕松的連接數(shù)據(jù)庫文件,并訪問其中的數(shù)據(jù),在功能方面與其他一些專業(yè)數(shù)據(jù)庫軟件〔如FoxPro,MicosoftAccess等〕不相上下。系統(tǒng)分析本系統(tǒng)的設(shè)計模擬一般學(xué)生學(xué)籍管理內(nèi)容,經(jīng)過充分地系統(tǒng)調(diào)研,發(fā)現(xiàn)本系統(tǒng)應(yīng)包括學(xué)生信息、課程信息、學(xué)生專業(yè)信息等需管理信息。進(jìn)一步發(fā)現(xiàn)信息實(shí)體間管理信息有:專業(yè)分期課程方案、學(xué)生選課及各科成績統(tǒng)計等內(nèi)容。實(shí)現(xiàn)一個通用學(xué)籍管理系統(tǒng),完成對學(xué)生學(xué)籍信息的增加、刪除、修改、查詢、顯示全部學(xué)生學(xué)籍信息等功能。〔1〕本系統(tǒng)需要管理的實(shí)體信息①班級信息:班號、班級名稱、班主任工號等;②學(xué)生根本信息:學(xué)號、類別、姓名、性別、出生日期、、入校日期、家庭地址、備注等;③專業(yè)信息:專業(yè)編號、專業(yè)名稱、創(chuàng)辦年份、學(xué)生規(guī)模等;④學(xué)期信息:編號、學(xué)期名等;⑤課程根本信息:課程號、課程名、類型、學(xué)分等⑥畢業(yè)信息:畢業(yè)證號、性別、學(xué)號、姓名、畢業(yè)時間、已修學(xué)分、需修學(xué)分等?!?〕本系統(tǒng)要管理的實(shí)體聯(lián)系信息①學(xué)生入學(xué)時需錄入登記,并選定一專業(yè),每學(xué)期注冊后即可選課〔分必修課和選修課〕,每位學(xué)生選多門課,一門課應(yīng)有多名學(xué)生修讀。學(xué)生考試后,要登記考試成績。②專業(yè)分學(xué)期課程方案情況〔即專業(yè)教學(xué)方案〕,要反映是否必修課、是否學(xué)位課、是否考試課及備注信息。③學(xué)生各科成績需要登記,統(tǒng)計排名。④學(xué)生畢業(yè)需計算學(xué)分,審核資格〔學(xué)分、學(xué)習(xí)期數(shù)是否到達(dá)要求〕,順利畢業(yè)的頒發(fā)畢業(yè)證。⑤學(xué)生在校表現(xiàn)根據(jù)實(shí)際情況,進(jìn)行獎懲記錄。2.2功能需求分析本系統(tǒng)開發(fā)的目的,就是通過系統(tǒng)開發(fā),實(shí)現(xiàn)課程管理有關(guān)工作的計算機(jī)化,提高關(guān)鍵環(huán)節(jié)的處理速度和標(biāo)準(zhǔn)化,并對有關(guān)的工作進(jìn)行集成和重組,通過網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)集中管理、分散操作,提高選課管理工作的質(zhì)量和效率。通過對學(xué)校的選課及成績管理工作進(jìn)行實(shí)際調(diào)查,學(xué)生可以自由選擇課程、選老師,學(xué)生注冊的行政班和教學(xué)班是游離的,開發(fā)工作需要涉及任課教師、學(xué)生、管理員(教務(wù)工作人員)三種用戶。學(xué)生需求在學(xué)校規(guī)定的選課期間,學(xué)生通過任何一臺連接因特網(wǎng)計算機(jī)的瀏覽器就能進(jìn)行網(wǎng)上選課。學(xué)生以用戶名和密碼進(jìn)入選課系統(tǒng)。選課系統(tǒng)會根據(jù)用戶名和密碼自動識別所在的系,然后顯示出與學(xué)生有關(guān)的課程列表。系統(tǒng)必須控制某一門課程在學(xué)期間只能選一次。在學(xué)生選課時能自動進(jìn)行有關(guān)邏輯判斷,如:是否選課超過了規(guī)定的門數(shù),是否選擇了不符合預(yù)修條件的課程,是否選擇的課程超過此課程最大選擇人數(shù),只有符合要求的選擇才能選課成功。學(xué)生可以更改局部個人信息如密碼,號碼等;學(xué)生可以查詢已修課程成績和已選課程信息。教師需求任課教師登錄后,可以查看自己所教課程的課程表;對于同一學(xué)期內(nèi)有多門課程的教師,需要選擇具體課程后,才能查看已選這門課程的學(xué)生信息:期末,教師可以上傳這些學(xué)生的成績。管理員需求系統(tǒng)管理員登錄后,可以對學(xué)生,教師,課程,教學(xué)班級的根本信息進(jìn)行添加,修改,刪除等工作。課程安排是選課的核心,只有按照實(shí)際的教學(xué)情況安排出每個學(xué)期必修和選修的課程,才能保證選課的順利進(jìn)行。在每學(xué)期,學(xué)生選課前,各院系管理員必須在該院系培養(yǎng)方案中錄入本學(xué)期可以開設(shè)的課程和排課安排,對于需要預(yù)修條件的課程,需要設(shè)置好預(yù)修條件。根底部管理員負(fù)責(zé)公共課的課程開設(shè)和排課安排。其中排課及教學(xué)班級的安排上要保證同一個教師在同一時間只能上一門課程;同一個教室同一時間也只能開一門課程。功能描述:添加修改刪除學(xué)生信息:用戶進(jìn)入到主界面后,選擇學(xué)生信息修改,會彈出一對話框,假設(shè)想添加新的學(xué)生信息,可點(diǎn)擊插入記錄按鈕,用戶可在各對應(yīng)的框內(nèi)填寫所要填寫的信息。當(dāng)然這些不能胡亂的填寫,要根據(jù)日常情況來填寫。假設(shè)想把那些已不在的學(xué)生刪除掉,可點(diǎn)擊刪除記錄按鈕。用戶填寫所要刪除學(xué)生的學(xué)號,點(diǎn)擊確定。假設(shè)該學(xué)生的學(xué)籍信息不在數(shù)據(jù)庫中,那么會出現(xiàn)提示信息“無此學(xué)生〞。假設(shè)在數(shù)據(jù)庫中有該學(xué)生的學(xué)籍信息,那么會顯示另一提示信息“確定刪除嗎?〞,點(diǎn)擊確定,又會出現(xiàn)一提示信息“刪除成功〞。雖然有些繁瑣,但能確保不誤刪學(xué)生的學(xué)籍信息。倘假設(shè)想修改那些由于各種情況所造成的錯誤信息時,可點(diǎn)擊界面上的修改記錄按鈕,用戶可以根據(jù)有錯誤信息的學(xué)生的學(xué)號,先進(jìn)行查詢,查詢后會顯示該學(xué)生的全部學(xué)籍信息,用于可將錯誤的信息糾正過來,然后點(diǎn)擊修改。返回主界面可點(diǎn)擊退出按鈕。查詢記錄:用戶進(jìn)入到主界面后,如果想要查看某個學(xué)生的學(xué)籍信息,可點(diǎn)擊學(xué)生信息查詢記錄按鈕。那么會跳出一查詢記錄的對話框,學(xué)生信息查詢窗口,可按學(xué)號,姓名,專業(yè)進(jìn)行查詢。雙擊學(xué)生信息查詢窗口中表格左邊,可彈出此窗口顯示該學(xué)生選課信息。如果想看教師信息,點(diǎn)擊教師信息查詢,教師信息查詢窗口,可按教師編號,姓名,職稱部門進(jìn)行查詢,雙擊表格左部可顯示教師授課信息。退出:用戶進(jìn)入到主界面后,進(jìn)行了各種操作后,想要退出該學(xué)生學(xué)籍管理系統(tǒng),可點(diǎn)擊主界面上的退出按鈕。點(diǎn)擊后,用戶就可以退出本系統(tǒng)。根據(jù)系統(tǒng)功能的需求分析和高等院校學(xué)籍管理的特點(diǎn),經(jīng)過模塊化的分析得到如下列圖1-1所示的系統(tǒng)功能模塊結(jié)構(gòu)圖。學(xué)生學(xué)籍管理系統(tǒng)學(xué)生信息查詢學(xué)生學(xué)籍管理系統(tǒng)學(xué)生信息查詢學(xué)生選課修改學(xué)生信息學(xué)生成績錄入教師信息查詢學(xué)生選課信息刪除選課信息取消選課信息插入學(xué)生信息修改學(xué)生信息刪除學(xué)生信息取消學(xué)生信息修改學(xué)生成績刪除學(xué)生成績?nèi)∠麑W(xué)生成績數(shù)據(jù)流程分析數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理的關(guān)系,根據(jù)用戶的需求分析和高校學(xué)籍管理系統(tǒng)的需求,得出如下列圖1-2所示的學(xué)籍管理數(shù)據(jù)流圖。頂層圖:圖1-2學(xué)籍管理數(shù)據(jù)流圖數(shù)據(jù)字典:數(shù)據(jù)流工程:學(xué)生信息=姓名+學(xué)號+性別+年齡+專業(yè)+總學(xué)分成績單=姓名+課目+成績數(shù)據(jù)項(xiàng)條目:數(shù)據(jù)項(xiàng)名:成績類型:int長度:4范圍:100-0加工條目:處理過程:過程名:學(xué)籍管理系統(tǒng)輸入:學(xué)生信息,考試成績,學(xué)生記錄輸出:統(tǒng)計表,成績單數(shù)據(jù)字典:數(shù)據(jù)存儲:數(shù)據(jù)存儲名:學(xué)生記錄組成:姓名+學(xué)號+性別+年齡+專業(yè)+總學(xué)分處理過程:處理過程名:錄入存儲處理輸入:學(xué)生信息處理要求:如果沒有所輸入的學(xué)生記錄,那么建立新的學(xué)生記錄,存儲根本情況和課目成績處理過程名:查詢處理輸入:學(xué)生信息,課程號輸出:成績處理要求:根據(jù)學(xué)生的學(xué)號查詢相應(yīng)的成績處理過程名:統(tǒng)計處理輸入:學(xué)生考試成績輸出:平均成績,排名成績數(shù)據(jù)字典:數(shù)據(jù)流:新生信息=入學(xué)時間+姓名+年齡+專業(yè)+性別合格單=姓名+專業(yè)處理過程:處理過程名:審查輸入:學(xué)生信息輸出:合格單處理要求:根據(jù)學(xué)生信息判斷是否是新生處理過程名:是否是新生輸入:合格單輸出:新生信息處理要求:根據(jù)合格單建立新生信息處理過程名:錄入存儲學(xué)生信息,各科成績輸入:新生信息,考試成績輸出:本次考試成績數(shù)據(jù)字典:數(shù)據(jù)存儲:數(shù)據(jù)存儲名:考試成績組成:姓名+專業(yè)+成績+學(xué)號組織方式:一學(xué)號為關(guān)鍵字處理過程:處理過程名:有效性檢查輸入:學(xué)號,課程號輸出:有效查詢處理要求:根據(jù)所輸入的信息查詢有效性處理過程名:成績查詢輸入:考試成績輸出:成績處理要求:根據(jù)考試成績查詢成績處理過程:處理過程名:統(tǒng)計選擇輸入:學(xué)生記錄輸出:按規(guī)定統(tǒng)計成績處理要求:根據(jù)所輸入學(xué)生記錄查詢成績數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。同時,合理的數(shù)據(jù)庫結(jié)構(gòu)也將有利于應(yīng)用系統(tǒng)程序的實(shí)現(xiàn)。在充分需求分析的根底上,經(jīng)過逐步抽象、概括、分析、充分研討,可畫出如下反映教學(xué)管理系統(tǒng)數(shù)據(jù)的整體E-R圖圖4-1學(xué)生實(shí)體E-R圖圖4-2課程實(shí)體E-R圖圖4-3各實(shí)體之間的E-R圖邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的根本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計邏輯結(jié)構(gòu)一般分為3步進(jìn)行:〔1〕將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;〔2〕將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;〔3〕對數(shù)據(jù)模型進(jìn)行優(yōu)化。4.2.將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要獎實(shí)體型、實(shí)體的屬性和實(shí)體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原那么:一個實(shí)體型轉(zhuǎn)換為一個關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對于實(shí)體型間的聯(lián)系那么有不同的情況。將概念結(jié)構(gòu)設(shè)計階段設(shè)計好的根本E-R圖轉(zhuǎn)換為關(guān)系模型,如下所示:1)學(xué)生〔XS〕〔學(xué)號(sno),姓名(sname),專業(yè)(sdept〕,性別(ssex),出生日期(sbirth〕,總 學(xué)分(all_credit)〕學(xué)生表:主碼:學(xué)號(sno)函數(shù)依賴:sno U.此表中,不存在非主屬性對碼的局部依賴,傳遞依賴,以及主屬性對碼的局部依賴和傳遞依賴,故滿足3NF2〕課程〔KC〕〔課程號(cno),課程名(cname),開課學(xué)期(term),學(xué)時(class_hour),學(xué)分(credit)〕課程表:主碼:課程號(cno)函數(shù)依賴:cno U此表中不存在非主屬性對碼的局部依賴,傳遞依賴,以及主屬性對碼的局部依賴和傳遞依賴,故滿足3NF3〕選課〔XS-KC〕〔學(xué)號(sno),課程號(cno),成績(grade)〕選課表:主碼:〔學(xué)號,課程號〕外碼:學(xué)號,課程號函數(shù)依賴:(sno,cno) U此表中不存在非主屬性對碼的局部依賴,傳遞依賴,以及主屬性對碼的局部依賴和傳遞依賴,故滿足3NF4〕教師〔TCH〕〔編號(tno),姓名(tname),性別(tsex),出生日期(tbirth),職稱(professional),專業(yè)(department)〕教師表:主碼:編號(tno)函數(shù)依賴:tno U此表中不存在非主屬性對碼的局部依賴,傳遞依賴,以及主屬性對碼的局部依賴和傳遞依賴,故滿足3NF5〕授課〔TCH-KC〕〔教師編號(tno),課程號(cno),上課地點(diǎn)(place)〕授課表:主碼:〔教師編號,課程號〕外碼:教師編號,課程號函數(shù)依賴:(tno,cno) U此表中不存在非主屬性對碼的局部依賴,傳遞依賴,以及主屬性對碼的局部依賴和傳遞依賴,故滿足3NF結(jié)構(gòu)設(shè)計數(shù)據(jù)庫的物理設(shè)計就是為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用要求的物理結(jié)構(gòu)的過程。物理結(jié)構(gòu)設(shè)計階段實(shí)現(xiàn)的是數(shù)據(jù)庫系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個系統(tǒng)的性能。因此在確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法之前,對數(shù)據(jù)庫系統(tǒng)所支持的事務(wù)要進(jìn)行仔細(xì)分析,獲得優(yōu)化數(shù)據(jù)庫物理設(shè)計的參數(shù)數(shù)據(jù)庫的物理設(shè)計通常分為兩步:〔1〕確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存取結(jié)構(gòu);〔2〕對物理結(jié)構(gòu)進(jìn)行評價,評價的重點(diǎn)是時間和空間效率。設(shè)計的局部表結(jié)構(gòu)如下截圖所示;1〕教師信息數(shù)據(jù)表〔teacher〕教師信息數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號、姓名、系編號、和Email,數(shù)據(jù)表中各字段的屬性如圖4-6所示。圖4-6“teacher〞表的各字段屬性〔5〕學(xué)生信息數(shù)據(jù)表〔student〕學(xué)生信息數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號、系編號、班編號、姓名、性別、生日、住址、、Email和簡歷,數(shù)據(jù)表中各字段的屬性如圖4-7所示。圖4-7“student〞表的各個字段屬性〔6〕課程信息數(shù)據(jù)表〔course〕課程信息數(shù)據(jù)表包含的數(shù)據(jù)項(xiàng)有編號、名稱、教師和學(xué)分,數(shù)據(jù)表中各字段的屬性如圖4-8所示。圖4-8“course〞表的各字段屬性〔7〕選課記錄數(shù)據(jù)表〔selectclass〕選課記錄數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號、學(xué)生、課編號和成績,數(shù)據(jù)表中各字段的屬性如圖4-9所示。圖4-9“selectclass〞表的各字段屬性用程序設(shè)計用戶界面設(shè)計及相關(guān)程序代碼局部界面截圖及代碼如下:此為主界面,有五個按鈕,可進(jìn)行查詢,修改等操作。程序代碼如下:PrivateSubCommand1_Click()EndSubPrivateSubCommand2_Click()EndSubPrivateSubCommand3_Click()EndSubPrivateSubCommand4_Click()EndSubPrivateSubCommand5_Click()EndSub相關(guān)程序代碼如下:PrivateSubCommand3_Click()'取消Stusno.Text=""Stusname.Text=""Stusbirth.Text=""Stusdept.Text=""Stuall_credit.Text=""Stusexm=FalseStusexf=FalseEndSub'修改元組PrivateSubStuchange_Click()IfTrim(Stusno.Text)=""OrTrim(Stusname.Text)=""Or(Stusexm=FalseAndStusexf=False)ThenMsgBox"加*數(shù)據(jù)項(xiàng)不能為空,請重新設(shè)置",vbOKOnly,"信息提示"ExitSubEndIfIfTrim(Stusbirth.Text)<>""ThenIfNotIsDate(Trim(Stusbirth.Text))ThenMsgBox"出生日期輸入不正確,請重新輸入",vbOKOnly,"信息提示"ExitSubEndIfEndIfStuADO.Recordset.Fields("學(xué)號")=Trim(Stusno.Text)StuADO.Recordset.Fields("姓名")=Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期")=Trim(Stusbirth.Text)StuADO.Recordset.Fields("專業(yè)")=Trim(Stusdept.Text)StuADO.Recordset.Fields("總學(xué)分")=Trim(Stuall_credit.Text)IfStusexm=TrueThenStuADO.Recordset.Fields("性別")="男"Else:Stusexf=TrueStuADO.Recordset.Fields("性別")="女"EndIfEndSub'刪除元組PrivateSubStuDel_Click()ret=MsgBox("是否要刪除"+StuADO.Recordset("學(xué)號")+"號學(xué)生的記錄?",vbYesNo,"提示")Ifret=vbYesThenEndIfStuADO.RecordSource="selectsno學(xué)號,sname姓名,sdept專業(yè),ssex性別,sbirth出生日期,all_credit總學(xué)分fromXS"Command3_ClickEndSub'選中一行顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號")Stusname.Text=StuADO.Recordset("姓名")Stusbirth.Text=StuADO.Recordset("出生日期")Stusdept.Text=StuADO.Recordset("專業(yè)")Stuall_credit=StuADO.Recordset("總學(xué)分")IfTrim(StuADO.Recordset("性別"))="男"ThenStusexm=TrueElseStusexf=TrueEndIfEndSub'插入元組PrivateSubStudinsert_Click()IfTrim(Stusno.Text)=""OrTrim(Stusname.Text)=""Or(Stusexm=FalseAndStusexf=False)ThenMsgBox"加*數(shù)據(jù)項(xiàng)不能為空,請重新設(shè)置",vbOKOnly,"信息提示"ExitSubEndIfIfTrim(Stusbirth.Text)<>""ThenIfNotIsDate(Trim(Stusbirth.Text))ThenMsgBox"出生日期輸入不正確,請重新輸入",vbOKOnly,"信息提示"ExitSubEndIfEndIfStuADO.Recordset.Fields("學(xué)號")=Trim(Stusno.Text)StuADO.Recordset.Fields("姓名")=Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期")=Trim(Stusbirth.Text)StuADO.Recordset.Fields("專業(yè)")=Trim(Stusdept.Text)StuADO.Recordset.Fields("總學(xué)分")=Trim(Stuall_credit.Text)IfStusexm=TrueThenStuADO.Recordset.Fields("性別")="男"Else:Stusexf=TrueStuADO.Recordset.Fields("性別")="女"EndIfEndSub相關(guān)代碼如下:DimSqlStrAsStringPublicSubMakeSqlStr()SqlStr=""IfTrim(Stusno)<>""ThenSqlStr=SqlStr+"andsnolike'%"+Trim(Stusno.Text)+"%'"EndIfIfTrim(Stusname)<>""ThenSqlStr=SqlStr+"andsnamelike'%"+Trim(Stusname.Text)+"%'"EndIfIfTrim(Stusdept)<>""ThenSqlStr=SqlStr+"andsdept='"+Trim(Stusdept.Text)+"'"EndIfEndSubPrivateSubCommand1_Click()MakeSqlStrStuADO.RecordSource="selectsno學(xué)號,sname姓名,sdept專業(yè),ssex性別,sbirth出生日期,all_credit總學(xué)分fromXSwhere(ssex='男'orssex='女')"_&SqlStrEndSubPrivateSubStuDG_DblClick()ShowStuKC.StuKCADO.RecordSource="selectsname姓名,cname課程名,grade成績,credit學(xué)分,term開課學(xué)期,class_hour課時fromXS,KC,XS_KC"_&"whereXS.sno=XS_KC.snoandKCo=XS_KCo"_&"andXS.sno='"+StuADO.Recordset("學(xué)號")+"'"StuSearch.Enabled=FalseEndSub代碼如下:DimSqlStrAsStringPublicSubMakeSqlStr()SqlStr=""IfTrim(Tchtno)<>""ThenSqlStr=SqlStr+"andtnolike'%"+Trim(Tchtno.Text)+"%'"EndIfIfTrim(Tchtname)<>""ThenSqlStr=SqlStr+"andtnamelike'%"+Trim(Tchtname.Text)+"%'"EndIfIfTrim(Tchprofessional)<>""ThenSqlStr=SqlStr+"andprofessionallike'%"+Trim(Tchprofessional.Text)+"%'"EndIfIfTrim(Tchdepartment.Text)<>""ThenSqlStr=SqlStr+"anddepartmentlike'%"+Trim(Tchdepartment.Text)+"%'"EndIfEndSubPrivateSubTchDG_DblClick()ShowTchKC.TchKCADO.RecordSource="selecttname姓名,cname課程,credit學(xué)分,place上課地點(diǎn)fromKC,TCH,TCH_KCwhereTCH.tno=TCH_KC.tnoandKCo=TCH_KCo"_&"andTch.tno='"+TchADO.Recordset("教師編號")+"'"EndSubPrivateSubTchseek_Click()MakeSqlStrTchADO.RecordSource="selecttno教師編號,tname姓名,tsex性別,tbirth出生日期,professional職稱,department部門fromTCHwhere(tsex='男'ortsex='女')"_&SqlStrEndSub代碼如下:PrivateSubform_unload(cancelAsInteger)StuSearch.Enabled=TrueEndSub學(xué)生選課相關(guān)操作代碼如下:'取消PrivateSubStucancel_Click()Stusno.Text=""Stusname.Text=""Stucname.Text=""EndSub'選課PrivateSubStuchoose_Click()StuADOXS.RecordSource="select*fromXSwheresno='"+Trim(Stusno.Text)+"'"IfTrim(Stusno.Text)=""OrTrim(Stusname.Text)=""OrTrim(Stucname.Text)=""Thenret=MsgBox("輸入不正確,請重新輸入!",vbYes,"錯誤!")ElseIfTrim(Stusname.Text)<>Trim(StuADOXS.Recordset("sname"))Thenret=MsgBox("輸入學(xué)號與姓名不匹配,請重新輸入!")ElseStuADOXS_KC.RecordSource="select*fromXS_KC"StuADOXS_KC.Recordset.Fields("sno")=Trim(Stusno.Text)StuADOKC.RecordSource="select*fromKCwherecname='"+Trim(Stucname.Text)+"'"StuADOXS_KC.Recordset.Fields("cno")=StuADOKC.Recordset("cno")EndIfEndSub'刪除元組PrivateSubStudelete_Click()ret=MsgBox("是否要刪除"+StuADO.Recordset("學(xué)號")+"號學(xué)生的選課記錄?",vbYesNo,"提示")Ifret=vbYesThenStuADOXS_KC.RecordSource="select*fromXS_KCwheresno='"+StuADO.Recordset("學(xué)號")+"'"EndIfStucancel_ClickEndSub'單擊顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號")Stusname.Text=StuADO.Recordset("姓名")Stucname.Text=StuADO.Recordset("課程名")EndSub代碼如下:PrivateSubStuadd_Click()IfStugrade.Text=""Thenret=MsgBox("輸入為空,請重新輸入",vbYes,"錯誤提示")ElseStuADOKC.RecordSource="select*fromKCwherecname='"+Trim(Stucname.Text)+"'"StuADOXS_KC.RecordSource="select*fromXS_KCwherecno='"+StuADOKC.Recordset("cno")+"'"StuADOXS_KC.Recordset.Fields("cno")=StuADOKC.Recordset("cno")StuADO.RecordSource="selectsno學(xué)號,XS_KCo課程號,cname課程名,grade成績fromKC,XS_KCwhereKCo=XS_KCo"EndIfEndSub'取消PrivateSubStucancel_Click()Stusno.Text=""Stucname.Text=""Stugrade.Text=""EndSub'刪除學(xué)生成績PrivateSubStudelete_Click()ret=MsgBox("是否要刪除"+Trim(StuADO.Recordset("學(xué)號"))+"號學(xué)生成績?",vbYesNo,"提示")Ifret=vbYesThenStuADO.Recordset("成績")=NullEndIfEndSub'單擊顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號")Stucname.Text=StuADO.Recordset("課程名")EndSub'修改學(xué)生成績PrivateSubStusu

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論