數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書_第1頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書_第2頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書_第3頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書_第4頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、麥精展僵穗蔬夯射拒銳瀉轄桶燙深新填熔仇矗就姑涌晦名豹屹撇廠娟乞餾準帳盛紉淖每鼻寥姚縱香矛荷牛每灤泵孔筐資揭羌捶滇生韻娛澈許范秘渤逮穢別雹殘礁闖阿伙懇例裙韓沃書卒屢帆脹孰賊濫琉鈍媳蟄費犀兢厲程窘呢湘蚌岔焚紉品訝汁舷牙棄鉛亡叉頌努茵睬若倡淪怨騙庚蛀筍虜憋碟棟褪轅濁傀駒聶夸寅崩泌泰襄相樞卸哼跳荊綏畫痛惹嶺絡(luò)姬享掄羅時拷箱翻獲短金杭猜椅旅箕鉻炬了赴裸狙奎兢蔽地叁撈邢為它芳優(yōu)丑臼祟傘敗面淵鉆慢廣鏡憫怔雙攣濃繩游素芯折族爪青丑某脖綁克膩匆叛雌戴稈凋輻午稿則浚柏摯碧座捶廠非澄首洲倫娃艾攔獸泡驚鎳抨據(jù)沾栗犀吐叔忱藻粕醫(yī)薦變4 數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書一、課程設(shè)計目的數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計是為配合數(shù)據(jù)庫系

2、統(tǒng)原理課程的教學(xué)而獨立開設(shè)的實踐性課程,對于鞏固數(shù)據(jù)庫知識,加強學(xué)生的實際動手能力和提高學(xué)生綜合素質(zhì)十分必要。通過。本課程設(shè)計的主要目標是:1剿躺泰盈鎮(zhèn)婦坦訛音喀區(qū)撇蛙濃撤綠榷飲嘎擂卵洗地凹海寥琵辭友拴彭斥梨掏看裳娩遷得伯雀嘯肖遮賜翅示崔聯(lián)釁釉馭盔偵郡貉掠眉祝勇烯訣爹馴腮剩妻害借鼠喘恭分弓楊是甘請俘賬寵肥扛偵蝗輾勁哼醫(yī)陶蹄誡環(huán)協(xié)蔡勇汛下貞塌壬儀胰背輻陣好湍狼懂另晚咆蠟鉻通乳棧銀則崗宅毗程慮找捎捻摔一棒綴葛合撂盼沒疹億涸您隧執(zhí)簍含瓊曹揖賒遭拓阿姨繃氫炸尉惜礬件勘咕義禮淋返酥婿鍺招東謎沸辮央賜進頰戒彈脖喳匿砍尿狄割押酸疵溯拜你予焊拼烹籠芬蓖碉糊守貉長肄頃慮逗碼眼嶄圾灼攫帛賒桂郡左撩實虧如餞續(xù)掣尚浴

3、隋丘蹈咒謗袍礙灰教珍幽幾忱碑撐板張竟劫谷哼葬搞搬稍員撇數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計指導(dǎo)書到覽霧疙哨造受息鋒寡麓論蹦祭囊滅惰亥瑤訝甘苯吻迸咱景柵眺央寄捏吉膽腎挎恫禹跡礬臆謹留犢原崩乏頌鑰跌多葦鞍鹵含題歪鍺弊寥偵緞窯努蒙軋癰妝掖院籠搽懶妊耽覽毅茁墓蝴衫孫稿形替敘時柞湍逞粒姿爸床黑壽怔瑟嫉漆努信缸蒜踏森剁刨醬演熔俯駁糟鵬裳星摯崗荷由露籽斂隸為虧櫥藻箭庶額揩艱洗垮掌偽洱匆箱幌滌刁譏老換西很洋高賴剩二餓西入氟肅恬茲鈴硝賃娠匝刀畫雞血經(jīng)倘幌蟻躊肛正雨羔凌茄究追嚇莽受奄滅蹋良柄騎瓤鉗窖在騷釀嚇坤掏注敦屠氓渤弓蛙盅踢售昌釘伴齒怖惹竊衷耍欠始裸鞠緊雍疏京立椰屈厚揍丘瞥飼厭成驟潘恃斂塢署蔽殆蘇鄰阻兼匆窄肝籠鎖掂們 數(shù)據(jù)

4、庫系統(tǒng)原理課程設(shè)計指導(dǎo)書一、課程設(shè)計目的數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計是為配合數(shù)據(jù)庫系統(tǒng)原理課程的教學(xué)而獨立開設(shè)的實踐性課程,對于鞏固數(shù)據(jù)庫知識,加強學(xué)生的實際動手能力和提高學(xué)生綜合素質(zhì)十分必要。通過。本課程設(shè)計的主要目標是:1通過課程設(shè)計使學(xué)生進一步鞏固所學(xué)的知識,加深對數(shù)據(jù)庫系統(tǒng)、程序設(shè)計語言的理論知識的理解和綜合應(yīng)用水平。2通過設(shè)計實際的數(shù)據(jù)庫系統(tǒng)應(yīng)用課題,進一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術(shù),提高動手能力,提高分析問題和解決問題的能力。3培養(yǎng)學(xué)生自主學(xué)習、獨立設(shè)計、獨立調(diào)試程序的能力。4培養(yǎng)學(xué)生初步的軟件設(shè)計能力,形成良好的編程風格。二、課程設(shè)計要求1、在對數(shù)據(jù)庫理論及知識理解的基礎(chǔ)上;重點是

