学生成绩管理系统.docx

上传人:b****6 文档编号:8498895 上传时间:2023-01-31 格式:DOCX 页数:27 大小:255.16KB
下载 相关 举报
学生成绩管理系统.docx_第1页
第1页 / 共27页
学生成绩管理系统.docx_第2页
第2页 / 共27页
学生成绩管理系统.docx_第3页
第3页 / 共27页
学生成绩管理系统.docx_第4页
第4页 / 共27页
学生成绩管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统.docx

《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(27页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统.docx

学生成绩管理系统

学生成绩管理系统

吴文英(自己的名字)

(天津师范大学计算机与信息工程学院)照写

摘要:

学生成绩管理工作是学校学生管理工作的重要组成部分,随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。

本系统采用C/S体系结构,客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器,采用PowerBuilder9作为开发工具;服务器端则用于提供数据服务,采用SQLServer2000作为数据库管理系统。

关键词:

学生成绩管理系统设计

Studentperformancemanagementsystem

Abstract:

Studentachievementmanagementisanimportantpartoftheschoolmanagement,alongwiththeexpansionofschoolsizeandtheincreaseinthenumberofstudents,inefficient,error-pronemanualmethodsbecomeincreasinglyunsuitedtotheneedsoftheactualmanagement,softwareengineeringprinciplesandinaccordancewithstudentperformancedatabasemanagementsystemtechnologydevelopmenthasbecomeanurgentneedformanagementstudents.ThesystemusesC/Sarchitecture,theclientisresponsiblefortheexpressionoflogic,displayuserinterfaceinformation,accessthedatabaseserver,usingPowerBuilder9asadevelopmenttool;serversideisusedtoprovidedataservices,usingSQLServer2000asthedatabasemanagementsystem.

Keywords:

StudentScoresystemdesign

目录

1学生成绩管理系统分析与设计2

1.1 系统概述2

1.1.1系统需求分析2

1.1.2现状分析2

1.1.3系统开发方法3

1.1.4开发计划3

2系统设计3

2.1系统总体设计3

2.2数据库设计4

2.2.1数据库概念结构设计4

2.2.2数据库逻辑结构设计5

3结构设计6

3.1模块结构设计6

3.2代码设计6

3.3数据库设计7

3.4输入输出设计3238

3.4.1输出设计8

3.4.2输入设计9

3.5模块测试计划9

4系统实施9

4.1创建应用库及应用对象10

4.2创建全局变量(PB中对任何代码的编写都必须没有语法错误才能切换到其模块)11

4.3菜单设计11

4.4创建窗口并在窗口中放置所需控件12

4.5创建数据窗口19

1学生成绩管理系统分析与设计

1.1 系统概述

1.1.1系统需求分析

学生成绩管理工作是学校学生管理工作的重要组成部分,现在相当一部分学校的学生成绩管理工作仍沿用手工方式。

随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。

学生成绩管理系统主要包括以下功能:

(1)完成数据的录入和修改,并提交数据库保存。

其中的数据包括:

学生信息、课程设置、学生成绩以及操作员信息等;

(2)实现信息查询。

主要包括:

学生信息查询、课程信息查询和成绩查询等;

(3)具备一定的安全性管理功能。

包括操作员的权限设置、密码设置、重新登录和修改口令等功能。

1.1.2现状分析

目前在中小学中,学生的成绩管理主要以班级为单位,由各班班主任以表格的形式直接输入电脑中,故就整个学校而言对于学生成绩的管理较为分散,涉及的人员较多且不利于相关的统计工作,学生的成绩信息也得不到长久的保存。

总体目标:

实现学校对所有班级、学生的成绩信息进行系统的管理,便于操作,便于查询。

具体目标:

(1)管理员能够方便地对信息进行添加、编辑、删除、查询等操作。

(2)教务人员可以方便地查询所需的成绩信息,并得到相应的统计报表。

(3)简化现有系统的流程,使之更加便捷、高效。

1.1.3系统开发方法

客户端采用VisualBasic.NET,后台采用SQLserver2000。

1.1.4开发计划

(1) 初步调查:

以询问、查询资料的形式,对学校现行的学生成绩管理方式进行调查,确定现行方式所存在的问题以及相关需求并进行分析。

(2) 可行性分析:

根据初步调查的情况,从技术上、经济上、管理上进行开发的可能性和必要性分析。

(3) 详细调查:

详细了解情况并绘制组织结构图和业务流程图。

(4) 系统的设计:

根据对所调查情况的分析,进行系统的各种设计。

2系统设计

2.1系统总体设计

本系统采用C/S体系结构,客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器,采用PowerBuilder9作为开发工具;服务器端则用于提供数据服务,采用SQLServer2000作为数据库管理系统。

本系统按照功能划分为以下四个模块:

学生管理(包括学生信息录入和学生信息查询)、课程管理(包括课程设置和课程查询)、成绩管理(包括成绩录入和成绩查询)和系统管理(包括口令更改、重新登录和操作员管理等)。

系统的功能模块图如图2-1所示:

 

系统管理

成绩管理

课程管理

学生管理

图2-1系统的功能模块图

2.2数据库设计

2.2.1数据库概念结构设计

本系统主要有学生和课程两个实体集,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,两个实体集之间是多对多联系,联系上有选课成绩。

为保证系统的安全性,设置了操作员这一实体集,用来存放合法用户的编号、姓名、密码和权限。

本系统的E-R图如图2-2所示:

 

 

 

 

 

图2-2系统的E-R图

2.2.2数据库逻辑结构设计

根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型:

Student(Sno,Sname,Sex,Sbirth,Sdept)

其中各项含义分别为:

学生(学号,姓名,性别,出生日期,所在系)

Course(Cno,Cname,Cpno,Credit)

其中各项含义分别为:

课程(课程代码,课程名称,先行课号,学分)

SC(Sno,Cno,Grade)

其中各项含义分别为:

选修(学号,课程代码,成绩)

Operator(Operator_id,Operator_name,Password,Permission)

其中各项含义分别为:

操作员(操作员编号,操作员姓名,密码,权限)

根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如表2-1,2-2,2-3,2-4:

表2-1学生信息表Student的表结构

主码

列名

数据类型

宽度

小数位

空否

备注

Pk

Sno

Char

5

 

N

学号

 

Sname

Char

8

 

Y

姓名

 

Sex

Char

2

 

Y

性别

 

Sbirth

SmallDatetime

 

 

Y

出生日期

 

Sdept

Char

20

 

Y

所在系

表2-2课程信息表Course的表结构

主码

列名

数据类型

宽度

小数位

空否

备注

Pk

Cno

Char

3

 

N

课程代码

 

Cname

Char

20

 

Y

课程名称

 

Cpno

Char

3

 

Y

先行课号

 

Credit

Decimal

3

1

Y

学分

 

表2-3选课成绩表SC的表结构

主码

列名

数据类型

宽度

小数位

空否

备注

Pk

Sno

Char

5

 

N

学号

Cno

Char

3

 

N

课程代码

 

Grade

Decimal

5

1

Y

成绩

表2-4操作员表Operator的表结构

主码

列名

数据类型

宽度

小数位

空否

备注

Pk

Operator_id

Char

4

 

N

操作员编号

 

Operator_name

Char

12

 

Y

操作员姓名

 

Password

Char

10

 

Y

密码

 

Permission

Char

20

 

Y

权限

下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQLServer数据库—Student,具体创建方法见前面实验。

3结构设计

3.1模块结构设计

组织结构图

学生成绩管理系统分析与设计的组织结构图:

系统名称:

学生成绩管理系统

 

3.2代码设计

(1)代码设计原则:

在数据库中的关键字数据元素通常其代码都有特定含义,必要时还带有校验码。

例如成绩表中学号编码,由8个字符组成,前四个字符表示入学年份,后四个是按顺序递增的流水号。

(2)校验码计算公式:

对每一个带有校验码的关键字代码,都要有一张代码设计说明书,校验码计算公式可以相通,也可以不同。

3.3数据库设计

(1)数据库总体结构

本系统采用关系型数据库模式,因此数据库由若干个二维表(数据文件)组成,每个数据文件均设计成第三范式。

表名用含有实际意义的大写拼音首字母表示,如学生成绩表:

chengji

(2)数据库结构

每一个数据文件均有一张定义表:

成绩表(chengji)

字段名 字段说明 类型 字段大小

xuehao 学号 文本 8

xingming 姓名 文本 10

kemubianhao 科目编号 文本 4

kemufenshu 科目分数 文本 3

banjimingcheng 班级名称 文本 20

ID ID号 自动编号 长整型

学生表(xuesheng)

字段名 字段说明 类型 字段大小

xuehao 学号 文本 8

xingming 姓名 文本 10

xingbie 性别 文本 2

banji 班级 文本 20

nianling 年龄 文本 2

dianhua 电话 文本 18

zhuzhi 住址 文本 40

班级表(banji)

字段名 字段说明 类型 字段大小

banjibianhao 班级编号 文本 6

banjimingcheng 班级名称 文本 20

科目表(kemu)

字段名 字段说明 类型 字段大小

kemumingcheng 科目名称 文本 20

kemubianhao 科目编号 文本 4

3.4输入输出设计323

输入输出设计在信息系统中占据重要地位,因为输入和输出是用户与系统的接口,是用户与系统关系最密切的两部分,它对于保证今后用户使用系统的方便性及系统的安全可靠性来说十分重要。

系统设计时,应先进行输出设计,再进行输入设计,因为输入信息只有根据输出要求才能确定。

3.4.1输出设计

输出设计的目的是使系统能输出满足用户需求的有用信息,用户所需要的各种管理业务和经营决策等方面的信息都是由系统的输出部分完成的。

(1)输出方式

本系统采用屏幕输出和打印机打印输出。

(A)屏幕显示输出:

学生登录系统查询成绩时用人机对话方式在显示屏上输出信息,以及用户通过功能按钮、输入组合条件等方式让系统显示信息,该种方式的优点是实时性强,但输出的信息不能保存。

(B)打印机输出:

需要统计分析成绩时输出的信息需要长期保存或在较广泛的范围内传递时,将信息打印输出。

(2)输出介质

本系统输出设备有显示终端、打印机等,介质是纸张。

3.4.2输入设计

输入设计的根本任务就是确保数据快速、正确地输入系统,本系统选用键盘输入。

3.5模块测试计划

(1)测试内容:

教务人员进入系统后对信息的录入、修改、删除及学生成绩的关联查询

(2)进度安排:

数据库表结构设计好就设计相应测试用例,待相应模块代码编完随即测试。

(3)测试所需的环境和设备:

本系统开发版基于单机WindowsXP,后台数据库采用SQLServer2000,测试人员由开发者本人兼任。

(4)实施测试

(5)生成测试报告

4系统实施

结合PowerBuilder进行数据库应用开发的特点,设计过程可按如下步骤进行:

(1)创建应用库及应用对象;

(2)创建全局变量;

(3)创建菜单;

(4)创建数据窗口;

(5)创建窗口并在窗口中放置所需控件。

4.1创建应用库及应用对象

设置ODBC数据源:

(1)首先在管理工具中设置ODBC数据源:

在系统DSN中设置名为GM的数据源,数据库指向自己的数据库,并测试连接是否成功。

(2)利用PB8创建工作区间GM.pbw,进一步创建应用库gm.pbl,应对象名为gm,注释为“学生成绩管理系统”。

按照下面的方法,设置应用对象的属性:

⑴默认的微帮助:

在属性视图的”Genral”标签中,将”MicroHelpDefault”编辑框中的内容设为“就绪”。

⑵取消用户对工具条的控制:

将属性视图中”Toolbar”标签中的”ToolbarUserControl”属性设置为不选中状态。

对应用对象的Open事件进行编程,程序代码如下:

(该段代码最好等W_welcome和W_login两个窗口完成后再写,否则会产生错误而无法退出;或者先将涉及到这两个窗口的语句注释掉,待设计好两个窗口后再将注释去掉。

open(w_welcome)//打开启动封面窗口

//设置数据库连接参数

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=gm'"//数据库为Student

connect;

//判断连接是否成功,若不成功,则提示出错信息,并返回

ifsqlca.sqlcode<>0then

messagebox("错误","数据库连接错误,轻检查后重试!

",stopsign!

close(w_welcome)

return

endif

close(w_welcome)//关闭封面窗口

openwithparm(w_login,"First")//打开登陆窗口,First参数表明第一次登陆

4.2创建全局变量(PB中对任何代码的编写都必须没有语法错误才能切换到其模块)

在应用程序中,为了保存全局信息,定义的全局变量如图3-1所示:

图4-1全局变量的定义

4.3菜单设计

根据应用系统的功能要求,设计如图3-2所示的菜单结构,其中将菜单名称命名为m_main,注释为“主菜单”,其中的图标选用的是系统内置的图标(这些图标只要在“Toolbar”选项卡上的“Toolbaritemname”中选择,图标会在工具栏上显示):

图4-2系统的主菜单

各菜单项标题、名称及相应的”Clicked”事件中的代码如下(事件代码在相应的窗口没有完成之前不要写,如果要写可先注释掉):

学生管理(m_student)

学生信息录入(m_student_input):

open(w_student_input)

学生信息查询(m_student_query):

open(w_student_query)

课程管理(m_course)

课程设置(m_course_set):

open(w_course_set)

课程查询(m_course_query):

open(w_course_query)

成绩管理(m_score)

成绩录入(m_score_input):

open(w_score_input)

成绩查询(m_score_query)

按学生查询(m_score_query_student):

open(w_score_query_student)

按课程查询(m_score_query_course):

open(w_score_query_course)

系统管理(m_system)

口令更改(m_system_password):

open(w_changepassword)

重新登录(m_system_relogin):

openwithparm(w_login,”RELOGIN”)

操作员管理(m_system_operator):

open(w_operator)

退出系统(m_system_exit):

close(parentwindow)

4.4创建窗口并在窗口中放置所需控件

常用控件(单击工具栏上该按钮的下拉箭头)

,如图4-3。

CommandButton(命令按钮,默认名前缀cb_)

CheckBox(复选钮,默认名前缀cbx_)

RadioButton(单选钮,默认名前缀rb_)

StaticText(静态文本,默认名前缀st_)

SingleLineEdit(单行编辑框,默认名前缀sle_)

EditMask(单行掩码编辑框,默认名前缀em_)

MultiLineEdit(多行编辑框,默认名前缀mle_)

RropDownListBox(下拉列表框,默认名前缀ddlb_)

ListBox(列表框,默认名前缀lb_)

DataWindow(数据窗口,默认名前缀dw_)

 图4-3常用控件

根据需要创建以下窗口(注意属性窗口的操作):

⑴w_welcome:

封面窗口。

创建选项:

Title=“欢迎”;WindowType=popup!

;ControlMenu=false;Pointer=HourGlass!

;st_title.text=“欢迎使用学生成绩管理系统”;St_message.text=“正在连接数据库,请稍等…”。

运行效果如图4-4所示:

图4-4封面窗口的运行效果

(2)w_main:

主窗口。

创建选项:

Title=“学生成绩管理系统”;MenuName=”m_main”;WindowType=mdihelp!

(3)w_login:

登录窗口。

创建选项:

Title=“请您登录”;WindowType=response!

;st_operator_id.text=“操作员编号”;st_operator_name.text=“操作员姓名”;st_password.text=“口令”;sle_operator_id.text=””;sle_operator_name.text=””;sle_operator_name.Enabled=false;sle_password.text=””;sle_password.password=true;cb_ok.text=“确定”;cb_exit.text=“退出”;cb_exit.cancel=true。

窗口的“Open”事件代码:

gs_loginparm=message.stringparm//保存传递过来的参数

“操作员编号”编辑框(sle_operator_id)的“Midified”事件代码:

stringls_operator_id

ls_operator_id=sle_operator_id.text

select"operator"."operator_name"//注意SELECT等SQL命令在PowerBuilderScript中的语法,引号的加法

into:

gs_operator_name

from"operator"

where"operator"."operator_id"=:

ls_operator_id;

ifsqlca.sqlcode<>0then

sle_operator_name.text="没找到!

"

sle_operator_id.text=""

sle_password.text=""

return

endif

sle_operator_name.text=gs_operator_name

“确定”按钮(cb_ok)的“Clicked”事件代码:

stringls_operator_id,ls_operator_name,ls_password,ls_permission

stringls_getpassword

ls_operator_id=sle_operator_id.text

select"operator"."operator_name","operator"."password","operator"."permission"

into:

ls_operator_name,:

ls_password,:

ls_permission

from"operator"

where"operator"."operator_id"=:

ls_operator_id;

ifsqlca.sqlcode<>0then

sle_operator_name.text="没找到!

"

sle_operator_id.text=""

sle_password.text=""

sle_operator_id.setfocus()

return

endif

sle_operator_name.text=ls_operator_name

ls_getpassword=trim(sle_password.text)

ls_password=trim(ls_password)

iflen(ls_password)=0thenls_password=space(10)

iflen(ls_getpassword)=0orisnull(ls_getpassword)then

ls_getpassword=space(10)

endif

ifls_getpassword<>ls_passwordthen

messagebox("警告","口令错误!

")

sle_password.text=""

sle_password.setfocus()

return

endif

close(parent)

gs_operator_id=ls_operator_id

gs_operator_name=ls_operator_name

gs_password=ls_password

gs_permission=ls_p

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

当前位置:首页 > 总结汇报 > 学习总结

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

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