MySQL+Java FX学生管理系统

前言

本篇介绍的学生管理系统涉及的知识点有MySQL、JDBC和Java FX。如有不足,希望大家多多指正,万分感谢!

作品思路展示

绿色箭头代表的是外键约束关系

代码结构展示

  • lib包包含的是MySQL驱动jar包
  • javaFX包包含了fxml文件和对应的controller类
  • JDBC包包含了接收数据库表格的对象类以及对应的对数据进行操作的dao对象,还有抽取出来的数据库连接和关闭语句的DBUtil工具类

 功能实现和对应代码展示

1.通用函数

这两个函数整个程序中经常调用,所以抽取到一个common类里面,设置为静态方法可以不用创建对象,直接用类名引用 

2.选择身份进入登录界面

代码:

视图由fxml文件实现

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.Controller">
   <Button fx:id="manager" layoutX="138.0" layoutY="222.0" mnemonicParsing="false" onAction="#managerLogin" prefHeight="54.0" prefWidth="76.0" text="管理员登录" textAlignment="CENTER" />
   <Label fx:id="title" layoutX="176.0" layoutY="64.0" text="欢迎来到学生管理系统" textFill="#f28585">
      <font>
         <Font size="25.0" />
      </font>
   </Label>
   <Label fx:id="choice" layoutX="210.0" layoutY="138.0" text="请选择您的登录方式" textFill="#e48989">
      <font>
         <Font size="20.0" />
      </font>
   </Label>
   <Button fx:id="user" layoutX="394.0" layoutY="222.0" mnemonicParsing="false" onAction="#userLogin" prefHeight="54.0" prefWidth="64.0" text="用户登录" />
   <Button fx:id="quiet" layoutX="274.0" layoutY="281.0" mnemonicParsing="false" onAction="#quietSys" prefHeight="54.0" prefWidth="55.0" text="退出" />
</AnchorPane>

功能在controller层实现

package javaFx;

import JDBC.Score;
import JDBC.Table;
import com.sun.glass.ui.Window;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.stage.Modality;
import javafx.stage.Stage;

import java.awt.*;


public class Controller {
    @FXML
    public Button quiet;
    @FXML
    private Button manager;
    @FXML
    private Button user;
    @FXML
    private Label title;
    @FXML
    private Label choice;

    private Stage stage;
    public static Stage chiledStage=new Stage();

    public void setMainStage(Stage mainStage) {
        this.stage = mainStage;
    }

    public Stage getMainStage() {
        return stage;
    }

    public void initialize(){
        this.stage=MainPanel.mainStage;
    }
    //管理员登录
    @FXML
    void managerLogin(ActionEvent event) throws Exception{
        chiledStage=new Stage();
       Common.setFxml("managerLogin.fxml",chiledStage,this,"管理员登录");
    }
    //用户登录
    @FXML
    void userLogin(ActionEvent event) throws Exception{
        chiledStage=new Stage();
        Common.setFxml("userLogin.fxml",chiledStage,this,"用户登录");
    }
    //退出
    @FXML
    void quietSys(ActionEvent event){
        stage.close();
    }

}


如果这两段代码都看不懂的话可以先去学习一下fxml标记语言的用法 ,网上有许多免费的教程讲的都很详细,这里就不在赘述

效果展示:

3.管理员登录界面

代码:

视图层

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.managerLoginController">
   <PasswordField fx:id="passwordFile" layoutX="220.0" layoutY="219.0" promptText="请输入密码" />
   <TextField fx:id="userFile" layoutX="220.0" layoutY="164.0" promptText="请输入用户名" />
   <Label fx:id="title" layoutX="225.0" layoutY="28.0" text="管理员登录">
      <font>
         <Font size="30.0" />
      </font>
   </Label>
   <Label fx:id="user" layoutX="147.0" layoutY="164.0" text="用户名">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Label fx:id="password" layoutX="156.0" layoutY="219.0" text="密码">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Button fx:id="login" layoutX="100.0" layoutY="303.0" mnemonicParsing="false" onAction="#Login" prefHeight="48.0" prefWidth="73.0" text="登录" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="register" layoutX="427.0" layoutY="304.0" mnemonicParsing="false" onAction="#Register" prefHeight="48.0" prefWidth="73.0" text="注册" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="back" layoutX="510.0" layoutY="352.0" mnemonicParsing="false" onAction="#Back" prefHeight="30.0" prefWidth="76.0" text="返回上一步" />
   <Button fx:id="changePw" layoutX="251.0" layoutY="304.0" mnemonicParsing="false" onAction="#changePassWord" prefHeight="48.0" prefWidth="99.0" text="修改密码">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
</AnchorPane>