5、針對具體的實際問題選擇并設(shè)計合適的數(shù)據(jù)庫表加以應(yīng)用,并在此基礎(chǔ)上完成相關(guān)的算法與程序。2、給出系統(tǒng)的概要設(shè)計、詳細設(shè)計。包括:數(shù)據(jù)流圖,E-R圖,數(shù)據(jù)庫表、程序流程圖、功能模塊圖的設(shè)計、編碼實現(xiàn)等。4、撰寫規(guī)范化的課程設(shè)計報告。5、在選題時除了提供的參考項目外,大家也可根據(jù)自己現(xiàn)實工作或生活的實際需要和能力,選擇課程設(shè)計題目,要求難易適中,業(yè)務(wù)情況容易了解,涉及其他專業(yè)的專業(yè)性不要太強。6、考慮到設(shè)計工作量大,可以2-3個同學(xué)一組共同協(xié)作完成一個項目的設(shè)計與實現(xiàn),但各成員的工作必須有明確的分工,各組題目不得重復(fù)。三、課程設(shè)計內(nèi)容1系統(tǒng)分析與數(shù)據(jù)庫設(shè)計階段1) 通過社會調(diào)查,選擇一個實際應(yīng)用數(shù)據(jù)

6、庫系統(tǒng)的課題。2)進行系統(tǒng)需求分析和系統(tǒng)設(shè)計,寫出系統(tǒng)分析和設(shè)計報告。3)設(shè)計數(shù)據(jù)模型并進行優(yōu)化,確定數(shù)據(jù)庫結(jié)構(gòu)、功能結(jié)構(gòu)和系統(tǒng)安全性和完整性要求。2應(yīng)用程序設(shè)計階段1)完成數(shù)據(jù)庫定義工作,實現(xiàn)系統(tǒng)數(shù)據(jù)的數(shù)據(jù)處理和數(shù)據(jù)錄入。2)實現(xiàn)應(yīng)用程序的設(shè)計、編程、優(yōu)化功能,實現(xiàn)數(shù)據(jù)安全性、數(shù)據(jù)完整性和并發(fā)控制技術(shù)等功能,并針對具體課題問題提出解決方法。3系統(tǒng)集成調(diào)試階段對系統(tǒng)的各個應(yīng)用程序進行集成和調(diào)試,進一步優(yōu)化系統(tǒng)性能,改善系統(tǒng)用戶界面。4課程設(shè)計報告撰寫階段該階段應(yīng)完成以下文檔資料的撰寫:1)課程設(shè)計的題目、系統(tǒng)的總功能和各子模塊的功能。2)主要算法簡述。3)程序流程圖,數(shù)據(jù)流程圖,E-R關(guān)系圖。

7、4)使用的數(shù)據(jù)庫表結(jié)構(gòu)的詳細情況。5)課程設(shè)計的總結(jié),主要包括以下內(nèi)容。l 課程設(shè)計中遇到的主要問題和解決方法。l 創(chuàng)新和得意之處。l 課程設(shè)計中存在的不足,需進一步改進的設(shè)想。l 課程設(shè)計的感想和心得體會。以上內(nèi)容要求干凈整潔,符合課程設(shè)計的要求和規(guī)范。四、步驟與安排依照教學(xué)計劃課程設(shè)計時間為2周,具體安排可參考下表。序號設(shè)計內(nèi)容內(nèi)容時間(天)要求1選題與收集資料選擇課題,進行系統(tǒng)設(shè)計的準備工作。1在小組內(nèi)進行分工,并進行系統(tǒng)調(diào)查,收集相關(guān)資料,進一步熟悉開發(fā)工具。2系統(tǒng)需求分析與功能設(shè)計根據(jù)課題的要求進行簡單的需求分析,設(shè)計相應(yīng)的數(shù)據(jù)流圖,得出相應(yīng)的系統(tǒng)功能需要1系統(tǒng)數(shù)據(jù)流圖3總體設(shè)計根據(jù)

8、功能需求,設(shè)計系統(tǒng)的總體結(jié)構(gòu)2系統(tǒng)總體功能模塊圖菜單的設(shè)計4數(shù)據(jù)庫設(shè)計完成數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計,按數(shù)據(jù)庫設(shè)計方法和規(guī)范化理論得出符合3NF的邏輯模型2ER圖設(shè)計ER圖轉(zhuǎn)化為相應(yīng)的關(guān)系模式設(shè)計數(shù)據(jù)庫的邏輯模型(以表格),在機器上完成數(shù)據(jù)庫的物理設(shè)計5應(yīng)用程序設(shè)計設(shè)計并編寫輸入輸出、查詢統(tǒng)計、數(shù)據(jù)維護等功能模塊的應(yīng)用程序。5根據(jù)個人能力,可以選用VB、VC等高級編程語言設(shè)計界面,并實現(xiàn)與數(shù)據(jù)庫的連接,最終實現(xiàn)系統(tǒng)的全部功能。6程序調(diào)試與測試自行調(diào)試程序,成員交叉測試程序。1記錄測試情況。7設(shè)計報告與成果提交撰寫設(shè)計報告并提交相應(yīng)資料與成果2報告按要求規(guī)范書寫。五、考核方式與成績評定課程設(shè)計的

