1 绪论
1.1 项目概述
学生基本信息管理系统分为六个板块 分别是修改密码、班级管理 学生管理、教师管理、课程管理和选课管理
①密码修改是对登录身份(系统管理员、教师、学生)密码的修改
②班级管理系统是实现 对班级信息的增加、修改、删除、查询。
③学生管理是实现对学生信息的增加、修改、删除、查询。
④教师管理是实现对教师信息的增加、修改、删除、查询。
⑤课程管理是实现对课程信息的增加、修改、删除、查询。
⑥选课管理是对学生对当前已有课程进行选课、已选课程的查询、修改、退课。
1.2 项目意义
我着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、和快速的查询,从而减少管理方面的工作量。
2 开发工具和相关技术简介
本项目是学生基本信息管理系统。开发环境:Eclipse、MySQL;开发语言:Java语言;开发技术:JDBC等。本章将对开发工具和相关技术进行简单介绍。
2.1 Eclipse简介(或者MyEclipse和IEDA简介)
2.1.1 IDEA简介
IDEA 全称IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IntelliJ IDEA的每个方面都专门设计用于最大限度地提高开发人员的工强大的静态代码分析和符合人体工程学的设计使开发不仅具有高效性,而且还具有令人愉悦的体验。在IntelliJ IDEA为您的源代码编制索引之后,它通过在每个上下文中提供相关建议提供了快速而智能的体验:即时和巧妙的代码完成,动态代码分析和可靠的重构工具。
2.1.2 Eclipse简介
Eclipse是一个基于Java的、开放源码的、可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境(Integrated Development Environment,IDE)。在Eclipse的官方网站中提供了一个Java EE版的Eclipse IDE。应用Eclipse IDE for Java EE,既可以创建Java项目,也可以创建动态Web项目,同时eclipse是Java开发者最喜欢的工具之一,因为它具有强大的编辑、调试功能。很多人把eclipse当做IDE来使用,但从本质而言,eclipse不仅仅局限于一个IDE,它只是实现了一般IDE具有的普遍功能。就eclips而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
eclipse的设计思想:一切皆为插件,其底层封装了一个核心,其他功能都基于此核心写成插件。从而扩展整个eclipse的功能。
2.2 Java语言介绍
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java的优点:
(1)简单性
(2)面向对象
(3)跨平台性
(4)健壮的
(5)安全性
(6)多线程
(7)动态的
(8)高性能
2.3 MySQL简介
MySQL是一个关系型数据库管理系统,关系型数据库将保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL时开源的,所以不需要支付额外的费用,它也支持大型的数据库,可以处理拥有上千条记录的大型数据库。MySQL使用标准的SQL数据语言形式,MySQL可以运行多个系统上,并且支持多种语言。这些编程语言包括C,C++,Python,Java,Perl,Ruby,PHP,Eiffel,Tcl等。MySQL存储数据量较大,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。
2.4 JDBC技术简介
JDBC是一种用于执行SQL语句的java API,由一组类与接口组成,通过调用这种类和接口所提供地方法,可以使用标准的SQL语言来存取数据库中的数据。Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。JDBC扩展了Java的能力,如使用Java和JDBCAPI就可以公布一个Web页,页中带有能访问远端数据库的Applet。或者企业可以通过JDBC让全部的职工(他们可以使用不同的操作系统,如Windwos,Machintosh和UNIX)在Intranet上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。随着越来越多的程序开发人员使用Java语言,对Java访问数据库易操作性的需求越来越强烈。简单地说,JDBC能完成下列三件事:
1)同一个数据库建立连接;
2)向数据库发送SQL语句;
3)处理数据库返回的结果。
3 系统需求分析
3.1 系统可行性分析
3.2 系统需求分析
学生基本信息管理系统分为六个板块 分别是修改密码、班级管理 学生管理、教师管理、课程管理和选课管理
3.2.1 修改密码
输入原密码、新密码、确认密码。根据当前登录身份和输入的内容在dao层和数据库发生交互 来判断原密码是否正确 在正确的前提下 对相应的密码更新为新密码。
3.2.2班级管理
①班级信息的添加:在班级名称的textField和班级信息的textArea输入信息点击提交按钮 实现一个班级信息的添加。重置按钮实现清空当前输入域的所有内容
②班级信息的查询:在班级列表打开时生成一个所有班级信息的JTable通过上方班级名称的textField输入的内容 点击查询 从数据库中遍历找到包含有输入内容的字段显示在JTable上。
③班级信息的修改:通过鼠标点击JTbale(JTbale鼠标监听事件)选择修改的内容,在下方编辑区域输入要修改的内容 点击确认修改按钮 完成对数据库班级表信息的修改。
④班级信息的删除:通过鼠标点击JTbale(JTbale鼠标监听事件)选择删除的内容,点击删除按钮完成对数据库班级表信息的删除。
3.2.3学生管理
①学生信息的添加:学生信息添加界面 在学生姓名的textField输入学生姓名,所属班级的combox下拉框选择数据库班级表中班级,输入要添加学生的登录密码,选择学生性别的单选按钮点击确定实现对数据库学生表信息的添加。重置按钮可重置两个输入域的内容 班级下拉框和学生性别默认选第一个。
②学生信息的查询:在学生列表打开时生成一个所有学生信息的JTable通过上方学生姓名的textField输入的内容 和所属班级的下拉框 点击查询按钮 从数据库中遍历出相应的信息显示在JTable上。
③学生信息的修改:通过鼠标点击JTbale(JTbale鼠标监听事件)选择修改的内容,在下方编辑区域输入要修改的内容 选择修改的班级和学生性别 点击确认修改按钮 完成对数据库学生表信息的修改。
④学生信息的删除:通过鼠标点击JTbale(JTbale鼠标监听事件)选择删除的内容,点击删除按钮完成对数据库学生表信息的删除。
3.2.4老师管理
①老师信息的添加:老师信息添加界面 在教师姓名、职称、年龄、密码的textField输入内容 选择教师性别的单选按钮,点击确认添加按钮实现对数据库教师表信息的添加。重置按钮清空当前输入域的所有内容,性别单选按钮默认选择男。
②老师信息的查询:教师列表打开时生成一个所有教师信息的JTable通过上方教师姓名的textField输入内容点击查询,从数据库中遍历找到包含有输入内容的字段显示在JTable上。
③老师信息的修改:通过鼠标点击JTbale(JTbale鼠标监听事件)选择修改的内容,在下方编辑区域输入要修改的内容,选择教师性别,点击确认修改,完成对数据库教师表信息的修改。
④老师信息的删除:通过鼠标点击JTbale(JTbale鼠标监听事件)选择删除的内容,点击删除按钮完成对数据库教师表信息的删除。
3.2.5 课程管理
①课程查询:在课程管理界面输入查询信息,点击"查询"按钮,从数据库中搜索相对应的课程信息,并输出在界面。
②课程添加:在课程添加界面,输入课程名称,学生人数,授课老师,课程介绍等信息的添加。
③课程修改:修改界面点击下拉框选择需要进行修改的信息,输入新信息,完成修改,同时修改相应数据信息。
④课程删除:选择删除的信息,点击按钮删除课程信息。
3.3.6 选课管理
①课程选择:在选课管理界面选择课程下拉框,从数据库中搜索课程信息进行选择.对于已经选择过的课程进行提示
②课程退课;在选课管理界面选择学生已经选好的课程,点击退课按钮删除学生选课信息
③课程修改;在选课管理界面选择学生已经选好的课程,点击课程下拉框对其进行修改,点击修改按钮,修改学生选课信息.
3.3 组内成员分工
表3-1 组内成员分工情况表
序号
姓名
组内角色
小组分工
备注
1
王一帆
项目经理
所有界面的设计、数据库的设计、权限的分配 密码的修改 班级学生教师信息的管理 (增删改查)
2
司天明
编码
课程管理模块
3
谢伟夫
架构师
选课管理模块
4
周启航
测试
选课管理模块
说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。
3.4 进度安排
进度安排如表3-2所示。
表3-2 进度安排表
阶段
持续时间
阶段描述
输出
构思阶段
4h
需求分析
需求说明,功能模块图
设计阶段
5h
系统设计
设计说明-可以画流程图;数据库设计
是现阶段
3day
编写代码
项目工程源代码
1day
系统测试
进行黑盒测试(功能测试)-测试说明
运行阶段
4h
部署、运行
系统使用说明、运维报告-答辩
4 系统设计
4.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
整个系统的所有界面是通过windows builder实现界面的设计。
4.1.1 登录界面的实现
学生信息管理登录界面 输入账号和密码 在系统身份的combox的下拉框选择当前账号密码的身份。
combox添加的是UserType枚举类型(系统管理员、教师、学生)默认选第一个系统管理员,若没有输入信息点击登录 给出JOptionPane.showMessageDialog提示用户名不能为空 若只输入账号没输入密码则提示 密码不能为空。因为后续很多操作都要判断输入域的内容 所有在Util包创建StringUtil类 新建一个返回值为布尔类型的判断字符串的静态方法public static boolean isEmpty(String str)
确定按钮的监听事件定义字符串获取输入域内容 定义枚举类型对象接受下拉框选项然后判断当前身份比如系统管理员的话,新建admindao对象实现admindao层里的返回值admin的login方法传进去的是admin对象。在login方法里进行对admin表的select限制条件 where name=?and password=?"。完成方法后判断传出去的是否是null若为null然后给出提示用户名或密码错误并终止操作(return)否则给出欢迎登陆的提示语 并生成主界面对象(传进去当前身份UserType和对象Object)设置为可见。其他身份登陆的操作和上述类似。重置按钮监听事件 重置输入域内容和下拉框默认选第一个。
4.1.2修改密码
在修改密码界面输入原密码、新密码、确认密码。根据当前登录身份和输入的内容在dao层和数据库发生交互 来判断原密码是否正确 在正确的前提下 对相应的密码更新为新密码。
在当前用户的textField给出当前与用户的类型和名字 定义字符串接受三个输入域的内容 然后用StringUtil.isEmpty()依次判断旧密码 新密码和确认密码内容是否为空 若为空给出提示并且return。
比如当前身份是系统管理员的话,通过登录界面传进来的UserType进行if("系统管理员".equals(MainFrame.userType.getName()))将通过登录界面传进来的userObject强转Admin的对象admin新建Admin对象adminTemp来接收admin的内容通过adminDao执行editPassword方法(返回值为String)将返回的字符串放在JOptionPane.showMessageDialog给出提示 响应的代码如下
if("系统管理员".equals(MainFrame.userType.getName()))
{
AdminDao adminDao=new AdminDao();
Admin admintemp=new Admin();
Admin admin=(Admin)MainFrame.userObject;
admintemp.setName(admin.getName());
admintemp.setPassword(oldPassword);
admintemp.setId(admin.getId());
String a=adminDao.editPassword(admintemp, newPassword);
JOptionPane.showMessageDialog(this,a);
adminDao.closeDao();
Return;
}
dao层的方法public String editPassword(Admin admin,String newPassword) 首先对id和旧密码进行"select * from admin where id=? and password=?";如果没有操作成功返回字符串"旧密码错误!"若操作成功 证明输入的账号和旧密码是正确的,从查询的结果集拿出来id 并继续下一步的根据这个id来update密码"update admin set password = ? where id = ? ";操作成功字符串"密码修改成功!",否则返回字符串"修改失败"。
4.1.3班级管理
①班级信息添加的实现
在班级名称的textField和班级信息的textArea输入信息点击提交按钮 实现一个班级信息的添加。重置按钮实现清空当前输入域的所有内容
提交按钮监听事件定义符串类型接受输入域的内容用StringUtil.isEmpty()依次判断内容是否为空,若为空给出提示并且return。定义StudentClass对象接受输入域 的内容 新建班级的dao层对象 调用添加方法将新建的StudentClass对象传进去
dao层方法public boolean addClass(StudentClass scl) 执行insert into class value(null,?,?) null为id在数据库表的设计为主键并且自增 如果操作成功返回true否则返回false
②班级信息查询的实现
在班级列表打开时生成一个所有班级信息的JTable通过上方班级名称的textField输入的内容 点击查询 从数据库中遍历找到包含有输入内容的字段显示在JTable上。
JTable要在打开时就生成所以方法必须放在生成界面的无参构造里 具体操作为清空当前列表内容dft.setRowCount(0); 定义ClassDao对象调用dao层的
public List getClassList(StudentClass studentClass)方法执行select * from class将查询到的信息放在结果集 若查找成功 将结果集的内容按类型拿出赋给新建的StudentClass对象的set方法 然后将这个对象add到列表对象retList并且返回
在setTable方法里 将返回的retList接收 用增强型for遍历内容 并且Vector v=new Vector(); v.add();dft.addRow(v) ;将内容添加到表里。
查询的实现主要dao层生成表方法里的if(!StringUtil.isEmpty(studentClass.getName()))
{
sqlString += " where name like ‘%"+studentClass.getName()+"%‘";
}从数据库中遍历找到包含有输入内容的字段显示在JTable上。
③班级信息的修改
通过鼠标点击JTbale(JTbale鼠标监听事件)选择修改的内容,在下方编辑区域输入要修改的内容 点击确认修改按钮 完成对数据库班级表信息的修改。
JTbale鼠标监听事件 用getValueAt方法获取的内容赋给编辑域的setText。
首先判断当前鼠标是否点击了表的内容 若没有点击 给出提示 并且return
定义俩字符串接受编辑域的内容 定义俩字符串接受鼠标点击JTable接收的内容
进行判断,若都一致说明仅仅是点击了JTable没有对信息进行编辑修改给出提示并且return。定义int类型接受JTable表鼠标点击的行的ID然后新建StudentClass对象set接受ID和编辑域的内容 执行dao层的public boolean update(StudentClass sc)方法 执行"update class set name=? , info=? where id=?";也是根据id来操作,当前表的主键为id。返回的布尔值在主方法if-else判断 给出相应的提示,最后刷新表的内容setTable(new StudentClass());
④班级信息删除的实现
跟上面修改的操作类似 首先得鼠标选择JTable你要删除的内容 若没有点击 给出提示 并且return然后给出一个JOptionPane.showConfirmDialog(this, "您确定要删除吗")!=JOptionPane.OK_OPTION的选择,若选择否则return。
定义int类型接受鼠标选择行的ID也是根据ID(id为主键)来在dao层的方法。
public boolean deletd(int id)里进行删除,将返回的布尔值在主方法if-else进行判断给出相应提示语,并且也刷新表setTable(new StudentClass());。
4.1.4学生管理
①学生信息添加的实现
在所属班级的下拉框里要添加当前数据库class表里的name具体操作为
protected void setStudentClassinfo() {
ClassDao classDao = new ClassDao();
List classList = classDao.getClassList(new StudentClass());
for (StudentClass sc : classList)
StudentClasscomboBox.addItem(sc);
}
这里必须要在Teacher类里重写toString方法 返回this.name才能在下拉框显示的是班级名否则显示的是地址。
定义字符串类型接受输入域的内容,用if依次执行StringUtil.isEmpty()判断内容,若为空 给出相应提示并return。将下拉框所选的getSelectedItem()强转StudentClass类型并且新建对象接受。用三目运算判断点击的性别按钮是男是女定义字符串接受按钮的内容。然后将这些内容都传给新建Stduent 对象的set方法(下拉框是当前所选课的id传给的Stduent对象的set方法里)新建dao层对象 执行dao层的public boolean addStudent(Student s)方法sql语句为"insert into student values(null,?,?,?,?)"第一个位置为id是在表的设计为主键并且自增。根据返回结果的布尔类型用if-else进行判断,给出相应的提示。执行完成后清空输入域的内容 默认选择性别为男 下拉框为第一个选项。
②学生信息查询的实现
也是在界面打开时生成JTable。生成的方法放在生成界面的无参构造跟班级管理JTable的生成方法一致。只不过要注意的是添加一个将教师ID转化为教师名字的方法
查询实现是可以根据姓名查询 也可以配合下拉框的班级选项一起查询。也可以只用下拉框查询某班级的学生。主要的改变地方是在dao层的遍历表的方法public List getStudentList(Student student)添加语句
if(!StringUtil.isEmpty(student.getName()))
{sqlString += " and name like ‘%"+student.getName()+"%‘";}
if(student.getClassid()!=0)
{sqlString +=" and classId ="+student.getClassid();}
PreparedStatement preparedStatement = con.prepareStatement(sqlString.toString().replaceFirst("and", "where"));
③学生信息修改的实现
JTable设置鼠标点击事件选择修改的内容,在下方编辑区域输入要修改的内容 点击确认修改按钮 完成对数据库班级表信息的修改。
用getValueAt方法获取的点击行的内容赋给编辑域的setText,用foe循环判断当前点击的班级是哪一个 并且在编辑区的编辑班级的下拉框进行选择,具体代码为for(int i=0;i
{
StudentClass sc=(StudentClass)editStudentClasscomboBox.getItemAt(i);
if(className.equals(sc.getName()))
{editStudentClasscomboBox.setSelectedIndex(i);}
}
定义字符串接受当前点击行的性别。用equals来判断点亮哪个编辑域性别选择的单选按钮。
若鼠标没有点击行,则给出提示并return。若编辑域姓名和密码为空,也给出相应提示并且return。然后定义Student对象student来set接收编辑域的姓名、密码和鼠标点击行的id和下拉框选择班级的id和当前选择性别的内容。
将次对象传入执行dao层的public boolean update(Student student)方法。然后根据返回的布尔类型在主方法用if-else判断给出相应提示。然后刷新表setTable(new Student());。
④学生信息删除的实现
跟上面修改的操作类似 首先得鼠标选择JTable你要删除的内容 若没有点击 给出提示 并且return然后给出一个JOptionPane.showConfirmDialog(this, "您确定要删除吗")!=JOptionPane.OK_OPTION的选择 若选择否 则return。
将获取点击行的id执行dao层的public boolean deletdStudent(int id) sql语句为"delete from student where id=?"; 根据id删(id为主键)。
然后根据返回的布尔类型在主方法用if-else判断给出相应提示。然后刷新表setTable(new Student());
4.1.5教师管理
①教师信息添加的实现
在老师添加界面的输入域输入内容 分别定义字符串获取内容,性别是用三目运算获取当先所选的单选按钮的内容,确定添加按钮监听事件,依次用StringUtil.isEmpty()判断内容,若为空 给出相应提示并return。并且对年龄的输入进行try-catch的异常捕捉。
定义teacher类的对象set接收输入域的内容 定义teacherDao对象执行dao层的public boolean addTeacher(Teacher t)方法,sql语句String sql = "insert into teacher values(null,?,?,?,?,?)";第一值为null因为在表的设计为id是主键并且自增。操作完成后将返回的布尔值在主方法进行if-else判断并且给出提示。添加完成后,重置表内容为空性别默认选“男”。
②教师信息查询的实现
在教
师信息管理界面打开时生成一个所有教师信息的JTable通过上方教师姓名的textField输入的内容 点击查询 从数据库中遍历找到包含有输入内容的字段显示在JTable上。
JTable要在打开时就生成所以方法必须放在生成界面的无参构造里 具体操作为清空当前列表内容dft.setRowCount(0); 定义TeacherDao对象调用dao层的
public List getTeacherList(Teacher teacher)方法执行"select * from teacher"将查询到的信息放在结果集 若查找成功 将结果集的内容按类型拿出赋给新建的Teacher对象的set方法 然后将这个对象add到列表对象retList并且返回
在setTable方法里 将返回的retList接收 用增强型for遍历内容 并且Vector v=new Vector(); v.add();dft.addRow(v) ;将内容添加到表里。
查询的实现主要dao层生成表方法里的if(!StringUtil.isEmpty(teacher.getName()))
{sqlString += " where name like ‘%"+teacher.getName()+"%‘";}
从数据库中遍历找到包含有输入内容的字段显示在JTable上。
③教师信息修改的实现
通过鼠标点击JTbale(JTbale鼠标监听事件)选择修改的内容,在下方编辑区域输入要修改的内容 点击确认修改按钮 完成对数据库教师表信息的修改。
JTbale鼠标监听事件 用getValueAt方法获取的内容赋给编辑域的setText。
首先判断当前鼠标是否点击了表的内容 若没有点击 给出提示 并且return
定义字符串接受编辑域的内容,依次用StringUtil.isEmpty()判断内容,若为空给出相应提示并return。并且也对年龄进行try-catch的异常捕捉。
定义teacher对象set接收编辑域的内容,然后定义dao层对象调用dao的方法
public boolean update(Teacher teacher)。根据id来更新数据库老师表的内容(id为主键)返回的布尔值在主方法if-else判断 给出相应的提示,最后刷新表的内容setTable(new Teacher());
④教师信息删除的实现
通过鼠标点击JTable的数据getValueAt获取当前点击行的id 定义teacherDao对象执行dao层的方法public boolean deletdTeacher(int id)返回的布尔值在主方法if-else判断 给出相应的提示,最后刷新表的内容setTable(new Teacher());
4.1.6课程管理
①课程信息查询的实现
在课程信息管理界面打开时生成一个所有教师信息的JTable通过上方教师姓名的textField输入的内容 点击查询 从数据库中找到包含有输入内容的字段显示在JTable上。
②课程信息添加的实现
在课程信息添加界面的输入域输入内容 分别定义字符串获取内容,性别是用三目运算获取当先所选的单选按钮的内容,确定添加按钮监听事件,依次用StringUtil.isEmpty()判断内容,若为空 给出相应提示并return。并且对年龄的输入进行try-catch的异常捕捉。
③课程信息修改的实现
通过鼠标点击JTbale选择修改的内容,在下方编辑区域输入要修改的内容 点击确认修改按钮 完成对数据库教师表信息的修改。
④课程信息删除的实现
通过鼠标点击JTable的数据getValueAt获取当前点击行的id 定义courseDao对象执行dao层的方法public boolean deletdCourselves(int id)返回的布尔值在主方法if-else判断 给出相应的提示,最后刷新数据库的内容。
4.1.7选课管理
①选课界面功能的实现
通过主界面里的无参构造,显示出来编辑区域的2个下拉框里的内容和搜索区域的内容.
②显示教师,学生信息的实现
生成老师信息,学生信息也是从表里用dao层的方法一个一个遍历,添加内容.然后返回每个类的string方法,根据course里已有的课程进行选择如果学生选择已经选择过的课程,系统会给出提示,选择成功后刷新学生的信息并显示,也可以进行学生信息的部分修改(将学生退出课程)
③检查课程是否满员的实现
每次学生加入课程前都要对该课程是否达到最大人数进行检查判断课程是否已被选满的方法在dao层,通过和数据库进行交互的操作实现.
④修改学生信息的实现
修改数据主要是用鼠标修改getname里面的内容判断字符串是否为空,修改内容也要判断从表里获取到的内容还有对comBox下拉获得的选项进行类型的转换,获取其相应的名字和表里的内容用if进行比较,判断是否修改.
4.2 数据库设计
根据系统需求分析设计了6张表,分别为管理员信息表、班级信息表、学生信息表、教师信息表、课程信息表、选课信息表。具体信息如表4-1到表4-6所示。一下为参考,可以按照自己的需求修改
表4-1 管理员信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
管理员ID
2
name
varchar(32)
否
管理员姓名(账号)
3
password
varchar(32)
否
管理员密码
4
createDate
datetime
否
创建日期
表4-2 班级信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
班级ID
2
name
varchar(32)
否
班级名字
3
info
varchar(32)
否
班级信息
表4-3 学生信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
学生ID
2
name
varchar(32)
否
学生姓名(账号)
3
classid
int(5)
否
学生班级ID
4
password
varchar(32)
否
学生密码
5
sex
varchar(32)
否
学生性别
外键
表4-4 教师信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
教师ID
2
name
varchar(32)
否
教师姓名(账号)
3
sex
varchar(32)
否
教师性别
4
title
varchar(32)
否
教师职称
5
age
int(5)
否
教师年龄
6
password
varchar(32)
否
教师密码
表4-5 课程信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
课程ID
2
name
varchar(32)
否
课程名
3
teacher_id
int(5)
否
课程教师ID
4
max_student_num
int(5)
否
课程最大选择人数
5
info
varchar(32)
否
课程信息
6
select_num
int(5)
默认0
否
课程已选人数
外键
表4-6 选课信息表
序号
字段名
数据类型
约束
是否为空
说明
1
id
int(5)
主键(自增)
是
课程ID
2
student_id
int(5)
否
课程名
3
course_id
int(5)
否
课程教师ID
外键
5 系统实现
5.1 管理员登录界面实现
管理员通过输入账号密码来进行登录后台管理系统。登录界面如图5-1-1所示。
5.2系统管理员权限的主界面
成功登录后弹出系统主界面
5.3用户密码修改界面实现
输入相应的内容点击确认修改按钮实现对数据库信息的查询
5.4班级信息管理模块
5.4.1班级信息添加