您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > PB学生成绩管理系统
第1页共35页学生成绩管理系统1.1系统分析与设计在任何高等学校,学生的成绩管理都是学校教务管理的重要环节之一。随着学校学生人数的增加,学生成绩管理的任务更加繁重,必须借助现代化的管理工具和手段提高学生成绩管理效率。学生成绩管理系统广泛适用于高校教务管理部门的学生成绩管理,其作用和功能也是学生比较熟悉和容易理解的。一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段。以下是分析说明。1.2系统功能分析系统功能分析阶段的任务就是确定该系统要解决的问题及其具体要求。需要通过与用户的交流和沟通明确对系统的功能要求,最终列出系统可以实现的功能由用户确认。(1)班级信息的输入和储存,包括班级编号、班级名称、所属专业、入校时间和学制等。(2)对已经输入的班级信息和修改、查询。(3)学生基本信息的输入和储存,包括学号、姓名、性别、出生日期、班级等。(4)学生基本信息的修改和查询。(5)每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6)各班所开设课程信息的修改和查询。(7)学期末输入每个学生的考试成绩。(8)学生成绩的修改。(9)查询每个学生某学期的各科成绩。(10)查询并打印某班某学期所有学生的各科成绩。(11)查询并打印某班某学期所有学生的各科成绩。(12)系统具有用户和密码的管理。第2页共35页1.3系统功能模块设计通过通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下图所示的功能模块图。2数据库设计与实现数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统操作效率已经能否保证数据的一致性、完成性和安全性。2.1数据库设计根据学生成绩管理系统的功能要求,通过分析系统要设计的相关实体一集要收集、存储和操纵数据信息,得到如图2所示的系统E-R图。根据系统E-R图得到以下关系模式。·班级(班级编号,班级名称,所属专业,学制,入学时间,人数)·学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)·课程(班级编号,学期,课程名称,学时,教师)·成绩(学号,课程名称,成绩)为了系统的使用安全,要建立用户管理,而使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系。·用户(姓名,密码,权限)学生成绩管理系统系统管理班级信息管理学生基本信息管理课程信息管理成绩信息管理登陆控制用户管理密码修改班级信息输入班级信息查询班级信息修改学生基本信息输入学生基本信息修改学生基本信息查询课程信息输入22入入入入课程信息查询修改成绩输入成绩修改成绩查询第3页共35页2.2创建数据库根据关系模式,确定要建立的数据库和表。首先,在桌面建立本实例的工作文件夹“xscj”,再在该文件夹下建立文件夹”data”,用于存储数据文件。在PowerBuilder开发环境中打开数据库面板,实用[ODBODBC]接口建立AdaptiveServerAnywhere8.0(ASA8.0)的数据库xscj.db,然后依次建立以下5个表和1个视图。“bjkc”表:“jiben”表:第4页共35页“banji”表“xscj”表:“users”表:第5页共35页给表中添加说明,并建立主键和外键如下图所示:第6页共35页1.“班级”表表名:banji主键:bjbh2.“基本信息”表表名:jiben主键:xh3.“班级课程”表表名:bjkc主键:(bjbh,xq,kcmc)4.“学生成绩”表表名:xscj主键:(xh,xq,kcmc)5.“用户”表表名:users主键:name然后给表中添加数据。第7页共35页6.视图为了访问数据库方便,还建立一个视图“v_xscj”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:CREATEVIEWv_xscj(xh,xm,xb,csrq,bjbh,bjmc,zymc)ASselectjiben.xh,jiben.xm,jiben.xb,jiben.csrq,banji.bjbh,banji.bjmc,banji.zymcfromDBA.banji,DBA.jibenwhere(jiben.bjbh=banji.bjbh)然后保存即可。3创建应用对象完成数据库的设计和系统功能设计之后,可以开始各个功能模块的实现。在PowerBuilder中开发应用程序是时,就是创建各种对象、为对象设置属性以及编写事件脚本的过程。但不是简单的顺序过程,有时需要返回为前面创建的对象补充脚本。(1)创建新的工作空间,工作空间文件路径及名称设为“桌面\xscj\xscj.pbw”(2)创建应用对象,应用对象名设置为“app_xscj”,应用库文件路径及名称设为“桌面\xscj\pbl”,目标文件路径及名称设为“桌面\xscj\xscj.pbt”第8页共35页(3)为应用对象app_xscj的open事件编写代码如下。//ProfilexscjSQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=Connectstring='DSN=xscj'connectusingsqlca;//CONNECT;ifSQLCA.sqlcode0thenmessagebox(提示,数据库连接失败!)elseopen(w_tupian)returnendif执行此应用时,首先链接数据库“xscj”,成功后打开登陆窗口。4创建应用对象本模块实现用户登陆控制、用户自己的密码修改和用户管理,其中用户管理包括修改用户信息,添加新用户,删除用户,只有管理员级用户有此权限。4.1设计管理登陆窗口登陆窗口如图所示1.创建窗口并设置属性创建登陆窗口w_login,调整其大小,在窗口上放置1个图片控件,3个静态文本控件,1个成组框控件,2个单行编辑器控件,2个命令控制按钮控件,各个控件的位置和大小如图所示。对象属性取值W_loginTitle登陆WindowtypeResponse!Sle_2Passwordtrue第9页共35页2.编写脚本(1)在Declare的GlobalVariables下定义全局变量stringgs_username,gs_password,gs_admin(2)定义实例变量intli_n存储登录时用户输入密码错误的尝试次数,控制在最多3次机会。必须围实例变量,不能是局部变量。(3)Declare的InstanceVariables事件脚本如下:intli_n=3初始化变量li_n,限制出错次数为3次。(4)【确定】按钮cb_1的Clicked事件脚本如下。stringls_username,ls_passwordls_username=trim(sle_1.text)ls_password=trim(sle_2.text)ifls_username=orls_password=thenmessagebox(提示,用户名和密码不能为空)elseSELECTusers.name,users.password,users.adminINTO:gs_username,:gs_password,:gs_adminFROMusersWHERE(users.name=:ls_username)AND(users.password=:ls_password);ifSQLCA.sqlcode=0thenopen(w_main)close(w_logion)elseli_n=li_n-1ifli_n0thenmessagebox(提示,用户名密码错误)elsemessagebox(提示,错误超过3次,自动退出)haltendifendifendif(5)【放弃】按钮cb_2的clicked事件脚本如下:Halt4.2设计密码修改窗口第10页共35页密码修改窗口如图所示:1.创建窗口并设置属性创建密码修改窗口w_mmxg,调整其大小,在窗口上放置3个静态文本控件(st_1,st_2,st_2)3个单行编辑器控件(sle_1,sle_2,sle_3)2个命令按钮控件(cb_1,cb_2)各个控件的位置和大小参照图调整。W_mmxgTitle修改密码WindowstypeResponse!Sle_2PasswordTrueSle_3PasswordTrue2.【确定】按钮cb_1的Clicked事件脚本如下:stringls_passwordiftrim(sle_1.text)=trim(sle_3.text)thenmessagebox(提示,旧密码错误)elseiftrim(sle_2.text)=trim(sle_3.text)thenls_password=trim(sle_2.text)UPDATEusersSETpassword=:ls_passwordWHERE(users.name=:gs_username)AND(users.password=:gs_password);ifsqlca.sqlcode0thenmessagebox(提示,密码修改不成功)elseclose(parent)messagebox(提示,密码修改成功)endifelsemessagebox(提示,两次新密码不相同)endif第11页共35页endif(2)【取消】按钮cb_2的Clicked事件脚本如下Close(parent)4.3设计用户管理的数据窗口和窗口1.设计数据窗口创建数据窗口“d_yhgl”,显示风格围“grid”,数据源类型围”QuickSelect”,发布如图所示。其中控件“admin”的编辑风格改为“DropDOWNListBox”,码表(CodeTable)如图。第12页共35页数据窗口d_yhgl生成的SQLSelect语句为:SELECTusers.name,users.password,users.adminFROMusers2.创建窗口并设置属性创建用户管理窗口w_yhgl,调整其大小,在窗口上位置1个数据窗口控件(dw_1)、4个命令按钮控件(cb_1,cb_2,cb_3,cb_4)各个控件的位置和大小参照如图调整。Cb_3Text保存Enabledfalse用户管理窗口如图所示:3.编写脚本(1)用户管理窗口w_yhgl的open事件脚本如下。dw_1.settransobject(sqlca)dw_1.retrieve()(2)用户管理窗口w_yhgl的closequery事件脚本如下:integerrtdw_1.accepttext()ifdw_1.modifiedcount()=0anddw_1.deletedcount()=0thenreturn0elsert=messagebox(提示,添加修改内容未保存,确定要退出吗?第13页共35页,Question!,YesNo!)ifrt=1thenreturn0endifendifreturn1(3)数据窗口控件dw_1的Itemchanged事件脚本如下cb_3.enabled=true(4)【添加】按钮控制cb_1的Clicked事件脚本如下:integerrowrow=dw_1.insertrow(0)dw_1.scrolltorow(row)(5)【删除】按钮控件cb_2的Clicked事件脚本如下:dw_1.deleterow(0)cb_3.enabled=true(6)【保存】按钮控件cb_3的Clicked事件脚本如下:ifdw_1.update(true,false)=1thendw_1.resetupdate()commit;cb_3.enabled=falseelserollback;messagebox(错误,保存数据失败!)endif(7)【退出】按钮控件cb_4的ClickedClose(parent)5设计主窗口和菜单主窗口和菜单是系统工具的主界面。5.1菜单结构菜单结构如图所示。菜单对象名为“m_main”,菜单栏中的菜单项设置了访问键,最常用的菜单项在工具条上建立了按钮。第14页共35页(1)【系统】菜单下【密码修改】菜单项的
本文标题:PB学生成绩管理系统
链接地址:https://www.777doc.com/doc-5411171 .html