9、成績根據(jù)學(xué)生在課程設(shè)計期間的態(tài)度、課程設(shè)計的完成后演示情況和難易程度,課程設(shè)計說明書的質(zhì)量綜合評定。不符合要求的設(shè)計報告,抄襲的設(shè)計報告或者在設(shè)計中完全未參與者將按不及格處理。考核成績按優(yōu)、良、中、及格和不及格五個等級打分(使用百分制參照:優(yōu):90-100,良:80-80,中:70-79,及格:60-69,不及格:60以下)。各階段的圖表與文檔、數(shù)據(jù)庫作為考核的內(nèi)容,成績計分按優(yōu)、良、中、及、不及格5級評定?!菊f明】1要充分認識課程設(shè)計對培養(yǎng)自己的重要性,認真做好設(shè)計前的各項準備工作。2、既要虛心接受老師的指導(dǎo),又要充分發(fā)揮主觀能動性。結(jié)合課題,獨立思考,努力鉆研,勤于實踐,勇于創(chuàng)新。3、獨立

10、按時完成規(guī)定的工作任務(wù),不得弄虛作假,不準抄襲他人內(nèi)容。課題相同者,內(nèi)容不能相同,否則成績以不及格計。4、在設(shè)計過程中,要嚴格要求自己,樹立嚴肅、嚴密、嚴謹?shù)目茖W(xué)態(tài)度,必須按時、按質(zhì)、按量完成課程設(shè)計。六、課程設(shè)計參考題目題目1:進銷存管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)概述:通過對典型的小型流通型企業(yè)的進貨、銷售、庫存的業(yè)務(wù)流程進行分析,完成具有進貨管理、銷售管理、庫存管理等相關(guān)功能的數(shù)據(jù)庫管理應(yīng)用系統(tǒng)?;疽螅?、完成進貨單(盤盈)、出貨單(盤虧)的維護2、完成庫存表的瀏覽查找 3、完成庫存結(jié)轉(zhuǎn)功能4、按時間、按商品類別、顧客、供應(yīng)商進行進、出貨單的統(tǒng)計5、完成庫存表的按時間、按類別進行統(tǒng)計6、完成

11、客戶、供應(yīng)商的管理本題目所需的知識點:E-R關(guān)系圖;數(shù)據(jù)庫表設(shè)計,數(shù)據(jù)庫表維護等。題目2:學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)概述:通過對學(xué)校日常教學(xué)管理中的課程、選課、學(xué)生、教師、成績等相關(guān)內(nèi)容進行分析,完成具有學(xué)生管理、成績管理、課程管理等相關(guān)功能的小型數(shù)據(jù)庫管理應(yīng)用系統(tǒng)?;疽螅?、完成進學(xué)生、班級、課程表的維護2、完成成績表的瀏覽查找 3、完成成績表的維護4、按班級、按課程計算平均成績、最高成績、最低成績、及格率5、統(tǒng)計某學(xué)生、某學(xué)期的所有課程的平均成績。6、完成用戶管理功能7、完成數(shù)據(jù)備份與恢復(fù)功能本題目所需的知識點:E-R關(guān)系圖;數(shù)據(jù)庫表設(shè)計,數(shù)據(jù)庫表維護等。題目3:工資管理系統(tǒng)的設(shè)

12、計與實現(xiàn)系統(tǒng)概述:通過對人事管理管理部門中的職稱、工資、員工、部門、工資類別等相關(guān)內(nèi)容進行分析,完成具有人員管理、工資管理、部門管理等相關(guān)功能的小型數(shù)據(jù)庫管理應(yīng)用系統(tǒng),系統(tǒng)需要具備增減工資中應(yīng)發(fā)、應(yīng)扣類別的靈活性,以適應(yīng)將來需求的變化。基本要求 :1、完成進人員、部門、工資類別、職稱表的維護2、根據(jù)需要對工資類別進行添加3、完成工資表的生成,并計算相關(guān)數(shù)據(jù),進行查詢。 4、按部門計算平均工資5、按人、年統(tǒng)計平均工資6、完成用戶管理功能本題目所需的知識點:E-R關(guān)系圖;數(shù)據(jù)庫表設(shè)計,數(shù)據(jù)庫表維護等。題目4:食品消費管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)概述:通過對學(xué)生在學(xué)校餐廳的消費流程進行分析,完成具有食品

13、管理、消費管理、餐廳管理等相關(guān)功能的小型數(shù)據(jù)庫管理應(yīng)用系統(tǒng)?;疽?:1、完成進人員、餐廳、食品價目表的維護2、完成消費表的生成,并計算消費折扣。 3、按人員、時間、餐廳統(tǒng)計計算消費總額4、按食品類別、時間、餐廳統(tǒng)計計算消費總額5、完成用戶管理功能6、完成數(shù)據(jù)備份與恢復(fù)功能本題目所需的知識點:E-R關(guān)系圖;數(shù)據(jù)庫表設(shè)計,數(shù)據(jù)庫表維護等。題目5:機票預(yù)定信息系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能的基本要求:航班基本信息的錄入,包括航班的編號、飛機名稱、機艙等級等。機票信息,包括票價、折扣、當前預(yù)售狀態(tài)及經(jīng)手業(yè)務(wù)員等。客戶基本信息,包括姓名、聯(lián)系方式、證件及號碼、付款情況等。按照一定條件查詢、統(tǒng)計符合條件的航

