//------------显示某课程学生的分数----- procedure TScore.BitBtn2Click(Sender: TObject); begin showscore(); end;
//--------------修改选课学生的成绩-------------- procedure TScore.BitBtn4Click(Sender: TObject); var num:string; begin
if edit4.Text='' then begin
showmessage('必须输入有效成绩'); exit; end else begin
adocommand1.CommandText:='update CJB set cj='''+trim(edit4.Text)+''' xh='''+DBEdit1.Text+''''; adocommand1.Execute;
DBGrid1.DataSource.DataSet.Active:=false; DBGrid1.DataSource.DataSet.Active:=true; end;
num:=trim(dbgrid1.Fields[0].Text); if num='' then begin
showmessage('请先选中一个选课学生'); exit; end;
where 36
//修改学生成绩
adocommand1.CommandText:='update CJB set cj='''+trim(edit4.Text)+''' where bh='''+num+'''';
adocommand1.Execute; showscore(); end;
//------------显示某课程学生的分数------------- procedure TScore.showscore; var
pyCode,courseID,courseName:string;//保存输入的拼音码和课程名称,课程编号 begin
courseNum:='';//清空保存在全局变量中的课程编号 pyCode:=trim(edit1.Text); courseID:=trim(edit2.Text); courseName:=trim(edit3.Text); adoquery1.Close; adoquery1.SQL.Clear;
adoquery1.SQL.Add('select CJB.bh,KCXX.kcmc,XSXX.xh,xm, CJB.cj from CJB ,KCXX,XSXX where CJB.kcbh=KCXX.kcbh and CJB.xh=XSXX.xh and (CJB.kcbh
like
''%'+courseID+'%'')and(KCXX.pym
like
''%'+pyCode+'%'')and(KCXX.kcmc like ''%'+courseName+'%'')'); adoquery1.Open;
if adoquery1.RecordCount>0 then //如果有查询结果,则保存课程编号 courseNum:=courseID; end;
//----------【成绩】文本框中只允许输入数字,小数点-------- procedure TScore.Edit4KeyPress(Sender: TObject; var Key: Char); begin
if not (key in ['0'..'9','.',#13,#8]) then key:=#0; end;
37
//---------调用储存过程,提交成绩-------------- procedure TScore.BitBtn3Click(Sender: TObject); begin
adocommand1.CommandText:='exec sf_CJTJ '''+courseNum+''''; adocommand1.Execute; showscore(); end;
//---------调用储存过程,结束选课----- procedure TScore.BitBtn1Click(Sender: TObject); begin
adocommand1.CommandText:='exec sf_ZZXK'; adocommand1.Execute;
showmessage('结束选课成功,请选择输入要输入成绩的课程'); end;
procedure TScore.FormClose(Sender: TObject; var Action: TCloseAction); begin
action:=cafree; end;
procedure TScore.FormShow(Sender: TObject); begin
DBEdit1.DataField:='xh'; end; end.
38
图4.8 修修改密码模块的系统截图
核心代码:
procedure TPassword_Edit_Form.Button1Click(Sender: TObject); var UserName,PassWord:string; begin
PassWord:=trim(Main.User_Password); UserName:=trim(Main.User_Number);
if(edit1.Text='')or(edit2.Text='')or(edit3.Text='')then showmessage('密码不能为空!') else begin
if(edit1.Text<>PassWord)then begin
showmessage('原密码不正确!'); edit1.Text:=''; end else begin
if(edit2.Text<>edit3.Text)then begin
showmessage('两次输入的新密码不同,请重新输入!'); edit2.Text:=''; edit3.Text:=''; end else begin
DM_Login.ADOCommand1.CommandText:='update
DLB
mm='''+edit3.Text+'''where klh='''+UserName+'''';
DM_Login.ADOCommand1.Execute;
set
39
Password_Edit_Form.Close;
showmessage('恭喜,密码修改成功,请牢记你的新密码!'); end; end; end; end;
5总结
该教务管理系统总体说来功能比较齐全,学生和教师的一些基本的功能都已
经具备;数据库的设计方面,建有学生信息(XSXX)、课程信息(KCXX)、选课信息(XKXX)、籍贯代码表(JGDMB)、政治面貌代码表(ZZMMDMB)、成绩表(CJB)、课程表(KCB)、班级信息(BJXX)、民族代码表(MZDMB)、登陆表(DLB)和学籍代码表(XJDMB)和两个存储过程:sf—成绩提交、sf—终止选课,数据库中存在一些问题,如数据冗余,不够完善,没有建立触发器,表和字段的可读性也不是很强,都是拼音的简写。
但在做课程设计的过程中也遇到很多问题,一开始时数据库中表与表的关系有点模糊,但经过多次做了之后对表的关系比较清晰。其中最大的问题是在编写程序时,由于DELPHI 7学的不好,编写起来有点困难,总是这里出那里出错,经过调试后终于把错误慢慢减少了,通过这次课程设计使我收获了好多,能够熟悉地建数据库,写查询语句。 参考文献
[1] 王珊. 数据库系统概论 高等教育出版社 2005
[2] 万科.DELPHI 7开发数据库实例. 清华大学出版社, 2005. [3] 李文池。DELPHI程序设计基础。中国水利水电出版社。2006
40
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java学生选课系统实验报告(8)在线全文阅读。
相关推荐: