




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程课程设计学生信息管理系统的设计与实现 专业: 班级: 学号: 姓名:目 录1 引言31.1 背景31.2 目标32 需求分析32.1 系统需求32.1.1性能要求32.1.2运行环境32.2 功能需求42.3 业务流程图43 总体设计53.1 基本设计概念和处理流程53.2 系统数据流程图53.3 系统层次模块图63.4 模块设计64 数据库设计84.1数据库的逻辑设计84.2数据库的配置95 详细设计95.1. 新生管理子系统95.2 毕业生管理子模块145.3 教学评价打分185.4学生成绩网上查询196 系统维护和改进206.1 运行维护206.1.1运行模块组合206.1.2运
2、行控制206.1.3运行时间206.1.4人工处理过程206.2 系统的改进与提高20学生信息管理系统的设计和实现1 引言1.1 背景学生信息管理系统是为了适应现代化学校管理的需要,加快推进高校数字化校园建设、充分利用校园网,利用网络、多媒体等计算机应用技术和手段,提高办公效率、改善质量的高效管理信息系统。学生信息管理系统是系科综合管理信息系统的重要组成部分,进行学生基本信息、扩充信息、成绩信息、在校的其它各种信息的集中电子化处理,实现主要系务业务流程的计算机管理,实现系科学生管理工作的自动化管理和公用信息在校园网上自动发布。本文档为“学生信息管理系统的设计和实现”的说明书,主要用于为实现系统
3、的功能而进行的系统详细设计说明,详细系统各软件组成模块的实现流程、功能、接口、编译、测试要点等内容,便于对系统的编码进行指导和约束。本文档供项目组全体成员及项目组领导,单元测试人员阅读。1.2 目标 实现学生信息资料的集中化电子化处理; 实现学生成绩的电子化处理; 实现普通用户的前台多媒体自助查询功能,公用信息在校园网上自动发布; 实现学生管理工作制度化、标准化、规范化; 实现学生管理的其它必要的管理功能。 建立关于学生数据比较全面详细的数据库。2 需求分析2.1 系统需求2.1.1 性能要求 时间特性要求 查询服务部分:用户通过多媒体电脑提交命令到返回不超过5秒钟。 数据管理部
4、分:提交一笔录入到结果返回不超过5秒钟。排课对资源不能满足排课要求时应首先予以提示,不能出现死循环无限等待。 可扩充性要求 各种字典数据的编码要尽可能采用行业标准,自行编码也应合乎规范,征得相关业务部门认可; 数据库的设计应考虑可扩充性,以适应今后学校发展和系统升级的需要。2.1.2 运行环境 软件环境 学生管理系统的设计与运行基于采用C/S网络应用环境运行于校园网上。后台操作系统为Microsoft Windows 2000,数据库为Microsoft SQL Server 2000 ;Web服务器运行环境为Windows NT Server(SP6),浏览器为I
5、E4.0以上版本。 数据查询服务部分采用B/S网络应用环境。 硬件环境 服务器端包括一台标准服务器(也可用性能较好的普通PC服务器,数据库服务器、WEB服务器也可运行在同一台服务器上)。PC服务器要求CPU: PIII 600MHZ以上,内存容量大于或等于512M,硬盘容量大于或等于20G。 客户端包括多媒体电脑、PC客户机,要求多媒体电脑和PC客户机与上述PC服务器物理上连接畅通; 系科业务工作站桌面到校园网带宽要求至少为10M,保证连接畅快,最好有100M带宽。2.2 功能需求进行学生基本信息、扩充信息、成绩信息、在校的其它各种信息的集中电子化处理,实现主要系务业务流程的计算
6、机管理,实现系科学生管理工作的自动化管理和公用信息在校园网上自动发布。整个涉及的工作主要包括:新生录取报到处理、在校生基本管理、学生成绩处理与查询、学生社团组织管理、毕业生管理等方面,由此整个系统可划分为如下子系统/功能模块: 新生报到管理相关业务(系学生工作助理、辅导员等); 在校生基本管理相关业务(系辅导员、班主任等); 学生成绩汇总与查询相关业务(相关教师、教务干事); 党团组织管理相关业务(学生工作助理、辅导员等); 毕业生信息管理相关业务(系主任、学生工作助理、辅导员、教务干事等) 校友信息管理相关业务(系主任等)。2.3 业务流程图本系统主要业务在学生管理办公室进行,但也有部分业务
7、在校园内其他部门进行(如查询等),或在校园外远程进行(如网上公开信息发布、信息查询等),所以本系统应是一个分布式、规模可变的系统。数据集中在一个数据库服务器上,处理可能分布到应用程序的各层上,借助于校园网,各业务人员无障碍地实现分工协作,公共完成目标任务。根据系统总体目标及技术成熟型、一般企业流行的体系结构,学生管理系统采用分层体系结构,具体划分为三层:表现层、业务层和数据层,如下图所示:表现层业务层数据层Windows及其他GUIWeb浏览器DLLsCOM/DCOMMTSActiveX/ASP/CGI文件数据库其他数据图2-3.1业务流程图1 表现层:用户和系统进行交互地层次。通过键盘、显示
8、器、鼠标、打印机等进行人工交互。提供校园网内/外任何时间地点的访问支持(校园内借助于校园网;校园外借助于拨号上网)。应用基于网页的解决方案:即所谓的“瘦客户机”解决方案。应用则借助于免费的浏览器如Internet Explore、 NetScape等,仅需设计服务器端网页文件,勿需设计专用的前台的应用程序。本解决方案主要应用于速度要求不高的简单场合,如一般的公共查询等。基于网络的EXE解决方案:即所谓的“胖客户机”解决方案。编写前台源程序,编译成目标代码(EXE)文件。本方案是本系统的主要解决方案,完成各种数据管理、数据处理以及速度要求高的特殊查询。工作平台选用WIN9X,开发工具选用Inpr
9、ise公司的Delphi以及Microsoft公司的Visual Foxpro等。2 业务层:即事务逻辑层或中间层,完成事物处理规则和业务流程约束数据的处理。考虑到本系统问题的规模以及复杂程度、难度等,本系统业务层应用Microsoft IIS、FTP等完成业务层的功能。3 数据层:即数据资源管理层,本层完成数据资源等的插入、删除、更新修改等数据存储管理工作,还包括定义各种存储过程、数据约束等控制、触发器定义等。更多的数据处理工作在“胖/瘦客户机”上进行。在本系统中采用RDBMS来完成数据层功能,应用Microsoft SQL Serve来实现。细化的系统结构图如下:应用服务器WEB服务器客户
10、机数据库应用服务器开发工具应用服务程序数据接口WEB开发工具CGIASPISAPINSAPIWSAPI等浏览器请求请求数据页面Windows及其他GUI数据请求图2-3.2细化的系统结构图3 总体设计3.1 基本设计概念和处理流程 本系统主要业务在学生管理办公室进行,但也有部分业务在校园内其他部门进行(如查询等),或在校园外远程进行(如网上公开信息发布、信息查询等),所以本系统应是一个分布式、规模可变的系统。数据集中在一个数据库服务器上,处理可能分布到应用程序的各层上,借助于校园网,各业务人员无障碍地实现分工协作,公共完成目标任务。3.2 系统数据流程图系统总体数据流见下图:图3.2-1系统数
11、据流程图系统中所有数据都存放在数据库Server中,客户机中要保存的数据必须上传到Server,交给Server来处理、保存。Server与各前台终端是通过企业网总线通信的,主要机制是TCP/IP和HTTP协议,对用户名和密码的传输要采用SSL或其它加密机制(默认为DES算法)。Server和后台数据库通过ADO、JDBC、T3协议(Weblogic默认的通信协议)进行通信,某些重要信息(如帐户、密码等)需要进行加密(DES)。3.3 系统层次模块图整个学生管理系统的结构可由以下图示来表明:学生管理系统系科综合信息管理系统新生报到管理模块在校生日常管理模块组织社团管理模块毕业生信息管理模块学生
12、成绩查询模块其它功能图3.3-1系统层次模块图3.4 模块设计1. 登陆数据库:输入数据库服务器名(ServerIP)、用户账号()UserID、密码(PassWord);以账号DEP_Computer0、密码DEP_Computer0登陆数据库服务器,检索系统权限表,根据权限设置相应功能模块:无此用户或禁止权限Enable := False;浏览权限Enable := True;修改 UserID := Dep_Computer1;修改 PassWord := 11;修改权限Enable := True;修改 UserID := Dep_Computer2;修改 PassWord := 2;
13、2. 采用Win31下程序组、程序项的原理组织各执行模块:登陆服务器 新生录取数据、入学报道管理学生信息(在校)管理学生社团管理毕业生信息管理学生成绩综合查询与统计各程序组、程序项的显示分别可以是分层/树状/大图标/小图标等方式;各程序项或菜单项的名称命名为相应功能模块的目标代码文件名。3可执行功能模块的调用执行:通过程序项或菜单项名称获取可执行目标代码文件名,应用API函数CreateProcess开始执行。 i:= StartMenu.IndexOf(MenuItem); j:=StartMenu.Itemsi.IndexOf(MenuItem); case StartMenu.Items
14、i.Itemsj.Tag of 1: allow:=禁止; 2: allow:=浏览; 3: allow:=修改; end;ExecutableFileName := Trim(StartMenu.Itemsi.Itemsj.Name)+.exeFillChar(StartupInfo,Sizeof(StartupInfo),#0); StartupInfo.cb := Sizeof(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; CreateProcess(PChar(ExecutableFileName), , nil,
15、 nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, ., StartupInfo, ProcessInfo);4 数据库设计4.1数据库的逻辑设计1.数据流字典数据流名组成备注招生数据流详细参见全国网上招生系统的导出数据表专业数据流专业代码+专业名称+所属系科+学制+层次+备注学生基本信息数据流报考号+学号+姓名+性别+民族+政治面貌+籍贯+家庭通信地址+邮政编码+家长姓名+家长联系方式+考生类别+考生毕业类别+报考志愿一+报考志愿二+报考志愿三+幢号+寝室号+班级代码+年级+传呼+手机+电子邮箱+备注“学号”在新生时为
16、预分学号,下同高考成绩数据流详细参见全国网上招生系统的导出数据表高考体检数据流详细参见全国网上招生系统的导出数据表班级数据流班级代码+班级名称+系科+专业+层次+学制+年级+总人数+备注寝室数据流幢号+房间号+总床位数+有效床位数+电话号码+室长+备注寝室安排数据流学号+姓名+性别+寝室数据流报到数据流学号+姓名+性别+签到否+报到手续完成情况(组织关系、户口、饭卡、体检、缴费情况等)+备注欠费数据流学号+姓名+性别+专业名称+班级名称+欠费数额+备注2. 加工说明部分(1)加工名称:招生数据转入激发条件:招生工作完毕,新生数据下载到本地。 加工逻辑:将新生基本数据、体检信息和成绩导入在籍学生
17、数据库中,并分配临时学号。(2)加工名称:新生编班激发条件:新生数据基本入库。加工逻辑:将新生按专业进行分班,分班结果写回学生基本信息表中。(3)加工名称:新生寝室安排激发条件:新生数据入库加工逻辑:按学校分配的寝室可用资源,将新生分配到可用寝室里,提供手工修改功能,并将结果写加数据库。 (4)加工名称:新生报到处理激发条件:新生到校后,现场报到 加工逻辑:将新生报到情况记录在案,包括签到、组织关系转入否、户口交办否、体检完成否、饭卡、收费(欠费)情况等;以备进行欠费统计和报到统计。 (5)加工名称:欠费统计 激发条件:需要更新或查询新生的欠费情况加工逻辑:更新或查询报到情况表,可以统计学生的
18、欠费情况。 (6)加工名称:新生录取信息查询统计 激发条件:新生数据入库后,需要查询与统计新生的各种参数,包括统计性别、籍贯、民族、政治面貌、投档志愿和成绩。4.2数据库的配置整个系务涉及的业务工作主要包括:新生录取报到处理、在校生基本管理、学生成绩处理与查询、学生社团组织管理、毕业生管理等方面,由此整个系统可划分为如下子系统/功能模块: 新生报到管理相关业务(系学生工作助理、辅导员等); 在校生基本管理相关业务(系辅导员、班主任等); 学生成绩汇总与查询相关业务(相关教师、教务干事); 毕业生信息管理相关业务(系主任、学生工作助理、辅导员、教务干事等)5 详细设计5.1. 新生管理子系统总体
19、设计:新生管理子系统包含新生录取信息的导入,新生预分学号,新生班级分配,新生寝室安排,新生报到管理,新生报到信息统计,新生欠费统计,新生分布信息,新生高考成绩分布等。设计:下面给出设计方案与实现方法。新生基本信息管理招生数据导入报到预处理新生报到新生信息查询与统计预分学号班级编排寝室安排预处理查询现场报到处理欠费查询统计报到情况统计新生比例分布高考成绩统计功能:完成对新录取学生数据的导入 完成对新生数据的报到预处理(初始化)实现新生报到现场完成,并统计报到情况统计新生的各种分布比例和成绩分布 设计:总体设计:用Delphi的PageCtrl控件来实现各项菜单功能招生数据导入:可以通过选择来指定
20、全国网上录取系统的导出数据所在路径,并根据使用手册检查25个.dbf文件是否存在,来决定是否允许导入;在导入时采用记录的查重处理,所以,只能借助记录集的循环来完成;其中,对政治面貌与民族表要单独处理。主要实现文件检查的代码:function CheckDBFile(var strRst:String):boolean;var i,j:integer; blFound:boolean;begin arrstrFileName0:=t_tddw;arrstrFileName1:=t_jhk; /此处对表名赋值 CheckDBFile:=False; blFound:=True;i:=0; strR
21、st:=数据表; while (i25)do begin j:=DBFileListBox.Items.IndexOf(arrstrFileNamei+.dbf); if j=-1 then/某个文件未找到,返回“假” begin blFound:=False; strRst:=strRst+arrstrFileNamei+.dbf ; end; i:=i+1; end; strRst:=strRst+不存在!; if blFound then /全部数据文件检查正确 CheckDBFile:=True;end;学号预处理:将导入的数据从信息库表到在校生表,并根据考生的考号及其它信息填入其基本
22、信息(如省份、入年年份等);基本处理思想是:根据考生年份(报考号前两位)与当前系统数据库的绝对学期时间,筛选相应的考生信息,然后从这些信息中依次在学生基本信息表(JBXX2)中查询是否重复,来决定是否写入;如果写入,则根据报考号(第3、4位)的信息,写入考生所在省份代码。新生班级编排:将分配学号的新生编排到指定班级中。用两个DBGrid(可多选)分别将未分班学生和班级信息列出来,通过手工选中一个或多个学生,即可分配班级或从班级中取消分班。实现DBGrid多选并在数据库中完成添加的代码:with StuDBGrid.DataSource.DataSet dobegin for i:=0 to i
23、ntSelStuCnt-1 do begin GotoBookmark(pointer(StuDBGrid.SelectedRows.Itemsi); strStuNo:=Fields0.AsString; strSql:=Update jbxx2 set BJID=+strClasNo+; strSql:=strSql+ Where XH=+strStuNo+; database.Execute(strSql); end;end;寝室分配与班级编排可类似处理。新生现场报到:对新生的报到程序进行计算机管理,自动检查该新生是否已到校,是否已完成所有报到手续,以及新生的欠费情况(只记载欠费,不记载
24、缴费);并根据各项手续的完成,来确认新生的报到状态,为下一步查询提供足够信息。此处关键在于如何把数据表中“0”和“1”状态标志以CheckBox的状态输出,代码如下:读出:if ADORegInfo.Active thenbegin strState:=ADORegInfo.FieldByName(SFQD).AsString; if strState=1 then /是否签到 Reg1Check.Checked:=true else Reg1Check.Checked:=false; strState:=ADORegInfo.FieldByName(ZZGX).AsString; if st
25、rState=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
26、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:=1else ADORegInfo.FieldByName(SFQD).AsString:=0;if Reg2
27、Check.Checked then ADORegInfo.FieldByName(ZZGX).AsString:=1else ADORegInfo.FieldByName(ZZGX).AsString:=0;if Reg3Check.Checked then ADORegInfo.FieldByName(HKQY).AsString:=1else ADORegInfo.FieldByName(HKQY).AsString:=0;if Reg4Check.Checked then ADORegInfo.FieldByName(JCK).AsString:=1else ADORegInfo.Fi
28、eldByName(JCK).AsString:=0;if Reg5Check.Checked then ADORegInfo.FieldByName(TJ).AsString:=1else ADORegInfo.FieldByName(TJ).AsString:=0;ADORegInfo.Post;欠费查询可相应处理。报到情况统计:可以按性别、专业、班级、省份等统计学生的报到情况,并以柱状图和表格显示;提供自由控制条件查询未报到学生信息。统计功能实现代码如下:CntBySexDBChar.Title.Text.Clear;/清除标题CntBySexDBChar.Title.Text.Add(
29、新生报到情况(按班级统计);CntBySexDBChar.Series0.Clear;/清除图形strSql:=; CntStrGrid.RowCount:=ADOQFCntQuery.RecordCount+1;for i:=0 to 4 do /设置StringGrid的标题begin CntStrGrid.Colsi.Clear; CntStrGrid.Colsi.Add(titleNamei);end;i:=0;RegSexTLbl.Lines.Clear; /清空统计显示while not ADOQFCntQuery.Eof dobeginintCntRegdi:=ADOQFCntQ
30、uery.FieldByName(ClassRegdCnt).AsInteger; CntBySexDBChar.Series0.Add(intCntToti,inttostr(i)+应到,clBlue); CntBySexDBChar.Series0.Add(intCntRegdi,到,clRed); strSql:=inttostr(i)+trim(strClassNamei)+报到比例:;strSql:=strSql+floattostr(trunc(intCntRegdi/intCnttoti*10000)/100)+%+#13; RegSexTLbl.Lines.Add(strSql
31、); CntStrGrid.Rowsi+1.Add(inttostr(i+1); CntStrGrid.Rowsi+1.Add(strClassNamei); CntStrGrid.Rowsi+1.Add(inttostr(intCntToti); CntStrGrid.Rowsi+1.Add(inttostr(intCntRegdi);CntStrGrid.Rowsi+1.Add(floattostr(trunc(intCntRegdi/intCnttoti*10000)/100)+%); i:=i+1; ADOQFCntQuery.Next; /下一个班end;新生分布情况统计:从学生的扩
32、展信息与高考资料中提取信息,统计新生的各种分布情况,以饼状图和表格信息显示出来。相应地,高考成绩信息也可以按科目绘制出柱状图来反映分布情况,对新生的整体情况有一个大概了解,以便有针对性地开展工作。成绩统计的代码如下: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.x
33、h=xs_base.xh;strSql:=strSql+ and Nj=+MidStr(CurrentXQSJ,1,4);ADOQFCntQuery.SQL.Clear;ADOQFCntQuery.SQL.Add(strSql);ADOQFCntQuery.Open;if ADOQFCntQuery.Eof thenbegin ShowMessage(对不起,未找到相关学生的成绩!); abort;end;for i:=0 to 2 dobegin CntScoreStrGrid.Colsi.Clear; CntScoreStrGrid.Colsi.Add(titleNamei);end;Cn
34、tScoreDBChart.Title.Text.Clear;CntScoreDBChart.Title.Text.Add(新生高考成绩统计+itemName+);CntScoreDBChart.Series0.Clear;maxScore:=ADOQFCntQuery.FieldByName(MaxScore).AsInteger;minScore:=ADOQFCntQuery.FieldByName(MinScore).AsInteger;avgScore:=ADOQFCntQuery.FieldByName(AvgScore).AsInteger;itemsCount:=trunc(ma
35、xScore-minScore)/5)+1;intCrntScore:=trunc(minScore/5)*5;i:=0;isWrite:=true;CntScoreStrGrid.RowCount:=itemsCount+4;intCrntCnti:=ADOQFCntQuery.FieldByName(CrntCnt).AsInteger; strSql:=; if (isWrite) or (itemsCount12) then strSql:=inttostr(intCrntScore-5)+-;CntScoreDBChart.Series0.Add(intCrntCnti,strSql
36、,intColori mod 11);CntScoreStrGrid.Rowsi+1.Add(inttostr(intCrntScore-5)+-+inttostr(intCrntScore); CntScoreStrGrid.Rowsi+1.Add(inttostr(intCrntCnti);CntScoreStrGrid.Rowsi+1.Add(floattostr(trunc(intCrntCnti/59*10000)/100)+%); isWrite:=not isWrite; i:=i+1;end;CntScoreStrGrid.Rowsi+1.Add(最高分);CntScoreSt
37、rGrid.Rowsi+1.Add(inttostr(maxScore);CntScoreStrGrid.Rowsi+2.Add(最低分);CntScoreStrGrid.Rowsi+2.Add(inttostr(minScore);CntScoreStrGrid.Rowsi+3.Add(平均分);CntScoreStrGrid.Rowsi+3.Add(inttostr(avgScore);5.2 毕业生管理子模块毕业生基本信息管理综合信息查询基础编码维护择业与就业档案与经费证书发放毕业生离校毕业生标记职业类别档案材料择业意向处理就业去向处理择业与就业统计毕业生档案材料毕业生经费证书发放登记证
38、书发放统计功能:编辑学生(班级)的学习状态(在读、毕业班、已毕业等)毕业班级学生(毕业生)综合信息查询职业类别与档案材料基础代码的维护毕业生择意向与就业去向的处理毕业生档案材料与毕业经费的管理毕业生证书的发放管理设计:总体设计:采用与新生管理统一的界面,用PageCtrl来实现。毕业学生状态设置:完成在校生到毕业班学生状态的改变或毕业班学生向已毕业学生状态的改变。实现是通过修改学生基本信息的状态标志。修改学生状态代码如下:/设置毕业班procedure TSelGraForm.addClassBtnClick(Sender: TObject);var strSql,strCrntClassID
39、:String;begin if (ValClassListBox.Items.Count1) or (ValClassListBox.ItemIndex0) then abort; strCrntClassID:=strValClassIDValClassListBox.ItemIndex; strSql:=Update jbxx2 set ZT=+毕业班+ Where bjid=+strCrntClassID+; MainForm.database.Execute(strSql); SelGraForm.FormShow(Sender);end;毕业生综合信息查询:查询毕业生的综合信息(成
40、绩除外,有单独模块提供查询功能),按类分为若干页显示,提供打印功能。响应数据源控件的代码:procedure TsrchForm.DSsrchStuDataChange(Sender: TObject; Field: TField); /查询学生数据源数据改变begin srchForm.RefreshBaseInfo();/刷新基本信息 srchForm.RefreshJCInfo(); /刷新奖惩信息 srchForm.RefreshQTInfo(); /刷新干部信息等end;procedure TsrchForm.RefreshBaseInfo();/刷新基本信息var strSql,c
41、rntXH: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.BYX
42、X,; 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 O
43、N 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;基础编码维护:直接维护职业类别表与档案材
44、料表。通过ADOTable对象来实现与数据库中表的联系,直接读取或编辑更新数据表。择业意向登记与就业去向登记:根据学生的择业要求和志向,登记其擅长的职业类别;按照毕业生的实际就业去向,登记毕业生的毕业单位、职务、联系方式等信息,以进行各种数据的统计和信息的交流。采用DBGrid来显示学生信息,而用数据库控件来绑定就业详细信息;用按钮来实现数据的添加、修改和删除。关键在于按钮状态(增、删、改)的实现:procedure TMainForm.RefreshStuJob();/刷新就业信息var strSql,strJobXH:String;begin strJobXH:=trim(DBText10
45、.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 FirmDB
46、Edit.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
47、; 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.Downend; /end of procedure毕业生档案材料管理:登记毕业
48、生的档案材料信息,并提供查询,以确认该生是否具备正常的可毕业手续。代码如下: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_d
49、amc; 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;毕业经费处理与档案材料基本相同。毕业证书发放管理:对毕业证和学位证
50、的发放进行管理,登记毕业证和学位证的发放情况,并对数据的完整性进行控制:毕业证发放日期如果不为空,则毕业证编号不能为空;学位证发放日期不为空,则学位证编号不能为空;若毕业证发放日期为空,则必须说明证书未发放原因。进行数据完整性控制的代码如下: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.RefreshCerti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025珠海市雇佣劳动合同简易版范文
- 2025汽车国际商标许可合同范本
- 2025年简单借款合同模板
- 电视节目版权保护国际合作合同
- 广西荔浦市中考数学试卷
- 河北单招教材数学试卷
- 5G毫米波定位技术-洞察及研究
- 2025个人委托贷款合同书
- 创新绩效评估体系-洞察及研究
- 江都区一模数学试卷
- 美国技术服务合同英文翻译
- 企业数字化生存指南
- 医院医疗器械临床试验项目资料备案清单
- YDT 5206-2023宽带光纤接入工程技术规范
- 新疆警察学院面试问题及答案
- 小学三到六年级全册单词默写(素材)-2023-2024学年译林版(三起)小学英语
- 铁岭市高校毕业生“三支一扶”计划招募笔试真题2022
- 天然气泄漏事故演练方案及评估
- 《养老机构认知障碍照护专区设置与服务规范》
- 妇科炎症健康教育课件
- 儿科护理学(高职)全套教学课件
评论
0/150
提交评论