学生信息管理系统设计报告

时间:2024.3.27

学生信息管理系统设计报告

学生管理信息系统

一、分析

(一)开发背景

学校主要有总务处、政教处、教导处。其中教导处的工作最为繁重,工作人员多,信息量大。处理的信息主要有:学生信息、成绩数据、课程信息。本系统主要着眼以上部分,建立数据库以及对数据的各种操作功能。

对于学生信息,各班的班主任及学校领导由于各种分类和了解的需要,经常性的进行各种查询。例如:一个班中团员的人数,男女生的人数。

对于成绩管理,任课老师要进行本科目的成绩登录,计算平均分等。学校领导则可以通过查询工具来了解学生成绩情况。

对于课程信息,教导处每学期要进行课程安排,任课教师分配,中途课程调整等等。

以上各类信息,若处于手工或半手工状态,效率低,可靠性差。如果采用计算机进行以上各类信息管理,必将大大提高工作效率,对学校各类信息的维护及了解起到积极的作用。

(二)运行平台

本系统采用面向对象的软件开发办法,以Microsoft公司的可视开发环境visual basic 6.0作为主要开发工具,使用Microsoft access 2000作为关系数据库,并为VB编程语言中采用ADO数据库编程模型,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好的实现了预定的需求功能。

visual basic 6.0是一种可视化、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发windows环境下的各类应用程序。在visual basic 6.0环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用windows 内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发出windows环境功能强大、图形界面丰富的应用软件系统。visual basic 6.0语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。

(三)可行性分析

经济:随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息业成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询等。

技术:学生信息管理系统是为学校开发的,本系统说采用的语言是Visual Basic,用Microsoft Access2000数据库完成。通过本校内部的信息,依据统一数据库信息进行管理,把任何一块信息所产生的数据变动及时地反映给其他相关信息,做到数据共享。

管理:采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速的查询所需的数据、资料及其他信息的,使信息快速高速运行。

(四)学生信息管理数据流图(图1—图2)

学生信息管理系统设计报告       

1   顶层数据流图

学生信息管理系统设计报告                                                   

2   0层数据流图

(五)数据字典

数据流编号:01

数据流名称:查询学生信息

简述:根据学生记录查询制定学生的确切信息

数据流来源:学生姓名、班级名称

数据流去向:制定学生的确切信息

数据流编号:02

数据流名称:成绩录入

      简述:选择课程名称,录入成绩,写入成绩表

数据流来源:学生名单,课程信息,成绩录入数据

数据流去向:更新成绩表

数据流编号:03

数据流名称:查询课程信息

      简述:查询学生表中班级名称为所输入值的记录,查询课程表获得本学期所开课程

数据流来源:班级名称

数据流去向:指定班级本学期所开课程

数据流编号:04

数据流名称:查询处理

      简述:根据查询规则查询制定表,并显示结果

数据流来源:查询规则

数据流去向:查询结果

二、设计

(一)总体设计

1、功能结构图

学生信息管理系统设计报告

2、系统流程图(以成绩查询系统为例)

学生信息管理系统设计报告                  

(二)详细设计

1、数据库设计

(1)学生表结构

(2)成绩表结构

(3)课程表结构

2、输入输出设计

在系统的输入/输出设计上遵循的是既满足用户需求又方便用户使用的原则。输入/输出界面的确定都与用户反复沟通,知道用户满意为止。

输入界面的设计不仅考虑数据输入窗口的屏幕格式,而且考虑如何使用输入数据的错误尽可能的小,为此在程序中加入了对输入数据的校验和判断等功能,如输入数据上下限的设置、与相关数据关系的判断、参考对照表。例如,在输入和选择学生信息时,只需输入学生学号,系统可根据代码自动将相应的学生个人信息调出来。

三、系统实施:操作说明

1、登录窗口界面(如图一)。

图一   登录窗口界面

其中学生档案是本系统主要的一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭住址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期∕时间天型,其他的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。

2、课程管理:

(1)课程设置(界面如图二)

运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以吧专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。

(2)课程查询(界面如图三)

当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。

3、打印统计

运行打印统计后可以按条件把符合条件的各种信息以报表的形式罗列出来,各种信息还可以打印出来或以报表形式保存。打印统计包括班级统计分析、档案统计分析、课程统计分析、成绩统计分析和缴费统计分析五类。

(1)班级统计分析(界面如图四)

(2)档案统计分析(界面如图五)

(3)课程统计分析(界面如图六)

(4)成绩统计分析(界面如图七)

(5)交费统计分析(界面如图八)

本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的信息化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、添加,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。

尽管本管理信息系统存在着很多不足,但其功能易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信这是一套日常教学管理中比不可少的管理软件。


第二篇:学生信息管理系统的设计与实现报告


软件工程课程设计

学生信息管理系统的设计与实现

  

1 引言...................................................................................................................... 3

1.1 背景............................................................................................................ 3

1.2 目标............................................................................................................ 3

2 需求分析............................................................................................................... 3

2.1 系统需求..................................................................................................... 3

2.1.1    性能要求.............................................................................................. 3

2.1.2    运行环境.............................................................................................. 3

2.2 功能需求..................................................................................................... 4

2.3 业务流程图................................................................................................. 4

3 总体设计............................................................................................................... 5

3.1 基本设计概念和处理流程............................................................................ 5

3.2 系统数据流程图.......................................................................................... 5

3.3 系统层次模块图.......................................................................................... 6

3.4 模块设计..................................................................................................... 6

