# 基于Power Bulider和Oracle数据库实现的学生教务管理系统
# 一、分析与建模
## 1.1 系统业务流程图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/319363a9fa0b13b5b487a730ee3e7537.writebug)
**项目用例图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/369d6737be59b71ebf4d457e7afc1aa1.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/481d467ece2ae97149085aca11aa7f83.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/b0b3ff4478036b194f5b9fa5e48dcebb.writebug)
## 1.2 功能需求分析与建模
![](http://www.writebug.com/myres/static/uploads/2021/10/19/43f63f4d0fa50896add88ac6ed5887c4.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/4dac996e04cca9d61538524299869b86.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/32102ff74a282e00aa46c09a3e4279b5.writebug)
## 1.3 数据需求分析与建模
体之间的联系:学生信息表(student)、教师信息表(teacher)、管理员信息表(Administrator)、课程表(course)、选课表(curricula_variable)、成绩表(score)、公告发布表(announcement)。
- **管理员(Administrator)**:管理号、姓名、性别、年龄、联系电话、密码、邮箱
- **公告(announcement)**:通知编号、管理号、通知标题、 通知内容
- **学生(student)**:学号、姓名、性别 、民族、入学时间、专业、培养层次、学生联系电话、学生QQ、密码、邮箱
- **成绩(score)**:学生编号、 课程编号、教师编号、学期、分数
- **教师(teacher)**:教师编号、教师姓名、教师姓名、职称、所在学院、教师联系电话、教师QQ、密码、邮箱
- **选课表(curricula_variable)**:选课编号、学号、课程号、学生编号、教师编号、上课时间、学生姓名、教师姓名、是否选课、教师审核
- **课程(course)**:课程号、课程名、学分、课程简介
# 二、系统设计
## 2.1 功能设计
根据学生选课排课--成绩查询管理的需要,学生成绩管理系统从功能上共分几大模块,其结构如图:
- **系统管理员模块**:可以进行管理员、教师、学生等不同身份选择性的登陆,对用户权限进行限制,方便不同级别用户工作
- **学生管理模块**:该模块主要功能是完成查看学生成绩信息、打印成绩报表。修改个人信息、查看公告和选课学习课程等功能
- **教师管理模块**:该模块主要功能是审核学生的选课,查看,学生成绩、选课、当有挂科时候,发布公告通知、以及对相关学生的成绩的录入合提交给管理员管理功能
- **数据库管理员模块**:该模块主要功能是查看、审核学生的选课情况、发布公告通知学生和教师,以及删除过于陈旧、误发布的公告。新增加、删除、修改、查询学生教师用户的个人信息。审核教师提交的学生成绩。还附带开发出完成数据的备份、,误删除以及恢复功能
## 2.2 数据库设计
在学生成绩管理数据库中需建立至少7个必要的数据表:学生信息表(student)、教师信息表(teacher)、管理员信息表(Administrator)、课程表(course)、选课表(curricula_variable)、成绩表(score)、公告发布表(announcement)。
## 2.3 系统实现
对系管理员而言,进入登陆界面后,可直接调用数据库中数据修改、查询本系统现有学生成绩信息等;对教师而言,进入登陆界面后,不仅有对教师自身信息能够得取得相关的权限外,可对全校学生成绩修改、查询,统计补考人员,打印成绩单等的操作。对于学生而言,可以实现自己的选课功能,成绩查询和预览、打印成绩单,查看公告。
## 2.4 数据库设计
![](http://www.writebug.com/myres/static/uploads/2021/10/19/a6514941fa8e544fb789923e60d0de6c.writebug)
# 三、系统开发与维护中的重难点
## 3.1 系统开发与维护环境
近几年来,随着学院新校建设、办学、招生规模的扩大,学校校生从 几千余人增加到 几万余人。与之对应的学生成绩信出现了几何式的增长, 使学校的的教务管理工作变的异常繁重,经常出现成绩查询不准确、补考学生统计不全等情况,采用传统的管理模式不适应学院当前的要求,因此学生成绩管理自动化、信息化也被提上了日程。在学校教务工作中占有很大比重的一项就是每学期末的成绩录入、成绩打印工作,以及部分选课在网上选课,采用传统的人工进行管理不仅任务重、效率低,而且易出错、不易查询、难于维护。
学生成绩管理系统正是为了减轻教务人员工作量,实现学校管理自动化,解决学院学生成绩管理难这一难题的办公软件。本系统以中文版 Power bulider 12.5 为前台开发工具,PowerDesign 15.1和使用目前到2018年为止的最新的Oracle 11g数据库作为后台数据库。系统对操作人员的计算机水平要求不高,对他们几乎不加培训便能掌握系统的大部分功能使用。
- **硬件环境**:windows XP/win7 x86 x64/win10 x86 x64
- **软件开发环境**:Power bulider 12.5/ PowerDesign 15.1/Oracle 11g
**选择原因**
开发时候,因为大部分时间都需要在机房里面进行编写,而XP的系统现在还有一部分在计算机机房存在,所以要考虑到兼容,还有主要占领大部分份额的win7和现在正在推行的外win10的操作系统,都是需要考虑的能够兼容运行的。而实际上面我们开发了中考虑到了PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,并且在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,方便我们使用PowerBuilder开发的应用程序的时候,可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。并且PowerBuilder开发的应用程序是独立于服务器上的数据库管理系统的。使用PowerDesigner不仅可以加速了开发的过程,而且也向最终的用户提供了管理和访问项目的信息的一个有效的结构方式。它允许我们编码时候创建和管理数据的结构,和开发和利用数据的结构针时候,使用开发工具环境快速地生成应用对象和数据敏感的组件。后台的数据库使用Oracle 11g则是考虑了它提供的高性能、伸展性、可用性和安全性,并且更方便地在低成本服务器和存储设备组成的网格上运行 ,相对过往版本而言,Oracle 11g具有了与众不同的特性。
## 3.2 系统开发与维护的重难点
### 3.2.1 教师登录界面
![](http://www.writebug.com/myres/static/uploads/2021/10/19/557cf6cf4e01012791ff0ef06df7f4e0.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/45ed7a77d28d5f41cb6b3db5d949d9ba.writebug)
```
user1=sle_1.text
psw1=sle_2.text
username=user1
…
if rb_2.checked=true then
select count(*) into :count1 from teachers where tno= :user1;
select count(*) into :count2 from teachers where tno=:user1 and tpsw=:psw1 ;
if count2=1 then
open(w_teacher_main)
close(parent)
else
if count1=1 then
messagebox("提示","密码错误!")
count0=count0+1
if count0=3 then
messagebox("提示","错误三次!")
close(parent)
else
end if
else
messagebox("提示","用户名不存在!")
count0=count0+1
if count0=3 then
messagebox("提示","错误三次!")
close(parent)
else
end if
end if
end if
```
### 3.2.2 课程信息管理:上传课程信息、检查课程信息
![](http://www.writebug.com/myres/static/uploads/2021/10/19/66f9b03bb8527614613722c6be6aac6b.writebug)
![](http://www.writebug.com/myres/static/uploads/