学生成绩管理系统实例_第1页
学生成绩管理系统实例_第2页
学生成绩管理系统实例_第3页
学生成绩管理系统实例_第4页
学生成绩管理系统实例_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 学生成绩管理系统实例 10.1 系统分析与设计 10.2 数据库设计与实现 10.3 创立应用对象 10.4 设计系统管理模块 10.5 设计主窗口和菜单 10.6 设计班级管理模块 10.7 设计学生根本信息管理模块 10.8 设计课程管理模块10.9 设计成绩管理模块 10.10 系统的编译和发布10.11 小 结 10.12 实 训 本章要点 PowerBuilder应用系统分析 PowerBuilder应用系统的开发过程 PowerBuilder应用程序的各种对象的设计方法 PowerBuilder应用程序的调试和发布 10.1 系统分析与设计 一个应用系统的开发过程包括分析

2、、设计、实现、调试和发布等阶段,本节介绍学生成绩管理系统的功能分析和模块设计。 10.1.1 系统功能分析 本例中的学生成绩管理系统需要完成的主要功能如下。(1) 班级信息的输入和存储,包括班级编号、班级名称、所属专业、入校时间和学制等。(2) 对已经输入的班级信息的修改、查询。(3) 学生根本信息的输入和存储,包括学号、姓名、性别、出生日期、班级等。(4) 学生根本信息的修改和查询。(5) 每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6) 各班所开设课程信息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。(9) 查询某个学生某学期的各科成绩。(10)

3、 查询并打印某班某学期所有学生的各科成绩。(11) 查询并打印某班某学期某科成绩。(12) 系统具有用户和密码的管理。 10.1.2 系统功能模块设计 通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下图的功能模块图。 10.2 数据库设计与实现 10.2.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到系统E-R图。根据系统E-R图得到以下关系模式。l 班级(班级编号,班级名称,所属专业,学制,入学时间,人数)。l 学生根本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)。l 课程(班级编号,学期,课

4、程名称,学时,教师)。l 成绩(学号,学期,课程名称,成绩)。为了系统的使用平安,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系。l用户(姓名,密码,权限)。 10.2.2 创立数据库 首先,在D盘根目录下建立本实例的工作文件夹“xscj,再在“D:xscj文件夹下建立文件夹“data,用于存储数据库文件。在PowerBuilder开发环境中翻开数据库画板,使用【ODB ODBC 】接口建立Adaptive Server Anywhere 8.0(ASA 8.0 )的数据库D:xscjdataxscj.db,然后依次建立以下5个表和1个视图。“班级表

5、 、“学生根本信息表 、“课程表 、“成绩表 、“用户表 、视图“xsbj 学生根本信息表和班级表连接 各个表之间通过外键形成如下图的关联关系。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的

6、Open事件编写代码如下。 /连接数据库SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscj;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,数据库连接失败!)else /open(w_login) /翻开登录窗口end if10.4 设计系统管理模块 10.4.1 设计登录窗口 1. 创立窗口并设置属性 2. 编写脚本 10.4.2 设计密码修改窗口 1. 创立窗口并设置属性 2. 编写脚本 10.4.3 设计用户管理的

7、数据窗口和窗口 1. 设计数据窗口2. 创立窗口并设置属性 3. 编写脚本 10.5 设计主窗口和菜单 10.5.1 创立菜单对象菜单结构如图10.8所示。菜单对象名为“m_main,菜单栏中的菜单项设置了访问键(AccessKey),常用的菜单项设置了快捷键(如【退出系统】的快捷键为【Alt+F4】,【录入班级信息】的快捷键为【Ctrl+A】),最常用的菜单项在工具条上建立了按钮。编写各个菜单项的脚本。对于这些代码行,在对应的窗口没有建立之前先注释掉,在对应的窗口建立后再去掉其注释符。 10.5.2 设计主窗口 主窗口界面如下图。创立窗口对象w_main,设置相应属性。窗口对象w_main的

8、Open事件脚本如下。if gs_admin=n thenm_main.m_系统.m_用户管理.enabled=falseend if 对 象属 性取 值w_mainTitle学生成绩管理系统Window Typemdihelp!MenuNamem_mainWindowStatemaximized10.6 设计班级管理模块 本模块实现班级信息的输入、修改和查询。 10.6.1 设计访问班级信息的数据窗口 1. 设计输入班级信息的数据窗口 创立数据窗口d_banji_shuru,显示风格为“Freeform,数据源类型为“Quick Select。数据窗口d_banji_shuru生成的SQL