4 数据库设计............................................................................................................ 8

4.1数据库的逻辑设计........................................................................................ 8

4.2数据库的配置............................................................................................... 9

5 详细设计............................................................................................................... 9

5.1. 新生管理子系统........................................................................................ 9

5.2 毕业生管理子模块..................................................................................... 14

5.3 教学评价打分............................................................................................ 18

5.4学生成绩网上查询...................................................................................... 19

6 系统维护和改进................................................................................................... 20

6.1 运行维护................................................................................................... 20

6.1.1运行模块组合........................................................................................ 20

6.1.2运行控制............................................................................................... 20

6.1.3运行时间............................................................................................... 20

6.1.4人工处理过程........................................................................................ 20

6.2 系统的改进与提高..................................................................................... 20

学生信息管理系统的设计和实现

1 引言

1.1 背景

学生信息管理系统是为了适应现代化学校管理的需要,加快推进高校数字化校园建设、充分利用校园网,利用网络、多媒体等计算机应用技术和手段,提高办公效率、改善质量的高效管理信息系统。

学生信息管理系统是系科综合管理信息系统的重要组成部分,进行学生基本信息、扩充信息、成绩信息、在校的其它各种信息的集中电子化处理,实现主要系务业务流程的计算机管理,实现系科学生管理工作的自动化管理和公用信息在校园网上自动发布。

本文档为“学生信息管理系统的设计和实现”的说明书,主要用于为实现系统的功能而进行的系统详细设计说明,详细系统各软件组成模块的实现流程、功能、接口、编译、测试要点等内容,便于对系统的编码进行指导和约束。本文档供项目组全体成员及项目组领导,单元测试人员阅读。

1.2 目标

² 实现学生信息资料的集中化电子化处理;

² 实现学生成绩的电子化处理;

² 实现普通用户的前台多媒体自助查询功能,公用信息在校园网上自动发布;

² 实现学生管理工作制度化、标准化、规范化;

² 实现学生管理的其它必要的管理功能。

² 建立关于学生数据比较全面详细的数据库。

2 需求分析

2.1 系统需求

2.1.1       性能要求

2.1.1.1        时间特性要求

² 查询服务部分:用户通过多媒体电脑提交命令到返回不超过5秒钟。

² 数据管理部分:提交一笔录入到结果返回不超过5秒钟。排课对资源不能满足排课要求时应首先予以提示,不能出现死循环无限等待。

2.1.1.2        可扩充性要求

² 各种字典数据的编码要尽可能采用行业标准,自行编码也应合乎规范,征得相关业务部门认可;

² 数据库的设计应考虑可扩充性,以适应今后学校发展和系统升级的需要。

2.1.2       运行环境

2.1.2.1        软件环境

² 学生管理系统的设计与运行基于采用C/S网络应用环境运行于校园网上。后台操作系统为Microsoft Windows 2000,数据库为Microsoft SQL Server 20## ;Web服务器运行环境为Windows NT Server(SP6),浏览器为IE4.0以上版本。

² 数据查询服务部分采用B/S网络应用环境。

2.1.2.2        硬件环境

² 服务器端包括一台标准服务器(也可用性能较好的普通PC服务器,数据库服务器、WEB服务器也可运行在同一台服务器上)。PC服务器要求CPU: PIII 600MHZ以上,内存容量大于或等于512M,硬盘容量大于或等于20G。

² 客户端包括多媒体电脑、PC客户机,要求多媒体电脑和PC客户机与上述PC服务器物理上连接畅通;

² 系科业务工作站桌面到校园网带宽要求至少为10M,保证连接畅快,最好有100M带宽。

2.2 功能需求

进行学生基本信息、扩充信息、成绩信息、在校的其它各种信息的集中电子化处理,实现主要系务业务流程的计算机管理,实现系科学生管理工作的自动化管理和公用信息在校园网上自动发布。

整个涉及的工作主要包括:新生录取报到处理、在校生基本管理、学生成绩处理与查询、学生社团组织管理、毕业生管理等方面,由此整个系统可划分为如下子系统/功能模块:

² 新生报到管理相关业务(系学生工作助理、辅导员等);

² 在校生基本管理相关业务(系辅导员、班主任等);

² 学生成绩汇总与查询相关业务(相关教师、教务干事);

² 党团组织管理相关业务(学生工作助理、辅导员等);

² 毕业生信息管理相关业务(系主任、学生工作助理、辅导员、教务干事等)

² 校友信息管理相关业务(系主任等)。

2.3 业务流程图

本系统主要业务在学生管理办公室进行,但也有部分业务在校园内其他部门进行(如查询等),或在校园外远程进行(如网上公开信息发布、信息查询等),所以本系统应是一个分布式、规模可变的系统。数据集中在一个数据库服务器上,处理可能分布到应用程序的各层上,借助于校园网,各业务人员无障碍地实现分工协作,公共完成目标任务。根据系统总体目标及技术成熟型、一般企业流行的体系结构,学生管理系统采用分层体系结构,具体划分为三层:表现层、业务层和数据层,如下图所示:

 

图2-3.1业务流程图

1.    表现层:用户和系统进行交互地层次。通过键盘、显示器、鼠标、打印机等进行人工交互。提供校园网内/外任何时间地点的访问支持(校园内借助于校园网;校园外借助于拨号上网)。

①应用基于网页的解决方案:即所谓的“瘦客户机”解决方案。应用则借助于免费的浏览器如Internet Explore、 NetScape等,仅需设计服务器端网页文件,勿需设计专用的前台的应用程序。本解决方案主要应用于速度要求不高的简单场合,如一般的公共查询等。

