文档库 最新最全的文档下载
当前位置:文档库 › 软件工程课程设计---高校教务管理系统

软件工程课程设计---高校教务管理系统

软件设计方法课程设计

设计说明书

高校教务管理系统(教师端)

的设计与开发

学生姓名

学号

班级信管072班

成绩

指导教师

2009年12月25日

软件设计方法课程设计评阅书

题目高校教务管理系统(教师端)的设计与开发

学生姓名学号

指导教师评语及成绩

指导教师签名:

年月日答辩评语及成绩

答辩教师签名:

年月日教研室意见

总成绩:

室主任签名:

年月日

课程设计任务书

2009—2010学年第1学期

专业:计算机科学与技术学号:姓名:

课程设计名称:软件设计方法课程设计

设计题目:高校教务管理系统(教师端)的设计与开发

完成期限:自2009 年12 月28 日至2009 年1 月8 日共 2 周

设计依据、要求及主要内容(可另加附页):

为方便学校教务管理,按软件工程软件开发流程开发教务管理系统(教师端),要求: 1)问题定义及需要分析,画出数据流图;

2)完成教师基本信息、课程计划、学生选课查看、课程介绍、教学日历、成绩管理、教务信箱、教师教学评价、发布课程通知等功能;

3)进行设计并用相应的工具表示(如层次结构图、JACSION图等);

4)测试系统,说明测试方法及测试用例;

5)较好的界面设计、完善的帮助功能;

6)编写课程设计报告。

指导教师(签字):教研室主任(签字):

批准日期:年月日

摘要

高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统的教务管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成教学管理工作。这是开发这个教务管理系统的原因。

本系统主要实现教师查询个人信息、学生选课信息和课程通知等,录入学生成绩、课程计划、教学日历和个人信息等,删改各项信息的功能。

系统使用Powerbuilder制作前台界面,后台使用Microsoft SQL Server 2000制作数据库。通过Powerbuilder建立MSS Microsoft SQL Server数据源来连连接前台界面和后台数据库。

经过本次课程设计,实现了一些基本功能,由于我们组仅设计教务管理系统的老师端,对没有实战经验的我们来说,难度增加了,在发布功能上没有实现是我们的不足。

关键词:高校教务管理系统;录入;查询;SQL Server 2000; Powerbuilder;

目录

1 问题定义 (1)

2 可行性研究 (2)

3 需求分析 (5)

3.1 功能需求分析 (5)

3.2 数据库概念设计 (5)

3.3数据库逻辑设计 (6)

4 总体设计 (8)

4.1 模块化 (8)

4.2 层次结构图 (8)

5 详细设计 (9)

6 实现 (11)

6.1 数据库物理设计 (11)

6.2 编码 (12)

6.2.1 制作菜单 (12)

6.2.2教师信息管理模块 (12)

6.2.3 成绩管理模块 (13)

6.2.4 课程管理模块 (13)

6.2.5 教学管理模块 (14)

6.3 测试 (15)

总结 (18)

参考文献 (19)

1 问题定义

随着学校规模的扩大,人员的不断增加、复杂程度逐渐增强,学校中,教务是一项繁琐的事,每年都有新生入学、老生毕业,以及其他各种人事变动。每学期的考试成绩都需要分析,纵、横向比较,能及时反馈信息,还要对教师的教学成绩考核提供数据。如何有效地管理、分析、处理这些信息,帮助学校和教师掌握学生的情况,这就是教学信息管理系统需要完成的功能。以前简单的用Excel来打印几张报表的人机作坊再也无法适应当今学校的教学管理了,比如用Excel虽然能简单管理学生的学籍、成绩等,但用户界面简单,管理起来难度大,修改和查找学生的信息都比较麻烦,并且在操作过程中没有用户权限,只要能打开计算机的人就能打开数据进行任意的修改,大大的降低了信息的安全性和保密性,效率低,,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入各个领域并发挥着来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率。

(1)本文主要着手于建立数据库以及对数据的各种操作功能。教师登录后对信息的查看,和录入两大功能。查看的是个人信息,教学评价,课程计划,课程通知等,录入的是个人信息,学生成绩,教学日志等。

