教务管理系统(软件工程课程设计).pdf
软件工程实践报告教务管理系统第一章问题定义随着学校规模的扩大,人员的不断增加、复杂程度逐渐增强,学校中,教务是一项繁琐的事,每年都有新生入学、老生毕业,以及其他各种人事变动。每学期的考试成绩都需要分析,纵、横向比较,能及时反馈信息,还要对教师的教学成绩考核提供数据。如何有效地管理、分析、处理这些信息,帮助学校和教师掌握学生的情况,这就是教学信息管理系统需要完成的功能。以前简单的用Excel 来打印几张报表的人机作坊再也无法适应当今学校的教学管理了,比如用Excel 虽然能简单管理学生的学籍、成绩等,但用户界面简单,管理起来难度大,修改和查找学生的信息都比较麻烦,并且在操作过程中没有用户权限,只要能打开计算机的人就能打开数据进行任意的修改,大大的降低了信息的安全性和保密性,效率低,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率。11 问题定义1所需资源:硬盘 80G,内存 256,处理器一般以上水平即可。2.系统名为:教务管理系统(1),本处理的信息主要有三大类:学生信息、教师信息、成绩数据。本系统主要着手于以上三大部分,建立数据库以及对数据的各种操作功能。对于学生信息,由于需要经常性地进行各种查询。例如:查询一个班级中团员的人数,男女生的人数等等。教导处在每一届学生进校时必须进行分班,设置学号;每一届学生毕业,要进行学生信息备份;对于教师信息,学校教导处跟据老师所教班的成绩对教师的成绩成行考核,可以进行同科的纵横向比较。(由于对教师方面不太了解只有这些)对于成绩管理,课任教师要进行本科目成绩登记,计算平均分、优秀率、及格率;教导处要分段统计学生人数及所占比列,每学期进行学生成绩备份;学校领导则可通过查询工具来了解学生成绩情况。(2),以上各类信息目前还处于手工或半手工的管理状态,效率低,可靠性差。如果采用计算机进行以上各类信息的管理,必将大大提高工作效率,对各类信息的维护及了解起到积极的作用。因此一个功能完备的学校信息管理系统的开发都非常有必要。第二章可行性研究21系统概述本系统将采用面向对象的软件开发方法,以SQL 2000 作为后台数据库,配合功能强大的SQL 查询语句,用 Delphi 便捷地开发教学管理信息系统的应用程序。221可行性分析A 技术可行性:对Delphi 能够运用自如,对SQL 语句熟练掌握运用。B 经济可行性:开发费用合理C 操作可行性:能够良好的解决用户需要的问题第三章总体设计31 系统功能描述本系统的主要任务是实现对学校的学生信息管理、成绩管理、教师考核信息管理、课程信息管理及相关查询。其主要功能包括:1.学生信息管理功能添加学生.以班级为单位,进行学生入库。其中分为单个添加和成批添加。单个添加学生供数量较少的学生信息入库;学籍变更。提供学生转学、休学、复学、退学、留级及毕业信息。删除学生。当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。学生信息备份。在学生信息删除前,将其按班级为单位保存到备份数据库2学生成绩管理功能分数录入。以班级为单位,录入成绩。分数段统计。以班为单位,根据成绩统计各科各分数段的人数,总分各分数段的人数。成绩备份。为指定班级及指定的学期数的学生成绩保存到备份数据库中。3教师信息管理功能添加新教师。教师信息的修改。教师成绩考核。学生信息管理成绩管理课程信息管理查询要求查询结果教师信息管理教务管理系统用户教务管理系统系统时钟4课程信息管理功能 1.课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。2.教师与课程。供录入课任教师与课程、班级的联系情况。是排课系统的基础。5查询功能。学生信息查询。根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询。教师信息查询。根据用户的要求,查询相关教师信息。备份成绩查询。按班级为单位查询备份数据库的学生信息。32 数据流图与数据字典321 数据流图根据以上的系统功能描述,设计出数据流图如下:一、基本数据流图与功能级数据流图(图3-1 至图 3-2)教务系统用户教 务 管 理系统目的要求教务系统用户结果图 3-1 学生情况学生信息管理学生管理信息要求成绩管理教师信息管理要求教师信息管理课程管理要求选课信息查询要求查询要求教务系统用户1 用 户 要求 有 效性检查2 学生信息处理3 成 绩 信息处理4 教师信息处理5 课 程 信息处理6 查询处理系统时钟用户D1|数据库信息图 3-2 322 查询功能流程图总分表成绩表学生信息查询要求查询规则查询结果学生表图 3-3 学生信息查询教师信息查询要求查询规则查询结果教师表图 3-4 教师信息查询323 数据字典一、数据流条目:(1)学生信息管理模块:学生信息管理要求=添加数据要求|数据删除要求|数据备份要求|学籍变更 添加数据要求=单个学生数据单|成批数据单 数据删除要求=起止学号|班级名称|所有学生数据 数据备份要求=班级名称|学期数|在读情况 学生数据=学号+姓名+班级编号+性别+年级+政治面貌+民族编号+籍贯编号班级数据(年份+班数)修改要求=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+班级单个学生数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+班级成批数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+班级学籍变更=转学+休学+复学+退学+留级+毕业性别=男|女 政治面貌=团员|非团员 (2)成绩管理模块:6.2.1要求加工6.2.2 查询处理6.3.1要求加工6.3.2 查询处理成绩管理要求=成绩录入要求|总分计算要求|成绩备份要求|成绩统计要求 成绩录入要求=班级名称+成绩数据总分计算要求=班级名称+成绩数据成绩备份要求=班级名称+学期数+毕业成绩统计要求=单科分段统计+总分分段统计+平均分统计成绩数据=姓名+课程名称+分数成绩表=学号+姓名+单科成绩+成绩总分(3)教师信息管理模块:教师信息管理要求=添加新教师要求|修改数据要求|成绩考核要求 添加新教师要求=职工号+教师姓名+政治面貌+职务+所教科目+在岗情况修改数据要求=职工号+教师姓名+政治面貌+职务+所教科目+在岗情况成绩考核要求=考核条件 政治面貌=中共党员|团员|群众 (4)查询模块:查询要求=查询条件 查询结果=学生信息统计表|学生成绩统计表|学生总分名次统计表|教师信息统计表|备份信息统计表 二、处理条目:(1)学生信息管理模块处理条目:处理名称:检查记录有效性输入:新生数据输出:有效的新生记录、无效的新生记录处理逻辑:根据新生记录IF 格式有效THEN 读取记录ELSE 无效格式记录,启动EXCEL 调整格式ENDIF 处理名称:启动EXCEL 调整输入:新生记录输出:有效的新生记录处理逻辑:根据新生记录按要求调整处理名称:读取新生记录输入:新生数据输出:写入学生表文件处理逻辑:根据新生记录DO WHILE 新生记录不为空THEN 读取记录,写学生表文件,班级值为“新生”LOOP 处理名称:统计新生数据输入:班级为“新生”记录输出:总新生人数,男女生人数处理逻辑:根据新生记录,查询所有班级为“新生”的记录,并计算记录数查询所有性别为“男”且班级为“新生”的记录,并计算记录数查询所有性别为“女”且班级为“新生”的记录,并计算记录数处理名称:查询相关记录输入:学生记录,班级名称输出:指定班级的学生名单处理逻辑:根据学生记录,查询所有班级名称等于输入值的学生记录处理名称:修改学生记录输入:指定班级学生记录,修改要求输出:学生信息处理逻辑:根据修改要求,改写学生数据处理名称:查询备份数据输入:班级名称输出:备份数据处理逻辑:在学生表中查询班级名称等于输入值的学生数据处理名称:数据备份输入:备份数据输出:备份数据文件处理逻辑:IF 数据已备份THEN 退出ELSE 生成备份文件ENDIF 处理名称:删除所有学生数据输入:所有学生记录输出:更新学生表、总分表、成绩表(2)成绩管理模块加工条目处理名称:查询学生及课程信息输入:班级名称输出:指定班级的学生名单及本学期所开课程处理逻辑:查询学生表中班级名称为输入值的记录判断所在年级,查询课程表获得本学期所开课程处理名称:成绩录入输入:学生名单,课程信息,成绩录入数据输出:更新成绩表处理逻辑:选择课程名称,录入成绩写入成绩表处理名称:查询成绩数据输入:班级名称输出:指定班级的学生名单及成绩数据处理逻辑:学生表与成绩表做笛卡尔积,获得指定班级的学生成绩数据处理名称:查询成绩数据输入:备份数据单输出:备份数据(3)教师信息管理模块数据加工条目:处理名称:数据录入输入:新教师名单输出:更新教师表文件处理逻辑:在教师表中添加一记录,以录入值更新记录处理名称:查询教师信息输入:数据修改单输出:教师记录处理逻辑:在教师表中查询记录处理名称:修改数据输入:教师记录,修改要求输出:更新教师表,教师信息处理逻辑:根据修改要求,更新记录,写入教师表(4)查询模块加工条目:处理名称:要求加工输入:学生信息查询要求输出:查询规则处理名称:查询处理输入:查询规则输出:查询结果处理逻辑:根据查询规则查询指定表,并显示结果33 软件结构图34 数据库设计数据库是信息管理的基础。数据库结构直接关系到各种功能的实现和程序运行的效率。教学管理系统学生信息管理系统学生成绩管理系统教师考核管理系统学生信息输入教务信息输入个人信息查询考试成绩输入年级开课情况成绩查询成绩打印教师基本信息教师岗位变动教师成绩考核341 数据库需求分析根据数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:学生:学号、姓名、性别、班级、生日、籍贯、毕业学校、政治面貌。教师:职工号、姓名、所教科目编号、在岗情况、政治面貌、职称。开课信息:记录号、科目号、开课年级。教师任课信息:记录号、科目号、班级、教师职工号。学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。所需的外部数据支持:科目:记录号、科目名。342 数据库逻辑结构设计学生个人信息表字段名数据类型是否可空说明ID CHAR(11)NOTNULL 学号(主关键字)NAME VARCHAR(20)NOTNULL 姓名SEX CHAR(1)NOTNULL 性别(M-男,F-女)CLASS CHAR(6)NULL 班级BIRTHDAY DATE NULL 生日NATIVE_PLACE VARCHAR(50)NULL 籍贯GRADUA TE_SCHOOL VARCHAR(50)NULL 毕业学校POLITY_VISAGE VARCHAR(10)NULL 政治面貌教师信息表字段名数据类型是否可空说明ID CHAR(3)NOTNULL 职工号(主关键字)NAME VARCHAR(10)NOTNULL 姓名POLITY_VISAGE VARCHAR(10)NULL 政治面貌SUBJECT CHAR(2)NULL 科目代码(外部关键字SUBJECT)POST CHAR(1)NULL 岗位代码(外部关键字POST)科目信息表字段名数据类型是否可空说明CODE CHAR(2)NOTNULL 科目号(主关键字)NAME VARCHAR(10)NOTNULL 科目名开课结果信息表字段名数据类型是否可空说明ID CHAR(3)NOTNULL 记录号(主关键字)SUBJECT CHAR(2)NOTNULL 科目号(外部关键字SUBJECT)GRADE CHAR(6)NULL 选课年级成绩表结构字段名数据类型是否可空说明ID CHAR(11)NOTNULL 学号(主关键字)SUB_CODE CHAR(2)NOTNULL 科目代号教师任课信息表字段名数据类型是否可空说明ID INTEGER NOTNULL 记录号(主关键字)SUBJECT_ID CHAR(2)NOTNULL 科目号(外部关键字SUBJECT)CLASS CHAR(6)NULL 选课班级TEACH_ID CHAR(3)NULL 教师职工号(外部关键字TEACHER)教师岗位代码表字段名数据类型是否可空说明ID CHAR(1)NOTNULL 代码(主关键字)DESCRIPTION VARCHAR(10)NOTNULL 描述学籍代码表字段名数据类型是否可空说明ID VARCHAR(2)NOTNULL 代码(主关键字)NAME VARCHAR(8)NOTNULL 描述第四章详细设计41 系统界面设计一、系统主窗口界面设计1.系统主窗口:二、学生信息管理模块界面设计:学生信息管理模块窗口主要有新生数据输入窗口、学籍变更窗口、分班操作窗口、删除学生信息窗口。学生数据输入窗口2.课程信息表三、成绩管理模块界面设计:成绩管理模块界面窗口主要有成绩录入。1、成绩录入窗口42 系统主要算法设计:以结构化语言的方式对本系统的主要功能进行算法设计。它们是查询模块中的学生信息查询子功能。学生信息查询子功能算法设计:采用的数据结构:该子模块功能主要采用字符串作为数据结构。对数据库的组合查询中有许多查询条件,并且查询的内容经常涉及到多个数据表的操作。本系统中采用SQL 查询语言进行信息查询,算法的主要思想是将用户的查询条件以字符串的形式按一定规则组合在一起,最后作为查询命令进行数据库查询。具体算法设计:查询函数入口IF 查询条件为空THEN 要求输入查询条件RETURN ENDIF SQL=“SELECT”检查查询条件IF 查询条件包含学生信息THEN SQL=SQL&学生表ENDIF IF 查询条件包含成绩信息THEN SQL=SQL&成绩表ENDIF SQL=SQL&“WHERE“IF 查询条件包含学生信息THEN SQL=SQL&学生信息查询条件ENDIF IF 查询条件包含成绩信息THEN SQL=SQL&“AND“&成绩查询条件ENDIF 以字符串 SQL 作为 SQL 查询命令进行数据库查询显示查询结果。第五章编码51 Delphi 开发环境Delphi 是开发数据库前端的优秀工具,它以其简洁明快的编程语言、功能强大的组件和灵活方便的编程环境。采用Delphi 来开发数据库应用程序具有更大的灵活性和可扩展性。Delphi 支持单机的 dBase、Paradox 数据库和流行的关系数据库,如Oracle,Sybase,SQL Server等。最后完成的系统可以在单机、Netware 网络文件共享方式和客户机/服务器条件下运行。用 Delphi 开发应用程序是一个基于组件的开发过程。Delphi 为我们提供了丰富的可视和不可视控件,用于创建友好的用户界面,控制后台数据库和网络的通信等。在Delphi 环境下开发应用程序主要可以分成两部分:一是人机界面的开发,即应用程序的外表;二是人机交互的实现,即各类事件的处理。第六章测试测试过程中出现乱码问题,经转换后问题解决。1、功能单一、分散,各部分子功能间的联系不强。2、界面设计还不够好。3、权限设置不能实时体现。4、网络功能还不够完善。主要参考文献:韩伟峰,Delphi 7 程序设计教程,清华大学出版社。陈豫龙、何旭洪等,Delphi 7 数据库系统开发实例导航,人民邮电出版社。伍俊良,Delphi 7 实例编程 50 讲,北京希望电子出版社。张龙卿,Delphi 6 数据库深入编程技术,北京希望电子出版社。丁宝康,数据库原理,经济科学出版社。(美)格罗夫(Groff,J.R.)著;章小莉等译,SQL 完全手册(第二版),电子工业出版社。