PB课程设计高校学生管理信息系统.docx
《PB课程设计高校学生管理信息系统.docx》由会员分享,可在线阅读,更多相关《PB课程设计高校学生管理信息系统.docx(21页珍藏版)》请在冰豆网上搜索。
PB课程设计高校学生管理信息系统
序号:
39
山东理工大学计算机学院
PowerBuilder9.0
(大作业)
班级计科0504
姓名张琳琳
学号0512208425
指导教师孙勇
二○○八年一月九日
高校学生管理信息系统
《详细设计说明书》
1.引言:
1.1.编写目的
该文档是专门为老师评卷使用。
1.2.背景
在大学的学习生活中,各种各样的课程名目繁多,而每一学期,我们都要从这些课程中选出我们所需要的,如果单靠手工工作的话,这无疑是一项相当繁重的任务,不仅给学校增加了一些不必要的负担,同时,也给同学们带来了很大的不便。
由此,大学生选课系统便应运而生,这也是计算机在现代生活的一个新的应用,适应了时代的潮流。
1.3.定义
大学生选课系统,顾名思义,就是用于大学生选修各门课程的计算机系统,它是用计算机替代手工工作的一个范例,体现了信息化时代作为时代先锋的大学在计算机应用方面的独到之处,它方便,快捷,易于操作,实用性强,效率高,既节省了成本,也方便了老师同学,是我们学校生活必备的一个简易实用软件。
2.部门信息维护frmDepartment
2.1.功能
1管理员功能:
对学生选课信息进行增加、修改、删除,查询等操作.并可以添加新的管理员
2学生(普通用户):
对选课信息进行查询,并可以进行选课操作
2.2.时间
开始时间2007.12.10
最后修改时间2007.1.10
2.3.主界面菜单为:
查询学生信息,查询课程信息,录入信息,修改信息,删除,查询选课,选课系统,管理用户组,
以下为系统基本框架图及界面:
2.4.输入项
1.管理员帐号,管理员密码,
2.,院系,院长
3.学号,姓名,年龄,性别,系别,院系,
4.课程号,课程名,先行课,学分
5.通过键盘输入数据
6.涉及到的表:
stulogin,Masterlogin,yuanxi,stu,course,xuanke,teacher。
2.5.输出项
1.将数据保存到数据库中
2.涉及的表:
stulogin。
Masterlogin。
yuanxi。
stu。
course。
xuanke。
teacher。
2.6.主要算法
此程序大部分都是用具体代码实现,有相似的地方,我是用粘贴来实现的,所以程序中较少实用各种算法,缺点就是代码比较多,比较繁琐,优点就是在代码的各个实现地方能够确切的看出代码的思想以及具体内容,对为一个初学者,我认为这样可以使我加深对具体代码的理解,增加对代码的感知度
2.7.限制条件
功能实现比较少,离实际需要的还有一段距离,而且,页面设计也不是很合理,各部分的关系处理的不是很条理。
功能上,在修改学生、教师、院系信息时,需要将改动的那个选项完全删除,然后写上改后的资料,否则会出现只能删去某些字,而不能添加字的现象。
2.8.尚未解决的问题
功能上,在修改学生、教师、院系信息时,需要将改动的那个选项完全删除,然后写上改后的资料,否则会出现只能删去某些字,而不能添加字的现象。
功能等,例如查询,都能够实现,但是数据检索算法简单,时间复杂性高,在修改系统、提升系统的性能之前,没有太大的实用价值。
3.程序设计说明
open(splash)//打开欢迎界面
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=db_stu;UID=sa;PWD=00000000'"
连接数据库
connectusingsqlca;
sleep
(2)//等待片刻
close(splash)
open(w_login)//打开主界面
endevent
*******************************管理员登陆验证代码
stringa
select密码
into:
a
frommasterlogin//从数据库选择帐号,密码信息
******************以下是验证部分
where密码=:
sle_2.textand
帐号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("Hint","密码或用户名错误!
")
sle_2.text=''
else
open(w_mainwin)//通过验证,则打开主窗口
user=sle_1.text
close(parent)
endif
********************************学生登陆验证
stringa
stringb
select*
into:
a,:
b
fromstulogin//从数据库取出帐号,密码信息,以下是验证代码
where密码=:
sle_2.textand
帐号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("Hint","密码或用户名错误!
")
sle_2.text=''
else
open(w_stumainwin)//通过验证,则打开主窗口
user=sle_1.text
close(parent)
endif
*****************************************************8显示选课表的内容
dw_1.dataobject="dw_xuanke"
dw_1.SetTransObject(sqlca)
dw_1.retrieve()
dw_1.dataobject="dw_course"
dw_1.SetTransObject(sqlca)
dw_1.setsqlselect("select*fromcourse")
dw_1.retrieve()
按学号查询
dw_1.setfilter("xuanke_学号='"+sle_1.text+"'")
dw_1.retrieve()
sle_1.text=""
******************************************按课程号查询
dw_1.setfilter("xuanke_课程号='"+sle_2.text+"'")
dw_1.retrieve()
sle_2.text=""
**************************************************保存对密码的修改
stringstr1,str2,confirm
str1=sle_1.text
str2=sle_2.text//两个输入框
ifstr1=str2then//验证两次输入密码
updatestulogin
set密码=:
str1
where帐号=:
user
usingsqlca;
MessageBox("提示","密码修改成功,您的新密码是"+str1)
sle_1.text=""
sle_2.text=""
else
MessageBox("错误","两次输入的密码不一致!
")
sle_1.text=""
sle_2.text=""
endif
*************************************************个人信息录入
stringstr1,str2,str3,str4,str5,str6
//6个文本输入框
select*
into:
str1,:
str2,:
str3,:
str4,:
str5,:
str6
fromstu
where学号=:
user
usingsqlca;
sle_1.text=str2
sle_2.text=str3
sle_3.text=str4
sle_4.text=str5
sle_5.text=str6
*************************************************对信息修给的验证与保存
//因为存在主码约束,不能轻易删除,所以只能由update更新
stringstr1,str2,str3,str4,str5,str6,confirm
str1=sle_1.text
str2=sle_2.text
str3=sle_3.text
str4=sle_4.text
str5=sle_5.text
intage
age=Integer(str2)
if5ifage<100then
select系别
into:
confirm
fromyuanxi
where系别=:
sle_4.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","系别填写错误!
")//系别验证部分
sle_4.text=str4
else
select院系
into:
confirm
fromyuanxi
where院系=:
sle_5.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","院系填写错误!
")//院系验证部分
sle_5.text=str5
else
updatestuset
姓名=:
str1,
年龄=:
str2,
性别=:
str3,
系别=:
str4,
院系=:
str5
where学号=:
user
usingsqlca;
MessageBox("提示信息","个人信息修改成功!
")//验证成功,保存
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
endif
endif
else
MessageBox("提示信息","年龄必须介于5-100!
")
sle_2.text=str2
endif
else
MessageBox("提示信息","年龄必须介于5-100!
")
sle_2.text=str2
endif
*************************************88删除学生信息
stringconfirm
select学号
into:
confirm
fromstu
where学号=:
sle_1.text//从数据库取出信息,以下是验证部分
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在学号"+sle_1.text+"对应的记录,请返回修改!
")
else
deletefromstuwhere学号=:
sle_1.text
usingsqlca;
MessageBox("提示","学号"+sle_1.text+"对应的记录删除成功!
")
sle_1.text=""
endif
*********************输入教工信息代码
stringstr1,str2,str3,str4,confirm
select教工号
into:
confirm
fromteacher
where教工号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在教工号为"+str1+"的教师,请返回修改!
")
else
select*
into:
str1,:
str2,:
str3,:
str4
fromteacher
where教工号=:
sle_1.text
usingsqlca;
sle_1.text=str1
sle_2.text=str2
sle_3.text=str3
sle_4.text=str4
endif
**************************8教工信息保存
stringstr1,str2,str3,str4,confirm
str1=sle_1.text
str2=sle_2.text
str3=sle_3.text
str4=sle_4.text
select教工号
into:
confirm
fromteacher
where教工号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在教工号为"+str1+"的教师!
")
else
updateteacherset姓名=:
str2,年龄=:
str3,性别=:
str4where教工号=:
str1
usingsqlca;
MessageBox("提示","教师信息修改成功!
")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
endif
********************增加删除帐号代码
stringstr1,confirm
str1=sle_1.text
select帐号
into:
confirm
fromstulogin
where帐号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=0then
MessageBox("错误","已存在帐号"+str1+"!
")
sle_1.text=""
else
insertintostuloginvalues(:
str1,:
str1)
usingsqlca;
sle_1.text=""
sle_2.text=""
dw_1.retrieve()
endif
************删除
stringstr1,confirm
str1=sle_1.text
select帐号
into:
confirm
fromstulogin
where帐号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在此帐号,返回修改!
")
sle_1.text=""
sle_2.text=""
else
deletefromstuloginwhere帐号=:
str1
usingsqlca;
dw_1.retrieve()
sle_1.text=""
sle_2.text=""
endif
***************************确定修改密码
stringstr1,str2,confirm
str1=sle_1.text
str2=sle_2.text
select帐号
into:
confirm
fromstulogin
where帐号=:
str1
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("出错","未存在此帐号!
")
else
updatestuloginset密码=:
str2where帐号=:
str1
usingsqlca;
MessageBox("提示","修改成功")
sle_1.text=""
sle_2.text=""
dw_1.retrieve()
endif
*************************检索数据库
stringstr1,str2,str3,str4,str5,str6,confirm
str1=sle_1.text
str2=sle_2.text
str3=sle_3.text
str4=sle_4.text
str5=sle_5.text
str6=sle_6.text
select学号
into:
confirm
fromstu
where学号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("提示信息","数据库中未存在此记录,可以执行添加操作!
")
sle_1.text=str1
sle_2.text=str2
sle_3.text=str3
sle_4.text=str4
sle_5.text=str5
sle_6.text=str6
else
MessageBox("提示信息","数据库已存在该记录!
")
endif
****************添加学生详细信息
stringstr1,str2,str3,str4,str5,str6,con1,con2,con3
str1=sle_1.text
str2=sle_2.text
str3=sle_3.text
str4=sle_4.text
str5=sle_5.text
str6=sle_6.text
intage
age=Integer(str3)
if5ifage<100then
select学号
into:
con1
fromstu
where学号=:
sle_1.text
usingsqlca;
ifsqlca.sqlcode=0then
MessageBox("错误","已存在学号"+str1+"对应的记录,请返回修改!
")
sle_1.text=""
else
select系别
into:
con1
fromyuanxi
where系别=:
sle_5.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在系别"+str5+"!
请返回yuanxi表首先添加该系别!
")
else
select院系
into:
con1
fromyuanxi
where院系=:
sle_6.text
usingsqlca;
ifsqlca.sqlcode=100then
MessageBox("错误","不存在院系"+str6+"!
请返回yuanxi表首先添加该院系!
")
else
insertintostuvalues(:
str1,:
str2,:
str3,:
str4,:
str5,:
str6);
MessageBox("提示信息","添加记录成功!
")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
endif
endif
endif
else
MessageBox("提示信息","年龄必须介于5-100!
")
endif
else
MessageBox("提示信息","年龄必须介于5-100!
")
endif