软件工程学籍管理系统API
该系统模拟一个高校的研究生学籍管理系统,从学生、教务员、管理员三个角度,基本实现研究生管理系统的所有功能。
系统的API定义如下:
#API
###Index
管理员
学籍信息
添加学籍信息页面 学籍信息统计 查看与修改学籍信息 学分统计
选课安排
设置选课起止时间 公共课的添加与停课 查看选课情况 增选与退选
管理员/pages/admin
学籍信息/pages/admin/SchoolRoll
添加学籍信息页面/Add.jsp
功能:包含已添加学生学籍列表,和正要添加的输入框。
action name: AddSchoolRollservlet name(Class): SampleProject.Admin.SchoolRoll.Addpage value:
(Student student)
(LoginForm loginForm)
其中在本页面中要用到的成员列表
| class | name | explanation |
|---|---|---|
| LoginForm | username | 用户名(对于本页面赋值为学生学号) |
| LoginForm | password | 密码 |
| LoginForm | role | 角色(0:学生/1:教务员/2:管理员 此项为0) |
| Student | no | 学号 |
| Student | name | 学生姓名 |
| Student | gender | 性别 |
| Student | birth | 出生日期 |
| Student | id | 身份证号码 |
| Student | dname | 院系名称(通过查院系表得到) |
| Student | mname | 所在专业 |
| Student | domain | 专业方向 |
| Student | enrollyear | 入学年份 |
| Student | grade | 所在年级 |
| Student | schoolyear | 学制 |
| Student | tname | 导师姓名(通过查教师表) |
| Student | state | 学籍状态(在籍/不在籍) |
| Student | nationality | 国籍 |
| Student | property | 培养性质 |
| Student | mord | 博士/硕士 |
说明:院系名称和导师姓名分别在院系表和教师表中查询。
院系名称应该是一个选择单?然后value与院系号对应
action return:
SUCCESS => /pages/admin/SchoolRoll/Add.jsp
ERROR => /pages/admin/SchoolRoll/Add.jsp(with validation error”添加失败”)
学籍信息统计/Statistics.jsp
功能:整理各个院系学生人数
action name: StatisticsSchoolRollservlet name(Class): SampleProject.Admin.SchoolRoll.Statisticspage value:
(int[][] map)二维数组表示 院系:人数
action return:
SUCCESS => /pages/admin/SchoolRoll/Statistics.jsp
ERROR => /pages/admin/SchoolRoll/Statistics.jsp(with validation error”数据库错误”)
查看与修改学籍信息/Alter.jsp
功能:查询已添加学生的学籍信息,可根据学生学号查询特定行
action name: AlterSchoolRollservlet name(Class): SampleProject.Admin.SchoolRoll.Alterpage value:
(Student student)
(Department department)
其中在本页面中要用到的成员列表
| class | name | explanation |
|---|---|---|
| Student | no | 学号 |
| Student | name | 学生姓名 |
| Student | gender | 性别 |
| Student | birth | 出生日期 |
| Student | id | 身份证号码 |
| Student | dname | 院系名称 |
| Student | mname | 所在专业 |
| Student | domain | 专业方向 |
| Student | enrollyear | 入学年份 |
| Student | grade | 所在年级 |
| Student | schoolyear | 学制 |
| Student | tname | 导师姓名 |
| Student | state | 学籍状态(在籍/不在籍) |
| Student | nationality | 国籍 |
| Student | property | 培养性质 |
| Student | mord | 博士/硕士 |
说明:院系名称和导师姓名分别在院系表和教师表中查询。
修改学生信息那里院系名称应该是可选择列表
action return:
SUCCESS => /pages/admin/SchoolRoll/Alter.jsp
ERROR => /pages/admin/SchoolRoll/Alter.jsp(with validation error”修改失败”)
学分统计/CreditStatistics.jsp
功能:列表 |学号|姓名|院系|总学分数|
action name: CreditStatisticsservlet name(Class): SampleProject.Admin.SchoolRoll.CreditStatisticspage value:
(Credit creditStat)
| class | name | explanation |
|---|---|---|
| Credit | no | 学号 |
| Credit | name | 学生姓名 |
| Credit | department | 院系 |
| Credit | credit | 已修学分数 |
说明:其中已修学分数通过查课程Course、选课表SCourse、学生表Student获取
action return:
SUCCESS => /pages/admin/SchoolRoll/CreditStatistics.jsp
ERROR => /pages/admin/SchoolRoll/CreditStatistics.jsp(with validation error”查询失败”)
选课安排/pages/admin/CourseArrangement
设置选课起止时间/pages/admin/CourseArrangement/SetChooseCoursesTime
功能:设置全校学生选课起止时间action name: SetChooseCoursesTimeservlet name(Class): SampleProject.Admin.CourseArrangement.SetChooseCoursesTimepage value:
(Date start)
(Date end)
action return:
SUCCESS => /pages/admin/CourseArrangement/SetChooseCoursesTime.jsp(“设置成功”)
ERROR => /pages/admin/CourseArrangement/SetChooseCoursesTime.jsp(with validation error”查询失败”)
公共课的添加与停课/pages/admin/CourseArrangement/AddOrDelete
功能:显示已有课程列表,开头有个添加框,每个上面都有删除按钮。
开设院系名称为选择框,面向类型为选择框
action name: AddOrDeleteservlet name(Class): SampleProject.Admin.CourseArrangement.AddOrDeletepage value:
PublicCourse publicCourse
| class | name | explanation |
|---|---|---|
| PublicCourse | cno | 课程号 |
| PublicCourse | enname | 英文名称 |
| PublicCourse | chname | 中文名称 |
| PublicCourse | hour | 学时 |
| PublicCourse | credit | 学分 |
| PublicCourse | dno | 开设院系号 |
| PublicCourse | campus | 校区 |
| PublicCourse | startweek | 起始周 |
| PublicCourse | endweek | 结束周 |
| PublicCourse | maxnum | 最大人数 |
| PublicCourse | totalnum | 总人数 |
| PublicCourse | type | 面向类型 |
| PublicCourse | num | 外院系可选人数 |
说明:开设院系号和面向类型注意页面选择框的值的对应
action return:
SUCCESS => /pages/admin/CourseArrangement/AddOrDelete.jsp(“添加成功”)
ERROR => /pages/admin/CourseArrangement/AddOrDelete.jsp(with validation error”添加失败”)
查看选课情况/pages/admin/CourseArrangement/Search
功能:根据学生学号查询学生选课情况。
输入学号,跳转到学生的“查看已选课程”页面
action name: Searchservlet name(Class): SampleProject.Admin.CourseArrangement.Searchpage value:
(char sno)
action return:
SUCCESS => /pages/student/……(学生的“查看已选课程页面。。。”)
ERROR => /pages/admin/CourseArrangement/Search.jsp(with validation error”查询失败”)
增选与退选/pages/admin/CourseArrangement/ChooseOrDelCourse
功能:输入学生学号,选择是选课还是退选,跳到该学生选课/退选时候的页面。(这个可不可以实现?)
action name: ChooseOrDelCourseservlet name(Class): SampleProject.Admin.CourseArrangement.ChooseOrDelCoursepage value:
(char sno)
(int type)
type=0表示选课,type=1表示退选
action return:
SUCCESS type=0 => /pages/student/……(学生的“选课页面。。。”)
type=1 => /pages/student/……(学生的“退选页面。。。”)
ERROR => /pages/admin/CourseArrangement/ChooseOrDelCourse.jsp(with validation error”选课失败”)
类的定义
为什么定义类?类的定义便于在程序中复用。比如教务员、管理员和学生都要查询学生信息。
对于学生来说,只需要查个人的信息,在查询时只需要建立Student类的一个实例。
对于管理员和教务员来说,查询的往往是一类学生的信息,在查询时就需要建立Student的List。
Class: Student(未完成,还要加上学生部分的)
| name | explanation |
|---|---|
| no | 学号 |
| name | 学生姓名 |
| gender | 性别 |
| birth | 出生日期 |
| id | 身份证号码 |
| dname | 院系名称(通过查院系表得到) |
| mname | 所在专业 |
| domain | 专业方向 |
| enrollyear | 入学年份 |
| grade | 所在年级 |
| schoolyear | 学制 |
| tname | 导师姓名(通过查教师表) |
| state | 学籍状态(在籍/不在籍) |
| nationality | 国籍 |
| property | 培养性质 |
| mord | 博士/硕士 |
Class: Credit
| name | explanation |
|---|---|
| no | 学号 |
| name | 学生姓名 |
| department | 院系 |
| credit | 已修学分数 |
说明:其中已修学分数通过查课程Course、选课表SCourse、学生表Student获取
Class: PublicCourse
| name | explanation |
|---|---|
| cno | 课程号 |
| enname | 英文名称 |
| chname | 中文名称 |
| hour | 学时 |
| credit | 学分 |
| dno | 开设院系号 |
| campus | 校区 |
| startweek | 起始周 |
| endweek | 结束周 |
| maxnum | 最大人数 |
| totalnum | 总人数 |
| type | 面向类型 |
| num | 外院系可选人数 |
说明:其中总人数作安排教室用