1 / 39

第 11 章 高校学生档案管理系统

第 11 章 高校学生档案管理系统. 学生档案管理是常用、典型的教学管理软件,许多学校都开发和使用过这类软件。但不同学校有各自不同的情况,要求不可能完全一样,软件的功能与使用方式也有很大差异。科学技术不断进步,人们的需求千差万别,要求永无止境。所以,根据不同的要求,开发适合不同情况的软件,并且不断升级、更新、完善,不断研究和采用新技术,是软件开发人员始终面临的任务。. 本软件的主要特点是: (1) 用 PowerBuilder 8.0 工具开发,采用多文档界面风格,使用菜单、快捷键、工具栏等多种操作方式和选项卡、下拉列表等控件,使用户操做简便、高效,有良好的用户界面。

lester
Download Presentation

第 11 章 高校学生档案管理系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 高校学生档案管理系统 学生档案管理是常用、典型的教学管理软件,许多学校都开发和使用过这类软件。但不同学校有各自不同的情况,要求不可能完全一样,软件的功能与使用方式也有很大差异。科学技术不断进步,人们的需求千差万别,要求永无止境。所以,根据不同的要求,开发适合不同情况的软件,并且不断升级、更新、完善,不断研究和采用新技术,是软件开发人员始终面临的任务。

  2. 本软件的主要特点是: (1)用PowerBuilder 8.0工具开发,采用多文档界面风格,使用菜单、快捷键、工具栏等多种操作方式和选项卡、下拉列表等控件,使用户操做简便、高效,有良好的用户界面。 (2)软件功能丰富、实用。 (3)在查询、数据维护、统计等方面采用了独特的通用实现技术,使软件具有很强的通用性、可维护性和可移植性。

  3. 11.1 系统功能设计 11.2 数据库和表设计 11.3 对象库和主菜单 11.4 全局变量与全局函数 11.5 登录窗口和MDI框架窗口 11.6 数据维护功能 11.7 字典维护功能 11.8 全字段查询和选字段查 11.9 数据统计 11.10 软件的使用 返回首页

  4. 11.5 登录窗口和MDI框架窗口 11.5.1 应用程序对象代码 11.5.2 封面窗口 11.5.3 系统登录窗口 11.5.4 MDI框架窗口 返回本章

  5. 11.6 数据维护功能 11.6.1 数据维护菜单 11.6.2 数据窗口对象 11.6.3 窗口对象 对象 返回本章

  6. 11.7.1 数据窗口对象 • 11.7.2 窗口对象 • 11.7.3 有关菜单项的编码 返回本章

  7. 11.9.1 学生入学时自然情况统计表 11.9.2 历年招生人数统计表 11.9.3 历年招生人数统计图 返回本章

  8. 11.1 系统功能设计 按照一般高等学校对学生档案管理的需求,对软件的功能提出如下要求: 1.信息维护 2.查询打印 3、数据统计 4、系统服务 返回本章

  9. 11.2 数据库和表设计 学生档案管理系统所涉及的学生档案资料以及其它有关数据都要存储于数据库中。为此,首先建立一个Adaptive Server Anywhere 7.0数据库,数据库文件命名为xsda.db,用户名、口令先暂时用默认的dba和sql,将来需要时再作修改。   在PowerBuilder中为数据库配置ODBC数据源和Profile,取名均为xsda。   在数据库xsda.db中首先建立一个主表,取名为xsda,用来存放学生的档案资料,每位学生占一条记录。包括基本信息以及入学时、在校时、毕业后的主要信息,共55个字段。

  10.  为了提高效率,对一些可枚举的数据项(比如民族、政治面貌、学生职务等)采用下拉数据窗口的形式进行输入。这样,需要为每一类枚举数据项建立一个表,每个表定义一个字段,我们把这类表叫做“字典”。 为了提高效率,对一些可枚举的数据项(比如民族、政治面貌、学生职务等)采用下拉数据窗口的形式进行输入。这样,需要为每一类枚举数据项建立一个表,每个表定义一个字段,我们把这类表叫做“字典”。   为便于用户管理,建立一个表dic_yhkl,用来保存用户名、口令和级别等信息,结构   为了记录系统使用信息,建立一个“日志”表dic_log。  数据库中还有两表tj_1和tj_rs,等用到的时候再作介绍。 返回本章

  11. 11.3 对象库和主菜单 由于本系统涉及到的对象比较多,为了管理上的方便,我们建立四个对象库,分别用来存放窗口对象、一般数据窗口对象、字典数据窗口对象和其它对象。 用前面介绍的方法,在建立应用程序对象的同时可以建立一个对象库和一个目标。要建立多个对象库并使其置于搜索路径之中,要经过两个步骤: 在“Migrate application”对话框中单击“Browse”,选择需要的对象库,然后单击“OK”按钮,新的对象库便置于搜索路径之中。 本系统建立的四个对象库为da_w.pbl、da_dw.pbl、da_dic.pbl和da_mn.pbl,分别用来存放窗口对象、一般数据窗口对象、字典数据窗口对象和其它对象。在对象库da_mn.pbl中建立一个应用程序对象xsda。在当前文件夹中建立一个目标xsda.pbt。 按系统的功能要求,设计的主菜单m_main,存于对象库da_mn.pbl中。 返回本章

  12. 11.4 全局变量与全局函数 本软件要对用户进行管理,设置用户名、口令和用户级别,不同级别的用户分配不同的权限。用户名、用户级别信息要在不同对象中使用,所以定义两个全局变量:   另外,本系统使用第10章介绍的通用全字段查询和通用选字段查询模块来实现对学生档案的查询功能,所以还要定义两个全局变量:   为简化代码设计、提高程序的清晰度,定义四个全局函数。分别介绍如下: 1.全局函数f_czrz() 2.全局函数f_center() 3.全局函数f_add_ddlb_nf() 4.全局函数f_add_ddlb_lx() 返回本章

  13. 11.5.1 应用程序对象代码 打开应用程序对象xsda,对它的open事件编写代码: 程序中,用通常的方法进行数据库连接,如果连接失败,显示错误信息后,不是直接终止应用程序,而是先执行窗口close事件代码,然后再终止应用程序。 数据库连接成功后,打开封面窗口w_fm和登录窗口w_login进行系统登录,登录成功则打开MDI框架窗口w_main,并关闭封面窗口。   它用自定义的全局函数f_czrz()向“日志”表添加一条记录后结束应用程序。 返回本节

  14. 11.5.2 封面窗口 建立一个封面窗口w_fm,窗口类型为popup!,初始状态为maximized!(最大化),取消TitleBar复选项。窗口上放一个图形控件p_spash,其PictureName属性设置为图形文件stk_fm.gif。   为了在不同的屏幕分辨率下,使窗口w_fm、图形p_splash与屏幕大小相同. 返回本节

  15. 11.5.3 系统登录窗口 建立一个登录窗口w_login,窗口类型为respose!,初始状态为normal!,取消TitleBar复选项。窗口上放一个下拉列表框ddlb_1、一个单行编辑框sel_2和两个命令按钮。   代码的作用主要有两个:一是调整本窗口的大小和位置,使之不论在什么样的屏幕分辨率情况下,都能与封面窗口上的图形很好地搭配。二是把表dic_yhkl中的用户名添加到下拉列表框ddlb_1,作为它的列表项,以便于登录时输入用户名。 返回本节

  16. 请注意,在定义游标时,使用了“ORDER BY”选项使记录按dlsj(登录时间)字段值升序排列,而且在把用户名添加到下拉列表框的同时,也把它作为下拉列表框的text属性值。这样,最近登录过的用户名会自动作为下拉列表框的文本,相当于有了记忆功能,方便了用户操作。     运行后窗口w_fm和w_login叠加在一起  当用户单击“确定”按钮时,产生clicked事件,通过下面代码进行用户身份验证等处理:   代码中,首先从下拉列表框ddlb_1中取出用户名,再从表dic_yhkl中取出该用户的口令的级别,如果在单行编辑框sle_2中输入的口令与表dic_yhkl中取出的口令不同,则要求重新输入。 返回本节

  17. 11.5.4 MDI框架窗口 MDI框架窗口w_main类型为mdihelp!,初始状态为maximized!,窗口标题为“高校学生档案管理系统”,MenuName属性设置为m_main,即把菜单m_main挂接到窗口上。  其目的是根据用户的级别设置不同的权限,当用户为管理员(级别为0)时,使主菜单中“日志查询”、“用户管理”和其中的分隔线可见。否则,这几个菜单项是不可见的(设计时已取消了它们的visible属性)。 返回本节

  18. 11.6.1 数据维护菜单 作为多文档界面应用程序,打开不同的工作表窗口,可以改变不同的菜单。本系统除主菜单外,当进行学生档案记录增删、数据修改和字典管理时,要使用一个与数据维护相关的菜单。这个菜单取名为m_data,它在主菜单m_main的基础上,添加一个下拉菜单,用于数据有关操作。因此,可以利用继承m_main的方法建立菜单m_data。对继承下来的菜单添加需要的菜单项,并修改有关属性,隐藏不必要的菜单项和工具按钮,得到如图11.6所示的菜单。 返回本节

  19. 11.6.2 数据窗口对象  在对学生档案数据进行维护时,要使用数据窗口对象。由于数据项较多,对学生档案表xsda定义五个数据窗口对象,具体形式如图11.7~11.11所示。 1.基本项 2.常用项 3.入学时 4.在校时 5.毕业后 返回本节

  20. 11.6.3 窗口对象 1.窗口的布局 2.窗口open事件代码 3.用户事件u_serch代码 4.u_serch事件的引用 5.记录的翻阅与数据保存代码 6.窗口的activate事件代码 返回本节

  21. 11.7 字典维护功能  系统中有十几个作为字典的表,这些表中数据的增、删、改等操作可以采用统一的方式进行,这样能够大大减轻软件开发的工作量,系统的可扩充性也大大增强。 Go on

  22. 11.7.1 数据窗口对象  为每一个字典表建立一个数据窗口对象,这些数据窗口对象都采用网格样式。比如,针对表dic_xszw(学生职务)建立的数据窗口对象。   用同样的方法设计出其它字典表的数据窗口对象,它们都存放在对象库da_dic.pbl中。 返回本节

  23. 11.7.2 窗口对象 建立一个窗口对象w_d_dic,窗口类型main!,初始状态为normal!,取消最大化复选项,窗口标题为“字典维护窗口”,MenuName属性设置为m_data,使用的也是数据维护菜单m_data。 窗口上放置两个单行编辑框sle_1和sle_2,一个数据窗口控件dw_1和一个“退出命令按钮”。 在窗口中,除了定义与窗口w_d_edit类似的五个用户事件ue_first、ue_prior、ue_next、ue_last和ue_save用来翻阅记录和保存数据外,还定义另外两个用户事件ue_insert和ue_delete。 它用来在数据窗口控件dw_1中插入一条空记录,并显示记录总数和当前记录号。 返回本节

  24. 11.7.3 有关菜单项的编码 窗口w_d_dic中定义的用户事件ue_first、ue_prior、ue_next、ue_last、ue_save、ue_insert和ue_delete,要通过菜单m_data的相关菜单项来引用,单击指定菜单项或对应的工具按钮,可执行相应的操作。其中五个菜单项的编码前面已经介绍过。 窗口w_d_dic要通过主菜单m_main“字典管理”下的菜单项打开,并挂接相应的数据窗口对象。

  25. 名添加到第一个下拉菜单的末尾。第二行把数据窗口对象名“dic_xszw”设置为窗口中数据窗口控件dw_1的 其中,第一行用OpenSheet()函数在MDI框架窗口中按原始大小打开窗口w_d_dic,窗口dataobject属性值,实现动态连接数据窗口对象。最后两行为dw_1指定事务对象并进行数据检索。 “字典管理”下不同的菜单项动态连接不同的数据窗口对象,就可以实现对所有字典的管理。 返回本节

  26. 11.8 全字段查询和选字段查询 利用第10章介绍的通用全字段查询技术可以非常方便地实现对学生档案的查询。   首先建立一个如图11.15所示的数据窗口对象,取名为d_xsda_cx,存于对象库da_dw.pbl。该数据窗口对象包含了表xsda的全部字段,便于总体浏览和打印输出。   该数据窗口对象在自由表样式基础上加工而成,其中“入学年龄”和“当前年龄”为计算列,计算表达式已在前面介绍过。

  27. 我们知道,第10章介绍的通用全字段查询窗口可以挂接任意数据窗口对象,并对其进行查询。这里要查询的只是数据窗口对象d_xsda_cx,所以,在设计时可以直接设置数据窗口控件的DataObject属性为d_xsda_cx,而省去选择数据窗口对象的下拉列表。我们知道,第10章介绍的通用全字段查询窗口可以挂接任意数据窗口对象,并对其进行查询。这里要查询的只是数据窗口对象d_xsda_cx,所以,在设计时可以直接设置数据窗口控件的DataObject属性为d_xsda_cx,而省去选择数据窗口对象的下拉列表。  对于选字段查询,利用第10章介绍的通用选字段查询窗口,只要对“选表”下拉列表的代码略加修改即可。由于这里要查询的只是表xsda的内容,所以,也可以把“选表”下拉列表的代码转移到窗口的open事件当中,从而省去“选表”下拉列表。 返回本章

  28. 11.9 数据统计  本软件的数据统计功能包括:对学生入学时自然情况的统计,对学生在校时的学籍变动和毕业人数的统计,学生毕业后获得各级学历、学位、职称、职务的人数统计,还有历年招收的各类学生人数统计表和统计图。 Go on

  29. 11.9.1 学生入学时自然情况统计表 为了统计出历届学生入学时各种自然情况的人数,在数据库中建立一个表tj_1。 表结构建立之后,插入一条空记录(整个表只使用一条记录)。 针对表tj_1建立一个数据窗口对象d_xsda_tj1。该数据窗口对象在一般的自由表样式基础上加工而成,右上角放置了一个计算列,用来显示当前日期。 建立一个窗口w_xsda_jt1,窗口类型main!,初始状态为normal!,取消最大化复选项,窗口标题为“数据统计窗口(入学时)”。

  30. 窗口上放置“学生类型”下拉列表框ddlb_1、“入学年份”下拉列表框ddlb_2、“班级”下拉列表框ddlb_3,一个数据窗口控件dw_1和三个命令按钮。数据窗口控件的DataObject属性设置为d_xsda_tj1,即把数据窗口对象d_xsda_tj1与dw_1关联起来。下拉列表ddlb_3的item属性设置为:各班、1、2、3、...。窗口上放置“学生类型”下拉列表框ddlb_1、“入学年份”下拉列表框ddlb_2、“班级”下拉列表框ddlb_3,一个数据窗口控件dw_1和三个命令按钮。数据窗口控件的DataObject属性设置为d_xsda_tj1,即把数据窗口对象d_xsda_tj1与dw_1关联起来。下拉列表ddlb_3的item属性设置为:各班、1、2、3、...。   这段代码用自定义的全局函数设置“学生类型”和“入学年份”下拉列表项。设置显示在三个下拉列表的初始值。最后检索出数据库的数据。

  31.  程序中,首先取出三个下拉列表的显示值,作为统计时的限定条件。由于限定条件要在SQL语句的WHERE子句中使用,所以要使用通配符,其中下划线“_“通配单个字符,百分号“%”通配多个字符。然后利用游标,统计出表xsda中符合条件的各类人数。最后,在数据窗口中显示统计结果并更新数据库的表tj_1。 程序中,首先取出三个下拉列表的显示值,作为统计时的限定条件。由于限定条件要在SQL语句的WHERE子句中使用,所以要使用通配符,其中下划线“_“通配单个字符,百分号“%”通配多个字符。然后利用游标,统计出表xsda中符合条件的各类人数。最后,在数据窗口中显示统计结果并更新数据库的表tj_1。   为了在三个下拉列表框的选项发生改变时,直接刷新数据.    窗口w_xsda_tj1通过主菜单m_main“数据统计”下的“入学时”菜单项打开 返回本节

  32. 11.9.2 历年招生人数统计表 为了便于统计和输出历年招收的各类学生人数,首先建立一个表tj_rs。   然后针对表tj_rs建立一个数据窗口对象d_xsda_tjrs。这个数据窗口对象的细节带每一行将显示一年中招收的各类学生人数和总人数,总结带显示历年各类学生的总计人数。   剩下的主要问题是根据表xsda的数据统计出需要的结果存入表tj_rs中,并通过数据窗口控件把结果显示出来。

  33. 这样,需要建立一个窗口,上面放一个数据窗口控件dw_1,并将其与数据窗口对象d_xsda_tjrs相关联,窗口上放一个命令按钮“刷新”用来执行统计操作,“打印”按钮用来将数据窗口控件的内容打印输出。单行编辑框sle_1用来显示统计的年份数。窗口命名为w_xsda_tjsr,标题为“统计表窗口”,其它属性设置与窗口w_xsda_tj1相同。这样,需要建立一个窗口,上面放一个数据窗口控件dw_1,并将其与数据窗口对象d_xsda_tjrs相关联,窗口上放一个命令按钮“刷新”用来执行统计操作,“打印”按钮用来将数据窗口控件的内容打印输出。单行编辑框sle_1用来显示统计的年份数。窗口命名为w_xsda_tjsr,标题为“统计表窗口”,其它属性设置与窗口w_xsda_tj1相同。   其中,定义了一个一维数组nr存储各年总人数,一个二维数组a存储各年的各类学生数。通过游标读取表xsda每一条记录的“学号”和“入学层次”,学号的头四位表示入学年份,转换为数值后用来做数组的行下标,不同入学层次用不同的列下标来表示,用循环语句求出各类人数和总人数存到数组a和nr中。 返回本节

  34. 11.9.3 历年招生人数统计图 制作历年招生人数统计图的关键是设计一个图形样式的数据窗口对象。从xsda表中选取“学号”和“入学层次”两个字段建立一个图形样式的数据窗口对象d_xsda_tjt。   在数据窗口对象画板中,打开属性视图,   单击“Data”选项卡。设置“Category”属性为left(xh,4),用学号的头四位(入学年份)分类。“Value”属性设置为count(xh for graph),即学号数(人数)为值属性。选用“Series”属性为rxcc,用入学层次划分系列。

  35.  单击“General”选项卡,设置图形的标题为“历年招生人数统计图”,图形名为gr_1。图形的类型为Colstacked(10),即分层直条图。 单击“General”选项卡,设置图形的标题为“历年招生人数统计图”,图形名为gr_1。图形的类型为Colstacked(10),即分层直条图。  单击“Axisss”选项卡,设置Category的label属性为“年份”,Value的Label属性为“人数”。   单击“Text”选项卡,在“Text Object”下拉列表中选“Category Axis Text”项,在“Escapement”编辑框中输入900,可使分类轴文本旋转90度显示,以便显示更多的信息。再设置必要的字体、字号、颜色等属性,得到数据窗口对象。

  36.  有了这样一个数据窗口对象,再建立一个窗口对象w_graph,窗口上放置一个数据窗口控件dw_1,并与数据窗口对象d_xsda_tjt连接起来,便可以把统计图在窗口中显示出来。 有了这样一个数据窗口对象,再建立一个窗口对象w_graph,窗口上放置一个数据窗口控件dw_1,并与数据窗口对象d_xsda_tjt连接起来,便可以把统计图在窗口中显示出来。   窗口上放一个“打印”按钮用来将数据窗口控件的内容打印输出。窗口标题为“统计图窗口”,其它属性设置与窗口w_xsda_tj1相同。   窗口上还有一个静态文本控件st_popup,取消它的Visible选项,使之初始时不可见。它的作用是在程序运行时,用鼠标右击直条图显示出对应的人数。

  37. 为了能使鼠标右击直条图时,显示出相应的数值,程序用函数ObjectAtPointer()求出鼠标所击图形的部件名称,如果鼠标所击的是数据(TypeData!)部分,则用函数GetData()取出系列中数据点的值作为静态文本st_popup的text属性,在鼠标当前位置显示出静态文本的text值。为了能使鼠标右击直条图时,显示出相应的数值,程序用函数ObjectAtPointer()求出鼠标所击图形的部件名称,如果鼠标所击的是数据(TypeData!)部分,则用函数GetData()取出系列中数据点的值作为静态文本st_popup的text属性,在鼠标当前位置显示出静态文本的text值。   为了使鼠标右键抬起时,隐藏静态文本st_popup,可在dw_1中定义一个用户事件ue_rbuttonup,选择其Event ID为pbm_rbuttonup,输入一行代码: st_popup.visible = false  这样,当鼠标右键抬起时,弹出的静态文本便消失   。

  38. 统计图窗口运行后,用鼠标右击直条图,显示出如图11.22所示的结果,鼠标抬起,静态文本消失。统计图窗口运行后,用鼠标右击直条图,显示出如图11.22所示的结果,鼠标抬起,静态文本消失。   以上介绍了学生档案管理系统的几项主要功能与核心技术,其它一些功能的实现,有的与介绍过的方法类似,有的过于简单,这里就不分别介绍了。请读者自行设计或参考实 返回本节

  39. 11.10 软件的使用 软件运行后,输入用户名和正确的口令,打开主界面。接下来,可以用菜单、工具按钮、热键、快捷键进行需要的操作。 1.增删记录 2.修改数据 3.字典维护 4.全字段查询 5.选项查询 6.统计入学时、在校时、毕业后数据 7.统计图 8.统计表 9.系统服务 返回本章

More Related