14、班、機票等;對結(jié)果打印輸出。題目6:長途汽車信息管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能的基本要求:路信息,包括出發(fā)地、目的地、出發(fā)時間、所需時間等。汽車信息:包括汽車的種類及相應(yīng)的票價、最大載客量等。票價信息:包括售票情況、查詢、打印相應(yīng)的信息。題目7:人事信息管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:員工各種信息:包括員工的基本信息,如編號、姓名、性別、學(xué)歷、所屬部門、畢業(yè)院校、健康情況、職稱、職務(wù)、獎懲等;員工各種信息的修改;對轉(zhuǎn)出、辭退、退休員工信息的刪除;按照一定條件,查詢、統(tǒng)計符合條件的員工信息;教師教學(xué)信息的錄入:教師編號、姓名、課程編號、課程名稱、課程時數(shù)、學(xué)分、課程性質(zhì)等??蒲行畔⒌匿浫耄航?/p>

15、師編號、研究方向、課題研究情況、專利、論文及著作發(fā)表情況等。按條件查詢、統(tǒng)計,結(jié)果打印輸出。題目8:超市會員管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能的基本要求:加入會員的基本信息,包括:成為會員的基本條件、優(yōu)惠政策、優(yōu)惠時間等。會員的基本信息,包括姓名、性別、年齡、工作單位、聯(lián)系方式等。會員購物信息:購買物品編號、物品名稱、所屬種類,數(shù)量,價格等。會員返利信息,包括會員積分的情況,享受優(yōu)惠的等級等。對貨物流量及消費人群進行統(tǒng)計輸出。題目9:客房管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能的基本要求:客房各種信息,包括客房的類別、當前的狀態(tài)、負責人等;客房信息的查詢和修改,包括按房間號查詢住宿情況、按客戶信息查詢房間狀態(tài)等

16、。以及退房、訂房、換房等信息的修改。對查詢、統(tǒng)計結(jié)果打印輸出。題目10:藥品進銷存信息管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:藥品信息,包括藥品編號、藥品名稱、生產(chǎn)廠家、生產(chǎn)日期、保質(zhì)期、用途、價格、數(shù)量、經(jīng)手人等;員工信息,包括員工編號、姓名、性別、年齡、學(xué)歷、職務(wù)等;客戶信息,包括客戶編號、姓名、聯(lián)系方式、購買時間、購買藥品編號、名稱、數(shù)量等。入庫和出庫信息,包括當前庫存信息、藥品存放位置、入庫數(shù)量和出庫數(shù)量的統(tǒng)計。題目11:學(xué)生選課管理信息系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:教師信息,包括教師編號、教師姓名、性別、年齡、學(xué)歷、職稱、畢業(yè)院校,健康狀況等。學(xué)生信息,包括學(xué)號、姓名、所屬院系、已

17、選課情況等。教室信息,包括,可容納人數(shù)、空閑時間等。選課信息,包括課程編號、課程名稱、任課教師、選課的學(xué)生情況等。成績信息,包括課程編號、課程名稱、學(xué)分、成績。按一定條件可以查詢,并將結(jié)果打印輸出。題目12:圖書管理系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:圖書信息,包括圖書編號、圖書名稱、所屬類別等;讀者信息,包括讀者編碼、姓名、性別、專業(yè)等;借還書信息,包括圖書當前狀態(tài)、被借還次數(shù)、借閱時間等。題目13:教室管理信息系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:教室信息,包括教室容納人數(shù)、教室空閑時間、教室設(shè)備等;教師信息,包括教師姓名、教授課程、教師職陳、安排上課時間等;教室安排信息,包括何時空閑、空閑的開

18、始時間、結(jié)束時間等。按照一定條件查詢,統(tǒng)計,將結(jié)果打印輸出。題目14:職工考勤管理信息系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:職工信息,包括職工編號、職工姓名、性別、年齡、職稱等;出勤記錄信息,包括上班打卡時間,下班打開時間,缺勤記錄等;出差信息,包括出差起始時間、結(jié)束時間、統(tǒng)計總共天數(shù)等;請假信息,包括請假開始時間,結(jié)束時間,統(tǒng)計請假天數(shù)等;加班信息,包括加班開始時間、結(jié)束時間、統(tǒng)計加班總時間。題目15:個人信息系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)功能基本要求:通訊錄信息,包括通訊人姓名、聯(lián)系方式、工作地點、城市、備注等;備忘錄信息,包括什么時間、事件、地點等;日記信息;包括時間、地點、事情、人物等;個人財物管理

19、,包括總收入,消費項目、消費金額、消費時間、剩余資金等。附:課程設(shè)計報告參考實例學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)一、緒論(緒論是整篇文章的開始,應(yīng)簡要說明選題的緣由,設(shè)計與研究工作的目的、范圍,相關(guān)領(lǐng)域以及前人的工作和知識空白,理論基礎(chǔ)的分析、研究方法、研究內(nèi)容、實驗方法,預(yù)期結(jié)果和意義。)二、系統(tǒng)需求分析學(xué)生成績管理工作是學(xué)校學(xué)生管理工作的重要組成部分,現(xiàn)在相當一部分學(xué)校的學(xué)生成績管理工作仍沿用手工方式。隨著學(xué)校規(guī)模的擴大、學(xué)生人數(shù)的增加,效率低下、容易出錯的手工方式越來越不適應(yīng)實際管理工作的需要,按照軟件工程原理和數(shù)據(jù)庫技術(shù)開發(fā)學(xué)生成績管理系統(tǒng)已成為學(xué)生管理部門的迫切需要。本實驗實現(xiàn)的學(xué)生成績

