系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第1頁
系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第2頁
系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第3頁
系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第4頁
系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、通過這次課程設(shè)計,熟練掌握軟件開發(fā)過程中數(shù)據(jù)庫的使用,理解以數(shù) 據(jù)庫為中心的軟件開發(fā)設(shè)計思想,熟練應(yīng)用數(shù)據(jù)庫的增、刪、改、查詢等操 作。本次課程設(shè)計是基于 SQL Server 2005由VC作為前臺界面設(shè)計軟件的系 統(tǒng)。.系統(tǒng)的功能分析與設(shè)計1系統(tǒng)功能需求分析1)用戶可以從數(shù)據(jù)庫中獲得學(xué)生基本信息,課程信息,班級信息,選課信 息,教師信息,從而需要建立以上各個信息的模塊來實現(xiàn)數(shù)據(jù)交互。2)用戶要完成查詢,添加,修改,刪除等基本處理功能。3)學(xué)生能利用該系統(tǒng)進(jìn)行選課。管理員可以對所有學(xué)生的選課信息進(jìn)行審 核。4)可以查詢學(xué)生個人的成績,同時可以查詢班級的總體成績。在查詢班級 的整體成績時可以按

2、課程進(jìn)行查詢或者班級號進(jìn)行查詢。在查詢過程中 可以計算平均成績和及格率等信息。5)安全性,協(xié)調(diào)性和完整性。當(dāng)用戶添加學(xué)號時,要保證學(xué)號不能重復(fù), 在選課信息中學(xué)號和課程號的組合也不能重復(fù),學(xué)生基本信息,課程信 息和選課信息中學(xué)號,課程號必須一致這樣才能實現(xiàn)查詢功能和各個信 息模塊的協(xié)調(diào)。選課表中學(xué)號和課程號必須使用已經(jīng)存在的號碼,所以 對數(shù)據(jù)進(jìn)行添加,修改,刪除,瀏覽進(jìn)行監(jiān)控,進(jìn)行出錯提示及處理。2. 系統(tǒng)功能概要設(shè)計:根據(jù)之前的功能需求分析得到本系統(tǒng)的功能模塊圖如下:三.系統(tǒng)數(shù)據(jù)庫設(shè)計與實現(xiàn)1. 需求分析:根據(jù)以上對該系統(tǒng)的功能分析,得到系統(tǒng)所需的數(shù)據(jù)如下:1)學(xué)生基本信息,包括:學(xué)號、姓名

3、、性別、年齡等;2)課程信息,包括:課程名、課程號、先行課、學(xué)分;3)選課信息,包括:學(xué)號,課程號,成績。4)班級信息,包括:班級號,班級名。5)教師信息,包括:教師號,姓名,性別,職稱。通過對系統(tǒng)數(shù)據(jù)的分析,得到系統(tǒng)業(yè)務(wù)流圖和數(shù)據(jù)字典:2) 數(shù)據(jù)字典(DD):本系統(tǒng)需要使用的數(shù)據(jù)包括以下關(guān)系表1:學(xué)生基本信息Stude nt字段名稱數(shù)據(jù)類型字段大小作用必填字段是否主鍵Snochar5學(xué)號是是Sn amechar20姓名是否Ssexchar10性別是否Sageint10年齡是否SCI nochar10所在班是否表2:課程信息Course字段名稱數(shù)據(jù)類型字段大小作用必填字段是否主鍵Cnochar

4、10課程號是是Cn amechar20課程名是否cpnochar10課程名是否CT nochar10教師號是否Ccreditchar10學(xué)分是否表3:選課信息一一SC字段名稱數(shù)據(jù)類型字段大小作用必填字段是否主鍵Snochar10學(xué)號是是Cnochar10課程號是是Gradeint10成績否否表4 :教師信息Teacher字段名稱數(shù)據(jù)類型字段大小作用必填字段是否主鍵Tnochar10教工號是是Tn amechar20教師名是否Tsexchar2性別是否Tstatusvchar29職位否否2. 概念結(jié)構(gòu)設(shè)計根據(jù)之前系統(tǒng)所需數(shù)據(jù)的需求分析,得到系統(tǒng)數(shù)據(jù)的E-R圖如下:3. 邏輯結(jié)構(gòu)設(shè)計:(1).將上