②基于网络的EXE解决方案:即所谓的“胖客户机”解决方案。编写前台源程序,编译成目标代码(EXE)文件。本方案是本系统的主要解决方案,完成各种数据管理、数据处理以及速度要求高的特殊查询。工作平台选用WIN9X,开发工具选用Inprise公司的Delphi以及Microsoft公司的Visual Foxpro等。

2.              业务层:即事务逻辑层或中间层,完成事物处理规则和业务流程约束数据的处理。考虑到本系统问题的规模以及复杂程度、难度等,本系统业务层应用Microsoft IIS、FTP等完成业务层的功能。

3.              数据层:即数据资源管理层,本层完成数据资源等的插入、删除、更新修改等数据存储管理工作,还包括定义各种存储过程、数据约束等控制、触发器定义等。更多的数据处理工作在“胖/瘦客户机”上进行。在本系统中采用RDBMS来完成数据层功能,应用Microsoft  SQL Serve来实现。

细化的系统结构图如下:

 

图2-3.2细化的系统结构图

3 总体设计

3.1 基本设计概念和处理流程

本系统主要业务在学生管理办公室进行,但也有部分业务在校园内其他部门进行(如查询等),或在校园外远程进行(如网上公开信息发布、信息查询等),所以本系统应是一个分布式、规模可变的系统。数据集中在一个数据库服务器上,处理可能分布到应用程序的各层上,借助于校园网,各业务人员无障碍地实现分工协作,公共完成目标任务。

3.2 系统数据流程图

系统总体数据流见下图:

图3.2-1系统数据流程图

系统中所有数据都存放在数据库Server中,客户机中要保存的数据必须上传到Server,交给Server来处理、保存。Server与各前台终端是通过企业网总线通信的,主要机制是TCP/IP和HTTP协议,对用户名和密码的传输要采用SSL或其它加密机制(默认为DES算法)。Server和后台数据库通过ADO、JDBC、T3协议(Weblogic默认的通信协议)进行通信,某些重要信息(如帐户、密码等)需要进行加密(DES)。

3.3 系统层次模块图

整个学生管理系统的结构可由以下图示来表明:

 

图3.3-1系统层次模块图

3.4 模块设计

1. 登陆数据库:

输入数据库服务器名(ServerIP)、用户账号()UserID、密码(PassWord);以账号DEP_Computer0、密码DEP_Computer0登陆数据库服务器,检索系统权限表,根据权限设置相应功能模块:

①无此用户或禁止权限

Enable := False;

②浏览权限

Enable := True;

修改 UserID := Dep_Computer1;

修改 PassWord := 1111111111111;

③修改权限

Enable := True;

修改 UserID := Dep_Computer2;

修改 PassWord := 222222222222;

2. 采用Win31下程序组、程序项的原理组织各执行模块:

登陆服务器

新生录取数据、入学报道管理

学生信息(在校)管理

学生社团管理

毕业生信息管理

学生成绩综合查询与统计

各程序组、程序项的显示分别可以是分层/树状/大图标/小图标等方式;各程序项或菜单项的名称命名为相应功能模块的目标代码文件名。

3.可执行功能模块的调用执行:通过程序项或菜单项名称获取可执行目标代码文件名,应用API函数CreateProcess开始执行。

  i:= StartMenu.IndexOf(MenuItem);

  j:=StartMenu.Items[i].IndexOf(MenuItem);

  case StartMenu.Items[i].Items[j].Tag of

    1: allow:='禁止';

    2: allow:='浏览';

    3: allow:='修改';

  end;

ExecutableFileName :=

    Trim(StartMenu.Items[i].Items[j].Name)+'.exe'

