学生管理系统详细设计说明书.docx

上传人:b****6 文档编号:7218527 上传时间:2023-01-22 格式:DOCX 页数:72 大小:2.62MB
下载 相关 举报
学生管理系统详细设计说明书.docx_第1页
第1页 / 共72页
学生管理系统详细设计说明书.docx_第2页
第2页 / 共72页
学生管理系统详细设计说明书.docx_第3页
第3页 / 共72页
学生管理系统详细设计说明书.docx_第4页
第4页 / 共72页
学生管理系统详细设计说明书.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

学生管理系统详细设计说明书.docx

《学生管理系统详细设计说明书.docx》由会员分享,可在线阅读,更多相关《学生管理系统详细设计说明书.docx(72页珍藏版)》请在冰豆网上搜索。

学生管理系统详细设计说明书.docx

学生管理系统详细设计说明书

学生管理系统

详细设计说明书

乐山师范学院计算机科学系Attract工作室

2003/08/30

编写说明

标题:

详细设计说明书

类别:

文档

密级:

内部

编辑软件:

MicrosoftWord2000中文版

版本历史:

版本

作者

日期

备注

V1.01

2002/09/08

详细设计说明书

V1.0.2

2003/08/30

详细设计说明书

编写目的:

本文档详细描述组成系统的各个软件组成部分,包括每个软件模块(或类)的属性、方法、事件,各软件模块的外部接口说明,测试要点等内容。

本文档由项目组维护,供项目组使用。

第1章引言

1.1.项目说明

项目名称:

乐山师范学院学生管理系统。

项目提出单位:

乐山师范学院计算机科学系

项目开发者:

乐山师范学院计算机科学系Attract工作室

项目使用部门:

乐山师范学院各系科(学院)

项目建设单位:

乐山师范学院计算机科学系

1.2.项目定义

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

学生管理系统是系科综合管理信息系统的重要组成部分。

1.3.编写目的

本文档为“乐山师范学院系科综合管理信息系统(学生管理系统)详细设计说明书”,主要用于为实现系统的功能而进行的系统详细设计说明,详细系统各软件组成模块的实现流程、功能、接口、编译、测试要点等内容,便于对系统的编码进行指导和约束。

本文档供项目组全体成员及项目组领导,单元测试人员阅读。

1.4.参考资料

《学生管理系统_系统软件需求说明书》。

《学生管理系统_系统概要设计说明书》。

《学生管理系统_数据库设计说明书(数据库字典)》。

第2章程序系统的结构

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

第3章系统功能实现

从前面需求分析可以看出,系统功能庞杂,主要分为前台浏览器(B/S)信息发布和数据查询,后台(C/S)数据管理和处理,学生管理功能部分数据分为5类:

新生相关;在校生相关;组织社团相关;毕业生相关;学生成绩综合查询相关。

从使用和操作的功能上分,有三种用户:

普通客户(浏览器浏览、查询);业务数据管理人员(学生工作辅导员、教务干事);系统管理员。

为便于整个系统组织管理,把各个相对独立的数据或功能组织到整个大系统中来,我们把各个相对独立的功能完全独立设计,编译成独立的目标(功能)模块(singleExecutable),各功能模块最后被集成到一个称为虚拟桌面的控制台模块中。

相应地将系统结构分为一个控制台程序和五个子系统,各子系统又分为若干各子模块。

对应于每一个模块,几乎都有录入、查询、修改、删除、查看详细资料这几个功能。

整个业务流程就是由这几种基本功能实现的。

在这里每个模块都要用到的功能没必要在每个子模块里重复阐述,在每个子模块里只列出区别于其它子模块的功能实现。

3.1.系统控制台模块

功能:

各子功能模块的组织和调用;

统一的登陆界面实现到数据库服务器的登陆;

显示系科主页Web的首页(主要是系科重要通知、消息等);学院通知页面;系科每周工作安排。

系统图标。

设计:

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);

