版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)報(bào)告課程名稱(chēng)數(shù)據(jù)庫(kù)系統(tǒng)原理設(shè)計(jì)題目學(xué)生學(xué)籍管理系統(tǒng)學(xué)生姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)指導(dǎo)教師2012年12月22日目錄…………3………………3………………3………….5……………..5………………52.3.劃分功能模塊………………7……………………8…………………8………………9………12……………….12…………………13結(jié)構(gòu)設(shè)計(jì)…………………14………165.1用戶界面設(shè)計(jì)及相關(guān)程序代碼………………16運(yùn)行結(jié)果………28……………32……………33系統(tǒng)概述這次實(shí)驗(yàn)的主要目標(biāo)是能利用課程中學(xué)習(xí)到的數(shù)據(jù)庫(kù)知識(shí)與技術(shù)較好地開(kāi)發(fā)設(shè)計(jì)出數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),去解決各行各業(yè)信息化處理的要求。本實(shí)驗(yàn)主要在于實(shí)現(xiàn)一個(gè)通用學(xué)籍管理系統(tǒng),完成對(duì)學(xué)生學(xué)籍信息的增加、刪除、修改、查詢、顯示全部學(xué)生學(xué)籍信息等功能。數(shù)據(jù)庫(kù)應(yīng)用設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),有效存儲(chǔ)數(shù)據(jù),滿足用戶信息要求和處理要求。為了使數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)設(shè)計(jì)合理、標(biāo)準(zhǔn)、有序、正確、高效進(jìn)行,現(xiàn)在廣泛采用的是工程化6個(gè)階段開(kāi)發(fā)設(shè)計(jì)過(guò)程與方法,它們是需求分析階段、概念結(jié)構(gòu)設(shè)計(jì)階段、邏輯結(jié)構(gòu)設(shè)計(jì)階段、物理結(jié)構(gòu)設(shè)計(jì)階段、數(shù)據(jù)庫(kù)的實(shí)施、數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行與維護(hù)階段。系統(tǒng)開(kāi)發(fā)環(huán)境為局域網(wǎng)或校園網(wǎng)網(wǎng)絡(luò)環(huán)境,網(wǎng)絡(luò)中有一臺(tái)安裝Windows2000Server的效勞器,效勞器上安裝SQLServer2000。該軟件是在Windows2000AdvancedServer+VisualBasic6.0+SQLServer2000的環(huán)境下完成的。下面就對(duì)這些開(kāi)發(fā)工具進(jìn)行介紹微軟公司的VisualBasic6.0是Windows應(yīng)用程序開(kāi)發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。VisualBasic提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設(shè)計(jì)過(guò)程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。利用VISUALBASIC程序設(shè)計(jì)語(yǔ)言,可以很方便地設(shè)計(jì)出在WINDOWS環(huán)境下運(yùn)行的應(yīng)用程序。故而,實(shí)現(xiàn)本系統(tǒng)VB是一個(gè)相對(duì)較好的選擇。1.2.1.1VisualBasic的編程特點(diǎn)VisualBasic語(yǔ)言的出現(xiàn)為Windows下的編程提出了一個(gè)新概念,利用VisualBasic的動(dòng)態(tài)數(shù)據(jù)交換、對(duì)象的鏈接和嵌入、動(dòng)態(tài)鏈接庫(kù)、ActiveX技術(shù)可以很方便地設(shè)計(jì)出功能強(qiáng)大的應(yīng)用程序。利用VisualBasic語(yǔ)言編程有以下幾個(gè)特點(diǎn):1.可視化程序設(shè)計(jì)在VisualBasic中開(kāi)發(fā)的應(yīng)用程序,不但有豐富的圖形界面,同時(shí)由用戶為開(kāi)發(fā)圖形界面添加的代碼真是少而又少,因?yàn)樵谠O(shè)計(jì)圖形界面的過(guò)程中只需設(shè)置ActiveX控件的屬性即可。2.強(qiáng)大的數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)功能隨著VisualBasic語(yǔ)言的向前開(kāi)展,它在數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)方面的功能優(yōu)勢(shì)就愈加明顯,利用VisualBasic中的ODBC——開(kāi)放式的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)可以很方便地開(kāi)發(fā)出自己的數(shù)據(jù)庫(kù)應(yīng)用程序;利用VisualBasic自帶的可視化數(shù)據(jù)管理器和報(bào)表生成器,完全可以在VisualBasic就完成數(shù)據(jù)庫(kù)的開(kāi)發(fā)工作。3.其它特性在VisualBasic以前的版本中,由于仍然擺脫不了解釋執(zhí)行的代碼運(yùn)行機(jī)制,所以在相當(dāng)?shù)某潭壬现萍s了VisualBasic的開(kāi)展。從版本開(kāi)始,在VisualBasic中制作的應(yīng)用程序都改變?yōu)榫幾g執(zhí)行,使得VisualBasic的代碼效率有了很大的提高,同時(shí)執(zhí)行的速度也加快了解30%(同相比)。當(dāng)然在VisualBasic中還有其它特性,例如:面向?qū)ο蟮木幊陶Z(yǔ)言;結(jié)構(gòu)化程序設(shè)計(jì);事件驅(qū)動(dòng)的程序設(shè)計(jì):在傳統(tǒng)的或“過(guò)程化〞的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一局部代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)行,必要時(shí)才會(huì)調(diào)用過(guò)程。在事件驅(qū)動(dòng)的應(yīng)用程序中,代碼不是按預(yù)定的路徑執(zhí)行,而是在響不同的事件時(shí)執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來(lái)自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序,決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時(shí)所經(jīng)過(guò)的路徑都是不同的。支持動(dòng)態(tài)鏈接庫(kù);應(yīng)用程序之間的資源共享。1.2.1.2數(shù)據(jù)庫(kù)開(kāi)發(fā)中的三大工具VisualBasic在數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)領(lǐng)域中,提供包含數(shù)據(jù)管理〔DataManager〕,數(shù)據(jù)控件〔DataControl〕以及數(shù)據(jù)編程對(duì)象〔數(shù)據(jù)訪問(wèn)對(duì)象〔DAO〕、遠(yuǎn)程數(shù)據(jù)對(duì)象〔RDO〕和ActiveX數(shù)據(jù)對(duì)象〔ADO〕〕等功能強(qiáng)大的工具,協(xié)助設(shè)計(jì)人員輕松的連接數(shù)據(jù)庫(kù)文件,并訪問(wèn)其中的數(shù)據(jù),在功能方面與其他一些專(zhuān)業(yè)數(shù)據(jù)庫(kù)軟件〔如FoxPro,MicosoftAccess等〕不相上下。系統(tǒng)分析本系統(tǒng)的設(shè)計(jì)模擬一般學(xué)生學(xué)籍管理內(nèi)容,經(jīng)過(guò)充分地系統(tǒng)調(diào)研,發(fā)現(xiàn)本系統(tǒng)應(yīng)包括學(xué)生信息、課程信息、學(xué)生專(zhuān)業(yè)信息等需管理信息。進(jìn)一步發(fā)現(xiàn)信息實(shí)體間管理信息有:專(zhuān)業(yè)分期課程方案、學(xué)生選課及各科成績(jī)統(tǒng)計(jì)等內(nèi)容。實(shí)現(xiàn)一個(gè)通用學(xué)籍管理系統(tǒng),完成對(duì)學(xué)生學(xué)籍信息的增加、刪除、修改、查詢、顯示全部學(xué)生學(xué)籍信息等功能?!?〕本系統(tǒng)需要管理的實(shí)體信息①班級(jí)信息:班號(hào)、班級(jí)名稱(chēng)、班主任工號(hào)等;②學(xué)生根本信息:學(xué)號(hào)、類(lèi)別、姓名、性別、出生日期、、入校日期、家庭地址、備注等;③專(zhuān)業(yè)信息:專(zhuān)業(yè)編號(hào)、專(zhuān)業(yè)名稱(chēng)、創(chuàng)辦年份、學(xué)生規(guī)模等;④學(xué)期信息:編號(hào)、學(xué)期名等;⑤課程根本信息:課程號(hào)、課程名、類(lèi)型、學(xué)分等⑥畢業(yè)信息:畢業(yè)證號(hào)、性別、學(xué)號(hào)、姓名、畢業(yè)時(shí)間、已修學(xué)分、需修學(xué)分等?!?〕本系統(tǒng)要管理的實(shí)體聯(lián)系信息①學(xué)生入學(xué)時(shí)需錄入登記,并選定一專(zhuān)業(yè),每學(xué)期注冊(cè)后即可選課〔分必修課和選修課〕,每位學(xué)生選多門(mén)課,一門(mén)課應(yīng)有多名學(xué)生修讀。學(xué)生考試后,要登記考試成績(jī)。②專(zhuān)業(yè)分學(xué)期課程方案情況〔即專(zhuān)業(yè)教學(xué)方案〕,要反映是否必修課、是否學(xué)位課、是否考試課及備注信息。③學(xué)生各科成績(jī)需要登記,統(tǒng)計(jì)排名。④學(xué)生畢業(yè)需計(jì)算學(xué)分,審核資格〔學(xué)分、學(xué)習(xí)期數(shù)是否到達(dá)要求〕,順利畢業(yè)的頒發(fā)畢業(yè)證。⑤學(xué)生在校表現(xiàn)根據(jù)實(shí)際情況,進(jìn)行獎(jiǎng)懲記錄。2.2功能需求分析本系統(tǒng)開(kāi)發(fā)的目的,就是通過(guò)系統(tǒng)開(kāi)發(fā),實(shí)現(xiàn)課程管理有關(guān)工作的計(jì)算機(jī)化,提高關(guān)鍵環(huán)節(jié)的處理速度和標(biāo)準(zhǔn)化,并對(duì)有關(guān)的工作進(jìn)行集成和重組,通過(guò)網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)集中管理、分散操作,提高選課管理工作的質(zhì)量和效率。通過(guò)對(duì)學(xué)校的選課及成績(jī)管理工作進(jìn)行實(shí)際調(diào)查,學(xué)生可以自由選擇課程、選老師,學(xué)生注冊(cè)的行政班和教學(xué)班是游離的,開(kāi)發(fā)工作需要涉及任課教師、學(xué)生、管理員(教務(wù)工作人員)三種用戶。學(xué)生需求在學(xué)校規(guī)定的選課期間,學(xué)生通過(guò)任何一臺(tái)連接因特網(wǎng)計(jì)算機(jī)的瀏覽器就能進(jìn)行網(wǎng)上選課。學(xué)生以用戶名和密碼進(jìn)入選課系統(tǒng)。選課系統(tǒng)會(huì)根據(jù)用戶名和密碼自動(dòng)識(shí)別所在的系,然后顯示出與學(xué)生有關(guān)的課程列表。系統(tǒng)必須控制某一門(mén)課程在學(xué)期間只能選一次。在學(xué)生選課時(shí)能自動(dòng)進(jìn)行有關(guān)邏輯判斷,如:是否選課超過(guò)了規(guī)定的門(mén)數(shù),是否選擇了不符合預(yù)修條件的課程,是否選擇的課程超過(guò)此課程最大選擇人數(shù),只有符合要求的選擇才能選課成功。學(xué)生可以更改局部個(gè)人信息如密碼,號(hào)碼等;學(xué)生可以查詢已修課程成績(jī)和已選課程信息。教師需求任課教師登錄后,可以查看自己所教課程的課程表;對(duì)于同一學(xué)期內(nèi)有多門(mén)課程的教師,需要選擇具體課程后,才能查看已選這門(mén)課程的學(xué)生信息:期末,教師可以上傳這些學(xué)生的成績(jī)。管理員需求系統(tǒng)管理員登錄后,可以對(duì)學(xué)生,教師,課程,教學(xué)班級(jí)的根本信息進(jìn)行添加,修改,刪除等工作。課程安排是選課的核心,只有按照實(shí)際的教學(xué)情況安排出每個(gè)學(xué)期必修和選修的課程,才能保證選課的順利進(jìn)行。在每學(xué)期,學(xué)生選課前,各院系管理員必須在該院系培養(yǎng)方案中錄入本學(xué)期可以開(kāi)設(shè)的課程和排課安排,對(duì)于需要預(yù)修條件的課程,需要設(shè)置好預(yù)修條件。根底部管理員負(fù)責(zé)公共課的課程開(kāi)設(shè)和排課安排。其中排課及教學(xué)班級(jí)的安排上要保證同一個(gè)教師在同一時(shí)間只能上一門(mén)課程;同一個(gè)教室同一時(shí)間也只能開(kāi)一門(mén)課程。功能描述:添加修改刪除學(xué)生信息:用戶進(jìn)入到主界面后,選擇學(xué)生信息修改,會(huì)彈出一對(duì)話框,假設(shè)想添加新的學(xué)生信息,可點(diǎn)擊插入記錄按鈕,用戶可在各對(duì)應(yīng)的框內(nèi)填寫(xiě)所要填寫(xiě)的信息。當(dāng)然這些不能胡亂的填寫(xiě),要根據(jù)日常情況來(lái)填寫(xiě)。假設(shè)想把那些已不在的學(xué)生刪除掉,可點(diǎn)擊刪除記錄按鈕。用戶填寫(xiě)所要?jiǎng)h除學(xué)生的學(xué)號(hào),點(diǎn)擊確定。假設(shè)該學(xué)生的學(xué)籍信息不在數(shù)據(jù)庫(kù)中,那么會(huì)出現(xiàn)提示信息“無(wú)此學(xué)生〞。假設(shè)在數(shù)據(jù)庫(kù)中有該學(xué)生的學(xué)籍信息,那么會(huì)顯示另一提示信息“確定刪除嗎?〞,點(diǎn)擊確定,又會(huì)出現(xiàn)一提示信息“刪除成功〞。雖然有些繁瑣,但能確保不誤刪學(xué)生的學(xué)籍信息。倘假設(shè)想修改那些由于各種情況所造成的錯(cuò)誤信息時(shí),可點(diǎn)擊界面上的修改記錄按鈕,用戶可以根據(jù)有錯(cuò)誤信息的學(xué)生的學(xué)號(hào),先進(jìn)行查詢,查詢后會(huì)顯示該學(xué)生的全部學(xué)籍信息,用于可將錯(cuò)誤的信息糾正過(guò)來(lái),然后點(diǎn)擊修改。返回主界面可點(diǎn)擊退出按鈕。查詢記錄:用戶進(jìn)入到主界面后,如果想要查看某個(gè)學(xué)生的學(xué)籍信息,可點(diǎn)擊學(xué)生信息查詢記錄按鈕。那么會(huì)跳出一查詢記錄的對(duì)話框,學(xué)生信息查詢窗口,可按學(xué)號(hào),姓名,專(zhuān)業(yè)進(jìn)行查詢。雙擊學(xué)生信息查詢窗口中表格左邊,可彈出此窗口顯示該學(xué)生選課信息。如果想看教師信息,點(diǎn)擊教師信息查詢,教師信息查詢窗口,可按教師編號(hào),姓名,職稱(chēng)部門(mé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)過(guò)模塊化的分析得到如下列圖1-1所示的系統(tǒng)功能模塊結(jié)構(gòu)圖。學(xué)生學(xué)籍管理系統(tǒng)學(xué)生信息查詢學(xué)生學(xué)籍管理系統(tǒng)學(xué)生信息查詢學(xué)生選課修改學(xué)生信息學(xué)生成績(jī)錄入教師信息查詢學(xué)生選課信息刪除選課信息取消選課信息插入學(xué)生信息修改學(xué)生信息刪除學(xué)生信息取消學(xué)生信息修改學(xué)生成績(jī)刪除學(xué)生成績(jī)?nèi)∠麑W(xué)生成績(jī)數(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é)號(hào)+性別+年齡+專(zhuān)業(yè)+總學(xué)分成績(jī)單=姓名+課目+成績(jī)數(shù)據(jù)項(xiàng)條目:數(shù)據(jù)項(xiàng)名:成績(jī)類(lèi)型:int長(zhǎng)度:4范圍:100-0加工條目:處理過(guò)程:過(guò)程名:學(xué)籍管理系統(tǒng)輸入:學(xué)生信息,考試成績(jī),學(xué)生記錄輸出:統(tǒng)計(jì)表,成績(jī)單數(shù)據(jù)字典:數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)名:學(xué)生記錄組成:姓名+學(xué)號(hào)+性別+年齡+專(zhuān)業(yè)+總學(xué)分處理過(guò)程:處理過(guò)程名:錄入存儲(chǔ)處理輸入:學(xué)生信息處理要求:如果沒(méi)有所輸入的學(xué)生記錄,那么建立新的學(xué)生記錄,存儲(chǔ)根本情況和課目成績(jī)處理過(guò)程名:查詢處理輸入:學(xué)生信息,課程號(hào)輸出:成績(jī)處理要求:根據(jù)學(xué)生的學(xué)號(hào)查詢相應(yīng)的成績(jī)處理過(guò)程名:統(tǒng)計(jì)處理輸入:學(xué)生考試成績(jī)輸出:平均成績(jī),排名成績(jī)數(shù)據(jù)字典:數(shù)據(jù)流:新生信息=入學(xué)時(shí)間+姓名+年齡+專(zhuān)業(yè)+性別合格單=姓名+專(zhuān)業(yè)處理過(guò)程:處理過(guò)程名:審查輸入:學(xué)生信息輸出:合格單處理要求:根據(jù)學(xué)生信息判斷是否是新生處理過(guò)程名:是否是新生輸入:合格單輸出:新生信息處理要求:根據(jù)合格單建立新生信息處理過(guò)程名:錄入存儲(chǔ)學(xué)生信息,各科成績(jī)輸入:新生信息,考試成績(jī)輸出:本次考試成績(jī)數(shù)據(jù)字典:數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)名:考試成績(jī)組成:姓名+專(zhuān)業(yè)+成績(jī)+學(xué)號(hào)組織方式:一學(xué)號(hào)為關(guān)鍵字處理過(guò)程:處理過(guò)程名:有效性檢查輸入:學(xué)號(hào),課程號(hào)輸出:有效查詢處理要求:根據(jù)所輸入的信息查詢有效性處理過(guò)程名:成績(jī)查詢輸入:考試成績(jī)輸出:成績(jī)處理要求:根據(jù)考試成績(jī)查詢成績(jī)處理過(guò)程:處理過(guò)程名:統(tǒng)計(jì)選擇輸入:學(xué)生記錄輸出:按規(guī)定統(tǒng)計(jì)成績(jī)處理要求:根據(jù)所輸入學(xué)生記錄查詢成績(jī)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。同時(shí),合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)也將有利于應(yīng)用系統(tǒng)程序的實(shí)現(xiàn)。在充分需求分析的根底上,經(jīng)過(guò)逐步抽象、概括、分析、充分研討,可畫(huà)出如下反映教學(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è)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的根本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計(jì)邏輯結(jié)構(gòu)一般分為3步進(jìn)行:〔1〕將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;〔2〕將轉(zhuǎn)換來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;〔3〕對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。4.2.將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要獎(jiǎng)實(shí)體型、實(shí)體的屬性和實(shí)體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原那么:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對(duì)于實(shí)體型間的聯(lián)系那么有不同的情況。將概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的根本E-R圖轉(zhuǎn)換為關(guān)系模型,如下所示:1)學(xué)生〔XS〕〔學(xué)號(hào)(sno),姓名(sname),專(zhuān)業(yè)(sdept〕,性別(ssex),出生日期(sbirth〕,總 學(xué)分(all_credit)〕學(xué)生表:主碼:學(xué)號(hào)(sno)函數(shù)依賴(lài):sno U.此表中,不存在非主屬性對(duì)碼的局部依賴(lài),傳遞依賴(lài),以及主屬性對(duì)碼的局部依賴(lài)和傳遞依賴(lài),故滿足3NF2〕課程〔KC〕〔課程號(hào)(cno),課程名(cname),開(kāi)課學(xué)期(term),學(xué)時(shí)(class_hour),學(xué)分(credit)〕課程表:主碼:課程號(hào)(cno)函數(shù)依賴(lài):cno U此表中不存在非主屬性對(duì)碼的局部依賴(lài),傳遞依賴(lài),以及主屬性對(duì)碼的局部依賴(lài)和傳遞依賴(lài),故滿足3NF3〕選課〔XS-KC〕〔學(xué)號(hào)(sno),課程號(hào)(cno),成績(jī)(grade)〕選課表:主碼:〔學(xué)號(hào),課程號(hào)〕外碼:學(xué)號(hào),課程號(hào)函數(shù)依賴(lài):(sno,cno) U此表中不存在非主屬性對(duì)碼的局部依賴(lài),傳遞依賴(lài),以及主屬性對(duì)碼的局部依賴(lài)和傳遞依賴(lài),故滿足3NF4〕教師〔TCH〕〔編號(hào)(tno),姓名(tname),性別(tsex),出生日期(tbirth),職稱(chēng)(professional),專(zhuān)業(yè)(department)〕教師表:主碼:編號(hào)(tno)函數(shù)依賴(lài):tno U此表中不存在非主屬性對(duì)碼的局部依賴(lài),傳遞依賴(lài),以及主屬性對(duì)碼的局部依賴(lài)和傳遞依賴(lài),故滿足3NF5〕授課〔TCH-KC〕〔教師編號(hào)(tno),課程號(hào)(cno),上課地點(diǎn)(place)〕授課表:主碼:〔教師編號(hào),課程號(hào)〕外碼:教師編號(hào),課程號(hào)函數(shù)依賴(lài):(tno,cno) U此表中不存在非主屬性對(duì)碼的局部依賴(lài),傳遞依賴(lài),以及主屬性對(duì)碼的局部依賴(lài)和傳遞依賴(lài),故滿足3NF結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)就是為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程。物理結(jié)構(gòu)設(shè)計(jì)階段實(shí)現(xiàn)的是數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)模式,它的質(zhì)量直接決定了整個(gè)系統(tǒng)的性能。因此在確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取方法之前,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)所支持的事務(wù)要進(jìn)行仔細(xì)分析,獲得優(yōu)化數(shù)據(jù)庫(kù)物理設(shè)計(jì)的參數(shù)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)通常分為兩步:〔1〕確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存取結(jié)構(gòu);〔2〕對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率。設(shè)計(jì)的局部表結(jié)構(gòu)如下截圖所示;1〕教師信息數(shù)據(jù)表〔teacher〕教師信息數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號(hào)、姓名、系編號(hào)、和Email,數(shù)據(jù)表中各字段的屬性如圖4-6所示。圖4-6“teacher〞表的各字段屬性〔5〕學(xué)生信息數(shù)據(jù)表〔student〕學(xué)生信息數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號(hào)、系編號(hào)、班編號(hào)、姓名、性別、生日、住址、、Email和簡(jiǎn)歷,數(shù)據(jù)表中各字段的屬性如圖4-7所示。圖4-7“student〞表的各個(gè)字段屬性〔6〕課程信息數(shù)據(jù)表〔course〕課程信息數(shù)據(jù)表包含的數(shù)據(jù)項(xiàng)有編號(hào)、名稱(chēng)、教師和學(xué)分,數(shù)據(jù)表中各字段的屬性如圖4-8所示。圖4-8“course〞表的各字段屬性〔7〕選課記錄數(shù)據(jù)表〔selectclass〕選課記錄數(shù)據(jù)包含的數(shù)據(jù)項(xiàng)有編號(hào)、學(xué)生、課編號(hào)和成績(jī),數(shù)據(jù)表中各字段的屬性如圖4-9所示。圖4-9“selectclass〞表的各字段屬性用程序設(shè)計(jì)用戶界面設(shè)計(jì)及相關(guān)程序代碼局部界面截圖及代碼如下:此為主界面,有五個(gè)按鈕,可進(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)不能為空,請(qǐng)重新設(shè)置",vbOKOnly,"信息提示"ExitSubEndIfIfTrim(Stusbirth.Text)<>""ThenIfNotIsDate(Trim(Stusbirth.Text))ThenMsgBox"出生日期輸入不正確,請(qǐng)重新輸入",vbOKOnly,"信息提示"ExitSubEndIfEndIfStuADO.Recordset.Fields("學(xué)號(hào)")=Trim(Stusno.Text)StuADO.Recordset.Fields("姓名")=Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期")=Trim(Stusbirth.Text)StuADO.Recordset.Fields("專(zhuān)業(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("是否要?jiǎng)h除"+StuADO.Recordset("學(xué)號(hào)")+"號(hào)學(xué)生的記錄?",vbYesNo,"提示")Ifret=vbYesThenEndIfStuADO.RecordSource="selectsno學(xué)號(hào),sname姓名,sdept專(zhuān)業(yè),ssex性別,sbirth出生日期,all_credit總學(xué)分fromXS"Command3_ClickEndSub'選中一行顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號(hào)")Stusname.Text=StuADO.Recordset("姓名")Stusbirth.Text=StuADO.Recordset("出生日期")Stusdept.Text=StuADO.Recordset("專(zhuān)業(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)不能為空,請(qǐng)重新設(shè)置",vbOKOnly,"信息提示"ExitSubEndIfIfTrim(Stusbirth.Text)<>""ThenIfNotIsDate(Trim(Stusbirth.Text))ThenMsgBox"出生日期輸入不正確,請(qǐng)重新輸入",vbOKOnly,"信息提示"ExitSubEndIfEndIfStuADO.Recordset.Fields("學(xué)號(hào)")=Trim(Stusno.Text)StuADO.Recordset.Fields("姓名")=Trim(Stusname.Text)StuADO.Recordset.Fields("出生日期")=Trim(Stusbirth.Text)StuADO.Recordset.Fields("專(zhuān)業(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é)號(hào),sname姓名,sdept專(zhuān)業(yè),ssex性別,sbirth出生日期,all_credit總學(xué)分fromXSwhere(ssex='男'orssex='女')"_&SqlStrEndSubPrivateSubStuDG_DblClick()ShowStuKC.StuKCADO.RecordSource="selectsname姓名,cname課程名,grade成績(jī),credit學(xué)分,term開(kāi)課學(xué)期,class_hour課時(shí)fromXS,KC,XS_KC"_&"whereXS.sno=XS_KC.snoandKCo=XS_KCo"_&"andXS.sno='"+StuADO.Recordset("學(xué)號(hào)")+"'"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("教師編號(hào)")+"'"EndSubPrivateSubTchseek_Click()MakeSqlStrTchADO.RecordSource="selecttno教師編號(hào),tname姓名,tsex性別,tbirth出生日期,professional職稱(chēng),department部門(mén)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("輸入不正確,請(qǐng)重新輸入!",vbYes,"錯(cuò)誤!")ElseIfTrim(Stusname.Text)<>Trim(StuADOXS.Recordset("sname"))Thenret=MsgBox("輸入學(xué)號(hào)與姓名不匹配,請(qǐng)重新輸入!")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("是否要?jiǎng)h除"+StuADO.Recordset("學(xué)號(hào)")+"號(hào)學(xué)生的選課記錄?",vbYesNo,"提示")Ifret=vbYesThenStuADOXS_KC.RecordSource="select*fromXS_KCwheresno='"+StuADO.Recordset("學(xué)號(hào)")+"'"EndIfStucancel_ClickEndSub'單擊顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號(hào)")Stusname.Text=StuADO.Recordset("姓名")Stucname.Text=StuADO.Recordset("課程名")EndSub代碼如下:PrivateSubStuadd_Click()IfStugrade.Text=""Thenret=MsgBox("輸入為空,請(qǐng)重新輸入",vbYes,"錯(cuò)誤提示")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é)號(hào),XS_KCo課程號(hào),cname課程名,grade成績(jī)fromKC,XS_KCwhereKCo=XS_KCo"EndIfEndSub'取消PrivateSubStucancel_Click()Stusno.Text=""Stucname.Text=""Stugrade.Text=""EndSub'刪除學(xué)生成績(jī)PrivateSubStudelete_Click()ret=MsgBox("是否要?jiǎng)h除"+Trim(StuADO.Recordset("學(xué)號(hào)"))+"號(hào)學(xué)生成績(jī)?",vbYesNo,"提示")Ifret=vbYesThenStuADO.Recordset("成績(jī)")=NullEndIfEndSub'單擊顯示元組PrivateSubStuDG_Click()Stusno.Text=StuADO.Recordset("學(xué)號(hào)")Stucname.Text=StuADO.Recordset("課程名")EndSub'修改學(xué)生成績(jī)PrivateSubStusu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外科病房出院宣教
- 電動(dòng)車(chē)買(mǎi)賣(mài)合同標(biāo)準(zhǔn)范本解析
- 施工企業(yè)安全風(fēng)險(xiǎn)評(píng)估案例
- 生態(tài)系統(tǒng)的結(jié)構(gòu)和功能
- 骨科骨質(zhì)疏松預(yù)防措施
- 通信工程綜合實(shí)訓(xùn)
- 農(nóng)產(chǎn)品電子商務(wù)營(yíng)銷(xiāo)策略報(bào)告
- 工程監(jiān)理質(zhì)量控制工作流程
- 企業(yè)內(nèi)部控制與審計(jì)報(bào)告撰寫(xiě)指南
- 中班《月球探險(xiǎn)》課件
- 膠質(zhì)瘤的圍手術(shù)期護(hù)理
- 數(shù)據(jù)庫(kù)應(yīng)用技術(shù)-004-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- 手衛(wèi)生執(zhí)行率PDCA案例實(shí)施分析
- 病理學(xué)考試練習(xí)題庫(kù)及答案
- 2025年新高考1卷(新課標(biāo)Ⅰ卷)語(yǔ)文試卷
- 2025-2030中國(guó)女鞋行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025至2030中國(guó)物理氣相沉積(PVD)設(shè)備行業(yè)行情監(jiān)測(cè)與發(fā)展動(dòng)向追蹤報(bào)告
- 2025年中國(guó)EP級(jí)蓖麻油行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 散酒采購(gòu)合同協(xié)議
- 工控網(wǎng)管理制度
- 大學(xué)英語(yǔ)四級(jí)考試2024年12月真題(第一套)Part II Listening Comprehension
評(píng)論
0/150
提交評(píng)論