5、面E R圖轉(zhuǎn)換為關(guān)系模型,關(guān)系的碼為黑體字加下劃線。 學(xué)生(學(xué)號,姓名,性別,年齡,所在班)此為學(xué)生實體對應(yīng)的關(guān)系模式,其中學(xué)號是碼。課程(課程號,課程名,先行課名,學(xué)分) 此為課程實體對應(yīng)的關(guān)系模式,其中課程號是碼。選修(學(xué)號,課程號,成績) 此為聯(lián)系“選修”對應(yīng)的關(guān)系模式,其中(學(xué)號,課程號)是碼。(2).設(shè)計用戶子模式 為學(xué)生用戶建立視圖:學(xué)生1 (姓名,性別,年齡,所在系,課程號,課程名,學(xué)分,成績) 定義學(xué)生存取權(quán)限:為查詢 為老師用戶建立視圖:學(xué)生2 (學(xué)號,姓名,性別,年齡,所在系,課程號,課程名,先行課 名,學(xué)分,成績)定義教師存取權(quán)限為:查詢、添加、修改、刪除4 數(shù)據(jù)庫的實現(xiàn)

6、數(shù)據(jù)庫中庫和表的定義(見以下 SQL代碼)CREATE DATABASE stu-數(shù)據(jù)庫名為 stuON (NAME=stu_data,-數(shù)據(jù)庫的邏輯名為stu_dataFILENAME= E:sql_datastu_data.mdf,-數(shù)據(jù)庫的物理名,請事先在 E盤上建立 sql data文件夾。 SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=10%-數(shù)據(jù)庫的初始大小為10MB-數(shù)據(jù)庫的最大容量為50MB-數(shù)據(jù)庫容量自動按10 %的比例增長LOG ON (NAME=stuog,-日志文件的邏輯名為stu_logFILENAME=E:sql_datastude nt_

7、log.ldf ,SIZE=2MB,MAXSIZE=5MB,FILEGR0WTH=1MB);CREATE TABLE STUDENT (sno char(5) not n ull,sn ame char(8),ssex char(2),sage smalli nt,sdept char(10),primary key(s no),check(ssex in (男,女), check(sage betwee n 15 and 30);CREATE TABLE COURSE(eno char(2) not n ull,cn ame char(12),epno char(2),ccredit dec

8、imal(1),primary key(c no);CREATE TABLE SC(sno char(5) not n ull,eno char(2) not nu II,grade decimal(3),primary key(s no,cno),foreig n key(s no) refere nces stude nt(s no), foreig n key(c no) refere nces course(c no), check(grade betwee n 0 and 100);CREATE TABLE TEACHER (Tno char(5) not n ull,Tn ame

9、char(8),Tsex char(2),Tstatus vchar(20);圖1:設(shè)計的student表丟-dbo.StudrltSnoSr ameSageSClno李明舅201劉明女舊2200215123王敏女1312W215125男224200215126張菲女2丄2200215127魏延男233200215128202200215129劉波男223來MJLLAtaJVLU圖2:設(shè)計的Course表幸-dbo.Teacher1 表-dbo.Course 措要CnoCnameCpcoQredtCTno數(shù)據(jù)屋1412323Z信息系統(tǒng)4斗74操怔杲統(tǒng)2355數(shù)據(jù)結(jié)構(gòu)64斗6PASCAL54&7

10、mfu1斗2AtMAIMAIAlH圖3:設(shè)計的SC表表-db口.St 表-dbo.Course 表-dbo.Student5roCnoGrade2002151211922B02151212852002151213醐2QQ215121年922M215L222SO2002151223852002151224802002151231go200215123265SOT2151233552002151234852002151251303M215125230200215125S75200215125吟602A03151J61302002151262B0QQ1512639aM0215LK4goML他AtCZ

11、圖4:設(shè)計的Teacher表/ S - dbo.Teacher -dbc.SC 表-dbo.Course表-dbo,StudentTnoTnanneTsexTstatus王明2臟明里3弓性畐燉侵4李晟男副教撩5女5叔7戟宗男M.L四、系統(tǒng)功能的詳細(xì)設(shè)計與實現(xiàn)本系統(tǒng)采用VC 6.0+SQL Server2005進(jìn)行開發(fā),運(yùn)行在 Windows 7環(huán)境下。前臺應(yīng)用程序采用VC6.0軟件編寫,后臺數(shù)據(jù)庫采用 SQL Server2005設(shè)計。各 功能模塊界面如下:1進(jìn)入選擇界面學(xué)生信息|教師信息|課程息選課信息學(xué)生成績查詢班級j亦績查詢|退岀系統(tǒng)3.進(jìn)入各部分查詢,插入,刪除界面(1)學(xué)生信息laf

12、cjvi活 aoljmaad 俺罰 *iml 冋1|jwkj&l7EOB12S90N2N 它 Z112muTl.N ml N2NS2SS-N 111 xlin D13口 IDSSWS 111 mu 223S2232 000 oo M-QO 000 ass rum H2S2N#號1,畦勸廠牛31wsa石施l 1EHZD1(2)班級信息濟(jì)R 口 I JWP|脩幘| 転砌甲巨J| 冋祠雖FT|程羞 室M化丄 丸警異(3 )教師信息I壽価I藩理|刪降|修改|最前|向前|冋后|最后|型嫂教副2:副教諛授澧授 稱掛援刻如刎捋授教師T性別T1姓名耿稱二隠扁E仝白確走1取消1遽耳(4 )課程信息8 7 4 3

13、 2 144443424沸刀口|11| 修改| Mau 冋削| 問后| 雖后課程先修課課程號I氓程名寧井 |o教殲號IIT取消 T I 追回 I|先修課課號 高高埶I高姒11裁據(jù)結(jié)枸1操柞系繞1In辰、索縊1數(shù)學(xué)1魏堀偉丄(5)選課信息00000 5 0055&005 0Q9 9 8 3 6 7 s QU 8 Q 6 9 8 8 9 Q查迴 添加I刪岡型趣畫旦叵I最啟I課程劊成績|0學(xué)號成績200215126Z002151262002151262002151262002151252002151252002151252002151252002151232002151232002151232002

14、15123200215122200215122200215122口介門1巧1914學(xué)生個人成績查詢和班級總體成績查詢卞注傑円樂餡”內(nèi)73 = tiif”桿蹈明鬻于裂話淌入歴=.陶的學(xué)主學(xué)石學(xué)主価虛姓名廠rh平均咸帝|o孝號L處曲剛土級號罔堵工程 寰術(shù)追叵班妣#催垃頊色訶-推辨壻對應(yīng)誦謁古詢-廠培嘯入珂飯主軒律號I班縄名I詵傑人尅7T豐:或鰥rjP格豐帶坪秤詁詢廠晴鴨人像程號廠詵澤人執(zhí)F毎高丸稔0- 土:i 我績 |o及箱車|0斡無號Asfr十旦& t 呈trf.9 備 TJ .K丿 Hd -Is - T1 i- 7? TT i.-好程號I啤程合I倉爍人埶1帚14-4 3S 3 3 2111附車

15、址欝豈:返回附錄:系統(tǒng)設(shè)計源代碼查找代碼:void CDialogSTU:O nButto nQuery()/ TODO: Add your con trol no tificati on han dler code here m_StulD=;m_StuName=;m_StuAge=0;m_StuSex=; m_ClaID=; UpdateData(false); FOUNCTION=SEARCH; m_btnQuery.SetState(TRUE); /使其他按鍵無效 m_btnAdd.EnableWindow(FALSE); m_btnDelete.EnableWindow(FALSE)

16、; m_btnModify.EnableWindow(FALSE); m_btnFirst.EnableWindow(FALSE); m_btnPre.EnableWindow(FALSE); m_btnNext.EnableWindow(FALSE); m_btnLast.EnableWindow(FALSE);m_btnOK.SetFocus();刪除代碼:void CDialogSTU:OnButtonDelete()/ TODO: Add your control notification handler code here m_StuID=;m_StuName=;m_StuAge=0

17、; m_StuSex=; m_ClaID=; FOUNCTION=DEL; UpdateData(false);/使添加控件按下 m_btnDelete.SetState(TRUE);/使其他控件無效 m_btnQuery.EnableWindow(FALSE); m_btnAdd.EnableWindow(FALSE); m_btnModify.EnableWindow(FALSE); m_btnFirst.EnableWindow(FALSE); m_btnPre.EnableWindow(FALSE); m_btnNext.EnableWindow(FALSE); m_btnLast.E

18、nableWindow(FALSE); m_btnOK.SetFocus();添加代碼:void CDialogSTU:OnButtonAdd()/ TODO: Add your control notification handler code here m_StuID=;m_StuName=;m_StuAge=0; m_StuSex=; m_ClaID=; UpdateData(false); FOUNCTION=ADD;/使添加控件按下m_btnAdd.SetState(TRUE);/使其他控件無效m_btnQuery.EnableWindow(FALSE); m_btnDelete.E

19、nableWindow(FALSE); m_btnModify.EnableWindow(FALSE); m_btnFirst.EnableWindow(FALSE); m_btnPre.EnableWindow(FALSE); m_btnNext.EnableWindow(FALSE); m_btnLast.EnableWindow(FALSE); m_btnOK.SetFocus();修改代碼:void CDialogSTU:OnButtonModify()/ TODO: Add your control notification handler code herem_ctlStuID.S

20、etReadOnly();/ 只讀,不能修改學(xué)號FOUNCTION=MODIFY;UpdateData(false);/使添加控件按下 m_btnModify.SetState(TRUE);/使其他控件無效 m_btnQuery.EnableWindow(FALSE); m_btnAdd.EnableWindow(FALSE); m_btnDelete.EnableWindow(FALSE); m_btnFirst.EnableWindow(FALSE); m_btnPre.EnableWindow(FALSE); m_btnNext.EnableWindow(FALSE); m_btnLas

21、t.EnableWindow(FALSE);m_btnOK.SetFocus();最前代碼:void CDialogSTU:OnButtonFirst()/ TODO: Add your control notification handler code here m_pRecordset-MoveFirst();_variant_t var;CString str;tryvar=m_pRecordset-GetCollect(Sno); str=(LPCSTR)_bstr_t(var);m_StuID=str; var=m_pRecordset-GetCollect(Sname); str=

22、(LPCSTR)_bstr_t(var);m_StuName=str;var =m_pRecordset-GetCollect(Sage); m_StuAge=var.iVal;var=m_pRecordset-GetCollect(Ssex);str=(LPCSTR)_bstr_t(var);m_StuSex=str;var=m_pRecordset-GetCollect(Sclno); str=(LPCSTR)_bstr_t(var);m_ClaID=str;UpdateData(false);catch(_com_error *e)AfxMessageBox(e-ErrorMessage

23、();向前代碼:void CDialogSTU:OnButtonPre()/存在一個問題是:單擊某條時,記錄是不會同時更新 到該記錄中的/ TODO: Add your control notification handler code here m_pRecordset-MovePrevious();_variant_t var;CString str;if(m_pRecordset-adoBOF)MessageBox( 已經(jīng)是第一條記錄! ); m_pRecordset-MoveFirst();tryvar=m_pRecordset-GetCollect(Sno); str=(LPCSTR

24、)_bstr_t(var);m_StuID=str; var=m_pRecordset-GetCollect(Sname); str=(LPCSTR)_bstr_t(var);m_StuName=str;var =m_pRecordset-GetCollect(Sage); m_StuAge=var.iVal;var=m_pRecordset-GetCollect(Ssex);str=(LPCSTR)_bstr_t(var); m_StuSex=str;var=m_pRecordset-GetCollect(Sclno); str=(LPCSTR)_bstr_t(var);m_ClaID=st

25、r;UpdateData(false);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();向后代碼:void CDialogSTU:OnButtonNext()/ TODO: Add your control notification handler code here m_pRecordset-MoveNext();_variant_t var;CString str;if(m_pRecordset-adoEOF)MessageBox( 已經(jīng)是末記錄! ); m_pRecordset-MoveLast();tryvar=m_pRecordset-GetCollect(Sno); str=(LPCSTR)_bstr_t(var);m_StuID=str; var=m_pRecordset-GetCollect(Sname); str=(LPCSTR)_bstr_

溫馨提示

  • 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

提交評論