(2)以上各类信息目前还处于手工或半手工的管理状态,效率低,可靠性差。如果采用计算机进行以上各类信息的管理,必将大大提高工作效率,对各类信息的维护及了解起到积极的作用。因此一个功能完备的学校信息管理系统的开发都非常有必要。

2 可行性研究

1、可行性研究的目的,就是用最小的代价在尽可能短的时间见内确定问题是否能够解决。

首先需要进一步分析和澄清问题定义。

本系统下述三个方面研究每种解法的可行性。

(1)技术可行性

本系统使用了Sql Server 2000制作数据库。运用Powerbuilder制作前台界面,通过MSS Microsoft Sql Server 连接前台和后台。在技术上是可行的。

(2)经济可行性

本系统仅限于学习实践,并不涉及开发费用,开发费用使用是合理的。

(3)操作可行性

能够良好的解决教师需要的问题。操作时可行的。

2、数据流图

数据流图,简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

使用逐步求精的方法,从顶层流程图逐一分解,到最终流程图。从图2.1到图2.5所示。

图2.1 顶层流程图

图2.2 系统0层图

图2.3 系统1层图

图2.4 系统1层图

图2.5 系统2层图

3 需求分析

“需求分析”,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”。

3.1 功能需求分析

通过对本系统功能的需求分析,得到如下功能:

(1)教师基本信息的查询、修改、录入:为了方便教师对基本信息的管理,将本功能分为三个小模块查询、修改、和录入,这样老师就能方便的进行基本信息的管理。

(2)课程计划的录入、查询、修改:为了方便教师对课程计划的管理,将本功能分为三个小模块查询、修改、和录入课程计划信息。

(3)学生选课的查看:教师查看那学生选课后可以对课程制作教学日历。

(4)课程介绍:教师可以利用这个功能了解课程的基本信息,以便老师安排教学。

(5)教学日历:教师可以利用教学日历知道自己和学校的课程计划。

(6)成绩管理:教师和学生都可以查看成绩,老师还可以录入、修改成绩。

(7)教务信箱:学校可以利用此功能通知老师一些安排和信息。学生可以利用此功能给老师发一些问题和建议。

(8)教师教学评价:教师可以对老师的教学做评价和提意见。

3.2 数据库概念设计

基本项构思ERD的四条基本原则:

①原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。

②原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。

③原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。

④原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。

根据上面的设计出本系统的E-R图,如图所示:

图3.1 所有实体E-R图

3.3数据库逻辑设计

关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。

由ERD导出一般关系模型的四条原则;

①一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

③一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属

性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

④3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

根据以上原则将E-R图转换成的关系模式如下:

根据E—R图分析1:1的关系转化为2个表,1:m的转化为2张表,m:n转化为3张表得出数据库的基本表7张:

教师信息表(工号姓名所属教研室电话备注性别出生日期住址)

课程信息表(课程名课程号课程类型备注)

课程计划表(课程名工号学期上课时间上课教室姓名)

课件表(课程名课件内容)

成绩信息表(学号课程名姓名得分)

学生选课信息表(学号姓名课程名课程类型)

教学评价表(姓名课程名得分评价)

通过总体设计,要达到的基本目的就是回答:“概括的说,高校教务系统(教师端)是如何实现的”通过总体设计,可以使开发人员站在全局的高度进行分析,通过分析各种可能的方案,分析出其中最合理可行的方案。

4.1 模块化

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的的那个你满足用户的需求。

本系统划分成以下模块:

(1)用户登录模块。进入系统必须登录或者注册,登录后才能访问其他模块。

(2)教师信息管理模块。直接进入菜单中的教师信息模块,对个人信息进行增删改的操作,这样的模块内聚高,耦合小。

(3)成绩管理模块。直接进入菜单中的成绩管理模块,对成绩进行增删改操作。

(4)课程管理模块。课程计划,学生选课分别是系统管理员上传和学生上传的。这个模块的属于通信耦合,耦合程度中等。课程介绍和课程通知是系统管理员发布的,学生和老师均可以看到,内聚较高。

