PB课程设计高校学生管理信息系统.docx
- 文档编号:27888513
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:21
- 大小:536.42KB
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)
if5 ifage<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) if5 ifage<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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PB 课程设计 高校学生 管理信息系统