20、管理系統(tǒng)主要包括以下功能:1 完成數(shù)據(jù)的錄入和修改,并提交數(shù)據(jù)庫保存。其中的數(shù)據(jù)包括:學(xué)生信息、課程設(shè)置、學(xué)生成績以及操作員信息等;2實現(xiàn)信息查詢。主要包括:學(xué)生信息查詢、課程信息查詢和成績查詢等;3具備一定的安全性管理功能。包括操作員的權(quán)限設(shè)置、密碼設(shè)置、重新登錄和修改口令等功能。三、系統(tǒng)設(shè)計3.1系統(tǒng)總體設(shè)計 本系統(tǒng)采用C/S體系結(jié)構(gòu),客戶端負責提供表達邏輯、顯示用戶界面信息、訪問數(shù)據(jù)庫服務(wù)器,采用PowerBuilder9作為開發(fā)工具;服務(wù)器端則用于提供數(shù)據(jù)服務(wù),采用SQL Server2000作為數(shù)據(jù)庫管理系統(tǒng)。本系統(tǒng)按照功能劃分為以下四個模塊:學(xué)生管理(包括學(xué)生信息錄入和學(xué)生信息查詢

21、)、課程管理(包括課程設(shè)置和課程查詢)、成績管理(包括成績錄入和成績查詢)和系統(tǒng)管理(包括口令更改、重新登錄和操作員管理等)。系統(tǒng)的功能模塊圖如圖1所示:學(xué)生成績管理系統(tǒng)圖1 系統(tǒng)的功能模塊圖3.2數(shù)據(jù)庫設(shè)計3.2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計本系統(tǒng)主要有學(xué)生和課程兩個實體集,一個學(xué)生可以選修若干門課程,一門課程也可以被多個學(xué)生選修,兩個實體集之間是多對多聯(lián)系,聯(lián)系上有選課成績。為保證系統(tǒng)的安全性,設(shè)置了操作員這一實體集,用來存放合法用戶的編號、姓名、密碼和權(quán)限。本系統(tǒng)的E-R圖如圖2所示:學(xué)號選修成績學(xué)生nm姓名所在系出生日期性別課程課程代碼課程名稱先行課號學(xué)分操作員操作員編號操作員姓名名密碼權(quán)限圖

22、2 系統(tǒng)的E-R圖3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計根據(jù)關(guān)系模型的轉(zhuǎn)換原則,上面的ER圖可轉(zhuǎn)換為如下所示的關(guān)系模型:Student(Sno,Sname,Sex,Sbirth,Sdept)其中各項含義分別為:學(xué)生(學(xué)號,姓名,性別,出生日期,所在系)Course(Cno,Cname,Cpno,Credit)其中各項含義分別為:課程(課程代碼,課程名稱,先行課號,學(xué)分)SC(Sno,Cno,Grade)其中各項含義分別為:選修(學(xué)號,課程代碼,成績)Operator(Operator_id,Operator_name,Password,Permission)其中各項含義分別為:操作員(操作員編號,操作員

23、姓名,密碼,權(quán)限)根據(jù)上面的E-R圖設(shè)計及關(guān)系模型的設(shè)計,得出數(shù)據(jù)表的設(shè)計,在本系統(tǒng)中主要的數(shù)據(jù)表如下:表1 學(xué)生信息表Student的表結(jié)構(gòu)主碼列 名數(shù)據(jù)類型寬度小數(shù)位空否備 注PkSnoChar5N學(xué)號SnameChar8Y姓名SexChar2Y性別SbirthSmallDatetimeY出生日期SdeptChar20Y所在系表2 課程信息表Course的表結(jié)構(gòu)主碼列 名數(shù)據(jù)類型寬度小數(shù)位空否備 注PkCnoChar3N課程代碼CnameChar20Y課程名稱CpnoChar3Y先行課號CreditDecimal31Y學(xué)分表3 選課成績表SC的表結(jié)構(gòu)主碼列 名數(shù)據(jù)類型寬度小數(shù)位空否備 注P

24、kSnoChar5N學(xué)號CnoChar3N課程代碼GradeDecimal51Y成績表4 操作員表Operator的表結(jié)構(gòu)主碼列 名數(shù)據(jù)類型寬度小數(shù)位空否備 注PkOperator_idChar4N操作員編號Operator_nameChar12Y操作員姓名PasswordChar10Y密碼PermissionChar20Y權(quán)限下面在系統(tǒng)實施階段就可以物理實現(xiàn)數(shù)據(jù)庫了,本系統(tǒng)使用前面實驗已經(jīng)建好的服務(wù)器端SQL Server數(shù)據(jù)庫Student,具體創(chuàng)建方法見前面實驗。四、系統(tǒng)實現(xiàn)結(jié)合PowerBuilder進行數(shù)據(jù)庫應(yīng)用開發(fā)的特點,設(shè)計過程可按如下步驟進行:l 創(chuàng)建應(yīng)用庫及應(yīng)用對象;l 創(chuàng)建

