成绩管理系统

一、开发的项目内容及要求

1、开发的项目:成绩管理系统

2、项目内容和功能描述:

某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:

(1)每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。

(2)学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。

(3)在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门      课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。

(4)对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之    前,系统不会处理这些成绩。

(5)若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。

(6)在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。

(7)根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。

一、相关工具平台简介

1、eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

2、MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

二、系统需求分析与总体设计

1、需求分析

(1)教师客户端功能

①可以更改密码。

②可以添加学生,并填写学生基本信息。

③可以根据学号查询学生基本信息及成绩。

④有权限控制,每个管理员只能管理其所在学院的信息。

⑤可以添加新课程、新班级。

⑥可以控制选课的课程范围,并可以控制选课的时间,即可以  控制选课的开始与结束。

⑦可以录入成绩,缓存成绩。检查无误后公布成绩。

(2)学生客户端功能

①学生可以查看自己的基本信息。

②学生可以查看自己的成绩。已修学分和不及格成绩信息。

③学生可以进行远程选课,并且可以查看课表。

UML用例图

系统结构图

四、数据库设计

1、数据库设计介绍

在该数据库中课程表是记录各学院所开设课程的基本信息,包括课程号,课程名,课程学分,所属专业号,所属学院号。

可选课程信息表是记录本学期安排的课程信息,包括课程号,上课时间,讲次,任课教师,还有一个用于控制选课的字段(onchosing),当该字段值为1说明该课程可选,当该字段为0时说明该课程不可选。

学生表是用来记录学生的基本信息,包括学生的学号,姓名,性别等信息。

学生用户表是用来记录学生的学号和登录密码的。

教师用户表是用来记录教师的用户名和登录密码的。

1、E-R图

3、数据表

数据库中共有九张表:

数据库中存储的信息如下:

班级表

学院表、专业表

课程表

学生表

学生用户表、教师用户表

五、系统实现

  教师客户端的功能为:

  其中退出模块为退出该系统

  密码修改模块为修改教师的登录密码

  新生报到模块为填写学生信息,增加一名新的学生

  基本信息查询模块为输入学生学号,查询学生的信息

  成绩查询模块为输入学生学生,查询该学生的课程成绩。

  开课选项设置模块为将课程表中的课加入到可选课程信息表,并且在加入时选定上课时间以及讲次,并设置上课老师,提交该课程之后将该记录加入到可选课程信息表中选课程信息表中。同时也可以从可选课程信息表中移除课程。

  添加课程模块实现往课程表中添加课程。

  增加班级模块实现向该学院的某个专业添加班级。

学生客户端的功能为:

其中退出模块为退出该系统。

密码修改模块为修改当前所登录的学生的登录密码。

个人基本信息模块为查看自己的信息。

选课模块为在其所在学院开放选课时选课。

课表显示模块为显示该学生的课表。

已修课程成绩为查看该学生已经选修的课程的成绩以及所修得的学分。

不及格课程成绩为查看该学生的不及格课程的成绩。

六、系统测试

进入系统后进入登录界面:

当用户输入信息,选择身份以后,系统会连接数据库 对照数据库中的学生用户表或教师用户表判断用户名 与密码是否匹配,如果匹配,则进入相应客户端。

进入教师客户端:

进入学生客户端:

学生客户端和教师客户端的主界面的设计左边都是基于树状列表控件设计的,右边是一个卡片布局面板的窗体,程序中先对面板和主窗体进行初始化,然后对树的各个结点注册监听器,再调用相应的方法。

退出登录:

实现为当用户点击退出时,显示询问对话框。

如果用户选择是的时候调用System.exit(0)退出系统

修改密码:

需要判断新密码输入是否为空,不为空则获得该密码,再判断是否符合正则表达式,如果符合则判断新密码与确认新密码是否相同,如果相同则在按下确认键后修改密码。

新生报到:

实现向这个数据库里添加一个新来的学生

一个教师只能向他所在的学院里面添加学生,而不能把学生添加到别的学院去。

其中班级的下拉列表的实现利用到了三个Map

一个Map中键是专业名,值是专业号

一个Map中键是班级名,值是班级号

另一个Map的键专业号,值是存放班级的那个Map

当用户选择好专业以后,可以根据第一个Map得到专业号,再用专业号得到存放班级的那个Map,最后再得到所选专业的所有班级名

基本信息查询:

在教师端和学生端都有,所不同的是教师端可以根据学号查看所有学生的信息,而学生端只能查看自己的信息