controller层 核心代码展示

managerDao中的方法 

 效果展示: 

登录失败展示 

 

登录成功展示

 4.管理员注册页面

代码:

视图层

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.managerLoginController">
   <PasswordField fx:id="passwordFile" layoutX="220.0" layoutY="219.0" promptText="请输入密码" />
   <TextField fx:id="userFile" layoutX="220.0" layoutY="164.0" promptText="请输入用户名" />
   <Label fx:id="title" layoutX="225.0" layoutY="28.0" text="管理员登录">
      <font>
         <Font size="30.0" />
      </font>
   </Label>
   <Label fx:id="user" layoutX="147.0" layoutY="164.0" text="用户名">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Label fx:id="password" layoutX="156.0" layoutY="219.0" text="密码">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Button fx:id="login" layoutX="100.0" layoutY="303.0" mnemonicParsing="false" onAction="#Login" prefHeight="48.0" prefWidth="73.0" text="登录" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="register" layoutX="427.0" layoutY="304.0" mnemonicParsing="false" onAction="#Register" prefHeight="48.0" prefWidth="73.0" text="注册" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="back" layoutX="510.0" layoutY="352.0" mnemonicParsing="false" onAction="#Back" prefHeight="30.0" prefWidth="76.0" text="返回上一步" />
   <Button fx:id="changePw" layoutX="251.0" layoutY="304.0" mnemonicParsing="false" onAction="#changePassWord" prefHeight="48.0" prefWidth="99.0" text="修改密码">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
</AnchorPane>

controller层 核心代码展示

 managerDao中的方法 

效果展示:

注册失败

注册成功

5.管理员修改密码界面

代码:

视图层

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.managerLoginController">
   <PasswordField fx:id="passwordFile" layoutX="220.0" layoutY="219.0" promptText="请输入密码" />
   <TextField fx:id="userFile" layoutX="220.0" layoutY="164.0" promptText="请输入用户名" />
   <Label fx:id="title" layoutX="225.0" layoutY="28.0" text="管理员登录">
      <font>
         <Font size="30.0" />
      </font>
   </Label>
   <Label fx:id="user" layoutX="147.0" layoutY="164.0" text="用户名">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Label fx:id="password" layoutX="156.0" layoutY="219.0" text="密码">
      <font>
         <Font size="17.0" />
      </font>
   </Label>
   <Button fx:id="login" layoutX="100.0" layoutY="303.0" mnemonicParsing="false" onAction="#Login" prefHeight="48.0" prefWidth="73.0" text="登录" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="register" layoutX="427.0" layoutY="304.0" mnemonicParsing="false" onAction="#Register" prefHeight="48.0" prefWidth="73.0" text="注册" textAlignment="CENTER">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
   <Button fx:id="back" layoutX="510.0" layoutY="352.0" mnemonicParsing="false" onAction="#Back" prefHeight="30.0" prefWidth="76.0" text="返回上一步" />
   <Button fx:id="changePw" layoutX="251.0" layoutY="304.0" mnemonicParsing="false" onAction="#changePassWord" prefHeight="48.0" prefWidth="99.0" text="修改密码">
      <font>
         <Font size="18.0" />
      </font>
   </Button>
</AnchorPane>

controller层 核心代码展示

managerDao包的方法

效果展示:

修改成功

修改失败

6.管理员操作界面

代码:

视图

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.managerFunctionController">
   <children>
      <Label fx:id="title" layoutX="197.0" layoutY="28.0" text="选择您要进行的操作" textFill="#c32626">
         <font>
            <Font size="23.0" />
         </font>
      </Label>
      <Button fx:id="deleteStudent" layoutX="63.0" layoutY="112.0" mnemonicParsing="false" onAction="#deleteStudent" text="删除学生" textAlignment="CENTER">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="addStudent" layoutX="186.0" layoutY="112.0" mnemonicParsing="false" onAction="#addStudent" text="添加学生" textAlignment="CENTER">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="changeStuNo" layoutX="300.0" layoutY="112.0" mnemonicParsing="false" onAction="#changeStuNo" text="修改学生学号" textAlignment="CENTER">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="changeCourseNo" layoutX="437.0" layoutY="112.0" mnemonicParsing="false" onAction="#changeCourseNo" text="修改课程编号" textAlignment="CENTER">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="addTable" layoutX="116.0" layoutY="189.0" mnemonicParsing="false" onAction="#addTable" text="添加三列表格">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="selectTable" layoutX="246.0" layoutY="189.0" mnemonicParsing="false" onAction="#selectTable" text="查询表格信息">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="recoverData" layoutX="370.0" layoutY="189.0" mnemonicParsing="false" onAction="#recoverData" text="数据找回">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="back" layoutX="240.0" layoutY="292.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
         <font>
            <Font size="19.0" />
         </font>
      </Button>
      <Button fx:id="addTeacher" layoutX="467.0" layoutY="189.0" mnemonicParsing="false" onAction="#addTeacher" text="添加教师">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
      <Button fx:id="addCourse" layoutX="273.0" layoutY="239.0" mnemonicParsing="false" onAction="#addCourse" text="添加课程">
         <font>
            <Font size="15.0" />
         </font>
      </Button>
   </children>
