pb学生成绩管理系统

上传人:灯火****19 文档编号:121071122 上传时间:2020-02-15 格式:DOC 页数:63 大小:1.92MB
返回 下载 相关 举报
pb学生成绩管理系统_第1页
第1页 / 共63页
pb学生成绩管理系统_第2页
第2页 / 共63页
pb学生成绩管理系统_第3页
第3页 / 共63页
pb学生成绩管理系统_第4页
第4页 / 共63页
pb学生成绩管理系统_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《pb学生成绩管理系统》由会员分享,可在线阅读,更多相关《pb学生成绩管理系统(63页珍藏版)》请在金锄头文库上搜索。

1、学生成绩管理系统一、系统分析与设计在任何高等院校,学生的成绩管理都是学校教务管理的重要环节之一。随着学校学生人数的增加,学生成绩管理的任务更加繁重,必须借助现代化的管理工具和手段提高学生成绩管理效率。学生成绩管理系统广泛适用于高校教务管理部门的学生成绩管理。1、系统功能分析系统功能分析阶段的任务就是确定该系统所要解决的问题及其具体要求。需要通过与用户的交流和沟通明确用户对系统的功能要求,最终列出系统可以实现的功能由用户确认。本例中的学生成绩管理系统需要完成的主要功能如下。 班级信息的输入和存储,包括班级编号、班级名称、所属院系、入校时间和学制等。 对已经输入的班级信息的修改、查询。 学生基本信

2、息的输入和存储,包括学号、姓名、性别、出生日期、班级等。 学生基本信息的修改和查询。 每学期初各班所开设课程的输入,包括课程名、学期、学时等。 各班所开设课程信息的修改和查询。 学期末输入每个学生的考试成绩。 学生成绩的修改。 查询某个学生某学期的各科成绩。 查询并打印某班某学期所有学生的各科成绩。 查询并打印某班某学期某科成绩。 系统具有用户和密码的管理。2、系统功能模块设计通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如图1所示的功能模块图。二、数据库设计与实现数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统的实现效果和数据操作效率以

3、及能否保证数据的一致性、完成性和安全性。图1 系统功能模块1、数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到如图2所示的系统E-R图。根据系统E-R图得到以下关系模式。班级(班级编号,班级名称,所属院系,学制,入学时间,人数)。学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)。课程(班级编号,学期,课程名称,学时,教师)。成绩(学号,学期,课程名称,成绩)。为了系统的使用安全,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系。用户(姓名,密码,用户类型)。2、创建数据库根据关系

4、模式,确定需要建立的数据库和表。在PowerBuilder开发环境中打开数据库画板,使用【ODB ODBC】接口建立Adaptive Server Anywhere 9.0(ASA 9.0)的数据库D:xscjdataxscj.db,然后依次建立以下5个表和1个视图。图2 系统E_R图1) “class”表表名:banji 主键:bjbh班级表2) “student”表表名:jiben主键:xh学生表3) “subject”表表名:bjkc主键:(bjbh,xq,kcmc)课程表4) “xscj”表表名:xscj主键:(xh,xq,kcmc)学生成绩表5) “users”表表名:users主键

5、:xm用户表各个表之间通过外键形成如图3所示的关联关系。6) 视图为了访问数据库方便,还建立了1个视图“v_1”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下。CREATE VIEW v_1(xh,xm,xb,csrq,bjbh,bjmc,zymc)ASSELECTstudent.xh,student.xm,student.xb,student.csrq,student.bjbh,class.bjmc,class.xbmcFROM student,classWHERE(class.bjbh=student.bjbh);完成数据库和表的创建后,可以在数据库画板中向数据库输入部分数

6、据。其中,“用户”表中必须输入一条记录(“900001”,“123456”,“管理员”),作为进入系统默认的管理员,即账号为“900001”,密码为“123456”,用户类型“管理员”。图3、各表的关联关系三、创建应用对象完成数据库的设计和系统功能设计之后,可以开始各个功能模块的实现。在PowerBuilder中开发应用程序时,就是创建各种对象、为对象设置属性以及编写事件脚本的过程。 创建新的工作空间,工作空间文件路径及名称设为“d:xscjworkplace.pbw”。 创建应用对象,应用对象名设为“xscj”,应用库文件路径及名称设为“d:xscjxscj.pbl”,目标文件路径及名称设为

