《学生成绩管理系统实例》由会员分享,可在线阅读,更多相关《学生成绩管理系统实例(41页珍藏版)》请在金锄头文库上搜索。
1、 Power Builder 实用教程与实训第10章学生成绩管理系统实例第第1010章章 学生成绩管理系统实例学生成绩管理系统实例 n10.1 系系统统分析与分析与设计设计 n10.2 数据数据库设计库设计与与实现实现 n10.3 创创立立应应用用对对象象 n10.4 设计设计系系统统管理模管理模块块 n10.5 设计设计主窗口和菜主窗口和菜单单 n10.6 设计设计班班级级管理模管理模块块 n10.7 设计设计学生根本信息管理模学生根本信息管理模块块 n10.8 设计课设计课程管理模程管理模块块n10.9 设计成绩管理模块设计成绩管理模块 n10.10 系统的编译和发布系统的编译和发布n10
2、.11 小小 结结 n10.12 实实 训训 Power Builder 实用教程与实训第10章学生成绩管理系统实例本章要点本章要点n PowerBuilderPowerBuilder应用系统分析应用系统分析 n PowerBuilderPowerBuilder应用系统的开发过程应用系统的开发过程n PowerBuilderPowerBuilder应用程序的各种对象的设计方法应用程序的各种对象的设计方法n PowerBuilderPowerBuilder应用程序的调试和发布应用程序的调试和发布 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.1 系统分析与设计系统分
3、析与设计 一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段,本节介绍学生成绩管理系统的功能分析和模块设计。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.1.1 系统功能分析系统功能分析 本例中的学生成绩管理系统需要完成的主要功能如下。(1) 班级信息的输入和存储,包括班级编号、班级名称、所属专业、入校时间和学制等。(2) 对已经输入的班级信息的修改、查询。(3) 学生根本信息的输入和存储,包括学号、姓名、性别、出生日期、班级等。(4) 学生根本信息的修改和查询。(5) 每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6) 各班所开设课程信
4、息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。(9) 查询某个学生某学期的各科成绩。(10) 查询并打印某班某学期所有学生的各科成绩。(11) 查询并打印某班某学期某科成绩。(12) 系统具有用户和密码的管理。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.1.2 系统功能模块设计系统功能模块设计 通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下图的功能模块图。 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.2 数据库设计与实现数据库设计与实现 10.2.1 数据库设计根据学生
5、成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到系统E-R图。根据系统E-R图得到以下关系模式。l 班级(班级编号,班级名称,所属专业,学制,入学时间,人数)。l 学生根本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)。l 课程(班级编号,学期,课程名称,学时,教师)。l 成绩(学号,学期,课程名称,成绩)。为了系统的使用平安,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系。l用户(姓名,密码,权限)。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.2.2 创创立数据立
6、数据库库 首先,在D盘根目录下建立本实例的工作文件夹“xscj,再在“D:xscj文件夹下建立文件夹“data,用于存储数据库文件。在PowerBuilder开发环境中翻开数据库画板,使用【ODB ODBC 】接口建立Adaptive Server Anywhere 8.0(ASA 8.0 )的数据库D:xscjdataxscj.db,然后依次建立以下5个表和1个视图。“班级表 、“学生根本信息表 、“课程表 、“成绩表 、“用户表 、视图“xsbj 学生根本信息表和班级表连接 Power Builder 实用教程与实训第10章学生成绩管理系统实例 各个表之间通过外键形成如下图的关联关系。 P
7、ower Builder 实用教程与实训第10章学生成绩管理系统实例10.3 创创立立应应用用对对象象 (1) 创立新的工作空间,工作空间文件路径及名称设为“d:xscjxscj.pbw。(2) 创立应用对象,应用对象名设为“app_xscj,应用库文件路径及名称设为“d:xscjxscj.pbl,目标文件路径及名称设为“d:xscjxscj.pbt。(3) 翻开应用对象画板,应用对象app_xscj的Icon属性设置为“d:xscjBOOKS.ICO。BOOKS.ICO是预先准备的图标文件。 (4) 为应用对象app_xscj的Open事件编写代码如下。 Power Builder 实用教程
8、与实训第10章学生成绩管理系统实例 /连接数据库SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscj;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,数据库连接失败!)else /open(w_login) /翻开登录窗口end if Power Builder 实用教程与实训第10章学生成绩管理系统实例10.4 设计系统管理模块设计系统管理模块 10.4.1 设计登录窗口 1. 创立窗口并设置属性 2. 编写脚本 10.
9、4.2 设计密码修改窗口 1. 创立窗口并设置属性 2. 编写脚本 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.4.3 设计用户管理的数据窗口和窗口 1. 设计数据窗口2. 创立窗口并设置属性 3. 编写脚本 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.5 设计主窗口和菜单设计主窗口和菜单 10.5.1 创立菜单对象菜单结构如图10.8所示。菜单对象名为“m_main,菜单栏中的菜单项设置了访问键(AccessKey),常用的菜单项设置了快捷键(如【退出系统】的快捷键为【Alt+F4】,【录入班级信息】的快捷键为【Ctrl+A】
10、),最常用的菜单项在工具条上建立了按钮。编写各个菜单项的脚本。对于这些代码行,在对应的窗口没有建立之前先注释掉,在对应的窗口建立后再去掉其注释符。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.5.2 设计主窗口设计主窗口 主窗口界面如下图。创立窗口对象w_main,设置相应属性。窗口对象w_main的Open事件脚本如下。if gs_admin=n thenm_main.m_系统.m_用户管理.enabled=falseend if 对 象属 性取 值w_mainTitle学生成绩管理系统Window Typemdihelp!MenuNamem_mainWin
11、dowStatemaximized Power Builder 实用教程与实训第10章学生成绩管理系统实例10.6 设计班级管理模块设计班级管理模块 本模块实现班级信息的输入、修改和查询。 10.6.1 设计访问班级信息的数据窗口 1. 设计输入班级信息的数据窗口 创立数据窗口d_banji_shuru,显示风格为“Freeform,数据源类型为“Quick Select。数据窗口d_banji_shuru生成的SQL Select语句为:SELECT banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj,banji.rs FROM
12、banji Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计修改班级信息的数据窗口创立数据窗口d_banji_xiugai,显示风格为“Grid,数据源类型为“Quick Select,其布局如下图。数据窗口d_banji_xiugai生成的SQL Select语句为:SELECTbanji.bjbh,banji.bjmc,banji.zymc,banji.xz,banji.rxsj,banji.rs FROM banji ORDER BY banji.bjbh ASC Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.6.2 设计
13、访问班级信息的窗口设计访问班级信息的窗口 1. 设计输入窗口创立窗口对象w_shuru,调整其大小,放置1个数据窗口控件(dw_1)、8个命令按钮控件(cb_1 cb_8),窗口布局如下图。设置窗口及其控件的属性。 设置完属性后开始编写脚本代码 。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计修改窗口创立窗口对象w_xiugai,调整其大小,放置1个数据窗口控件(dw_1)、4个命令按钮控件(cb_1 cb_4),窗口布局如图10.13所示。设置窗口及其控件的属性。窗口和控件的事件脚本与输入窗口的对应局部相同。 Power Builder 实用教程与实训第
14、10章学生成绩管理系统实例 3. 设计输入班级信息窗口通过继承输入窗口w_shuru生成输入班级信息窗口w_banji_shuru,将数据控件dw_1的DataObject属性设置为d_banji_shuru,将窗口的Title属性改为“录入班级信息,此窗口设计便完成了。4. 设计修改班级信息窗口通过继承修改窗口w_xiugai生成修改班级信息窗口w_banji_xiugai,将数据控件dw_1的DataObject属性设置为d_banji_xiugai,将窗口的Title属性改为“修改班级信息,此窗口设计便完成。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 5.
15、设计浏览班级信息窗口创立窗口对象w_banji_liulan,调整其大小,放置1个数据窗口控件dw_1,调整窗口布局如下图。 设置窗口及其控件的属性。窗口的Open事件脚本如下。dw_1.settransobject( sqlca) dw_1.retrieve() Power Builder 实用教程与实训第10章学生成绩管理系统实例10.7 设计设计学生根本信息管理模学生根本信息管理模块块 10.7.1 设计访问学生根本信息的数据窗口 1设计输入学生根本信息的数据窗口创立数据窗口d_jiben_shuru,显示风格为“Freeform,数据源类型为“Quick Select,其布局如下图。其
16、中,列控件“xb的编辑风格改为“RadioButtons,码表如图10.15中所示;列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data Column属性都设置为“bjbh,Width of DropDown(%)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2设计修改学生根本信息的数据窗口创立数据窗口d_jiben_xiugai,显示风格为“Gri
17、d,数据源类型为“Quick Select,其布局如下图。其中,列控件“xb的编辑风格改为“DropDownListBox,列表项为“男,“女;列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data Column属性都设置为“bjbh,Width of DropDown(%)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 3设计查询学生根本信息的数据窗口
18、创立数据窗口d_jiben_chaxun,显示风格为“Grid,数据源类型为“SQL Select,其布局如图10.17所示。其中,定义3个String型检索参数变量mxh、mxm、mbj,分别表示学号、姓名、班级,形成带检索参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 10.7.2 设计访问设计访问学生根本信息的窗口学生根本信息的窗口 1设计输入学生根本信息的窗口通过继承输入窗口w_shuru生成输入学生根本信息窗口w_jiben_shuru,将数据控件dw_1的DataObject属性设置为d_jibe
19、n_shuru,将窗口的Title属性改为“录入学生根本信息,此窗口设计便完成了。2设计修改学生根本信息的窗口通过继承修改窗口w_xiugai生成修改学生根本信息窗口w_jiben_xiugai,将数据控件dw_1的DataObject属性设置为d_jiben_xiugai,将窗口的Title属性改为“修改学生根本信息,此窗口设计便完成了。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 3设计查询学生根本信息的窗口要求此窗口中能够根据学生的姓名或学号查询出学生的根本信息,能够根据班级名称查询出该班所有学生的根本信息。查询学生根本信息窗口如下图。创立一个窗口对象w_ji
20、ben_chaxun,放置控件 ,设置窗口及其控件的属性 。 编写【查询】按钮的Open事件脚本。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 【查询】按钮的Open事件脚本如下。dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查询列和查询内容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 学号dw_1.retrieve( str, %,%)case 姓名dw_1
21、.retrieve( %,str ,%)case 班级名称dw_1.retrieve( %,%, str)end choose Power Builder 实用教程与实训第10章学生成绩管理系统实例10.8 设计课程管理模块设计课程管理模块 10.8.1 设计访问课程信息的数据窗口1. 设计输入班级课程信息的数据窗口创立数据窗口d_bjkc_shuru,显示风格为“Grid,数据源类型为“Quick Select,其布局如下图。其中,列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data
22、Column属性都设置为“bjbh,Width of DropDown(%)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计查询班级课程信息的数据窗口创立数据窗口d_bjkc_chaxun,显示风格为“Grid,数据源类型为“SQL Select,其布局如图10.20所示。其中,定义2个String型检索参数变量mxq、mbjmc,分别表示学期、班级,形成带检索参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改。 Power Builder
23、 实用教程与实训第10章学生成绩管理系统实例 10.8.2 设计访问课程信息的窗口设计访问课程信息的窗口 1. 设计输入修改班级课程信息的窗口窗口的布局如下图。从祖先窗口w_xiugai继承生成窗口对象w_bjkc_shuruxiugai,调整其大小。然后将数据窗口控件dw_1的DataObject属性设置为d_bjkc_shuru,此窗口设计即完成。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计查询班级开设课程的窗口 窗口如下图。创立一个窗口对象w_bjkc_chaxun,放置控件,设置窗口及其控件的属性。书写各个对象的事件脚本。(1) 窗口w_bjkc
24、_chaxun的Open事件脚本 (2) 【查询】按钮的Clicked事件脚本 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.9 设计成绩管理模块设计成绩管理模块 10.9.1 设计访问成绩信息的数据窗口1. 设计输入成绩的数据窗口创立数据窗口d_xscj_shuru,显示风格为“Grid,数据源类型为“SQL Select,其布局如下图。数据来源于成绩表xscj和视图xsbj,其中,学号、学期、课程名称和成绩为成绩表xscj的列,姓名是视图xsbj的列。选择【Rows】|【Update Properties】命令,设置数据窗口的修改属性,使只有成绩表xscj的成
25、绩列(xscj_cj)可以在数据窗口中修改,关键字为成绩表xscj的主关键字(xh,xq,kcmc)。然后,单击工具条上的【Tab Order】图标,将列控件xscj_cj的Tab Order值设为10。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计查询学生个人某学期各科成绩的数据窗口创立数据窗口d_xscj_grcx,显示风格为“Grid,数据源类型为“Quick Select,其布局如图10.25所示。在【Summary】条中添加一个计算域控件,计算数据窗口中成绩总和。数据窗口的检索参数为mxh、mxq,分别对应于学号和学期。 Power Builde
26、r 实用教程与实训第10章学生成绩管理系统实例 3. 设计查询某班级某学期全体学生各科成绩的数据窗口创立数据窗口d_xscj_bjcx,显示风格为“Cross Tab,数据源类型为“SQL Select,其布局如下图。数据来源于成绩表xscj和视图xsbj,其中,学号、课程名称和成绩为成绩表xscj的列,姓名是视图xsbj的列。在【Header1】条中添加2个计算域控件,对应的表达式分别为mbjmc和mxq,3个文本控件,其文本分别为“成绩单、“班级:和“学期:。数据窗口的检索参数为mxq和mbjmc,分别对应于学期和班级名称。修改属性取默认值(不允许修改)。 Power Builder 实用
27、教程与实训第10章学生成绩管理系统实例 4. 设计查询某班级某学期全体学生某科成绩的数据窗口创立数据窗口d_xscj_kccx,显示风格为“N_Up,栏数为2,数据源类型为 “SQL Select,其布局如图10.27所示。数据来源于成绩表xscj和视图xsbj,其中,学号和成绩为成绩表xscj的列,姓名是视图xsbj的列。在【Header】条中添加2个计算域控件对应的表达式分别为mbjmc和mkcmc,3个文本控件,其文本分别为“成绩单、“班级:和“课程:。数据窗口的检索参数为mxq、mbjmc和mkcmc,分别对应于学期、班级名称和课程名称。修改属性取默认值(不允许修改)。 Power B
28、uilder 实用教程与实训第10章学生成绩管理系统实例 10.9.2 设计访问成绩信息的窗口设计访问成绩信息的窗口 1. 设计输入成绩的窗口输入成绩的窗口如下图。首先创立窗口对象w_xscj_shuru,放置控件,调整窗口和控件的大小、位置及有关属性。其中,【保存】按钮的enabled属性设为False;数据窗口控件调整到只显示学号、姓名和成绩3列,VScrollBar属性设为True,数据窗口对象为d_xscj_shuru;3个下拉列表框控件的列表项为空,由代码动态生成。编写窗口和各个控件的事件脚本。 Power Builder 实用教程与实训第10章学生成绩管理系统实例 2. 设计查询学
29、生个人成绩的窗口查询学生个人成绩的窗口如下图。数据窗口控件连接的数据窗口对象为d_xscj_grcx。 编写以下脚本:(1)【查询】按钮的Clicked事件 (2)【打印】按钮的Clicked事件(3)【退出】按钮的Clicked事件 Power Builder 实用教程与实训第10章学生成绩管理系统实例 3. 设计查询班级成绩的窗口查询班级成绩的窗口如下图。数据窗口控件的DataObject属性为d_xscj_bjcx。编写窗口的Open事件脚本,【打印】按钮和【退出】按钮的Clicked事件脚本略,【查询】按钮的Clicked事件脚本。 Power Builder 实用教程与实训第10章学
30、生成绩管理系统实例 4. 设计查询课程成绩的窗口查询课程成绩的窗口如下图。数据窗口控件的DataObject属性为d_xscj_kccx。编写窗口的Open事件脚本、“课程的下拉列表框的Getfocus事件脚本、【打印】按钮和【退出】按钮的Clicked事件脚本、【查询】按钮的Clicked事件脚本。 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.10 系统的编译和发布系统的编译和发布 在每个模块的实现过程中,对其每个功能要进行仔细的测试和调试,最后对整个应用程序做系统的测试,在测试工作完成后可以进行应用程序的编译和发布步骤如下。 1) 创立工程对象 2) 编译生
31、成可执行程序 3) 测试分布 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.11 小小 结结 本章通过学生成绩管理系统实例介绍了用PowerBuilder开发数据库应用程序的过程,介绍了开发应用系统时的系统分析、功能设计、数据库设计以及数据库的实现,具体描述了实例中各种PowerBuilder对象的设计方法,较为系统、综合、全面地总结了PowerBuilder的应用。 Power Builder 实用教程与实训第10章学生成绩管理系统实例10.12 实实 训训 实训目的(1) 掌握数据库应用系统的设计方法。(2) 掌握用PowerBuilder创立数据库的方法。(3) 具备用PowerBuilder开发一个完整的应用系统的能力。实训内容(1) 用PowerBuilder实现本章所讲的“学生成绩管理系统。(2) 调试并发布完成的应用系统。