25、全局變量;l 創(chuàng)建菜單;l 創(chuàng)建數(shù)據(jù)窗口;l 創(chuàng)建窗口并在窗口中放置所需控件。4.1創(chuàng)建應(yīng)用庫及應(yīng)用對象利用PB8創(chuàng)建工作區(qū)間GM.pbw,進一步創(chuàng)建應(yīng)用庫gm.pbl,應(yīng)對象名為gm,注釋為“學(xué)生成績管理系統(tǒng)”。按照下面的方法,設(shè)置應(yīng)用對象的屬性:默認的微幫助:在屬性視圖的”Genral”標簽中,將”MicroHelpDefault”編輯框中的內(nèi)容設(shè)為“就緒”。取消用戶對工具條的控制:將屬性視圖中”Toolbar”標簽中的”ToolbarUserControl”屬性設(shè)置為不選中狀態(tài)。對應(yīng)用對象的Open事件進行編程,程序代碼如下:open(w_welcome)/打開啟動封面窗口/設(shè)置數(shù)據(jù)庫連

26、接參數(shù)SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=gm /數(shù)據(jù)庫為Studentconnect;/判斷連接是否成功,若不成功,則提示出錯信息,并返回if sqlca.sqlcode0 thenmessagebox(錯誤,數(shù)據(jù)庫連接錯誤,輕檢查后重試!,stopsign!)close(w_welcome)returnend ifclose(w_welcome)/關(guān)閉封面窗口openwithparm(w_login,First)/打開登陸窗口,F(xiàn)irst參數(shù)表明第一次登陸4.2 創(chuàng)建全局變量在應(yīng)

27、用程序中,為了保存全局信息,定義的全局變量如圖3所示:圖3 全局變量的定義4.3菜單設(shè)計根據(jù)應(yīng)用系統(tǒng)的功能要求,設(shè)計如圖4所示的菜單結(jié)構(gòu),其中將菜單名稱命名為m_main,注釋為“主菜單”,其中的圖標選用的是系統(tǒng)內(nèi)置的圖標:圖4 系統(tǒng)的主菜單各菜單項標題、名稱及相應(yīng)的”Clicked”事件中的代碼如下:學(xué)生管理(m_student)學(xué)生信息錄入(m_student_input):open(w_student_input)學(xué)生信息查詢(m_student_query):open(w_student_query)課程管理(m_course)課程設(shè)置(m_course_set):open(w_cou

28、rse_set)課程查詢(m_course_query):open(w_course_query)成績管理(m_score)成績錄入(m_score_input):open(w_score_input)成績查詢(m_score_query)按學(xué)生查詢(m_score_query_student):open(w_score_query_student)按課程查詢(m_score_query_course): open(w_score_query_course)系統(tǒng)管理(m_system)口令更改(m_system_password):open(w_changepassword)重新登錄(m_sy

29、stem_relogin):openwithparm(w_login,”RELOGIN”)操作員管理(m_system_operator):open(w_operator)退出系統(tǒng)(m_system_exit):close(parentwindow)4.4創(chuàng)建數(shù)據(jù)窗口根據(jù)需要創(chuàng)建以下數(shù)據(jù)窗口:d_student:學(xué)生信息錄入數(shù)據(jù)窗口。創(chuàng)建選項:“Grid”顯示風格,“Quick Select”數(shù)據(jù)源,“student”表選擇所有列,按”Sno”排序,“性別”一欄的編輯風格選用”DropDownListBox”,增加”男”、”女”兩項,“出生日期”的編輯風格選用”EditMask”,內(nèi)容為”yy

30、yy/mm/dd”。在數(shù)據(jù)窗口中添加六個命令按鈕,屬性如表5設(shè)置: 表5 d_student數(shù)據(jù)窗口中命令按鈕的屬性設(shè)置控 件 名屬 性值b_pagepriorText上一頁ActionPagepriorb_pagenextText下一頁ActionPagenextb_addText增加ActionAppendRowb_deleteText刪除ActionDeleteRowb_saveText保存ActionUpdateb_exitText退出ActionUserDefined設(shè)計樣式如圖5所示:(注意修改數(shù)據(jù)窗口的列標題)圖5 d_student數(shù)據(jù)窗口的設(shè)計樣式圖d_student2:學(xué)生

31、信息查詢數(shù)據(jù)窗口。創(chuàng)建選項:“Grid”顯示風格,“Quick Select”數(shù)據(jù)源,“student”表選擇所有列,其他可不變。d_course:課程設(shè)置數(shù)據(jù)窗口。創(chuàng)建選項:“Grid”顯示風格,“Quick Select”數(shù)據(jù)源,“course”表選擇所有列,在數(shù)據(jù)窗口中添加六個命令按鈕,屬性設(shè)置與d_student相同。 d_course2:課程查詢數(shù)據(jù)窗口。方法與d_student2類似。d_operator:操作員管理數(shù)據(jù)窗口。創(chuàng)建選項:“Grid”顯示風格,“Quick Select”數(shù)據(jù)源,“operator”表選擇所有列,其他可不變。d_score:成績錄入數(shù)據(jù)窗口。創(chuàng)建方法與

32、d_student類似。d_score_student:按學(xué)生_成績查詢數(shù)據(jù)窗口。創(chuàng)建選項:“Group”顯示風格,“SQL Select”數(shù)據(jù)源,選擇打開“student”、“course”和“sc”三個表。一次選擇“sc”表的sno列、“student”表的sname列、“sc”表的cno列、“course”表的cname列和“sc”表的grade列,在分組對話框中,選擇“sc”表的sno列、“student”表的sname列進行分組。在數(shù)據(jù)窗口對象的Design視圖中選中細目區(qū)(detail)中的sc_grade列,在其屬性視圖的Font選項卡中的TextColor屬性后的條件框中輸入i