caseStartMenu.Items[i].Items[j].Tagof

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_CONSOLEor

NORMAL_PRIORITY_CLASS,

nil,

'.\',

StartupInfo,

ProcessInfo);

3.2.新生管理子系统

总体设计:

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

设计:

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

 

模块名称:

招生数据导入

输入:

新生网上录取数据库;

处理:

将招生数据按相同格式导入系统数据库

输出:

提示信息

数据表:

T_tdd,T_jhk,T_tddw等25个招生数据表,在数据库中T_mzdm导入MZB中,T_zzmmdm导入ZZMMB中。

模块名称:

预分学号

输入:

招生数据导入的表;

处理:

根据当前年份,为当前新生预分临时学号,并将新生信息导入在校生表,导入基本信息

输出:

提示信息

数据表:

JBXX2:

学生基本信息表(简)

XS_BASE:

学生基本信息(详)

XS_EXPEND:

学生扩展信息

模块名称:

班级编排

输入:

学生预分学号信息,班级信息;

处理:

将新生编入指定班级

输出:

班级名单

数据表:

JBXX2:

学生基本信息

BJXX:

班级信息

模块名称:

寝室安排

输入:

学生预分学号信息,寝室信息;

处理:

将新生按性别分入指定寝室

输出:

寝室名单

数据表:

JBXX2:

学生基本信息(简)

XS_BASE:

学生基本信息(详)

QSZY:

寝室资源表

模块名称:

现场报到处理

输入:

学生预分学号、编班、寝室安排等信息;

处理:

根据新生到校情况,完成新生报到情况的记载以及欠费记载

输出:

表格

数据表:

JBXX2:

学生基本信息

BJXX:

班级信息

XS_BASE:

学生基本信息

XS_BDQK:

学生报到情况

XS_QFXX:

学生欠费信息

模块名称:

新生欠费查询统计

输入:

新生欠费信息;

处理:

统计欠费新生信息

输出:

欠费报表

数据表:

JBXX2:

学生基本信息

XS_QFXX:

学生欠费信息

模块名称:

新生报到情况统计

输入:

新生报到信息;

处理:

根据新生报到信息,进行各项分类统计

输出:

柱状图与表格信息

数据表:

JBXX2:

学生基本信息

XS_BASE:

学生基本信息

XS_EXPEND:

学生扩展信息

BJXX:

班级信息

SFB:

省份表

MZB:

民族表

ZZMMB:

政治面貌表

模块名称:

新生信息统计

输入:

新生网上录取数据库;

处理:

按各种分类标准,对新生的分布情况进行统计

输出:

饼状图与表格信息

数据表:

JBXX2:

学生基本信息

XS_BASE:

学生基本信息

MZB:

民族表

ZZMMB:

政治面貌表

SFB:

省份表

模块名称:

新生高考成绩统计

输入:

新生扩展信息,新生成绩信息;

处理:

按各项成绩分别统计各分数段人数比例

输出:

柱状图与表格信息

数据表:

JBXX2:

学生基本信息

XS_EXPEND:

学生扩展信息

T_TDD:

考生投档单

功能:

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

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

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

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

设计:

①总体设计:

用Delphi的PageCtrl控件来实现各项菜单功能,整体界面如下:

②招生数据导入:

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

界面如下:

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

