《3187.学生成绩管理系统PB课程设计》由会员分享,可在线阅读,更多相关《3187.学生成绩管理系统PB课程设计(25页珍藏版)》请在金锄头文库上搜索。
1、数据库技术(PB)课程设计学生成绩管理系统 班级: 姓名: 指导老师: 登分号: 电子职业技术学院 2010-11-18教 师 评 语教师:学生:日期: 前言通过一学期的学习,我们解了PowerBuilder应用系统的开发过程以及组成PowerBuilder应用程序的各种对象是设计方法。通过对这些内容的学习我们可以开发一些简单的数据库应用系统。我们现在就来开发一个简单的学生成绩管理系统。学生的成绩管理都是学校教务管理的重要环节之一。随着学生人数的增加,学生成绩管理的任务更加繁重,必须借助与现代化的管理工具的手段提高学生成绩管理效率,学生成绩管理系统广泛使用于高校教务管理部门的学生成绩管理其作用
2、和功能也是学生比较说熟悉和容易理解的。一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段,以下大作业介绍学生成绩管理系统的分析和模块设计。系统功能分析学生成绩管理系统需要完成的主要功能如下:(1) 班级信息的输入和存储,包括班级编号,班级名称,所属专业,如校时间和学制等。(2) 对已经输入的班级信息的修改,查询。(3) 学生基本信息的输入与存储,包括学号,姓名,性别,出生日期,班级等。(4) 学生基本信息的修改和查询。(5) 每学期初各班做开设的课程的输入,包括课程名,学期,学时等。(6) 各班所开设课程信息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。
3、(9) 查询某个学生,某个学期的各课成绩。(10) 系统具有用户和密码的管理。 通过设计此学生成绩管理系统,让我们进一步掌握各种对象的作用、特点和实际方法。对系统的分析、设计、调试和发布的完整过程。目 录封面任务书教师评语1前言2目录3正文1.1数据库的设计与实现41.2创建应用对象61.3设计系统管理模块71.4设计主窗口和菜单111.5设计班级管理模块141.6设计学生基本信息管理模块161.7设计课程管理模块181.8设计成绩管理系统201.9系统的编译和发布21小结22参考文献23正 文1.1数据库设计与实现1.1.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关
4、实体以及要收集,存储和操纵的数据信息,得到如图1.1所示的系统E-R图。根据系统E-R图得到以下关系模式:班级(班级编号,班级名称,所属专业,学制,入学时间,人数).学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号).课程(班级编号,学期,课程名称,学时,教师).成绩(学号,学期,课程名称,成绩). 为了系统的使用安全,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系.用户(姓名,密码,权限).性别姓名学号出生日期家庭住址班级编号学生所属班级开设课程修课班级编号班级名称专业学制入学时间人数学期教师课程名称学时学期成绩图1.1 系统E-R图1
5、.1.2创建数据库先要在D盘根目录下建立一个工作夹命名为“xscj”,然后在“D:xscj”文件夹下建立“data”,来存储数据库文件。在PowerBuilder开发环境中打开数据库画板,使用ODB ODBC接口建立Adaptive server Anywhere 8.0(ASA 8.0)的数据库D:xscjdataxscj.db,然后建立以下5个表和1个视图。1.“班级”表表名:banji 主键:bjbh各个键的属性见表1-1。表1-1“班级”表的列属性列名数据类型宽度小数位空值标题(Heading)标签(Label)BjbhChar6NO班级编号班级编号:Bjmcvarchar20NO班级
6、名称班级名称:Zymcvarchar20NO专业名称专业名称:XzNumeric10NO学制学制:RxsjDataNO入学时间入学时间:RsNumeric10YES人数人数:根据如上图所示的关系模式确定需建立的数据库和表,除了建“Banji”之外还有“jiben”主键是“xh”;“bjkc”主键是“bjbh,xq,kcmc”;“xscj”主键是“xh,xq,kcmc”;“users”主键是“xm”。各表之间通过外键形成如下图所示的关联关系。 图1.2 表的关联关系2.视图为了访问数据库方便,还建立了一个视图“xsbj”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:CREATE
7、 VIEW xsbj (xh,xm,xb,csrq,bjbh,bjmc,zymc) AS SELECT JIBEN.xh,jiben.xm,jiben.xb,jiben.csrq,jiben.bjbh,banji.bjmc,banji.zymc FROM DBA.banji,DBA.jibenWHERE (jiben.bjbh = banji.bjbh)完成数据库和表的创建后,可以在数据库画板中向数据库输入部分数据。其中,“用户”表中必须输入一条记录(“admin”,“12345”,“y”),作为进入系统默认的管理员,即姓名为“admin”,密码为: “12345”。1.2 创建应用对象完成数
8、据库的设计和系统功能设计之后,开始各种功能模块的实现,在PB中开发应用程序时,就是创建各种对象,为对象设置属性及编写事件脚本的过程(1)创建新的工作空间,工作空间设为:“d:xscjxscj.pbw”。(2)创建应用对象设为“app_xscj”,应用库文件的路径:“d:xscjxscj.pbl”,目标文件:“d:xscjxscj.pbt”.(3)打开应用对象画板应用对象的icon属性设置为“d:xscjBOOKS.ICO”.(预先准备的图标文件)。(4)为应用对象的open事件编写代码如下 SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBPAR
9、M = Connectstring=DSN=aa;UID=dba;PWD=sqlConnect;if SQLCA.sqlcode0 Thenmessagebox(提示,数据库连接失败!)elseopen(w_login) /打开登陆窗口end if1.3 设计系统管理模块本模块实现用户登陆控制,用户自己的密码修改和用户管理,其中包括修改用户信息,添加新用户,删除用户,只有管理员有此权限。1.3.1设计登陆窗口登陆窗口如图1.3所示。图1.3 登陆窗口1.创建窗口并设置属性创建登录窗口W_login,在窗口上放置1个图片控件(p_1)。3个静太文本(st_1,st_2,st_3),1 个成组框控
10、件(g_1),2个单行编辑起控件(sle_1,sle_2),2个命令按钮(cb_1,cb_2) 2.编写脚本(1) 定义全局变量。String gs_username , gs_password,gs_admin(2)定义实例变量。Int li_n(3)登陆窗口w_login的open事件脚本li_n=3注:初始化变量li_n,限制出错次数为3次。(4)【确定】按钮cb_1的clicked事件脚本如下:string ls_username,ls_passwordls_username=trim(sle_1.text) /输入用户名和密码ls_password=trim(sle_2.text)i
11、f ls_username= or ls_password= thenmessagebox(提示,用户名和密码不能为空)elseSELECT users.name,users.password,users.adminINTO :gs_username,:gs_password,:gs_adminFROM usersWHERE (users.name = :ls_username) AND(users.password = :ls_password);if sqlca.sqlcode0 thenopen(m_main) /密码正确,打开主窗口close(w_login)elseli_n=li_n
12、 - 1if li_n0 thenmessagebox(提示,用户名或密码错误)elsemessagebox(提示,错误超过3次,自动退出)halt /错误超过3次,退出程序end ifend ifend If (5)【放弃】 按钮cb_2的clicked事件脚本如下:halt / 退出程序1.3.2设计密码修改窗口密码修改窗口如图1.4所示。图1.4 密码修改窗口1. 创建窗口并设置属性2. 编写脚本(1)确定按钮cb_1的Clicked事件脚本如下.string ls_passwordif trim (sle_1.text)gs_password thenmessagebox(提示,旧密码
13、错误)elseif trim(sle_2.text)=trim(sle_3.text) thenls_password=trim(sle_2.text) update users set passwordwhere (users.name = :gs_username ) and (users.password = :gs_password );if sqlca.sqlcode0 then messagebox(提示,密码修改不成功!)elseclose (parent)messagebox(提示,密码修改完成)end ifelsemessagebox(提示,两次新密码不相同)end ifend if(2)取消按钮cb_2的Clicked事件脚本如下close(parent)1.3.3设计用户管