</AnchorPane>
删除学生

studentDao包方法

添加学生

studentDao包方法

 修改学生学号

studentDao包方法

修改课程编号

courseDao包方法

建三列表

tableDao包方法

查询表格信息

数据找回

studentDao包的方法

添加教师

teacherDao的方法

添加课程

courseDao包的方法

效果图:

删除学生

添加学生

修改学生学号

修改课程编号

建三列表

查寻表格信息

例:

数据找回

添加教师

添加课程

7.学生登录界面

代码:

视图:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
            prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="javaFx.userLoginController">
   <Label fx:id="title" layoutX="230.0" layoutY="34.0" text="用户登录">
      <font>
         <Font size="35.0"/>
      </font>
   </Label>
   <Label fx:id="labelUser" layoutX="91.0" layoutY="129.0" text="用户名">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <TextField fx:id="userFile" layoutX="201.0" layoutY="131.0" prefHeight="30.0" prefWidth="269.0"
              promptText="请输入用户名(学号或者教师编号)">
      <font>
         <Font size="15.0"/>
      </font>
   </TextField>
   <Label fx:id="labelPsd" layoutX="104.0" layoutY="210.0" text="密码">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <PasswordField fx:id="passwordFile" layoutX="201.0" layoutY="212.0" prefHeight="30.0" prefWidth="269.0"
                  promptText="输入密码">
      <font>
         <Font size="15.0"/>
      </font>
   </PasswordField>
   <Button fx:id="student" layoutX="37.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentLogin"
           text="学生登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="back" layoutX="236.0" layoutY="345.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacher" layoutX="336.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherLogin"
           text="教师登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="studentRegister" layoutX="184.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentRegister"
           text="学生注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacherRegister" layoutX="470.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherRegister"
           text="教师注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
</AnchorPane>

controller层

userDao包的方法

效果图:

8.学生注册界面

代码:

视图:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
            prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="javaFx.userLoginController">
   <Label fx:id="title" layoutX="230.0" layoutY="34.0" text="用户登录">
      <font>
         <Font size="35.0"/>
      </font>
   </Label>
   <Label fx:id="labelUser" layoutX="91.0" layoutY="129.0" text="用户名">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <TextField fx:id="userFile" layoutX="201.0" layoutY="131.0" prefHeight="30.0" prefWidth="269.0"
              promptText="请输入用户名(学号或者教师编号)">
      <font>
         <Font size="15.0"/>
      </font>
   </TextField>
   <Label fx:id="labelPsd" layoutX="104.0" layoutY="210.0" text="密码">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <PasswordField fx:id="passwordFile" layoutX="201.0" layoutY="212.0" prefHeight="30.0" prefWidth="269.0"
                  promptText="输入密码">
      <font>
         <Font size="15.0"/>
      </font>
   </PasswordField>
   <Button fx:id="student" layoutX="37.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentLogin"
           text="学生登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="back" layoutX="236.0" layoutY="345.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacher" layoutX="336.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherLogin"
           text="教师登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="studentRegister" layoutX="184.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentRegister"
           text="学生注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacherRegister" layoutX="470.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherRegister"
           text="教师注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
</AnchorPane>

controller层

userDao包中的方法

效果图:

9.教师登录

 代码:

视图:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
            prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="javaFx.userLoginController">
   <Label fx:id="title" layoutX="230.0" layoutY="34.0" text="用户登录">
      <font>
         <Font size="35.0"/>
      </font>
   </Label>
   <Label fx:id="labelUser" layoutX="91.0" layoutY="129.0" text="用户名">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <TextField fx:id="userFile" layoutX="201.0" layoutY="131.0" prefHeight="30.0" prefWidth="269.0"
              promptText="请输入用户名(学号或者教师编号)">
      <font>
         <Font size="15.0"/>
      </font>
   </TextField>
   <Label fx:id="labelPsd" layoutX="104.0" layoutY="210.0" text="密码">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <PasswordField fx:id="passwordFile" layoutX="201.0" layoutY="212.0" prefHeight="30.0" prefWidth="269.0"
                  promptText="输入密码">
      <font>
         <Font size="15.0"/>
      </font>
   </PasswordField>
   <Button fx:id="student" layoutX="37.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentLogin"
           text="学生登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="back" layoutX="236.0" layoutY="345.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacher" layoutX="336.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherLogin"
           text="教师登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="studentRegister" layoutX="184.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentRegister"
           text="学生注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacherRegister" layoutX="470.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherRegister"
           text="教师注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