9、Select语句为:SELECT banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj,banji.rs FROM banji 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.bj

10、bh ASC10.6.2 设计访问班级信息的窗口 1. 设计输入窗口创立窗口对象w_shuru,调整其大小,放置1个数据窗口控件(dw_1)、8个命令按钮控件(cb_1 cb_8),窗口布局如下图。设置窗口及其控件的属性。 设置完属性后开始编写脚本代码 。2. 设计修改窗口创立窗口对象w_xiugai,调整其大小,放置1个数据窗口控件(dw_1)、4个命令按钮控件(cb_1 cb_4),窗口布局如图10.13所示。设置窗口及其控件的属性。窗口和控件的事件脚本与输入窗口的对应局部相同。3. 设计输入班级信息窗口通过继承输入窗口w_shuru生成输入班级信息窗口w_banji_shuru,将数据控

11、件dw_1的DataObject属性设置为d_banji_shuru,将窗口的Title属性改为“录入班级信息,此窗口设计便完成了。4. 设计修改班级信息窗口通过继承修改窗口w_xiugai生成修改班级信息窗口w_banji_xiugai,将数据控件dw_1的DataObject属性设置为d_banji_xiugai,将窗口的Title属性改为“修改班级信息,此窗口设计便完成。 5. 设计浏览班级信息窗口创立窗口对象w_banji_liulan,调整其大小,放置1个数据窗口控件dw_1,调整窗口布局如下图。 设置窗口及其控件的属性。窗口的Open事件脚本如下。dw_1.settransobje

12、ct( sqlca) dw_1.retrieve()10.7 设计学生根本信息管理模块 10.7.1 设计访问学生根本信息的数据窗口 1设计输入学生根本信息的数据窗口创立数据窗口d_jiben_shuru,显示风格为“Freeform,数据源类型为“Quick Select,其布局如下图。其中,列控件“xb的编辑风格改为“RadioButtons,码表如图10.15中所示;列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data Column属性都设置为“bjbh,Width of Drop

13、Down(%)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True。 2设计修改学生根本信息的数据窗口创立数据窗口d_jiben_xiugai,显示风格为“Grid,数据源类型为“Quick Select,其布局如下图。其中,列控件“xb的编辑风格改为“DropDownListBox,列表项为“男,“女;列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data Column属性都设置为“bjbh,Width of DropDown(%

14、)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True。 3设计查询学生根本信息的数据窗口创立数据窗口d_jiben_chaxun,显示风格为“Grid,数据源类型为“SQL Select,其布局如图10.17所示。其中,定义3个String型检索参数变量mxh、mxm、mbj,分别表示学号、姓名、班级,形成带检索参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改。 10.7.2 设计访问学生根本信息的窗口 1设计输入学生根本信息的窗口通过继承输入窗口w_shuru生成输入学生根本信息窗口w_jiben_shuru,将数据控件d

15、w_1的DataObject属性设置为d_jiben_shuru,将窗口的Title属性改为“录入学生根本信息,此窗口设计便完成了。2设计修改学生根本信息的窗口通过继承修改窗口w_xiugai生成修改学生根本信息窗口w_jiben_xiugai,将数据控件dw_1的DataObject属性设置为d_jiben_xiugai,将窗口的Title属性改为“修改学生根本信息,此窗口设计便完成了。3设计查询学生根本信息的窗口要求此窗口中能够根据学生的姓名或学号查询出学生的根本信息,能够根据班级名称查询出该班所有学生的根本信息。查询学生根本信息窗口如下图。创立一个窗口对象w_jiben_chaxun,放

16、置控件 ,设置窗口及其控件的属性 。 编写【查询】按钮的Open事件脚本。【查询】按钮的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.retrieve( %,str ,%)case 班级名称dw_1.retrieve( %,%,

17、str)end choose10.8 设计课程管理模块 10.8.1 设计访问课程信息的数据窗口1. 设计输入班级课程信息的数据窗口创立数据窗口d_bjkc_shuru,显示风格为“Grid,数据源类型为“Quick Select,其布局如下图。其中,列控件“bjbh的编辑风格改为“DropDownDW,其DataWindow属性设置为“d_banji_xiugai,Display Column属性和Data Column属性都设置为“bjbh,Width of DropDown(%)属性设置为“300,Lines in DropDown属性设置为“6,VScrollBar属性设置为“True

