一、概述
1. 项目背景
学生成绩管理系统是学校管理的重要工具,是学校不可或缺的一部分。随着在校人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂,资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着众多的弊端,如:保密性差,查询不便,效率低,很难维护和更新等。然而,本系统针对以上的缺点能够极大的提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。
2. 选题理由
随着这些年电脑计算机的速度发生大量的提高,成本更远远下降,IT互联网大众趋势得以发展,我们使用电脑的高效率才使处理数据信息成为可能。学生成绩管理系统的出现,正是管理人员与信息数据,计算机与人类进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心入手。使用JDBC在Java代码中操作Mysql中的数据,制作了一个简易的学生成绩管理系统,系统拥有用户登录、注册,查看学生基本信息,添加学生基本信息等功能,通过JDBC可以向数据库中添加,删除,修改,查询数据,实现基本功能。通过这个系统,可以做到信息的规范处理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效的把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。
3. 目前条件
eclipse(2021-12版)、JavaSE-1.8、Mysql、Navicat Premium 12(12.1.22版)、JDBC。
二、系统需求描述
1. 需求分析
学生信息的基本管理:学号、姓名、性别、专业、年级等。
学生成绩信息的基本管理:包括学号、课程编号、课程名字、分数等。
课程信息的基本管理:包括课程编号、课程名称、任课教师等。
教师对功能的需求:
具有基础的账号系统,可以对学生的基本信息,考试成绩,课程信息进行统一管理,细分如下:
有关学生信息的浏览,学生信息的添加、修改和删除
有关学生的成绩信息的浏览,学生成绩的添加、修改和删除
有关学校的基本课程的浏览,学校课程的添加、删除
学生对功能的需求:
具有基础的账号系统,可以利用此系统进行与自己有关的信息查询与输入,细分如下:
浏览课程信息
浏览考试成绩
浏览课程信息
2. 数据流图
3. 数据字典
数据结构:student
描述:学生信息的基本表
定义:
student = ID + name + sex +major + grade
ID={限整数型}
name={限10个字符以内}
sex={限3个字符以内}
major={限12个字符以内}
grade={限4个字符以内}
数据结构:mark
描述:学生成绩的基本信息表
定义:
mark = ID + Knumber + Kname + result
Knumber={限整数型}
Kname={限10个字符以内}
result={限实数型}
数据结构:kmark
描述:学校课程信息表
定义:
Kmark = Knumber + Kname + name
name={限10个字符以内}
数据结构:register
描述:登录用户信息表
定义:
register = identity + user + password + id
user={限12个字符以内}
password={限12个字符以内}
三、 概要结构设计
1. E-R图设计
四、逻辑结构设计
学生信息: 学号,姓名,性别,专业,年级
选课:学号,课程编号,课程名称,分数
课程信息:课程编号,课程名字,任课教师
五、 数据库实施
建库:create database stu;
建表:create table student(
ID int(12) auto_increment primary key,
name varchar(10),
sex char(3),
major varchar(12),
grade varchar(4)
) ;
create table mark(
ID int(11) auto_increment,
Knumber int(11),
Kname varchar(10),
result double,
primary key(ID,Knumber)
);
create table Kmark(
Knumber int(11),
Kname varchar(10),
name varchar(10),
primary key(Knumber)
);
create table register(
identity varchar(12),
user varchar(12),
password varchar(12),
id int(11) auto_increment primary key);
六、 系统实现
1. 主程序流程图
2. 项目的包结构
3. 程序描述
DBUtils.java 用于连接数据库。
Kc_1.java 实例化课程信息对象。
Kc_2.java 向数据库发送sql语句实现增加课程信息,实现查询全部课程信息,实现删除课程信息。
Kc_3.java 打印课程信息的相关页面到控制台中,并实现交互。
Kmark.java 循环打印出全部课程信息。
Main.java 主函数所在,整个程序的开端,实现用户登录或注册。
RegDao.java 向数据库发送sql语句实现添加用户,实现查看用户账号和密码,实现获取用户账号,实现获取用户账号和密码。
Register.java 实例化用户对象,账号,密码,身份。
StuCtrl.java 打印学生信息的相关页面到控制台中,并实现交互。
StuDao.java 向数据库发送sql语句实现增加学生信息,实现查看全部学生列表,实现根据ID(学号)获取学生信息,实现修改学生信息,实现删除学生信息。
Student.java 实例化学生信息对象。
StuMark.java 实例化学生成绩(选课)对象。
StuMarkCtrl.java 打印学生成绩的相关页面到控制台中,并实现交互。
StuMarkDao.java 向数据库发送sql语句实现增加学生成绩信息,实现查看全部学生成绩信息,实现根据ID(学号)获取学生成绩信息,实现修改学生成绩信息,实现删除学生成绩信息。
View.java 主视图,打印管理界面,学生界面,教师界面到控制台,并与相关功能进行实例化的使用。
4. 系统实现思路
首先通过主函数实例化View对象(主视图)并调用ChooseMenu方法,进入管理界面,1.教师入口,2.学生入口,3.退出系统。通过实例化Scanner类获取用户的输入来判断进入学生系统还是教师系统,进入用户管理界面1.登录,2.注册,调用Main的Login(登录),register(注册)方法再来到RegDao.java与数据库中的数据进行核对或修改从而完成交互。
当登录到教师管理界面回到主视图显示:
1.新增学生信息与成绩,2.修改学生基本信息与成绩,3.删除学生信息,4.获取所有学生成绩,5.查询所有学生信息与成绩,6.查询课程信息,7.添加课程信息,8.删除课程信息,9.退出该界面。
当选择1、2、3、4、5时,进入StuCtrl.java,选1时实例化Student对象,再调用StuDao的add(添加学生信息)方法,实现功能。选2时实例化StuDao对象并调用FindById(根据ID获取学生信息)方法,再通过实例化Student对象修改学生信息。选3时通过实例化StuDao对象调用FindById方法核实学生信息、delete(删除学生信息)方法,完成删除。选4时实例化StuMarkCtrl对象并调用queryAllStuMark(查询所有学生成绩信息)方法,方法内再实例化StuMarkDao对象,调用list()方法,其内运用StuMark对象遍历完成对数据库的数据访问并返回相关值,最后返回集合,读取集合的相关信息显示于控制台上。选5时,同4相同,只是将集合的相关信息读取完整。选6时实例化Kmark对象,调用kc(打印查询课程信息结果)方法,方法内实例化Kc_2对象,调用list()方法,其内运用Kc_1对象遍历完成对数据库的数据访问并返回相关值,最后返回集合,读取集合的相关信息显示于控制台上。选7时实例化Kc_3对象调用add方法,方法内实例化Kc_1完成课堂信息的储存, 方法内实例化Kc_2调用add方法完成向数据库添加课程信息。选8时实例化Kc_3对象,调用delKmark(删除课程信息)方法,方法内实例Kc_2对象,调用FindById_2(根据课程编号获取课程信息),确认删除后再调用delete方法,完成删除数据库课程信息。选9即跳出do-while循环,即退出系统。
标签:课程设计,java,实例,报告,数据库,信息,学生,课程,成绩 From: https://www.cnblogs.com/gjkt2001/p/17438266.html