</AnchorPane>

controller层

userDao包方法

 效果图:

10.教师注册

 代码:

视图:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
            prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="javaFx.userLoginController">
   <Label fx:id="title" layoutX="230.0" layoutY="34.0" text="用户登录">
      <font>
         <Font size="35.0"/>
      </font>
   </Label>
   <Label fx:id="labelUser" layoutX="91.0" layoutY="129.0" text="用户名">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <TextField fx:id="userFile" layoutX="201.0" layoutY="131.0" prefHeight="30.0" prefWidth="269.0"
              promptText="请输入用户名(学号或者教师编号)">
      <font>
         <Font size="15.0"/>
      </font>
   </TextField>
   <Label fx:id="labelPsd" layoutX="104.0" layoutY="210.0" text="密码">
      <font>
         <Font size="25.0"/>
      </font>
   </Label>
   <PasswordField fx:id="passwordFile" layoutX="201.0" layoutY="212.0" prefHeight="30.0" prefWidth="269.0"
                  promptText="输入密码">
      <font>
         <Font size="15.0"/>
      </font>
   </PasswordField>
   <Button fx:id="student" layoutX="37.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentLogin"
           text="学生登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="back" layoutX="236.0" layoutY="345.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacher" layoutX="336.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherLogin"
           text="教师登录">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="studentRegister" layoutX="184.0" layoutY="287.0" mnemonicParsing="false" onAction="#studentRegister"
           text="学生注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
   <Button fx:id="teacherRegister" layoutX="470.0" layoutY="287.0" mnemonicParsing="false" onAction="#teacherRegister"
           text="教师注册">
      <font>
         <Font size="20.0"/>
      </font>
   </Button>
</AnchorPane>

controller层

userDao包方法

 效果图:

11.学生功能

代码:

视图

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>


<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"
            fx:controller="javaFx.studentFunctionController"
            prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <Label fx:id="title" layoutX="188.0" layoutY="26.0" text="请选择要执行的操作">
         <font>
            <Font size="25.0" />
         </font>
      </Label>
      <Button fx:id="choiceCourse" layoutX="217.0" layoutY="104.0" mnemonicParsing="false" onAction="#choiceCourse" text="选课">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="deleteChange" layoutX="339.0" layoutY="104.0" mnemonicParsing="false" onAction="#deleteChange" text="退选">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="selectScore" layoutX="373.0" layoutY="180.0" mnemonicParsing="false" onAction="#selectScore" text="查询成绩">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="analyseScore" layoutX="137.0" layoutY="180.0" mnemonicParsing="false" onAction="#analyseScore" text="成绩分析">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="selectStudent" layoutX="227.0" layoutY="259.0" mnemonicParsing="false" onAction="#selectStudent" text="查询个人信息">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
   </children>
</AnchorPane>
 选课

stuCourseDao包的方法

退选

stuCourseDao包中的方法

成绩分析

scoreDao包的方法

查询成绩

scoreDao包中的方法 

查询个人信息

stuCourseDao包的方法

效果图:

选课
退选

成绩分析

查询成绩

查询个人信息

12.教师功能

代码:

视图

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javaFx.teacherFunctionController">
   <children>
      <Label layoutX="285.0" layoutY="44.0" />
      <Label fx:id="title" layoutX="188.0" layoutY="14.0" text="请选择下面操作">
         <font>
            <Font size="30.0" />
         </font>
      </Label>
      <Button fx:id="rewriteScore" layoutX="92.0" layoutY="151.0" mnemonicParsing="false" onAction="#rewriteScore" text="批改考试">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="studentScore" layoutX="219.0" layoutY="151.0" mnemonicParsing="false" onAction="#studentScore" text="学生成绩分析">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="selectTeacher" layoutX="390.0" layoutY="151.0" mnemonicParsing="false" onAction="#selectTeacher" text="查询个人信息">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="back" layoutX="229.0" layoutY="268.0" mnemonicParsing="false" onAction="#Back" text="返回上一步">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
   </children>
</AnchorPane>

视图效果 

批改考试

scoreDao包中的方法

学生成绩分析

 teacherDao包中的方法

studentDao包中的方法

查询教师信息

teacherDao中的方法

效果图:

 批改考试
学生成绩分析
查询教师信息
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值