FillChar(StartupInfo,Sizeof(StartupInfo),#0);

  StartupInfo.cb := Sizeof(StartupInfo);

  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;

  CreateProcess(PChar(ExecutableFileName),

        '',

        nil,

        nil,

        false,

        CREATE_NEW_CONSOLE or

        NORMAL_PRIORITY_CLASS,

        nil,

        '.\',

        StartupInfo,

        ProcessInfo);

4 数据库设计

4.1数据库的逻辑设计

1.数据流字典

2. 加工说明部分

(1)加工名称:招生数据转入

激发条件招生工作完毕,新生数据下载到本地。

加工逻辑:将新生基本数据、体检信息和成绩导入在籍学生数据库中,并分配临时学号。

(2)加工名称:新生编班

激发条件新生数据基本入库。

加工逻辑:将新生按专业进行分班,分班结果写回学生基本信息表中。

(3)加工名称:新生寝室安排

激发条件新生数据入库

加工逻辑:按学校分配的寝室可用资源,将新生分配到可用寝室里,提供手工修改功能,并将结果写加数据库。

(4)加工名称:新生报到处理

激发条件新生到校后,现场报到

加工逻辑:将新生报到情况记录在案,包括签到、组织关系转入否、户口交办否、体检完成否、饭卡、收费(欠费)情况等;以备进行欠费统计和报到统计。

(5)加工名称:欠费统计

激发条件需要更新或查询新生的欠费情况

加工逻辑:更新或查询报到情况表,可以统计学生的欠费情况。

(6)加工名称:新生录取信息查询统计

激发条件新生数据入库后,需要查询与统计新生的各种参数,包括统计性别、籍贯、民族、政治面貌、投档志愿和成绩。

4.2数据库的配置

整个系务涉及的业务工作主要包括:新生录取报到处理、在校生基本管理、学生成绩处理与查询、学生社团组织管理、毕业生管理等方面,由此整个系统可划分为如下子系统/功能模块:

² 新生报到管理相关业务(系学生工作助理、辅导员等);

² 在校生基本管理相关业务(系辅导员、班主任等);

² 学生成绩汇总与查询相关业务(相关教师、教务干事);

² 毕业生信息管理相关业务(系主任、学生工作助理、辅导员、教务干事等)

5 详细设计

5.1. 新生管理子系统

总体设计:新生管理子系统包含新生录取信息的导入,新生预分学号,新生班级分配,新生寝室安排,新生报到管理,新生报到信息统计,新生欠费统计,新生分布信息,新生高考成绩分布等。

设计:

下面给出设计方案与实现方法。

 

功能:①完成对新录取学生数据的导入

      ②完成对新生数据的报到预处理(初始化)

③实现新生报到现场完成,并统计报到情况

④统计新生的各种分布比例和成绩分布 

设计:①总体设计:用Delphi的PageCtrl控件来实现各项菜单功能

②招生数据导入:可以通过选择来指定全国网上录取系统的导出数据所在路径,并根据使用手册检查25个.dbf文件是否存在,来决定是否允许导入;在导入时采用记录的查重处理,所以,只能借助记录集的循环来完成;其中,对政治面貌与民族表要单独处理。

主要实现文件检查的代码:

function CheckDBFile(var strRst:String):boolean;

var

  i,j:integer;

  blFound:boolean;

begin

  arrstrFileName[0]:='t_tddw';arrstrFileName[1]:='t_jhk';

  //……此处对表名赋值

  CheckDBFile:=False;

  blFound:=True;i:=0;

  strRst:='数据表';

  while (i<25)do

  begin    j:=DBFileListBox.Items.IndexOf(arrstrFileName[i]+'.dbf');

  if j=-1 then//某个文件未找到,返回“假”

  begin

      blFound:=False;

      strRst:=strRst+arrstrFileName[i]+'.dbf  ';

  end;

    i:=i+1;

  end;

  strRst:=strRst+'不存在!';

  if blFound then  //全部数据文件检查正确

    CheckDBFile:=True;

end;

③学号预处理:将导入的数据从信息库表到在校生表,并根据考生的考号及其它信息填入其基本信息(如省份、入年年份等);基本处理思想是:根据考生年份(报考号前两位)与当前系统数据库的绝对学期时间,筛选相应的考生信息,然后从这些信息中依次在学生基本信息表(JBXX2)中查询是否重复,来决定是否写入;如果写入,则根据报考号(第3、4位)的信息,写入考生所在省份代码。

④新生班级编排:将分配学号的新生编排到指定班级中。用两个DBGrid(可多选)分别将未分班学生和班级信息列出来,通过手工选中一个或多个学生,即可分配班级或从班级中取消分班。

实现DBGrid多选并在数据库中完成添加的代码:

with StuDBGrid.DataSource.DataSet do

begin

 for i:=0 to intSelStuCnt-1 do

 begin

  GotoBookmark(pointer(StuDBGrid.SelectedRows.Items[i]));

   strStuNo:=Fields[0].AsString;

   strSql:='Update jbxx2 set BJID='+''''+strClasNo+'''';

   strSql:=strSql+' Where XH='+''''+strStuNo+'''';

   database.Execute(strSql);

 end;

end;

……

寝室分配与班级编排可类似处理。

⑤新生现场报到:对新生的报到程序进行计算机管理,自动检查该新生是否已到校,是否已完成所有报到手续,以及新生的欠费情况(只记载欠费,不记载缴费);并根据各项手续的完成,来确认新生的报到状态,为下一步查询提供足够信息。

此处关键在于如何把数据表中“0”和“1”状态标志以CheckBox的状态输出,代码如下:

读出:

……

if ADORegInfo.Active then

begin

  strState:=ADORegInfo.FieldByName('SFQD').AsString;

  if strState='1' then  //是否签到

     Reg1Check.Checked:=true

  else

     Reg1Check.Checked:=false;

  strState:=ADORegInfo.FieldByName('ZZGX').AsString;

  if strState='1' then //组织关系

     Reg2Check.Checked:=true

  else

  Reg2Check.Checked:=false;

  strState:=ADORegInfo.FieldByName('HKQY').AsString;

  if strState='1' then //户口迁移

     Reg3Check.Checked:=true

  else

     Reg3Check.Checked:=false;

  strState:=ADORegInfo.FieldByName('JCK').AsString;

  if strState='1' then //就餐卡

     Reg4Check.Checked:=true

  else

     Reg4Check.Checked:=false;

  strState:=ADORegInfo.FieldByName('TJ').AsString;

  if strState='1' then  //体检

     Reg5Check.Checked:=true

  else

     Reg5Check.Checked:=false;

end;

……

写回数据库:

……

ADORegInfo.Edit;

if Reg1Check.Checked then

   ADORegInfo.FieldByName('SFQD').AsString:='1'

else

   ADORegInfo.FieldByName('SFQD').AsString:='0';

if Reg2Check.Checked then

   ADORegInfo.FieldByName('ZZGX').AsString:='1'

else

   ADORegInfo.FieldByName('ZZGX').AsString:='0';

if Reg3Check.Checked then

   ADORegInfo.FieldByName('HKQY').AsString:='1'

else

   ADORegInfo.FieldByName('HKQY').AsString:='0';

if Reg4Check.Checked then

   ADORegInfo.FieldByName('JCK').AsString:='1'

else

   ADORegInfo.FieldByName('JCK').AsString:='0';

if Reg5Check.Checked then

   ADORegInfo.FieldByName('TJ').AsString:='1'

else

   ADORegInfo.FieldByName('TJ').AsString:='0';

ADORegInfo.Post;

……

欠费查询可相应处理。

⑥报到情况统计:可以按性别、专业、班级、省份等统计学生的报到情况,并以柱状图和表格显示;提供自由控制条件查询未报到学生信息。

统计功能实现代码如下:

……

CntBySexDBChar.Title.Text.Clear;//清除标题

CntBySexDBChar.Title.Text.Add('新生报到情况(按班级统计)');

CntBySexDBChar.Series[0].Clear;//清除图形

strSql:=''; 

CntStrGrid.RowCount:=ADOQFCntQuery.RecordCount+1;

for i:=0 to 4 do //设置StringGrid的标题

begin

  CntStrGrid.Cols[i].Clear;

  CntStrGrid.Cols[i].Add(titleName[i]);

end;

i:=0;

RegSexTLbl.Lines.Clear; //清空统计显示

while not ADOQFCntQuery.Eof do

begin

intCntRegd[i]:=ADOQFCntQuery.FieldByName('ClassRegdCnt').AsInteger;

  CntBySexDBChar.Series[0].Add(intCntTot[i],inttostr(i)+'应到',clBlue);

  CntBySexDBChar.Series[0].Add(intCntRegd[i],'到',clRed);

  strSql:=inttostr(i)+'['+trim(strClassName[i])+']报到比例:';

strSql:=strSql+floattostr(trunc(intCntRegd[i]/intCnttot[i]*10000)/100)+'%'+#13;

  RegSexTLbl.Lines.Add(strSql);

  CntStrGrid.Rows[i+1].Add(inttostr(i+1));

  CntStrGrid.Rows[i+1].Add(strClassName[i]);

  CntStrGrid.Rows[i+1].Add(inttostr(intCntTot[i]));

  CntStrGrid.Rows[i+1].Add(inttostr(intCntRegd[i]));

CntStrGrid.Rows[i+1].Add(floattostr(trunc(intCntRegd[i]/intCnttot[i]*10000)/100)+'%');

  i:=i+1;

  ADOQFCntQuery.Next; //下一个班

end;

……

⑦新生分布情况统计:从学生的扩展信息与高考资料中提取信息,统计新生的各种分布情况,以饼状图和表格信息显示出来。

相应地,高考成绩信息也可以按科目绘制出柱状图来反映分布情况,对新生的整体情况有一个大概了解,以便有针对性地开展工作。

成绩统计的代码如下:

strSql:='Select Max('+FieldName+') as MaxScore,Min('+FieldName+') as MinScore,AVG('+FieldName+') as AvgScore';

strSql:=strSql+' From t_tdd,xs_base,xs_expend Where t_tdd.ksh=xs_expend.bkh and xs_expend.xh=xs_base.xh';

strSql:=strSql+' and Nj='+MidStr(CurrentXQSJ,1,4);

ADOQFCntQuery.SQL.Clear;

ADOQFCntQuery.SQL.Add(strSql);

ADOQFCntQuery.Open;

if ADOQFCntQuery.Eof then

begin

  ShowMessage('对不起,未找到相关学生的成绩!');

  abort;

end;

for i:=0 to 2 do

begin

  CntScoreStrGrid.Cols[i].Clear;

  CntScoreStrGrid.Cols[i].Add(titleName[i]);

end;

CntScoreDBChart.Title.Text.Clear;

CntScoreDBChart.Title.Text.Add('新生高考成绩统计['+itemName+']');

CntScoreDBChart.Series[0].Clear;

maxScore:=ADOQFCntQuery.FieldByName('MaxScore').AsInteger;

minScore:=ADOQFCntQuery.FieldByName('MinScore').AsInteger;

avgScore:=ADOQFCntQuery.FieldByName('AvgScore').AsInteger;

itemsCount:=trunc((maxScore-minScore)/5)+1;

intCrntScore:=trunc(minScore/5)*5;

i:=0;

isWrite:=true;

CntScoreStrGrid.RowCount:=itemsCount+4;

intCrntCnt[i]:=ADOQFCntQuery.FieldByName('CrntCnt').AsInteger;

  strSql:='';

  if (isWrite) or (itemsCount<12) then

     strSql:=inttostr(intCrntScore-5)+'-';

CntScoreDBChart.Series[0].Add(intCrntCnt[i],strSql,intColor[i mod 11]);

CntScoreStrGrid.Rows[i+1].Add(inttostr(intCrntScore-5)+'-'+inttostr(intCrntScore));

  CntScoreStrGrid.Rows[i+1].Add(inttostr(intCrntCnt[i]));

CntScoreStrGrid.Rows[i+1].Add(floattostr(trunc(intCrntCnt[i]/59*10000)/100)+'%');

  isWrite:=not isWrite;

  i:=i+1;

end;

CntScoreStrGrid.Rows[i+1].Add('最高分');

CntScoreStrGrid.Rows[i+1].Add(inttostr(maxScore));

CntScoreStrGrid.Rows[i+2].Add('最低分');

CntScoreStrGrid.Rows[i+2].Add(inttostr(minScore));

CntScoreStrGrid.Rows[i+3].Add('平均分');

CntScoreStrGrid.Rows[i+3].Add(inttostr(avgScore));

5.2 毕业生管理子模块

 

功能:①编辑学生(班级)的学习状态(在读、毕业班、已毕业等)

②毕业班级学生(毕业生)综合信息查询

③职业类别与档案材料基础代码的维护

④毕业生择意向与就业去向的处理

⑤毕业生档案材料与毕业经费的管理

⑥毕业生证书的发放管理

设计:

①总体设计:采用与新生管理统一的界面,用PageCtrl来实现。

②毕业学生状态设置:完成在校生到毕业班学生状态的改变或毕业班学生向已毕业学生状态的改变。实现是通过修改学生基本信息的状态标志。

修改学生状态代码如下:

……

//设置毕业班

procedure TSelGraForm.addClassBtnClick(Sender: TObject);

var

  strSql,strCrntClassID:String;

begin

  if (ValClassListBox.Items.Count<1) or (ValClassListBox.ItemIndex<0) then

     abort;

  strCrntClassID:=strValClassID[ValClassListBox.ItemIndex];

  strSql:='Update jbxx2 set ZT='+''''+'毕业班'+''''+' Where bjid='+''''+strCrntClassID+'''';

  MainForm.database.Execute(strSql);

  SelGraForm.FormShow(Sender);

end;

……

③毕业生综合信息查询:查询毕业生的综合信息(成绩除外,有单独模块提供查询功能),按类分为若干页显示,提供打印功能。

响应数据源控件的代码:

procedure TsrchForm.DSsrchStuDataChange(Sender: TObject; Field: TField); //查询学生数据源数据改变

begin

  srchForm.RefreshBaseInfo();//刷新基本信息

  srchForm.RefreshJCInfo();  //刷新奖惩信息

  srchForm.RefreshQTInfo();  //刷新干部信息等

end;

procedure TsrchForm.RefreshBaseInfo();//刷新基本信息

var

  strSql,crntXH:String;//查询语句与学号

begin

  crntXH:=trim(ADOsrchStuQuery.FieldByName('学号').AsString);

  strSql:='SELECT XS_BASE.*, JBXX2.XM, JBXX2.XB, BJXX.BJMC,';

  strSql:=strSql+' XS_ZYB.ZYMC,XS_BJXX.CC,XS_BJXX.XZ, ZZMMB.ZZMM,MZB.MZ,JGB.JGMC,';

  strSql:=strSql+' SFB.SFMC,XS_EXPEND.CYM,XS_EXPEND.SG, XS_EXPEND.XX,XS_EXPEND.BYXX,';

  strSql:=strSql+' XS_EXPEND.TC,XS_EXPEND.EMAIL, XS_EXPEND.HOMEPAGE,XS_EXPEND.JKXX';

  strSql:=strSql+' FROM JBXX2 INNER JOIN';

  strSql:=strSql+' BJXX ON JBXX2.BJID = BJXX.BJID LEFT OUTER JOIN'; //外连接班级扩展信息

  strSql:=strSql+' XS_BJXX ON BJXX.BJID = XS_BJXX.BJID LEFT OUTER JOIN'; //外连接专业表

  strSql:=strSql+' XS_ZYB ON BJXX.ZYID = XS_ZYB.ZYID LEFT OUTER JOIN';  //外连接籍贯表

  strSql:=strSql+' SFB ON XS_BASE.SYSF = SFB.SFID LEFT OUTER JOIN';

  strSql:=strSql+' JGB ON XS_BASE.JGID = JGB.JGID';

  strSql:=strSql+' Where jbxx2.XH='+''''+crntXH+'''';

  ADOBaseQuery.SQL.Clear;

  ADOBaseQuery.SQL.Add(strSql);

  ADOBaseQuery.Open;

end;

④基础编码维护:直接维护职业类别表与档案材料表。通过ADOTable对象来实现与数据库中表的联系,直接读取或编辑更新数据表。

⑤择业意向登记与就业去向登记:根据学生的择业要求和志向,登记其擅长的职业类别;按照毕业生的实际就业去向,登记毕业生的毕业单位、职务、联系方式等信息,以进行各种数据的统计和信息的交流。采用DBGrid来显示学生信息,而用数据库控件来绑定就业详细信息;用按钮来实现数据的添加、修改和删除。

关键在于按钮状态(增、删、改)的实现:

procedure TMainForm.RefreshStuJob();//刷新就业信息

var

  strSql,strJobXH:String;

begin

  strJobXH:=trim(DBText10.Field.Text);//取得学号

  if strJobXH='' then  //为空,程序出错,退出

     abort;

  strSql:='Select xs_jyxx.* from xs_jyxx Where XH='+''''+strJobXH+''''; //查询是否已有该生就业信息

  ADOStuGraQuery.SQL.Clear;

  ADOStuGraQuery.SQL.Add(strSql);

  ADOStuGraQuery.Open;

  //控制权限

  if EditTB.Down then  //处于编辑状态

  begin

    if not ADOStuGraQuery.Eof then  //有该生就业信息

    begin

      FirmDBEdit.Enabled:=true;    //可编辑

      ProTypeLookup.Enabled:=true;

      PosDBEdit.Enabled:=true;

      TelDBEdit.Enabled:=true;

      EmailDBEdit.Enabled:=true;

      BZMemo.Enabled:=true;

      addJobBtn.Enabled:=false;

      delJobBtn.Enabled:=true;     //删除为有效

      confirmJobBtn.Enabled:=true;  //确认编辑为有效

    end

    else   //无就业信息,可添加

    begin

      FirmDBEdit.Enabled:=false;

      ProTypeLookup.Enabled:=false;

      PosDBEdit.Enabled:=false;

      TelDBEdit.Enabled:=false;

      EmailDBEdit.Enabled:=false;

      BZMemo.Enabled:=false;

      addJobBtn.Enabled:=true;      //添加为有效

      delJobBtn.Enabled:=false;     //删除无效

      confirmJobBtn.Enabled:=false;  //确认无效

    end;

  end;  //end of EditTB.Down

end; //end of procedure

⑥毕业生档案材料管理:登记毕业生的档案材料信息,并提供查询,以确认该生是否具备正常的可毕业手续。

代码如下:

procedure TMainForm.RefreshDocuStu();//刷新档案材料信息

var

  strSql,strCrntXH:String;

begin

  strSql:='Select jbxx2.xh as 学号,xm as 姓名,xb as 性别,';

  strSql:=strSql+'xs_daxx.DACLdm as 档案材料代码,DACLMC as 档案材料名称,';

  strSql:=strSql+' xs_daxx.BZ as 备注';

  strSql:=strSql+' from  jbxx2,xs_daxx,xs_damc';

  strSql:=strSql+' Where jbxx2.xh=xs_daxx.xh and xs_daxx.dacldm=xs_damc.dacldm';

  strCrntXH:=trim(ADODStuQuery.FieldByName('学号').AsString);

  strSql:=strSql+' and xs_daxx.XH='+''''+strCrntXH+'''';

  ADODocuStuQuery.SQL.Clear;

  ADODocuStuQuery.SQL.Add(strSql);

  ADODocuStuQuery.Open;

end;

毕业经费处理与档案材料基本相同。

⑦毕业证书发放管理:对毕业证和学位证的发放进行管理,登记毕业证和学位证的发放情况,并对数据的完整性进行控制:毕业证发放日期如果不为空,则毕业证编号不能为空;学位证发放日期不为空,则学位证编号不能为空;若毕业证发放日期为空,则必须说明证书未发放原因。

进行数据完整性控制的代码如下:

procedure TMainForm.confirmCertiBtnClick(Sender: TObject);

var

  strBYZRQ,strBYZBH,strXWZRQ,strXWZBH:String;

begin

  strBYZRQ:=trim(BYZRQEdit.Text); //毕业证日期

  strBYZBH:=trim(BYZBHedit.Text); //毕业证编号

  strXWZRQ:=trim(XWZRQEdit.Text); //学位证日期

  strXWZBH:=trim(XWZBHEdit.Text); //学位证编号

  if (strBYZRQ='') xor (strBYZBH='') then  //异或运算

   if  MessageDlg('毕业证颁发日期和毕业证编号不符!'+#13+'要取消本次更新操作吗?',mtWarning,[mbYes,mbNo],0)=mrYes then

   begin

      ADOCertiQuery.CancelUpdates; //选择取消

      MainForm.RefreshCertiInfo();

      abort;

   end

   else

      abort;

 if (strBYZRQ='') and (strBYZBH='') and (strXWZRQ<>'')then

     // ……处理学位证

   if (strBYZRQ='') and (strBYZBH='') and (strXWZRQ='') and (strXWZBH='') and (trim(YYEdit.Text)='') then //未获证

   if  MessageDlg('未获得毕业证和[或]学位证的请写明原因!'+#13+'要取消本次更新操作吗?',mtWarning,[mbYes,mbNo],0)=mrYes then

   begin

      ADOCertiQuery.CancelUpdates; 

      MainForm.RefreshCertiInfo();

      abort;

   end

5.3 教学评价打分

 

功能:

①对基础教学信息(主要指全院系科信息、课程信息、教室信息、教材信息)整理、规范,相应名称及全院统一编制的ID(Identfier)号插、查、删、改;

②制表输出。

设计:

本模块处理的数据比较简单,主要完成系科信息表(Depart)、课程信息表(CourseInfo)、教室信息表(Classroom)、教材信息表(JCXX)等相应数据及编码的输入、删除、修改,在输入系科类似的已编码数据时,要通过名称下选而保存的是相应的ID信息。这主要通过TDBLookupComboBox来实现,设置好如下几个重要属性:

   DataSource   //待输入数据的数据源

   DataField    //待输入数据的字段名

   KeyField    //关联字段

   ListField   //下选显示字段

   ListSource  //下选数据源

在数据浏览的网格图表中,各编码字段要显示为相应的名称,这要通过在数据集中新建Lookup类型的字段来实现,设置好如下几个重要属性:

  Field Property    FieldType:=Lookup

  Lookup Definition Key Field     //待输入数据字段名

                  DataSet       //待输入数据数据集

                  LookupKey     //关联关键字段

                  Result Field  //显示字段

5.4学生成绩网上查询

功能:

①对基础教学信息(主要指全院系科信息、课程信息、教室信息、教材信息)整理、规范,相应名称及全院统一编制的ID(Identfier)号插、查、删、改;

②制表输出。

设计:

本模块处理的数据比较简单,主要完成系科信息表(Depart)、课程信息表(CourseInfo)、教室信息表(Classroom)、教材信息表(JCXX)等相应数据及编码的输入、删除、修改,在输入系科类似的已编码数据时,要通过名称下选而保存的是相应的ID信息。这主要通过TDBLookupComboBox来实现,设置好如下几个重要属性:

   DataSource   //待输入数据的数据源

   DataField    //待输入数据的字段名

   KeyField    //关联字段

   ListField   //下选显示字段

   ListSource  //下选数据源

在数据浏览的网格图表中,各编码字段要显示为相应的名称,这要通过在数据集中新建Lookup类型的字段来实现,设置好如下几个重要属性:

  Field Property    FieldType:=Lookup

  Lookup Definition Key Field     //待输入数据字段名

                  DataSet       //待输入数据数据集

                  LookupKey     //关联关键字段

                  Result Field  //显示字段

6 系统维护和改进

6.1 运行维护

6.1.1运行模块组合

系统运行需要后台数据库、WEB Server、系统总控、完成特定数据管理功能程序模块和HTML显示控制几个部分协同工作。

6.1.2运行控制

系统需要先启动数据库服务器,然后启动中间的WEB Server,启动无误后,各个用户就可以登录进入系统开始各种操作。

如前所述,为控制各数据管理用户对特定数据进行管理,各数据管理功能模块完全独立开发编译,但各数据管理功能模块不允许独立运行,只能在系统总控程序调度下执行。

6.1.3运行时间

后台DB服务器单独占用一个服务器,WEB&APP Server的事务处理量也比较大,需要一台单独的PC服务器。前端用户需要的系统开销较小,普通的微机就可以了。多媒体终端需要安装JRE运行环境,内存应该不小于128M。

正常情况下后台DB服务器、WEB&APP Server和浏览器终端是始终处于运行状态,其它终端可以随时起停。

6.1.4人工处理过程

本系统需要人工处理的地方有数据库的建立和维护,数据表的建立和删除,这些需要有系统管理员的权限。

6.2 系统的改进与提高

由于各种原因,本系统有许多缺点。针对本系统的一些缺点,在二期开发时主要在以下方面进行改进:为便于维护,设计了三种日志:系统运行日志、操作日志、出错日志。三种日志根据不同的重要程度采取存放在文件和数据库的方式,系统管理员可以很轻松地监控系统运行情况。数据表的建立和删除有数据库系统管理员予以维护。

更多相关推荐:
学生信息管理系统实验报告

西安郵電學院数据库原理及应用设计报告题目:学生信息管理系统一.设计目的学生管理系统是高校管理工作中一项非常重要的组成部分。用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各…

学生信息管理系统设计报告的主要内容(S)

学生成绩管理系统设计报告的主要内容大作业设计报告的书写学生成绩管理系统的设计一系统设计1系统功能模块分析学生成绩管理系统通常包括学生基本信息管理学校所开设课程情况和成绩的管理设计学生管理系统的目的就是利用计算机...

学生信息管理系统总体设计报告

名级导老师张软件曹丽娜班路姓班1108指目录目录1引言2总体设计3接口设计4运行设计5系统数据结构设计6系统出错处理设计7数据库设计说明书8用户手册9测试计划138101112131516学生信息管理系统1引言...

学生信息管理系统程序设计报告

湖南大学程序设计训练报告学生信息管理系统HUNANUNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师院长系主任20xx年7月2日第1页湖南大学程序设计训练报告学生信息管理系统目录一系统功能简介...

学生信息管理系统c语言程序设计报告(完美)

学生信息管理系统HUNANUNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师院长系主任20xx年5月25日第1页学生信息管理系统目录一系统功能简介3二本人完成的主要工作3三实训分析4四实训设计...

学生信息管理系统设计报告

学生信息管理系统设计报告一设计目的作为C课程结课设计验证自身的学习效果同时希望利用所学的基本知识和技能进行简单数据库应用程序设计希望通过项目实践熟悉巩固所学知识以使自身达到熟练掌握NET基本结构以及C语言的基本...

学生信息管理系统设计报告

学生信息管理系统设计报告080370104马中源一设计目的作为C课程结课设计验证自身的学习效果同时希望利用所学的基本知识和技能进行简单数据库应用程序设计希望通过项目实践熟悉巩固所学知识以使自身达到熟练掌握NET...

基于java的学生信息管理系统设计报告

南华大学计算机科学与技术学院课程设计报告20xx20xx学年度第1学期课程名称网络编程技术题目基于java的学生信息管理系统姓名刘亮学号20xx4440437专业计算机科学与技术班级03级04班地点专业实验室教...

学生信息管理系统信息管理子系统详细设计报告

学生信息管理系统设计报告学生信息管理系统设计报告课程名称软件工程专姓名学号班级科学与技术2班指导老师成绩学生信息管理系统设计报告目录一总体设计11引言111编写目的113定义114参考资料12总体设计221需求...

数据库设计报告 学生信息管理系统

HEFEIUNIVERSITY数据库设计报告系别专业班级学号姓名指导老师完成时间电子信息与电气工程系电气信息类09级电气3班20xx年5月10日0905073012学生信息管理理系统数据库设计报告班级09电气信...

学生信息管理系统概要设计

第5章学生管理系统概要设计5.1引言5.1.1编写目的由于现在的学校规模在逐渐的扩大,设置的专业类别、分支机构及老师、学生人数越来越多,对于过去的学生信息管理系统,不能满足当前学生信息管理的服务性能要求。本报告…

学生成绩管理系统总体设计说明书--朱利斌

学生成绩管理系统总体设计说明书1引言11编写目的随着知识经济科技的不断发展以及科技在各领域的不断深入越来越多的行业和领域步入信息智能化阶段信息自动化处理也是提高效益规范管理迅速客观审查的有效途径学生成绩管理系统...

学生信息管理系统设计报告(35篇)