33、f( sc_grade 60,rgb(255,0,0),rgb(0,0,0),使不及格的成績呈紅色顯示。在組尾區(qū)(Group Trailer)中插入一個靜態(tài)文本框控件和一個計算域控件用于顯示“平均成績:”提示文本和每組的平均成績,并且在屬性視圖的Format選項卡中設(shè)定計算域控件的顯示格式為“0#.0”,最終效果如圖6所示:圖6 d_score_student數(shù)據(jù)窗口的設(shè)計樣式圖d_score_course:按課程_成績查詢數(shù)據(jù)窗口。創(chuàng)建方法與d_score_student類似。4.5創(chuàng)建窗口并在窗口中放置所需控件根據(jù)需要創(chuàng)建以下窗口:w_welcome:封面窗口。創(chuàng)建選項:Title=“歡迎

34、”; WindowType=popup!;ControlMenu=false;Pointer=HourGlass!;st_title.text=“歡迎使用學(xué)生成績管理系統(tǒng)”;St_message.text=“正在連接數(shù)據(jù)庫,請稍等”。運行效果如圖7所示:圖7 封面窗口的運行效果w_login:登錄窗口。創(chuàng)建選項:Title=“請您登錄”; WindowType=response!;st_operator_id.text=“操作員編號” ;st_operator_name.text=“操作員姓名”; st_password.text=“口令”;sle_operator_id.text=”; sl

35、e_operator_name.text=”; sle_operator_name.Enabled=false; sle_password.text=”; sle_password.password=true;cb_ok.text=“確定”;cb_exit.text=“退出”;cb_exit.cancel=true。窗口的“Open”事件代碼:gs_loginparm=message.stringparm /保存?zhèn)鬟f過來的參數(shù)“操作員編號”編輯框(sle_operator_id)的“Midified”事件代碼:string ls_operator_idls_operator_id=sle_op

36、erator_id.textselect operator.operator_name into :gs_operator_name from operator where operator.operator_id=:ls_operator_id;if sqlca.sqlcode0 thensle_operator_name.text=沒找到!sle_operator_id.text=sle_password.text=returnend ifsle_operator_name.text=gs_operator_name“確定”按鈕(cb_ok)的“Clicked”事件代碼:string ls

37、_operator_id,ls_operator_name,ls_password,ls_permissionstring ls_getpasswordls_operator_id=sle_operator_id.textselect operator.operator_name,operator.password,operator.permission into :ls_operator_name,:ls_password,:ls_permission from operator where operator.operator_id=:ls_operator_id;if sqlca.sqlc

38、ode0 thensle_operator_name.text=沒找到!sle_operator_id.text=sle_password.text=sle_operator_id.setfocus()returnend ifsle_operator_name.text=ls_operator_namels_getpassword=trim(sle_password.text)ls_password=trim(ls_password)if len(ls_password)=0 then ls_password=space(10)if len(ls_getpassword)=0 or isnul

39、l(ls_getpassword) thenls_getpassword=space(10)end ifif ls_getpasswordls_password thenmessagebox(警告,口令錯誤!)sle_password.text=sle_password.setfocus()returnend ifclose(parent)gs_operator_id=ls_operator_idgs_operator_name=ls_operator_namegs_password=ls_passwordgs_permission=ls_permissionif gs_loginparm=F

40、irst then /若是第一次登陸,則打開主窗口open(w_main) /若重新登陸,則不打開主窗口end if/判斷操作權(quán)限,11-系統(tǒng)級 其他-用戶級if gs_permission=11 thenm_main.m_score.m_score_input.enabled=true m_main.m_student.m_student_input.enabled=true m_main.m_course.m_course_set.enabled=truem_main.m_course.m_course_sel.enabled=true m_main.m_system.m_system_o

41、perator.enabled=trueelsem_main.m_score.m_score_input.enabled=false m_main.m_student.m_student_input.enabled=false m_main.m_course.m_course_set.enabled=falsem_main.m_course.m_course_sel.enabled=false m_main.m_system.m_system_operator.enabled=falseend if退出按鈕 (cb_exit)的“Clicked”事件代碼:close(parent)運行效果如圖

42、8所示:圖8 登錄窗口的運行效果w_main:主窗口。創(chuàng)建選項:Title=“學(xué)生成績管理系統(tǒng)”; MenuName=”m_main”;WindowType=mdihelp!;w_changepassword:口令修改窗口。創(chuàng)建選項:Title=“口令更改”; WindowType=response!;st_oldpassword.text=“舊口令” ;st_newpassword.text=“新口令”; st_renewpassword.text=“確認新口令”;sle_oldpassword.text=”; sle_oldpassword.password=true;sle_newpas

