版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南昌航空大學(xué)信息工程學(xué)院 數(shù)據(jù)庫(kù)原理 課程實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱(chēng): 學(xué)生成績(jī)信息管理系統(tǒng)實(shí)驗(yàn)時(shí)間: 2010年月2日指導(dǎo)教師: 班 級(jí) : 學(xué) 號(hào) : 姓 名 : 成 績(jī) : 一、實(shí)驗(yàn)?zāi)康模?) 通過(guò)完成從用戶(hù)需求分析、系統(tǒng)概要設(shè)計(jì)、系統(tǒng)詳細(xì)設(shè)計(jì)以及數(shù)據(jù)庫(kù)的SQL操作具體實(shí)現(xiàn)等全過(guò)程,把前面的各個(gè)實(shí)驗(yàn)更好地綜合起來(lái).(2) 進(jìn)一步理解和掌握教材中的相關(guān)內(nèi)容。(3) 掌握分析和設(shè)計(jì)一個(gè)大型數(shù)據(jù)庫(kù)系統(tǒng)的基本思路與方法。二、 實(shí)驗(yàn)要求1. 獨(dú)立完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。2. 用SQL實(shí)現(xiàn)數(shù)據(jù)庫(kù)的設(shè)計(jì),并在MS SQL Server上調(diào)試通過(guò)。3. 寫(xiě)出查詢(xún)、更新以及建立觸發(fā)器SQL語(yǔ)句和執(zhí)行結(jié)果。4. 掌
2、握?qǐng)?bào)表的使用。三、實(shí)驗(yàn)內(nèi)容綜合前面各章內(nèi)容設(shè)計(jì)并調(diào)試一學(xué)生成績(jī)管理系統(tǒng),Delphi作為前臺(tái)開(kāi)發(fā)工具,SQL Server完成后臺(tái)數(shù)據(jù)庫(kù)存管理。創(chuàng)建學(xué)生成績(jī)的統(tǒng)計(jì)(包括求班級(jí)各科成績(jī)的平均分);并實(shí)現(xiàn)對(duì)各科成績(jī)等的錄入、修改、刪除、查詢(xún)等功能;實(shí)現(xiàn)學(xué)生成績(jī)的統(tǒng)計(jì)(包括求班級(jí)各科成績(jī)的平均分);并實(shí)現(xiàn)對(duì)各科成績(jī)的排序。四、實(shí)驗(yàn)代碼及功能注釋用戶(hù)登陸界面實(shí)驗(yàn)程序:procedure TForm1.Button1Click(Sender: TObject);用戶(hù)登陸var ret:integer;beginadoconnection1.Open;with ADOStoredProc1 dobegin
3、Close;ProcedureName:='proc_login'Parameters.Clear;Parameters.Refresh;Parameters.ParamByName('username').Value:= Edit1.text;Parameters.ParamByName('password').Value:= Edit2.text;ExecProc;ret:= Parameters.ParamByName('return_value').Value;end;if ret=1 then /用戶(hù)名密碼匹配begin
4、showmessage('登陸成功');form3.show;endelseshowmessage('你不是用戶(hù),請(qǐng)注冊(cè)');end ;procedure TForm1.Button2Click(Sender: TObject);若不是用戶(hù),觸發(fā)用戶(hù)登陸界面顯示beginform2.show;end;procedure TForm1.Button3Click(Sender: TObject);退出該管理系統(tǒng)beginform1.Close;end;說(shuō)明:在這里,使用了adostoredproc1控件和adoconnection1控件,它們的connections
5、tring屬性都要與所設(shè)計(jì)的數(shù)據(jù)庫(kù)相連,在查詢(xún)分析器中,要運(yùn)行存儲(chǔ)過(guò)程如下:CREATE procedure proc_loginusername varchar(20),password varchar(20)asdeclare result intselect result=count(*) from users where username=username and passwords=passwordif result=0return 0return 1GO用戶(hù)注冊(cè)界面實(shí)驗(yàn)程序:procedure TForm2.Button1Click(Sender: TObject);新用戶(hù)注冊(cè)be
6、gin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add('insert into users(username,passwords,核對(duì)密碼,性別,出生年月,聯(lián)系地址,聯(lián)系電話(huà),郵政編碼,電子郵箱)'+'values(:1,:2,:3,:4,:5,:6,:7,:8,:9)'); adoquery1.parameters.parambyname('1').value:=''+edit1.text+'' adoquery1.parameters.param
7、byname('2').value:=''+edit2.text+'' adoquery1.parameters.parambyname('3').value:=''+edit3.text+'' adoquery1.parameters.parambyname('4').value:=''+combobox1.text+'' adoquery1.parameters.parambyname('5').value:=''+
8、combobox1.text+' '+combobox1.text+'' adoquery1.parameters.parambyname('6').value:=''+edit4.text+'' adoquery1.parameters.parambyname('7').value:=''+edit5.text+'' adoquery1.parameters.parambyname('8').value:=''+edit6.text+
9、'' adoquery1.parameters.parambyname('9').value:=''+edit7.text+'' adoquery1.execsql;end;說(shuō)明:在該數(shù)據(jù)庫(kù)中,建了一個(gè)名為users的用戶(hù)表,存儲(chǔ)用戶(hù)的信息。只有是用戶(hù)在登陸時(shí),才能進(jìn)入主界面,當(dāng)不是用戶(hù)在登陸時(shí),必須先進(jìn)行新用戶(hù)注冊(cè),才能進(jìn)入主系統(tǒng)。 系統(tǒng)主界面學(xué)生基本信息查詢(xún)精確查詢(xún)程序:procedure TForm3.Button1Click(Sender: TObject);beginwith adoquery1 dobegin if r
10、adiobutton1.Checked then /通過(guò)單選按鈕的選擇來(lái)判斷是要進(jìn)行精確查詢(xún)還是模糊查詢(xún) begin adoquery1.Close ; adoquery1.SQL.Clear ; adoquery1.SQL.Add('select * from 學(xué)生表 where 學(xué)號(hào)='''+edit1.text+'''' ); adoquery1.Open; end;end;說(shuō)明:由于學(xué)生表中,學(xué)號(hào)為主鍵,因此要查此表中學(xué)生基本信息,只要輸入主鍵值即可得一條記錄,即實(shí)現(xiàn)精確查詢(xún)。模糊查詢(xún)程序:procedure TForm3
11、.Button3Click(Sender: TObject);begin with adoquery1 do begin if radiobutton2.Checked then begin if (edit2.Text <>'')or (edit3.Text <>'')or(edit4.Text <>'')or(edit5.Text <>'') or(edit6.Text <>'')then begin adoquery1.Close; adoquery
12、1.SQL.Clear; adoquery1.SQL.Add('select * from 學(xué)生表'); adoquery1.SQL.Add('where(學(xué)號(hào) like '''+'%'+edit2.text+'%'+''')'); adoquery1.SQL.Add('or(姓名 like '''+'%'+edit3.text+'%'+''')'); adoquery1.SQL.Add(
13、'or(所在系別 like '''+'%'+edit4.text+'%'+''')'); adoquery1.SQL.Add('or(所在專(zhuān)業(yè) like '''+'%'+edit5.text+'%'+''')'); adoquery1.SQL.Add('or(所在班級(jí) like '''+'%'+edit6.text+'%'+''
14、;')'); adoquery1.Open ; end else begin application.MessageBox('沒(méi)有查詢(xún)條件','提示',mb_ok); exit; end; end; end;end;說(shuō)明:當(dāng)輸入的信息不是主鍵時(shí),由于滿(mǎn)足該輸入條件的記錄可能不只一個(gè),因此得到的是一個(gè)模糊查詢(xún)的結(jié)果。學(xué)生成績(jī)查詢(xún)方法與學(xué)生基本信息查詢(xún)一致。學(xué)生基本信息錄入實(shí)驗(yàn)程序:procedure TForm4.Button1Click(Sender: TObject);begin adoquery1.close; adoquery1.sql.c
15、lear; adoquery1.sql.add('insert into 學(xué)生表(學(xué)號(hào),姓名,民族,出生年月,籍貫,性別,所在系別,所在專(zhuān)業(yè),所在班級(jí),政治面貌,家庭住址,郵政編碼,聯(lián)系電話(huà))'+'values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)'); adoquery1.parameters.parambyname('1').value:=''+edit1.text+'' adoquery1.parameters.parambyname('2')
16、.value:=''+edit2.text+'' adoquery1.parameters.parambyname('3').value:=''+edit3.text+'' adoquery1.parameters.parambyname('4').value:=''+combobox1.text+' '+combobox2.text+'' adoquery1.parameters.parambyname('5').value:=
17、9;'+edit4.text+'' adoquery1.parameters.parambyname('6').value:=''+combobox3.text+'' adoquery1.parameters.parambyname('7').value:=''+combobox4.text+'' adoquery1.parameters.parambyname('8').value:=''+edit5.text+'' adoq
18、uery1.parameters.parambyname('9').value:=''+edit6.text+'' adoquery1.parameters.parambyname('10').value:=''+edit7.text+'' adoquery1.parameters.parambyname('11').value:=''+edit8.text+'' adoquery1.parameters.parambyname('12'
19、;).value:=''+edit9.text+'' adoquery1.parameters.parambyname('13').value:=''+edit10.text+'' adoquery1.execsql;end;在SQL Server中查看錄入結(jié)果錄入前:錄入后:說(shuō)明:從錄入前與錄入后表的比較看到,實(shí)現(xiàn)了學(xué)號(hào)為aaa學(xué)生基本信息的錄入。求學(xué)生平均成績(jī)、成績(jī)排序并顯示實(shí)驗(yàn)程序:procedure TForm3.Button4Click(Sender: TObject);begin with adoque
20、ry1 dobegin if radiobutton3.Checked then與學(xué)生基本信息查詢(xún)一樣,這里為成績(jī)精確查詢(xún) beginadoquery1.Close ; adoquery1.SQL.Clear ; adoquery1.SQL.Add('select * from 成績(jī)信息表 where 學(xué)號(hào)='''+edit9.text+'''' ); adoquery1.Open; end; if radiobutton4.Checked then與學(xué)生基本信息查詢(xún)一樣,這里為成績(jī)模糊查詢(xún) begin if (edit10.te
21、xt <>'')or (edit11.Text <>'')or(edit12.Text <>'')or(edit13.Text <>'') or(edit14.Text <>'')then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from 成績(jī)信息表'); adoquery1.SQL.Add('where(學(xué)號(hào) like '
22、;''+'%'+edit10.text+'%'+''')'); adoquery1.SQL.Add('or(姓名 like '''+'%'+edit11.text+'%'+''')'); adoquery1.SQL.Add('or(所在系別 like '''+'%'+edit12.text+'%'+''')'); adoque
23、ry1.SQL.Add('or(所在專(zhuān)業(yè) like '''+'%'+edit13.text+'%'+''')'); adoquery1.SQL.Add('or(所在班級(jí) like '''+'%'+edit14.text+'%'+''')'); adoquery1.Open ; end else begin application.MessageBox('沒(méi)有查詢(xún)條件','提示
24、9;,mb_ok); exit; end; end; if radiobutton9.Checked then求每個(gè)學(xué)生的課程平均成績(jī) begin adoquery1.Close ; sql.Clear ; sql.Add('select 學(xué)號(hào),姓名,AVG(成績(jī)) as 平均成績(jī) from 成績(jī)信息表 where 所在班級(jí)=''070413'' group by 學(xué)號(hào),姓名'); adoquery1.Open ; end; if radiobutton11.Checked then將學(xué)生成績(jī)按從低到高排序 begin adoquery1.Clo
25、se ; sql.Clear ; sql.Add('select 學(xué)號(hào),姓名,avg(成績(jī)) as 平均成績(jī) from 成績(jī)信息表 group by 學(xué)號(hào),姓名 order by 平均成績(jī)'); adoquery1.open; end;end;end;求平均成績(jī)界面與平均成績(jī)排序后界面:說(shuō)明:使用到了數(shù)據(jù)庫(kù)的自帶函數(shù)avg() 來(lái)求平均成績(jī),按平均成績(jī)排序時(shí),只要在已經(jīng)做好的平均成績(jī)顯示程序上加上order by 語(yǔ)句即可。學(xué)生基本信息刪除與修改實(shí)驗(yàn)程序:procedure TForm3.Button6Click(Sender: TObject);begin with adoq
26、uery1 do begin if radiobutton7.Checked then begin adoquery1.Close ; adoquery1.SQL.Clear ; adoquery1.SQL.Add('update 學(xué)生表 set '+combobox1.text+'='''+edit19.text+''''); /edit19 編輯框用來(lái)輸入要更改的字段名 adoquery1.SQL.Add('where 學(xué)號(hào)='''+edit18.text+''''); adoquery1.execsql; end; if radiobutton8.Checked then begin a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠房裝修工程設(shè)計(jì)與施工監(jiān)理合同4篇
- 2025年度廠房租賃安全協(xié)議書(shū)(智能管理系統(tǒng)適用)4篇
- 2024版貨品物流服務(wù)協(xié)議
- 2025年度新型建材2024grc線條裝飾線條供應(yīng)協(xié)議3篇
- 工程建設(shè)國(guó)家標(biāo)準(zhǔn)《大體積混凝土溫度測(cè)控技術(shù)規(guī)范》條文說(shuō)明
- 2025年度人工智能教育平臺(tái)開(kāi)發(fā)與應(yīng)用合同9篇
- 專(zhuān)屬2024財(cái)務(wù)代表協(xié)議條款版B版
- 個(gè)人房產(chǎn)抵押借款協(xié)議標(biāo)準(zhǔn)格式版
- 2024虛擬現(xiàn)實(shí)產(chǎn)品開(kāi)發(fā)與銷(xiāo)售合同
- 2024版單身公寓租賃合同附圖書(shū)閱覽室使用協(xié)議3篇
- 保潔服務(wù)崗位檢查考核評(píng)分標(biāo)準(zhǔn)
- 稱(chēng)量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專(zhuān)業(yè))
- 2022年中國(guó)育齡女性生殖健康研究報(bào)告
- 各種靜脈置管固定方法
- 消防報(bào)審驗(yàn)收程序及表格
- 教育金規(guī)劃ppt課件
- 呼吸機(jī)波形分析及臨床應(yīng)用
- 常用緊固件選用指南
- 私人借款協(xié)議書(shū)新編整理版示范文本
評(píng)論
0/150
提交評(píng)論