【正文】
g)=num) then32 begin showmessage(39。所選的課程:39。+trim((39。kcmc39。).AsString)+39。 已在課表中,請選擇其他課程39。)。 exit。 end。 //判斷課程是否與已選課程有時間沖突 if ((39。sksjt39。).AsInteger=day)and((39。sksjj39。).AsInteger=section) then begin showmessage(39。所選課程的上課時間與已選的 39。+trim((39。kcmc39。).AsString)+39。 沖突!39。)。 exit。 end。 。 end。 。 end。//選課:=39。insert into XKB([xh],[kxh]) values(39。39。39。+id+39。39。39。,39。39。39。+trim([0].Text)+39。39。39。)39。listcourse(id)。//刷新數(shù)據(jù)表end。//刪除已選課程procedure (Sender: TObject)。beginif (39。確實刪除所選課程?39。,39。確定刪除39。,MB_OKCANCEL)=IDOK then33 begin :=39。delete from XKB where (xh=39。39。39。+trim([0].Text)+39。39。39。)and(kxh=39。39。39。+trim([1].Text)+39。39。39。)39。 。 listcourse(id)。//刷現(xiàn)列表 end。end。procedure (Sender: TObject。 var Action: TCloseAction)。beginaction:=cafree。end。procedure (Sender: TObject)。begin。(39。select ,kcmc,js,kkxb,pym,sksjj,skdd from KCB,KCXX where =39。)。 :=adoquery3。 :=false。 :=true。end。procedure (Sender: TObject)。begin。(39。select ,kcmc,js,kkxb,pym,sksjj,skdd from KCB,XSXX,KCXX,XKB where = and = and 34=39。)。end。end.核心代碼://根據(jù)輸入的學(xué)號顯示學(xué)生信息和課表procedure (Sender: TObject。 var Key: Char)。//var i,j:integer。//rt:Trect。begin//回車輸入,將學(xué)生的信息顯示在文本框中if key=13 then begin id:=trim()。 。 。圖 課表查詢模塊的系統(tǒng)截圖35 (39。select ,xm, sksjj,skdd from KCXX,KCB,XSXX,BJXX where = and = and xh=39。39。39。+id+39。39。39。order by sksjt asc39。)。 。 :=trim((39。xm39。).AsString)。 :=trim((39。bjmc39。).AsString)。 if =0 then begin showmessage(39。學(xué)號輸入錯誤39。)。 :=39。39。 exit。 end else begin :=adoquery1。 :=false。 :=true。 end。end。end。end.36//顯示某課程學(xué)生的分數(shù)procedure (Sender: TObject)。beginshowscore()。end。//修改選課學(xué)生的成績procedure (Sender: TObject)。varnum:string。begin if =39。39。 then begin showmessage(39。必須輸入有效成績39。)。 exit。 end else begin :=39。update CJB set cj=39。39。39。+trim()+39。39。39。 where xh=39。39。39。++39。39。39。39。 。 :=false。圖 成績輸入模塊的系統(tǒng)截圖37 :=true。 end。 num:=trim([0].Text)。 if num=39。39。 then begin showmessage(39。請先選中一個選課學(xué)生39。)。 exit。 end。 //修改學(xué)生成績 :=39。update CJB set cj=39。39。39。+trim()+39。39。39。 where bh=39。39。39。+num+39。39。39。39。 。 showscore()。end。//顯示某課程學(xué)生的分數(shù)procedure 。varpyCode,courseID,courseName:string。//保存輸入的拼音碼和課程名稱,課程編號begin courseNum:=39。39。//清空保存在全局變量中的課程編號 pyCode:=trim()。 courseID:=trim()。 courseName:=trim()。 。 。 (39。select ,xm, from CJB ,KCXX,XSXX where = and = and ( like 39。39。%39。+courseID+39。%39。39。)and( like 39。39。%39。+pyCode+39。%39。39。)and( like 39。39。%39。+courseName+39。%39。39。)39。)。 。 if 0 then //如果有查詢結(jié)果,則保存課程編號38 courseNum:=courseID。end。//【成績】文本框中只允許輸入數(shù)字,小數(shù)點procedure (Sender: TObject。 var Key: Char)。beginif not (key in [39。039。..39。939。,39。.39。,13,8]) then key:=0。end。//調(diào)用儲存過程,提交成績procedure (Sender: TObject)。begin :=39。exec sf_CJTJ 39。39。39。+courseNum+39。39。39。39。 。 showscore()。end。//調(diào)用儲存過程,結(jié)束選課procedure (Sender: TObject)。begin :=39。exec sf_ZZXK39。 。 showmessage(39。結(jié)束選課成功,請選擇輸入要輸入成績的課程39。)。end。procedure (Sender: TObject。 var Action: TCloseAction)。begin action:=cafree。end。procedure (Sender: TObject)。begin:=39。xh39。end。end.39核心代碼:procedure (Sender: TObject)。var UserName,PassWord:string。beginPassWord:=trim()。UserName:=trim()。if(=39。39。)or(=39。39。)or(=39。39。)then showmessage(39。密碼不能為空!39。)else begin if(PassWord)then begin showmessage(39。原密碼不正確!39。)。 :=39。39。 end else begin if()then begin showmessage(39。兩次輸入的新密碼不同,請重新輸入!39。)。圖 修修改密碼模塊的系統(tǒng)截圖40 :=39。39。 :=39。39。 end else begin :=39。update DLB set mm=39。39。39。++39。39。39。where klh=39。39。39。+UserName+39。39。39。39。 。 。 showmessage(39。恭喜,密碼修改成功,請牢記你的新密碼!39。)。 end。 end。 end。end。5 總結(jié)該教務(wù)管理系統(tǒng)總體說來功能比較齊全,學(xué)生和教師的一些基本的功能都已經(jīng)具備;數(shù)據(jù)庫的設(shè)計方面,建有學(xué)生信息(XSXX) 、課程信息(KCXX)、選課信息(XKXX)、籍貫代碼表(JGDMB)、政治面貌代碼表(ZZMMDMB)、成績表(CJB)、課程表(KCB)、班級信息(BJXX)、民族代碼表 (MZDMB)、登陸表(DLB)和學(xué)籍代碼表 (XJDMB)和兩個存儲過程:sf—成績提交、sf—終止選課,數(shù)據(jù)庫中存在一些問題,如數(shù)據(jù)冗余,不夠完善,沒有建立觸發(fā)器,表和字段的可讀性也不是很強,都是拼音的簡寫。但在做課程設(shè)計的過程中也遇到很多問題,一開始時數(shù)據(jù)庫中表與表的關(guān)系有點模糊,但經(jīng)過多次做了之后對表的關(guān)系比較清晰。其中最大的問題是在編寫程序時,由于 DELPHI 7 學(xué)的不好,編寫起來有點困難,總是這里出那里出錯,經(jīng)過調(diào)試后終于把錯誤慢慢減少了,通過這次課程設(shè)計使我收獲了好多,能夠熟悉地建數(shù)據(jù)庫,寫查詢語句。41參考文獻[1] 王珊. 數(shù)據(jù)庫系統(tǒng)概論 高等教育出版社 2022[2] 7 開發(fā)數(shù)據(jù)庫實例. 清華大學(xué)出版社, 2022.[3] 李文池。DELPHI 程序設(shè)計基礎(chǔ)。中國水利水電出版社。2022