课程设计报告范文
课程设计报告
院 系: 城市学院
专 业:
课 程: 数据库应用开发
班 级: 07计算机应用专2
学 号: 04306116
姓 名: 刘莹佳
指导老师:
2009年 5 月 21 日
一、 需求分析
数据库应用系统的设计与开发一直以来都是计算机应用的重要应用领域之
一。在该应用领域中,PowerBuilder无疑是具有相当代表性的一种数据库前端开发工具。PowerBuilder完全基于客户/服务器体系结构,并且采用面向对象和可视化开发技术。另外,随着其自身的多次升级换代,PowerBuilder的功能也在不断强大,因此它除了可以设计传统的基于客户/服务器体系结构的应用之外,也能够构建和实现分布式系统的应用。
该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。
它具有使用范围广,实用性强,使用简单,所花经费少等优点。可以肯定的说它将在高校的教学的使用过程中其优点将得到最充分的体现。它的功能就是教师通过输入用户名和口令登陆到教学管理数据库中,从而实现成绩摄入,对教师信息的维护等。学生则通过输入学号与口令进行登陆,进去以后可以对自己的信息进行查询,并且也可以进行选课与退课;这当中学生对自己的成绩只能看,不能删除和修改。当然还要有一个管理员,他在整体上能实现对系统进行维护与保护。该系统主要包括学生信息查询,教务信息维护,和学生选课三大部分功能。在这当中管理员的权限最大,教师次之,学生最少。
二、 模块功能分析
本次实验主要模块及功能分别为:
管理员模块,功能:管理员账号维护,班级管理,教师管理,(学生管理),课程管理,(开课管理)。
教师模块,功能:(学生管理) ,成绩输入,个人信息修改,密码管理。
学生模块,功能:成绩查询,课程选修,个人信息修改,密码管理。
(开课管理模块,意味着某名教师只能输入其执教班级的成绩,课程选修模块,则在学生未选修课程前教师不能输入成绩。)
三、 数据库表结构
6.班级表bj
关系视图
四、 详细模块界面、代码及注释
1、登陆界面
(1) 在“登陆”中加入代码: user=sle_user.text
string temp,temp1
temp=""
temp1=""
if ddlb_role.text="" then
messagebox("error","请选择登陆身份") end if
if ddlb_role.text="管理员" then
select glh,gl_pwd into :temp,:temp1 from gl
where glh=:sle_user.text;
if temp="" then
messagebox("error","没有该帐号") elseif temp1sle_pwd.text then
messagebox("error","密码输入错误") else
open(adminmain)
close(winlogin)
return
end if
end if
if ddlb_role.text="学生" then
select xh,xs_pwd into :temp,:temp1 from xs
where xh=:sle_user.text;
if temp="" then
messagebox("error","没有该帐号") elseif temp1sle_pwd.text then
messagebox("error","密码输入错误") else
open(xsmain)
close(winlogin)
return
end if
end if
if ddlb_role.text="教师" then
select jsh,js_pwd into :temp,:temp1 from js
where jsh=:sle_user.text;
if temp="" then
messagebox("error","没有该帐号") elseif temp1sle_pwd.text then
messagebox("error","密码输入错误") else
open(jsmain)
close(winlogin)
return
end if
end if
(2)在“取消”中加入代码:
close(parent)
设置一全局变量:
2、管理员模块
adminmain窗口类型设置为mdi!
(1)帐号维护
在菜单点击事件中加入代码:
opensheet(adminzhwh,parentwindow)
在窗口的open事件中加入代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
保存按钮中加入代码:
dw_1.update()
新增按钮中加入代码:
dw_1.insertrow(0)
删除按钮中加入代码:
integer row
row=dw_1.getrow()
if dw_1.getitemstring(row,"glh")=user then
messagebox("error","不能删除本人帐号") else
dw_1.deleterow(0)
dw_1.update()
end if
退出按钮中加入代码:
close(parent)
(2)教师管理
删除按钮中加入代码:
dw_1.deleterow(0)
dw_1.update()
重置按钮中加入代码:
integer row
row=dw_1.getrow()
dw_1.setitem(row,"js_pwd","")
dw_1.enabled=true
(3)班级管理
(4)学生管理
(5)课程管理
(5)开课管理
新增按钮中加入代码:
insert into jsk(kch,jsh,bjh)
values(:ddlb_1.text,:ddlb_2.text,:ddlb_3.text); if sqlca.sqlcode0 then
messagebox("erreor",sqlca.sqlerrtext)
end if
dw_1.retrieve()
此窗口open时间中加入代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
string kk,kk1,kk2
declare cursor_kk cursor for
select kch
from kc;
open cursor_kk;
do while true
fetch cursor_kk into :kk;
if sqlca.sqlcode = 100 or sqlca.sqlcode = -1 then exit
end if
ddlb_1.additem(kk)
loop
close cursor_kk;
declare cursor_kk1 cursor for
select jsh
from js;
open cursor_kk1;
do while true
fetch cursor_kk1 into :kk1;
if sqlca.sqlcode = 100 or sqlca.sqlcode = -1 then exit
end if
ddlb_2.additem(kk1)
loop
close cursor_kk1;
declare cursor_kk2 cursor for
select bjh
from bj;
open cursor_kk2;
do while true
fetch cursor_kk2 into :kk2;
if sqlca.sqlcode = 100 or sqlca.sqlcode = -1 then exit
end if
ddlb_3.additem(kk2)
loop
close cursor_kk2;
3、教师模块
(1) 学生管理
新建实例变量:
窗口open事件中加入代码:
st_1.text=user+"号教师,欢迎您"
dw_1.settransobject(sqlca)
dw_1.retrieve()
insert_bool=false
delete_bool=false
update_bool=false
declare cursor_xs cursor for
select bjm
from bj;
open cursor_xs;
do while true
fetch cursor_xs into :cursor_class;
if sqlca.sqlcode = 100 or sqlca.sqlcode = -1 then exit
end if
loop
close cursor_xs;
修改按钮中加入代码:
dw_1.update()
新增按钮中加入代码:
integer i
dw_1.scrolltorow(dw_1.insertrow(dw_1.rowcount() + 1)) for i=1 to dw_1.rowcount()
dw_1.selectrow(i,false)
next
dw_1.selectrow(dw_1.rowcount(),true)
删除按钮中加入代码:
dw_1.deleterow(0)
dw_1.update()
按学号升序按钮中加入代码:
dw_1.setsort("xh A")
dw_1.sort()
按学号降序按钮中加入代码: dw_1.setsort("xh D") dw_1.sort()
(2) 成绩输入
在窗口的open事件中加入代码:
st_4.text=user+"号教师,欢迎您"
dw_1.settransobject(sqlca)
dw_1.retrieve()
string temp
declare mycur cursor for
select kcm
from kc,jsk
where jsh=:user and kc.kch=jsk.kch;
do while true
fetch mycur into :temp;
if sqlca.sqlcode0 then exit
ddlb_2.additem(temp)
loop
close mycur;
string temp1
declare mycur1 cursor for
select xh
from xs;
open mycur1;
do while true
fetch mycur1 into :temp1;
if sqlca.sqlcode0 then exit
ddlb_1.additem(temp1)
loop
close mycur1;
在修改按钮中加入代码:
string kcno,xh
select kc.kch into :kcno
from kc,jsk
where kcm=:ddlb_2.text and jsh=:user and kc.kch=jsk.kch; if kcno="" then
messagebox("error","您没有修改权限")
end if
integer score
score=integer(sle_1.text)
update cj
set cj=:score,xh=:ddlb_1.text
where kch=:kcno
and xh=:ddlb_1.text;
dw_1.retrieve()
在新增按钮中加入代码:
string kcno,xscj,xsno,kcmz
select kc.kch,kcm into :kcno,:kcmz
from kc,jsk
where kcm=:ddlb_2.text and jsh=:user and kc.kch=jsk.kch; if kcno="" then
messagebox("error","您没有新增权限")
end if
integer score
if trim(sle_1.text)="" then
messagebox("出错","成绩不能为空")
else
score=integer(sle_1.text)
select cj into :xscj
from cj
where xh=:ddlb_1.text and kch=:kcno;
select xh into :xsno
from cj
where kch=:kcno and cj=:score;
if ddlb_1.text=xsno and ddlb_2.text=kcmz and sle_1.text=xscj then messagebox("error","不能重复输入")
end if
insert into cj(xh,cj,kch)
values(:ddlb_1.text,:score,:kcno);
end if
if sqlca.sqlcode0 then
messagebox("erreor",sqlca.sqlerrtext)
end if
dw_1.retrieve()
在删除按钮中加入代码:
string kcno
select kc.kch into :kcno
from kc,jsk
where kcm=:ddlb_2.text and jsh=:user and kc.kch=jsk.kch; if kcno="" then
messagebox("error","您没有权限删除")
end if
delete from cj
where xh=:ddlb_1.text and kch=:kcno;
if sqlca.sqlcode0 then
messagebox("erreor",sqlca.sqlerrtext)
end if
dw_1.retrieve()
(3) 个人信息修改
在窗口的open事件中加入代码:
st_7.text=user+"号教师,欢迎您"
string name,xb,bz
select jsm,js_xb,js_bz into :name,:xb,:bz
from js
where jsh=:user;
sle_1.text=name
mle_1.text=bz
if xb="男" then
rb_1.checked=true
else
rb_2.checked=true
end if
cb-1修改按钮中加入代码:
string sex
if rb_1.checked=true then
sex="男"
else
sex="女"
end if
update js
set jsm=:sle_1.text,js_xb=:sex,js_bz=:mle_1.text
where jsh=:user;
if sqlca.sqlcode 0 then
messagebox("错误提示",sqlca.sqlerrtext)
else
messagebox("成功提示","修改成功")
end if
在cb-2重置按钮中加入代码:
sle_1.text=""
mle_1.text=""
sle_1.enabled=true
mle_1.enabled=true
cb-3修改按钮中加入代码:
string temp
select js_pwd into :temp
from js where
jsh=:user and js_pwd=:sle_3.text;
if sqlca.sqlcode0 then
messagebox("error","原密码不正确!")
return
end if
if sle_4.textsle_5.text then
messagebox("error","新密码输入不一致!")
return
end if
update js
set js_pwd=:sle_4.text
where jsh=:user;
if sqlca.sqlcode=0 then
messagebox("成功提示","修改成功")
end if
在cb-4重置按钮中加入代码:
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_3.enabled=true
sle_4.enabled=true
sle_5.enabled=true
在cb-5退出按钮中加入代码:
close(parent)
4、学生模块
(1) 成绩查询
窗口open事件中加入代码:
st_1.text=user+"号学生,欢迎你"
dw_1.settransobject(sqlca)
dw_1.retrieve(user)
查询按钮代码如下:
if sle_1.text"" and cbx_1.checked=false then
dw_1.setfilter("kc_kcm='"+sle_1.text+"'")
elseif sle_1.text"" and cbx_1.checked=true then
dw_1.setfilter("kc_kcm like'%"+sle_1.text+"%'")
else
dw_1.setfilter("")
end if
dw_1.filter()
在退出按钮中加入代码:
if messagebox("确定关闭","确定关闭",StopSign!,OKCancel! )=1 then close(parent)
end if
(2) 课程选修
新建一实例变量:
在窗口的open事件中加入代码:
st_2.text=user+"号学生,欢迎你"
dw_1.settransobject(sqlca)
dw_1.retrieve()
declare cursor_xk cursor for
select kch
from kc;
open cursor_xk;
do while true
fetch cursor_xk into :xk;
if sqlca.sqlcode = 100 or sqlca.sqlcode = -1 then exit
end if
ddlb_1.additem(xk)
loop
close cursor_xk;
确定按钮中加入代码:
string temp
select kch into :temp
from cj
where xh=:user and kch=:ddlb_1.text; if sqlca.sqlcode = 0 then
messagebox("错误提示","你已经选择过该课程") elseif sqlca.sqlcode = 100 then
insert into cj(xh,kch)
values(:user,:ddlb_1.text);
if sqlca.sqlcode 0 then
messagebox("错误提示",sqlca.sqlerrtext) else
messagebox("成功","插入成功")
end if
end if
退选按钮中加入代码:
string temp_cj
select cj into :temp_cj
from cj
where xh=:user and kch=:ddlb_1.text; if isnull(temp_cj) = true then
if sqlca.sqlcode = 0 then
delete from cj
where xh=:user and kch=:ddlb_1.text; if sqlca.sqlcode 0 then
messagebox("错误提示2",sqlca.sqlerrtext) else
messagebox("成功","退选成功") end if
elseif sqlca.sqlcode = 100 then
messagebox("错误提示","你未选择过该课程") end if
else
messagebox("错误提示","已经有成绩不能删除") end if
(3) 个人成绩修改
在窗口的open事件中加入代码:
st_7.text=user+"号学生,欢迎你"
string name,xsb,bj
select xm,xb,bjh into :name,:xsb,:bj
from xs
where xh=:user;
sle_1.text=name
sle_2.text=bj
if xsb="男" then
rb_1.checked=true
else
rb_2.checked=true
end if
cb-1修改按钮中加入代码:
string sex
if rb_1.checked=true then
sex="男"
else
sex="女"
end if
update xs
set xm=:sle_1.text,xb=:sex,bjh=:sle_2.text where xh=:user;
if sqlca.sqlcode 0 then
messagebox("错误提示",sqlca.sqlerrtext) else
messagebox("成功提示","修改成功") end if
cb-2重置按钮中加入代码:
sle_1.text=""
sle_2.text=""
sle_1.enabled=true
sle_2.enabled=true
cb-3修改按钮中加入代码:
string temp
select xs_pwd into :temp
from xs where
xh=:user and xs_pwd=:sle_3.text;
if sqlca.sqlcode0 then
messagebox("error","原密码不正确!") return
end if
if sle_4.textsle_5.text then
messagebox("error","新密码输入不一致!") return
end if
update xs
set xs_pwd=:sle_4.text
where xh=:user;
if sqlca.sqlcode=0 then
messagebox("成功提示","修改成功")
end if
cb-4重置按钮中加入代码:
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_3.enabled=true
sle_4.enabled=true
sle_5.enabled=true
在退出按钮中加入代码:
close(parent)
五、 心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次数据库开发课程设计之学生成绩管理系统,我仍感慨颇多,的确,从构思到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为日后的工作服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次自己做的综合性系统,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说游标的具体使用,全局变量、实例变量的使用,单步调试的使用„„把这个问题解决了,另一个新的问题又来了。这不能不说是对知识的欠缺。通过这次的程序设计,我懂得了无论什么事都要去做才会发现问题,才有可能去解决问题。对知识的学习,不能潜偿辄止,要深入去学习,去了解,这样才会有所收获。有许多东西,许多事,不是想像中的那么容易,不去实践,永远也不会有提高,尤其是学习计算机,不能只是学习和重视书本上的理论知识,所以日后在学习过程中,我会更加注视实践操作。我也深刻感受到,一定把以前所学过的知识好好地温故以知新。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,但都在陈胜凯老师的耐心指导下解决了。
这个设计虽然没有毕业设计那么繁杂和困难,但给我毕业设计和毕业以后的工作打下了基础。什么事都不是那么容易的,有了这一点点的困难做基础,让我深深的明白以后的工作将会是那么的困难,所以说这次课程设计在很大意义上给了我良好的启示。
相关文章
- 计算机毕业论文开题报告范文
- 课题开题报告范文
- 幼儿园教师的个人述职报告范文
- 小学教学工作总结范文工作总结
- 中专学校校长述职报告范文
- 幼儿园教师的个人述职报告范文 1
- 初中体育教师个人述职报告范文
- 综合实践范文
- 小学教师述职报告范文
精选范文:计算机毕业论文开题报告范文(共2篇) 1.本课题的研究意义 在internet 飞速发展的今天,互联网成为人们快速获取.发布和传递信息的重要渠道,它在人们政治. 经济.生活等各个方面发挥着重要的作用. 因此网站建设在interne ...
[篇一:初中语文课题研究开题报告范文] 课题名称:初中语文课堂导入特点及方法研究 课题编号:ghkt201306 主持人:徐萍 主持人单位:汉滨区大竹园初中 一.课题研究的背景和意义 国内现状:我国当代教育界十分重视对课堂导入这一环节的研究 ...
幼儿园教师的个人述职报告范文 让幼儿园日常保教工作不断完善,让教师专业水平不断提高,这是我xx年年度工作的重心.回顾紧张.忙碌的一年,为自己经过不懈努力,取得的一些成绩感到欣慰,更为我园教师们经过艰辛的劳动,所获得的丰硕成果,感到无比自豪. ...
本学期,我校为进一步转变教育观念,坚持"以人为本,促进学生全面发展,打好基础,培养学生创新能力"的办学宗旨,以自主--创新课堂教学模式的研究与运用为重点,以抓好科研兴教为先导,努力实现教学高质量.师资高水平.管理高效率. ...
中专学校校长述职报告范文 各位领导.各位老师: 大家好! 我叫xxx ,38岁,本科学历,中共党员,1990年参加工作,XX 年年担任xx 市综合中专副校长一职,分管学校教育教学工作,协助校长管理学校的日常事务.首先,感谢大家对我的信任,让 ...
让幼儿园日常保教工作不断完善,让教师专业水平不断提高,这是我xx年年度工作的重心.回顾紧张.忙碌的一年,为自己经过不懈努力,取得的一些成绩感到欣慰,更为我园教师们经过艰辛的劳动,所获得的丰硕成果,感到无比自豪.现从政治态度.思想品质.工作思 ...
一篇好的述职报告能够提升自己在领导眼中的印象.下面是初中体育教师个人述职报告范文,欢迎阅读借鉴. 范文1: 又一个学年即将过去,回顾过去的一个学期,能根据教育局.学校工作安排认真做好各项工作,现就一学期来的个人述职如下: 一.教育教学工作方 ...
如何去开展综合实践活动,挖掘教育资源,让这门课程展现出独有的魅力呢?我们应根据课程的特点,紧扣现实生活,有目的.有计划.有组织地通过形式多样的活动方式,综合运用所学知识,开展以学生为主体,以实践性.自主性.创新性为主要特征的综合实践活动,让 ...
小学数学教师述职报告范文 寒来暑往,一学年的辛苦耕耘即将结束.回顾这学年,我忠诚党的教育事业,遵守学校 的规章制度,服从上级领导安排,热爱.关心学生,严格要求,做到因材施教.同时不断提 高业务知识水平,钻研教材,努力提高教学水平,且多听取意 ...