VF學(xué)生成績管理系統(tǒng)課程設(shè)計.doc_第1頁
VF學(xué)生成績管理系統(tǒng)課程設(shè)計.doc_第2頁
VF學(xué)生成績管理系統(tǒng)課程設(shè)計.doc_第3頁
VF學(xué)生成績管理系統(tǒng)課程設(shè)計.doc_第4頁
VF學(xué)生成績管理系統(tǒng)課程設(shè)計.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

河南理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計報告200 7 200 8 學(xué)年第 二 學(xué)期課程名稱 數(shù)據(jù)庫課程設(shè)計 設(shè)計題目 學(xué)生成績管理系統(tǒng) 學(xué)生姓名 0 學(xué) 號 專業(yè)班級 指導(dǎo)教師 申自浩 2008 年 7 月 1 日1 問題描述 1.1 背景 1)某大學(xué)有學(xué)生若干萬名,每個學(xué)生每學(xué)期必須學(xué)習(xí)若干門課程。 2)每個學(xué)生有學(xué)號、姓名、性別、班級、出生日期等基本信息。 3)每門課程有課程號,課程名稱、任課教師、學(xué)分等信息。 4)學(xué)校需要對每個學(xué)生的基本信息、所學(xué)課程、成績進行統(tǒng)一管理,以便于對信息進行查詢、瀏覽和修改。1.2 數(shù)據(jù)需求 學(xué)生成績管理系統(tǒng)主要用于學(xué)生成績信息管理,據(jù)分析學(xué)生成績管理系統(tǒng)的數(shù)據(jù)表可濃縮為:學(xué)生基本信息表、課程基本信息表和學(xué)生成績信息表。根據(jù)學(xué)校的情況,可按下面的步驟來分析:(1) 確定學(xué)生所在的院系、所學(xué)的專業(yè)以及所在的班級。(2) 確定學(xué)生所在班級的課程以及該課程學(xué)生的成績;另外還需要知道學(xué)生所在班級、學(xué)號和學(xué)期。(3) 分析學(xué)生的基本信息,如姓名、性別、出生年月、家庭住址、聯(lián)系電話。(4) 用戶信息分析,通常包括用戶名和密碼。2 解決方案 ( 或數(shù)據(jù)庫系統(tǒng)設(shè)計 ) 性別2.1 E-R 模型設(shè)計 課程學(xué)生班級學(xué)號出生日期姓名查詢成績?nèi)握n教師課程號課程名稱學(xué)分成績 根據(jù)ER圖,將其轉(zhuǎn)化為如下數(shù)據(jù)實體,數(shù)據(jù)庫:學(xué)生成績管理系統(tǒng).dbc,包括如下的表和視圖:1) 學(xué)生登記表學(xué)生表.dbf。字段名稱 字段類型 字段寬度xh 字符型 10xm 字符型 6xb 字符型 2csrq 日期型 8bj 字符型 42) 課程登記表課程表.dbf。 字段名稱 字段類型 字段寬度kch 字符型 2kcm 字符型 10js 字符型 10xf 字符型 103) 成績登記表成績表.dbf字段名稱 字段類型 字段寬度xh 字符型 10kch 字符型 2cj 數(shù)值型 34) 借書視圖(lyxview)。為了進行瀏覽總表的需要,需要設(shè)計了一個總表瀏覽視圖,該視圖從學(xué)生表.dbf等3個表中提取了10個字段的數(shù)據(jù):學(xué)生表.xh學(xué)生表.xm學(xué)生表.xb學(xué)生表.csrq學(xué)生表.bj課程表.kch課程表.kcm課程表.js課程表.xf成績表.cj其視圖關(guān)系可由以下SQL語句定義:SELECT 學(xué)生表.*, 課程表.*, 成績表.cj; FROM 學(xué)生成績管理系統(tǒng)!學(xué)生表, 學(xué)生成績管理系統(tǒng)!課程表,; 學(xué)生成績管理系統(tǒng)!成績表; WHERE 學(xué)生表.xh = 成績表.xh; AND 課程表.kch = 成績表.kch所建數(shù)據(jù)庫如下圖所示:2.2 數(shù)據(jù)表 本系統(tǒng)需要使用的數(shù)據(jù)如下:3 系統(tǒng)實現(xiàn) 3.1 開發(fā)環(huán)境 本系統(tǒng)由SQL語言編寫,在Visual Foxpro 6.0軟件環(huán)境下可以正常運行3.2 系統(tǒng)流程圖 系統(tǒng)流程圖模塊主要由劉龍洋同學(xué)設(shè)計,而系統(tǒng)的功能設(shè)計主要由李江濱同學(xué)完成,我主要負(fù)責(zé)程序主要功能界面的設(shè)計,下面是部分流程圖:開始用戶登陸界面總表瀏覽成績報表課程報表學(xué)生報表版權(quán)所有查詢維護表記錄瀏覽成績?yōu)g覽課程瀏覽學(xué)生更改口令系統(tǒng)維護瀏覽查詢報表幫助、3.3 程序主要功能界面 1、登錄界面的設(shè)計:第一步:在表單上單擊鼠標(biāo)右鍵,并在彈出菜單中選擇“數(shù)據(jù)環(huán)境”項,打開數(shù)據(jù)環(huán)境設(shè)計器,添加數(shù)據(jù)表mm.dbf;第二步:創(chuàng)建表單并保存為“登錄”;第三步:添加lable1,并設(shè)置其caption屬性為“歡迎使用學(xué)生成績管理系統(tǒng)!”;第四步:添加lable2和text1并設(shè)置相關(guān)屬性;第五步:添加timer控件,并設(shè)置其Enabled屬性為“真”,用于設(shè)計窗口動畫。登錄界面如下圖所示: 2、修改密碼表單的設(shè)計:第一步:在表單上單擊鼠標(biāo)右鍵,并在彈出菜單中選擇“數(shù)據(jù)環(huán)境”項,打開數(shù)據(jù)環(huán)境設(shè)計器,添加數(shù)據(jù)表mm.dbf;第二步:創(chuàng)建表單并保存為“修改密碼”;第三步:添加label1 、label2、 label3,并設(shè)置其caption屬性分別為“請輸入舊密碼”、“請輸入新密碼”、“請確認(rèn)新密碼”;第四步:添加text1、 text2、 text3,并設(shè)置相關(guān)屬性;第五步:添加command1和command2,并設(shè)置其caption屬性分別為“確認(rèn)”和“取消”; 修改密碼表單如下圖:3、學(xué)生基本信息維護表單的設(shè)計:第一步:創(chuàng)建表單,并保存為學(xué)生表.scx;第二步:添加lable1lable5,其caption的屬性如下圖所示 ;第三步: 添加文本框text1text5,并設(shè)置相關(guān)屬性;第四步:添加“院系”、“專業(yè)”、“班級”和“學(xué)期”列表框;第五步:添加類,并設(shè)置相關(guān)屬性,用于增添和修改學(xué)生基本信息;第六步:添加文本框text6,并設(shè)置相關(guān)屬性;第七步:添加command1command10,并設(shè)置相關(guān)屬性;第八步:添加“返回”按鈕,其功能是關(guān)閉此界面;第九步:執(zhí)行運行命令,并進行測試。4、課程信息維護表單的設(shè)計:第一步:創(chuàng)建表單,并保存為課程表.scx;第二步:添加lable1lable4,其caption的屬性如下圖所示 ;第三步: 添加文本框text1text4,并設(shè)置相關(guān)屬性;第四步:添加類,并設(shè)置相關(guān)屬性,用于增添和修改課程基本信息;第五步:添加command1command10,并設(shè)置相關(guān)屬性5、學(xué)生成績信息維護表單的設(shè)計:第一步:創(chuàng)建表單,并保存為成績表.scx;第二步:添加lable1lable3,其caption的屬性如下圖所示 ;第三步: 添加文本框text1text3,并設(shè)置相關(guān)屬性;第四步:添加類,并設(shè)置相關(guān)屬性,用于增添和修改學(xué)生成績基本信息;第五步:添加command1command10,并設(shè)置相關(guān)屬性;第六步:執(zhí)行運行命令,并進行測試 6、瀏覽學(xué)生表單的設(shè)計:第一步:創(chuàng)建表單,并保存為“瀏覽學(xué)生.scx”;第二步:使用組合框生成器來生成編輯組合框,其操作步驟是:首先選擇要編輯的組合框,然后單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇 “生成器”菜單項,屏幕上彈出組合框生成器窗體,設(shè)置數(shù)據(jù)環(huán)境為“學(xué)生表.dbf”。第三步: 添加label1和列表框,并設(shè)置相關(guān)屬性;第四步:添加command1,并設(shè)置其caption屬性為“查找”。7、瀏覽成績表單的設(shè)計:第一步:創(chuàng)建表單,并保存為“瀏覽成績.scx”;第二步:使用組合框生成器來生成編輯組合框,其操作步驟是:首先選擇要編輯的組合框,然后單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇 “生成器”菜單項,屏幕上彈出組合框生成器窗體,設(shè)置數(shù)據(jù)環(huán)境為“成績表.dbf”。第三步: 添加label1和列表框,并設(shè)置相關(guān)屬性;第四步:添加command1,并設(shè)置其caption屬性為“查找”。運行界面如下: 8、查詢成績表單的設(shè)計:第一步:創(chuàng)建表單,并保存為“查詢成績.scx”;第二步:使用組合框生成器來生成編輯組合框,其操作步驟是:首先選擇要編輯的組合框,然后單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇 “生成器”菜單項,屏幕上彈出組合框生成器窗體,設(shè)置數(shù)據(jù)環(huán)境為“成績表.dbf”。第三步: 添加label1,并設(shè)置其caption屬性為“瀏覽學(xué)生成績”;第四步:添加command1、command2,并設(shè)置其caption屬性為“查詢”和“退出”。 運行界面如下: 9、學(xué)生表報表的設(shè)計:學(xué)生表報表的設(shè)計過程說明如下:報表數(shù)據(jù)源 學(xué)生表.dbf,該表已在前面做了說明。報表分組條件 學(xué)生表.bj報表排序條件 學(xué)生表.xh該報表由向?qū)С绦蛏?,其后進行了一些格式美化的調(diào)整修改工作,關(guān)鍵問題是要先定義好作為數(shù)據(jù)源的表文件,運行界面如下:10、課程表報表的設(shè)計:學(xué)生表報表的設(shè)計過程說明如下:報表數(shù)據(jù)源 課程表.dbf,該表已在前面做了說明。報表排序條件 課程表.kch該報表由向?qū)С绦蛏?,其后進行了一些格式美化的調(diào)整修改工作,關(guān)鍵問題是要先定義好作為數(shù)據(jù)源的表文件,運行界面如下: 11、成績表報表的設(shè)計:成績表報表的設(shè)計過程說明如下:報表數(shù)據(jù)源 成績表.dbf,該表已在前面做了說明。報表分組條件 成績表.kcm報表排序條件 學(xué)生表.xh該報表由向?qū)С绦蛏?,其后進行了一些格式美化的調(diào)整修改工作,關(guān)鍵問題是要先定義好作為數(shù)據(jù)源的表文件,運行界面如下:12、幫助表單的設(shè)計:第一步:創(chuàng)建表單,并保存為 版權(quán).scx;第二步:添加lable1lable3,其caption的屬性如下圖所示 ;第三步: 設(shè)置其picture屬性,選擇背景圖片。 運行界面如下:3.4程序調(diào)試情況 本系統(tǒng)在設(shè)計好之后,初次調(diào)試過程中一直出現(xiàn)編譯不成功的現(xiàn)象,系統(tǒng)總是顯示你所編譯的目標(biāo)文件不存在,找不到你所編譯的目標(biāo)文件路徑,后來通過查資料才知道,Visual Foxpro 6.0軟件在對程序編譯的時候默認(rèn)路徑為D盤,隨后我們將原vf軟件裝入D盤,才編譯成功。編譯成功之后生成可執(zhí)行文件的過程如下:第一步:在“項目管理器”中設(shè)計完成相應(yīng)的數(shù)據(jù)庫、數(shù)據(jù)表、各種應(yīng)用界面、菜單以及主控程序“主程序.prg”,并將“主程序.prg”設(shè)置為主文件;第二步:生成可執(zhí)行文件。在項目管理器中 執(zhí)行“連編可執(zhí)行文件”創(chuàng)建可執(zhí)行文件(.exe),單擊“確定”按鈕后系統(tǒng)打開“另存為”對話框。將文件另存為“學(xué)生成績管理系統(tǒng)”,然后單擊“保存”按鈕,系統(tǒng)將自動對項目中的所有程序進行編譯。3.5 結(jié)論 在本次課程設(shè)計中,我主要負(fù)責(zé)學(xué)生成績管理系統(tǒng)的界面設(shè)計。界面設(shè)計非常重要,它是一套系統(tǒng)展現(xiàn)在使用者沒面前的最終東西,它的好壞將直接影響到使用者對本套系統(tǒng)的認(rèn)可,良好的仕途效果與平面設(shè)計,以及好的布局能給人留下深刻的印象。在設(shè)計過程中碰到了好多問題,但最終在同學(xué)和老師的幫助下都得到了解決,在設(shè)計學(xué)生成績管理界面時,我學(xué)會了好多在課本上學(xué)不到的東西,通過本次課程設(shè)計我也能將課本上的知識融會貫通,提到很好的輔助學(xué)習(xí)效果。 結(jié)束語 通過做課程設(shè)計,我確實學(xué)到了相當(dāng)多的東西。眼高手低是同學(xué)們的通病,有些事情看起來很同意,但做起來并不是如此。在做本次數(shù)據(jù)庫課程設(shè)計之前,我已經(jīng)將課本上的東西熟練掌握,自認(rèn)為做一個很簡單的課程設(shè)計應(yīng)該很容易,然而真正操作起來卻遇到了很多的麻煩。首先,在開始做課程設(shè)計時對整個模塊的把握不夠好,以至于浪費了好多時間而沒能按想象中的順利完成。其次,在編寫各個模塊的程序代碼時,真正感覺到了難度相當(dāng)大,每次編寫出來的代碼都需要經(jīng)過好幾次修改才能順利運行,而且在編寫代碼時常常會遇到一些很難解決的問題。但是我總相信一句話“只要堅持,一千次失敗過后,被會有一次閃亮的成功,凡事不能一蹴而就,對待學(xué)問、對待科研更是如此”,在做完這次課程設(shè)計之后,我也體會到了一種成功的喜悅。同時這次課程設(shè)計也讓我查到了許多在數(shù)據(jù)庫學(xué)習(xí)中的漏洞,我也通過這次的實踐機會完善了自己的知識,起到了很好的查缺補漏的效果。參考文獻1、關(guān)系數(shù)據(jù)庫原理與系統(tǒng),宋瀚濤,梁允榮,北京理工大學(xué)出版社,19922、數(shù)據(jù)庫系統(tǒng)設(shè)計及其應(yīng)用案例分析,劉秋生,東南大學(xué)出版社,20053、數(shù)據(jù)庫系統(tǒng)概論(第3版),王珊,高等教育出版社,20024、SQL Server數(shù)據(jù)庫原理及應(yīng)用教程,張麗,王強,清華大學(xué)出版社,20035、visual foxpro應(yīng)用于開發(fā)案例教程,徐謖, 清華大學(xué)出版社20056、Visual FoxPro 6.0數(shù)據(jù)庫原理與應(yīng)用,胡曉燕, 西安電子科技大學(xué)出版社7、Visual FoxPro 6.0程序設(shè)計教程,劉瑞新, 文成林 機械工業(yè)出版社附錄:源代碼清單 1、主程序clear allclose allset sysm offset sysm toset noti offset stat bar offset pale offset bell onset esca onset keyc to windset carr onset conf onset exac on /offset near onset ansi offset dele onset opti onset talk offset safety off*set defa to D:vf作業(yè)public xtbtxtbt=學(xué)生成績管理系統(tǒng)_screen.caption=xtbt_screen.icon=linux.icodo form 學(xué)生成績管理系統(tǒng).scxread eventsreturn2.查詢成績clear*set exact off*set defa to D:vf作業(yè)open database 學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page1.text1.textselect 學(xué)生表.xh,學(xué)生表.xm,學(xué)生表.xb,學(xué)生表.csrq,學(xué)生表.bj,課程表.kcm,課程表.js,課程表.xf,成績表.cj from 學(xué)生表 join 成績表 join 課程表;on 課程表.kch=成績表.kch on 學(xué)生表.xh=成績表.xh where 成績表.xh = skcmrelease thisformclear*set defa to D:vf作業(yè)open database 學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page2.text1.textselect * from lyxview where kch=skcmrelease thisform3.登陸clear*set defa to D:vf作業(yè)use mm.dbf exclloca all for alltrim(mm)=alltrim(thisform.Text1.text)if .not.eof()messagebox(登陸成功!)do 主菜單.MPRdo form 背景.scxrele thisformelsemessagebox(密碼錯誤,48,警告)endifquit4、修改密碼clearclose alluse mm.dbf exclif thisform.text2.text!=thisform.text3.Textmessagebox(兩次密碼輸入不同,48,警告)else loca all for alltrim(Mm)=alltrim(thisform.Text1.text)if .not.eof() replace Mm with thisform.text2.text messagebox(密碼修改成功,64,恭喜)else messagebox(密碼錯誤,48,警告)endifendifrele thisformclose all5.瀏覽close allopen database 學(xué)生成績管理系統(tǒng).dbcselect * from lyxviewselect xh as 學(xué)號,xm as 姓名,xb as 性別,bj as 班級,csrq as 出生日期,kch as 課程號,kcm as 課程名,xf as 學(xué)分,js as 教師,cj as 成績 from lyxviewclear*set defa to D:vf作業(yè)open database 學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page2.text1.textselect * from lyxview where kcm=skcmclear*set defa to D:vf作業(yè)open database 學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=bo1.valuethisform.refresh()select * from lyxview where bj=skcm6、查找按班級名查找學(xué)生:clear*set defa to D:vf作業(yè)open database data學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page2.text1.textselect 學(xué)生表.xh,學(xué)生表.xm,學(xué)生表.xb,學(xué)生表.csrq,學(xué)生表.bj,課程表.kcm,課程表.js,課程表.xf,成績表.cj from 學(xué)生表 join 成績表 join 課程表;on 課程表.kch=成績表.kch on 學(xué)生表.xh=成績表.xh where 學(xué)生表.bj=skcm*clear*set defa to D:vf作業(yè)open database 學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page2.text1.textselect * from lyxview where bj=skcm*skcm=bo1.value*按課程名查找課程:clear*set defa to D:vf作業(yè)open database data學(xué)生成績管理系統(tǒng).dbcpublic skcmskcm=thisform.pageframe1.page2.text1.textselect 學(xué)生表.xh,學(xué)生表.xm,學(xué)生表.xb,學(xué)生表.csrq,學(xué)生表.bj,課程表.kcm,課程表.js,課程表.xf,成績表.cj from 學(xué)生表 join

溫馨提示

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

評論

0/150

提交評論