(5)、教学管理模块。教务信息和教学评价必须通过学生发生邮件后才能看到。耦合程度高,不过可以在数据库设计中直接添加内容。类似于制造驱动模块。老师录入教学日历,学生即可看到。

4.2 层次结构图

层次图用来描述软件的层次结构。通过以上的分析,从需求分析得出的数据流图出发,进行总体设计中的结构设计,该系统有以下几大功能,本系统的软件结构用层次图来表示,如图4.1所示。

图 4.1层次结构图

详细设计的根本目标是确定应该怎样具体地驶向所要求的系统,经过这个阶段的工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

过程设计采用了过程设计工具N-S图。N-S图简单明了,不允许随意转移控制。是一个优良的设计工具,所以本系统采用N-S图来描述程序处理的过程。下面是主要模块的N-S图。

(1)登录模块

连接数据库

Y sle_1.text="" N

messagebox()

sle_1.setfocus()

Y sle_2.text="" N

messagebox()

g_user=sle_1.text g_pwd=sle_2.text

sle_2.setfocus() 条件查询语句

Y g_user=trim(ls_user) and g_pwd=trim(ls_pwd) N

open() g_input_time=g_input_time+1

Y g_input_time>3 N

close() Messagebox()Messagebox()

close(w-login) sle_1.text=""

sle_2.text=""

图5.1登录模块

(2)教师信息管理模块

Messagebox()

Y b_select=1 N

name=trim(sle_1.text)

suoshu=trim(sle_2.text)

datatime=trim(sle_3.text)

phone=trim(sle_4.text)

Y suoshu="" or suoshu='' N

MessageBox()

sle_2.setfocus()

return

Y datatime="" or datatime='' N

MessageBox()

sle_4.setfocus()

return

update jiaoshixinxibiao

Y sqlca.sqlcode<>0 N

MessageBox()

图5.2 教师信息管理模块

6 实现

实现分为三部分,数据库物理设计、编码和测试。编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。本系统测试部分主要使用了黑盒测试。

6.1 数据库物理设计

(1)索引的选择建立

由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必需。本系统采用索引方法,分别在各个表的主键上建立关系表。

(2)数据存放位置

本系统数据和索引存放在磁盘中。

(3)确定系统配置

根据具体需要配置。

(4)表设计

根据需求分析得出从表6-1到6-7。

表6-1教师信息表

字段名字段类型长度主键或外键字段值约束

工号Char 10 Primary Key Not Null

姓名char 10

性别Char 2

出生日期Datetime 8

所属教研室char 12

电话号码Char 11

入校时间datetime 8

住址varchar 50

表6-2课程信息表

字段名字段类型长度主键或外键字段值约束

课程名Char 4 Primary Key Not Null

课程编号char 10

课程类型Char 10

备注char 50

表6-5成绩信息表

字段名字段类型长度主键或外键字段值约束

Not Null

学号int 4 Primary Key

Foreign key

姓名Char 10

课程名Char 10 Primary Key Not Null

得分float 8

表6-6学生选课信息表

字段名字段类型长度主键或外键字段值约束

学号int 4 Primary Key

Not Null

Foreign key

姓名Char 10

课程名Char 10 Primary Key Not Null

课程类型Char 8

表6-7教学评价表

字段名字段类型长度主键或外键字段值约束

Not Null

工号int 4 Primary Key

Foreign key

得分Char 10

课程名Char 10 Primary Key Not Null

评价varchar 50

6.2 编码

本系统使用了PBscript语言设计程序。

在PB中,新建一个workshop,新建一个应用,然后逐一在前台界面中输入代码,实现教师信息管理、成绩管理、课程管理和教学管理模块。

6.2.1 制作菜单

在PB中新建一个菜单,制作菜单项。然后保存为m-menu。

制作主菜单m-menu,将该菜单放到窗口中。菜单如图6.1所示:

图6.1 菜单界面

6.2.2教师信息管理模块

制作菜单中的教师信息管理模块,在修改教师信息对应菜单制作窗口w-modify-information。在“确定”按钮后输入如下主要代码:

string name,suoshu,datatime,phone

int b_select

b_select=messagebox("系统提示","确认修改?",exclamation!,yesno!)