18、。 2. 设计查询班级课程信息的数据窗口创立数据窗口d_bjkc_chaxun,显示风格为“Grid,数据源类型为“SQL Select,其布局如图10.20所示。其中,定义2个String型检索参数变量mxq、mbjmc,分别表示学期、班级,形成带检索参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改。 10.8.2 设计访问课程信息的窗口 1. 设计输入修改班级课程信息的窗口窗口的布局如下图。从祖先窗口w_xiugai继承生成窗口对象w_bjkc_shuruxiugai,调整其大小。然后将数据窗口控件dw_1的DataObject属性设置为d_bjkc_shuru,此窗口设计即完成

19、。 2. 设计查询班级开设课程的窗口 窗口如下图。创立一个窗口对象w_bjkc_chaxun,放置控件,设置窗口及其控件的属性。书写各个对象的事件脚本。(1) 窗口w_bjkc_chaxun的Open事件脚本 (2) 【查询】按钮的Clicked事件脚本 10.9 设计成绩管理模块 10.9.1 设计访问成绩信息的数据窗口1. 设计输入成绩的数据窗口创立数据窗口d_xscj_shuru,显示风格为“Grid,数据源类型为“SQL Select,其布局如下图。数据来源于成绩表xscj和视图xsbj,其中,学号、学期、课程名称和成绩为成绩表xscj的列,姓名是视图xsbj的列。选择【Rows】|【

20、Update Properties】命令,设置数据窗口的修改属性,使只有成绩表xscj的成绩列(xscj_cj)可以在数据窗口中修改,关键字为成绩表xscj的主关键字(xh,xq,kcmc)。然后,单击工具条上的【Tab Order】图标,将列控件xscj_cj的Tab Order值设为10。 2. 设计查询学生个人某学期各科成绩的数据窗口创立数据窗口d_xscj_grcx,显示风格为“Grid,数据源类型为“Quick Select,其布局如图10.25所示。在【Summary】条中添加一个计算域控件,计算数据窗口中成绩总和。数据窗口的检索参数为mxh、mxq,分别对应于学号和学期。 3.

21、设计查询某班级某学期全体学生各科成绩的数据窗口创立数据窗口d_xscj_bjcx,显示风格为“Cross Tab,数据源类型为“SQL Select,其布局如下图。数据来源于成绩表xscj和视图xsbj,其中,学号、课程名称和成绩为成绩表xscj的列,姓名是视图xsbj的列。在【Header1】条中添加2个计算域控件,对应的表达式分别为mbjmc和mxq,3个文本控件,其文本分别为“成绩单、“班级:和“学期:。数据窗口的检索参数为mxq和mbjmc,分别对应于学期和班级名称。修改属性取默认值(不允许修改)。 4. 设计查询某班级某学期全体学生某科成绩的数据窗口创立数据窗口d_xscj_kccx

22、,显示风格为“N_Up,栏数为2,数据源类型为 “SQL Select,其布局如图10.27所示。数据来源于成绩表xscj和视图xsbj,其中,学号和成绩为成绩表xscj的列,姓名是视图xsbj的列。在【Header】条中添加2个计算域控件对应的表达式分别为mbjmc和mkcmc,3个文本控件,其文本分别为“成绩单、“班级:和“课程:。数据窗口的检索参数为mxq、mbjmc和mkcmc,分别对应于学期、班级名称和课程名称。修改属性取默认值(不允许修改)。 10.9.2 设计访问成绩信息的窗口 1. 设计输入成绩的窗口输入成绩的窗口如下图。首先创立窗口对象w_xscj_shuru,放置控件,调整窗口和控件的大小、位置及有关属性。其中,【保存】按钮的enabled属性设为False;数据窗口控件调整到只显示学号、姓名和成绩3列,VScrollBar属性设为True,数据窗口对象为d_xscj_shuru;3个下拉列表框控件的列表项为空,由代码动态生成。编写窗口和各个控件的事件脚本。2. 设计查询学生个人成绩的窗口查询学生个人成绩的窗口如下图。数据窗口控件连接的数据窗口对象为d_x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论