成绩查询:

教师客户端查询成绩                                        学生客户端查询全部成绩

学生客户端查询不及格成绩

教师端和学生端都有,所不同的是教师端可以根据学号查看所有学生的成绩,而学生端只能查看自己的成绩。而且学生端还有查询不及格课程成绩的功能。

教师客户端的开课选项设置:

实现了将课程表中的课安排好上课时间以及讲次,老师,然后添加到可选课程信息表里面。并且控制学生什么时候选课,选什么课,什么时候选课结束。

课程成绩录入:

由教师录入学生成绩,在检查无误后,按下公布该科成绩单来完成数据库的更新。

添加课程:

允许教师向自己所在学院添加课程。

增加班级:模块允许教师向自己所在学院的任何一个专业增加班级。

允许教师向自己所在学院的任何一个专业增加班级。

学生客户端的选课:

可以实现学生从教师允许选课的课程中选择课程。

学生客户端的课表显示:

实现展示该学生所选课程的上课信息。

原文地址:https://www.cnblogs.com/ku1274755259/p/11108391.html

时间: 2024-10-09 03:02:55

成绩管理系统的相关文章

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始)* 程序的版权和版本号声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日* 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/ struc

学生成绩管理系统 1.0(Java+MySql)

真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/wenr/entity/Student.java package wenr.entity; /** 数据库定义 CREATE TABLE Student ( sid CHAR(10) PRIMARY KEY, sname CHAR(20) NOT NULL, sc DOUBLE(5,2), sm D

DAO JDBC 学生成绩管理系统

1:student.course类 package JDBCU; public class Student { private String no; private String name; public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getName() { return name; } public void setName(String na

大一上C语言期末大作业-成绩管理系统

都过了半年的作业了,觉得做过去得留下点什么,所以整理了代码发一下博客. 声明:程序在DevC++下用c文件模式可以正常编译使用.(控制台程序) 程序结构: 下载链接:http://www.selflink.cn/download/C语言期末作业-吕青松-成绩管理系统.zip 程序有些粗糙,不过还是有一些控制台C程序比较实用的函数可以使用.比如欢迎界面动态打印字符函数,带提示读入函数,文件写入函数,登录函数.还有当时为了做的酷炫一点,搜集了很多资料写好的控制台窗口的控制函数,比如窗口标题设置,改变

JDBC成绩管理系统

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner; public class Student { public static void main(String args[]) { try { Class.forName("com.mysql.jdbc.Driver"

C语言练手自己编写学生成绩管理系统

#include<stdio.h> #include<stdlib.h> /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Avarage; }; /*声明学生数组及学生数量*/ struct Student students[1000]; int num=0; /*计算平均成绩*/ float Avg(struct Studen

java开发的简易学生成绩管理系统

经过1个月的紧张学习和应用,终于做出了这个简易的学生成绩管理系统. 代码如下(仅供参考学习) view包下的菜单 package com.xujulong.www.view: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import com.xujulong.www.po.Manager; import

使用Rational Rose 2003对一个考试成绩管理系统进行建模

考试成绩管理系统 如何简单的介绍使用Rational Rose 2003对一个考试成绩管理系统进行建模,以加深大家对使用UML 进行统一建模方法的认识.由于篇幅原因,对于这个系统的UML建模,我们仅给出系统的需求分析和各种建模元素的图例.本文介绍的是一个考试成绩管理系统. 1.1需求分析 考试成绩管理系统是举行成人高考.自学考试等成人高校对每个参与考试的学员成绩进行综合管理的一个系统.本系统的功能性需求如下: (1)学员报名参加相应的科目考试,通过考试成绩管理系统办理考试报名手续,并产生相应的考

【学生成绩管理系统】 大二c语言作业

几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include <cstdio> #include <conio.h> #include <iostream> #include <process.h> #include <stdlib.h> #include <algorithm> #include <cstring> #include <cmath> #define N 5 con

考试成绩管理系统:

默默地写完了第一个系统程序:考试成绩管理系统: 一.主要功能: * 一.登录 * A 注册 :新增管理员账户与密码  * B 登录 : 用账户与密码匹配,登录成功.否则提示失败 * C 退出 : 退出整个程序. * 二.分数管理 * 1.新增学生姓名和分数. * 2.修改分数. * 3.删除分数与学生姓名." * 4.通过学生姓名查询分数." * 5.查询所有学生分数." * 6.统计所有学生平均分." * 7.返回上一级." 二.主要出现了的问题: 1.