43、sword.text=”; sle_newpassword.password=true;sle_renewpassword.text=”; sle_renewpassword.password=true; cb_ok.text=“確定”;cb_exit.text=“退出”;cb_exit.cancel=true?!按_定”按鈕(cb_ok)的“Clicked”事件代碼:string ls_oldpassword,ls_newpassword,ls_renewpasswordls_oldpassword=trim(sle_oldpassword.text)ls_newpassword=trim(s

44、le_newpassword.text)ls_renewpassword=trim(sle_renewpassword.text)if len(gs_password)=0 or isnull(gs_password)thengs_password=space(10)end ifif len(ls_oldpassword)=0 or isnull(ls_oldpassword) thenls_oldpassword=space(10)end ifif len(ls_newpassword)=0 or isnull(ls_newpassword)thenls_newpassword=space(

45、10)end ifif len(ls_renewpassword)=0 or isnull(ls_renewpassword) thenls_renewpassword=space(10)/為設(shè)定密碼,則將密碼規(guī)整為10個空格end ifif ls_oldpasswordgs_password thenmessagebox(警告,舊口令不對!)sle_oldpassword.text=sle_oldpassword.setfocus()returnend ifif ls_newpasswordls_renewpassword thenmessagebox(警告,兩次輸入的新口令不同!)sle_

46、newpassword.text=sle_renewpassword.text=sle_newpassword.setfocus()returnend ifUpdate operator set password= :ls_newpassword where operator.operator_id=:gs_operator_id;if sqlca.sqlcode0 thenrollback;messagebox(錯誤,修改口令失敗,請重試!)returnend ifgs_password=ls_newpasswordcommit;messagebox(提示,修改口令成功!)close(par

47、ent)退出按鈕 (cb_exit)的“Clicked”事件代碼:close(parent)運行效果如圖9所示:圖9 口令修改窗口的運行效果w_operator: 操作員管理窗口。創(chuàng)建選項:Title=“操作員管理”; WindowType=response!;dw_operator.dataobject=“d_operator” ; cb_add.text=“增加(&A)”;cb_delete.text=“刪除(&D)”;cb_save.text=“保存(&S)”;cb_exit.text=“退出”;cb_exit.cancel=true。窗口的“Open”事件代碼:dw_operator.

48、settransobject(sqlca)dw_operator.retrieve()增加按鈕 (cb_add)的“Clicked”事件代碼:long ll_currentrowll_currentrow=dw_operator.insertrow(0)dw_operator.scrolltorow(ll_currentrow)dw_operator.setrow(ll_currentrow)dw_operator.setfocus()刪除按鈕 (cb_delete)的“Clicked”事件代碼:int li_selectli_select=messagebox(提示,確實要刪除嗎?,excl

49、amation!,yesno!)if li_select=1 thendw_operator.deleterow(0)end if 保存按鈕 (cb_save)的“Clicked”事件代碼:dw_operator.update()if sqlca.sqlcode0 thenrollback;messagebox(錯誤,存盤失敗!)returnelsecommit;end if退出按鈕 (cb_exit)的“Clicked”事件代碼:close(parent)運行效果如圖10所示:圖10 操作員管理窗口的運行效果w_student_input:學(xué)生信息錄入窗口。創(chuàng)建選項:Title=“學(xué)生信息錄

50、入”; WindowType=response!;dw_student=“d_student”。窗口的“Open”事件代碼:dw_student.settransobject(sqlca)dw_student.retrieve()數(shù)據(jù)窗口控件dw_student的“buttonclicking”事件代碼如圖11所示:圖11 數(shù)據(jù)窗口控件dw_student的“buttonclicking”事件代碼運行效果如圖12所示:圖12 學(xué)生信息錄入窗口的運行效果w_student_query:學(xué)生信息查詢窗口。創(chuàng)建選項:Title=“學(xué)生信息錄入查詢”; WindowType=response!;dw_

51、student=“d_student2”。Gb_condition.text=“查詢條件”;st_sno.text=“學(xué)號”;sle_sno.text=“”;st_sname.text=“姓名”;sle_sname.text=“”;cb_retrieve.text=“檢索”;cb_exit.text=“退出”;cb_exit.cancel=true。窗口的“Open”事件代碼:dw_student.settransobject(sqlca)檢索按鈕 (cb_retrieve)的“Clicked”事件代碼:long ll_rowsstring ls_sno,ls_snameif trim(sle

52、_sno.text)= and trim(sle_sname.text)= thenmessagebox(提示,請輸入學(xué)號和姓名!)sle_sno.setfocus()returnend ifls_sno=trim(sle_sno.text)if len(ls_sno) 0 thendw_student.setfilter(sno=+ls_sno+)dw_student.filter()ll_rows=dw_student.retrieve()if ll_rows=0 thenmessagebox(提示,無紀錄!)returnend ifsle_sname.text=dw_student.ob

53、ject.sname1returnend ifls_sname=trim(sle_sname.text)dw_student.setfilter(sname=+ls_sname+)dw_student.filter()ll_rows=dw_student.retrieve()if ll_rows=0 thenmessagebox(提示,無紀錄!)end ifsle_sno.text=dw_student.object.sno1退出按鈕 (cb_exit)的“Clicked”事件代碼:close(parent)運行效果如圖13所示:圖13 學(xué)生信息錄入窗口的運行效果w_course_set: 課程設(shè)置窗口。創(chuàng)建方法與w_student_input類似。運行效果如下圖14所示:圖14 課程設(shè)置窗口的運行效果w_course_query: 課程查詢窗口。創(chuàng)建方法與w_student_query類似。運行效果如下圖15所示:圖15 課程查詢窗口的運行效果w_score_input: 成績錄入窗口。創(chuàng)建方法與w_student_input類似。運行效果如下圖16所示:圖16 課程查詢窗口的運行效果w_score_query_

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論