functionCheckDBFile(varstrRst:

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

beginj:

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

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

begin

blFound:

=False;

strRst:

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

end;

i:

=i+1;

end;

strRst:

=strRst+'不存在!

';

ifblFoundthen//全部数据文件检查正确

CheckDBFile:

=True;

end;

③学号预处理:

将导入的数据从信息库表到在校生表,并根据考生的考号及其它信息填入其基本信息(如省份、入年年份等);基本处理思想是:

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

代码相对简单,界面如下

④新生班级编排:

将分配学号的新生编排到指定班级中。

用两个DBGrid(可多选)分别将未分班学生和班级信息列出来,通过手工选中一个或多个学生,即可分配班级或从班级中取消分班。

界面如下:

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

……

withStuDBGrid.DataSource.DataSetdo

begin

fori:

=0tointSelStuCnt-1do

begin

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

strStuNo:

=Fields[0].AsString;

strSql:

='Updatejbxx2setBJID='+''''+strClasNo+'''';

strSql:

=strSql+'WhereXH='+''''+strStuNo+'''';

database.Execute(strSql);

end;

end;

……

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

⑤新生现场报到:

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

界面如下:

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

读出:

……

ifADORegInfo.Activethen

begin

strState:

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

ifstrState='1'then//是否签到

Reg1Check.Checked:

=true

else

Reg1Check.Checked:

=false;

strState:

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

ifstrState='1'then//组织关系

Reg2Check.Checked:

=true

else

Reg2Check.Checked:

=false;

strState:

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

ifstrState='1'then//户口迁移

Reg3Check.Checked:

=true

else

Reg3Check.Checked:

=false;

strState:

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

ifstrState='1'then//就餐卡

Reg4Check.Checked:

=true

else

Reg4Check.Checked:

=false;

strState:

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

ifstrState='1'then//体检

Reg5Check.Checked:

=true

else

Reg5Check.Checked:

=false;

end;

……

写回数据库:

……

ADORegInfo.Edit;

ifReg1Check.Checkedthen

ADORegInfo.FieldByName('SFQD').AsString:

='1'

else

ADORegInfo.FieldByName('SFQD').AsString:

='0';

ifReg2Check.Checkedthen

ADORegInfo.FieldByName('ZZGX').AsString:

='1'

else

ADORegInfo.FieldByName('ZZGX').AsString:

='0';

ifReg3Check.Checkedthen

ADORegInfo.FieldByName('HKQY').AsString:

='1'

else

ADORegInfo.FieldByName('HKQY').AsString:

='0';

ifReg4Check.Checkedthen

ADORegInfo.FieldByName('JCK').AsString:

='1'

else

ADORegInfo.FieldByName('JCK').AsString:

='0';

ifReg5Check.Checkedthen

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;

fori:

=0to4do//设置StringGrid的标题

begin

CntStrGrid.Cols[i].Clear;

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

end;

i:

=0;

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

whilenotADOQFCntQuery.Eofdo

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:

='SelectMax('+FieldName+')asMaxScore,Min('+FieldName+')asMinScore,AVG('+FieldName+')asAvgScore';

strSql:

=strSql+'Fromt_tdd,xs_base,xs_expendWheret_tdd.ksh=xs_expend.bkhandxs_expend.xh=xs_base.xh';

strSql:

=strSql+'andNj='+MidStr(CurrentXQSJ,1,4);

ADOQFCntQuery.SQL.Clear;

ADOQFCntQuery.SQL.Add(strSql);

ADOQFCntQuery.Open;

ifADOQFCntQuery.Eofthen

begin

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

');

abort;

end;

fori:

=0to2do

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;

while(i

begin

strSql:

='Selectcount(xs_base.xh)asCrntCntfromxs_base,xs_expend,t_tdd';

strSql:

=strSql+'Wherexs_base.xh=xs_expend.xhandxs_expend.bkh=t_tdd.ksh';

strSql:

=strSql+'andNj='+MidStr(CurrentXQSJ,1,4);

strSql:

=strSql+'and'+FieldName+'>='+inttostr(intCrntScore);

strSql:

=strSql+'and'+FieldName+'<'+inttostr(intCrntScore+5);

intCrntScore:

=intCrntScore+5;

ADOQFCntQuery.SQL.Clear;

ADOQFCntQuery.SQL.Add(strSql);

ADOQFCntQuery.Open;

intCrntCnt[i]:

=ADOQFCntQuery.FieldByName('CrntCnt').AsInteger;

strSql:

='';

if(isWrite)or(itemsCou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1