7、“d:xscjxscj.pbt”。(3) 为应用对象xscj的Open事件编写代码如下。SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=student;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,数据库连接失败!)elseopen(w_main)end if四、设计系统管理模块本模块实现用户登录控制、学生能查询自己的个人成绩,教师能录入班级的课程信息,管理员能实现对用户管理的控制以及对一些基本信息的录入。1、设计登录窗口图

8、4 窗口w_load1) 创建窗口并设置属性创建登录窗口w_load,调整其大小,在窗口上放置1个图片控件(p_1)、4个静态文本对象属性取值w_mainTitle登录Window TypeResponse!p_1picture name登录.jpgst_1text账号st_2text密码passwordTRUEst_3text用户类型st_4text欢迎登录学生管理学系统TextColorLink HoveFaceName华文斜体sle_1textsle_2textcb_1text登录cb_2text退出表 1控件(st_1、st_2、st_3、st_4)、2个单行编辑器控件(sle_1、s

9、le_2)、1个下拉列表控件(ddlb_1)、2个命令按钮控件(cb_1、cb_2),各个控件的属性如表1所示,表中未列出的采用默认值 2) 编写脚本 定义全局变量。string gs_username,gs_password,gs_admin分别存储登录用户的账号、密码和用户类型。 定义实例变量。int li_n存储登录时用户输入密码错误的尝试次数,控制在最多3次机会不能是局部变量。 登录窗口w_login的Open事件脚本如下。li_n=3初始化变量li_n,限制出错次数为3次。【登录】按钮cb_1的Clicked事件脚本如下。string ls_username,ls_password,

10、ls_adminls_username=trim(sle_1.text)ls_password=trim(sle_2.text)ls_admin=ddlb_1.textif ls_username= or ls_password= or ls_admin= thenmessagebox(提示,账号,密码,用户类型不能为空)elseSELECT users.name,users.password,users.adminINTO :gs_username,:gs_password,:gs_adminFROM usersWHERE (users.name = :ls_username ) AND (

11、users.password = :ls_password )AND(users.admin=:ls_admin); if sqlca.sqlcode=0 then open(w_main) close(w_load) else li_n=li_n - 1 if li_n0 then messagebox(提示,账号或密码错误) else messagebox(提示,错误超过3次,自动退出) halt end if end if【退出】按钮cb_2的Clicked事件脚本如下。halt/退出程序2、设计密码修改窗口密码修改窗口如图5所示。1) 创建窗口并设置属性创建密码修改窗口w_mmxg,调

12、整其大小,在窗口上放置3个静态文本控件(st_1、st_2、st_3)、3个单行编辑器控件(sle_1、sle_2、sle_3)、2个命令按钮控件(cb_1、cb_2),各个控件的位置和大小参照图5调整。其他需要修改的属性见表2,表中未列出的属性保留其默认值。图5 窗口w_mmxg对象属性取值w_mmxgTitle用户密码设置Window TypeResponse!p_1picture name密码修改.jpgst_1text旧密码st_2text新密码passwordTRUEst_3text重新输入新密码sle_1textpasswordTRUEsle_2textpasswordTRUEsl

13、e_3textpasswordTRUEcb_1text确定cb_2text取消表 22) 编写脚本(1)【确定】按钮cb_1的Clicked事件脚本如下。string ls_passwordif trim(sle_1.text)gs_password thenmessagebox(提示,旧密码错误)elseif trim(sle_2.text)=(sle_3.text) thenls_password=trim(sle_2.text) UPDATE users SETpassword = :ls_password WHERE (users.name = :gs_username ) AND (

14、users.password = :gs_password); if sqlca.sqlcode0 then messagebox(提示,密码修改不成功)elseclose(parent)messagebox(提示,密码修改完成)end ifelsemessagebox(提示,两次密码不相同)end if end if (2)【取消】按钮cb_2的Clicked事件脚本如下。close(parent)3、设计用户管理的数据窗口和窗口1) 设计数据窗口创建数据窗口“d_yhgl”,显示风格为“Grid”,数据源类型为“Quick Select”,布局如图6所示。数据窗口d_yhgl生成的SQL Select语句为:SELECTusers.name,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号