if b_select=1 then

name=trim(sle_1.text)

.......

if suoshu="" or suoshu='' then

MessageBox("系统提示","对不起!所属教研室不能为空!")

sle_2.setfocus()

return

end if

........

update jiaoshixinxibiao

set 教师姓名=:name,所属教研室=:suoshu,

入校时间=:datatime,电话=:phone

where 教师姓名=:name;

if sqlca.sqlcode<>0 then

messagebox("系统提示","更改错误!")

return

end if

messagebox("系统提示","更改成功!");

end if

6.2.3 成绩管理模块

(1)建立更改成绩窗口w-chengji。这个模块实现的功能是,在输入框中输入姓名,点击检索即可看见指定姓名的信息,“检索”按钮后的代码如下:

//取消所有过滤条件

dw_1.setfilter("")

dw_1.setfilter("姓名='"+sle_1.text+"'")

dw_1.retrieve() //检索数据,将符合条件的数据显示在数据窗口中

(2)建立数据窗口d-chengji。通过数据库连接上学生成绩表。数据窗口如图6.2所示:

图6.2 d-chengji数据窗口

数据窗口后加入主要代码:

dw_1.settransobject(sqlca)

dw_1.setfilter("")

dw_1.filter()

6.2.4 课程管理模块

(1)课程管理模块中主要涉及了四个部分,查看课程计划、查看学生选课、课程介绍和课程通知。查看课程计划和查看学生选课功能类似,此处仅仅列举查看学生选课功能。课程介绍和课程通知是管理员发布的信息,由于本系统仅涉及教师端,在此不对课程介绍和课程通知设计。根据目录制作窗口w-xueshengxuanke。在输入框中可以输入学号,检索匹配的数据信息。“检索”按钮后的主要代码如下:

//取消所有过滤条件

dw_1.setfilter("")

dw_1.setfilter("学号='"+sle_1.text+"'")

dw_1.retrieve() //检索数据,将符合条件的数据显示在数据窗口中

(2)建立数据窗口d-xueshengxuanke。通过数据库连接上xueshengxuankebiao。数据窗口如图6.3所示:

图6.3 d-xueshengxuanke数据窗口

数据窗口后加入主要代码:

dw_1.settransobject(sqlca)

dw_1.setfilter("")

dw_1.filter()

6.2.5 教学管理模块

(1)教学管理模块包含三个部分,教务信箱、教学日历和查看教学评价。教务信箱由于本

系统使用PB做前台界面,对于教务信箱的设计有很大局限性,所以对本系统并未设计此功能。查看教学评价和上节类似,在此不重复设计。本节主要设计教学日历。根据目录设计了窗口w-jiaoxuerili,“添加”按钮后的主要代码如下:

long net

net=dw_1.insertrow(0)

dw_1.ScrollToRow(net)

“保存”按钮后的主要代码如下:

dw_1.update()

dw_1.retrieve()

(2)建立数据窗口d-jiaoxuerili。通过数据库连接上教学日历表。由于教学任务的字符数很大,此处采用了freeform数据窗口如图所示:

图6.4 d-jiaoxuerili数据窗口

数据窗口后加入主要代码和上一节的代码相同。

6.3 测试

软件测试在软件生命周期中横跨两个阶段。通常编写出每一个模块之后就对他做必要的测试,模块的编写者和测试者是同一人。本系统采用了简单的黑盒测试,但是并未严格按照测试流程一一测试。仅对实现每一功能进行了测试。

(1)打开本系统,首先弹出欢迎界面,登陆,工号是1,密码是1。

(2)登录之后进入主界面。主界面中按功能需求分析分为了四个部分,教师信息管理、成绩管理、课程管理和教学管理。教师信息管理主要针对对教师信息的更改,本系统较为简单的罗列了教师的若干项属性,并未全部列出,如果需要列出只需要添加按钮即可。点击更改教师信息,即可更改教师信息,如图6.5所示。

图6.5 修改教师信息界面

填入需要更改的信息之后,系统弹出提示框,如果确认修改点击是,否则点击否。更改成功后系统将提示“更改成功”。

相关文档
相关文档 最新文档