Java心理健康测试系统

该博客介绍了在线心理测试系统的登录模块实现,包括账号、密码输入及权限选择功能。用户可以选择管理员或学生身份进行登录。登录成功后,管理员可进行试题管理、试卷生成等操作,而学生则能参与心理测试并查看结果。系统数据存储于文件中,账号默认为admin。此外,博客还概述了管理员和学生界面的功能,并提供了项目结构和源码下载链接。
摘要由CSDN通过智能技术生成

概要

本文所有数据均保存在文件中。默认学生和老师账号密码均为admin。

登录模块

在这里插入图片描述

```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class Login extends JFrame implements ActionListener {
    private JLabel jl1, jl2, jl3;
    private JTextField jtf;
    private JPasswordField jpf;
    private JButton jb1;
    private JRadioButton radioButton1, radioButton2;
    public static String username;

    public static final void setUsername(String username) {
        Login.username = username;
    }

    public static final String getUsername() {
        return username;
    }

    /**
     * 登录
     */
    Login() {
        jl1 = new JLabel("账号:");
        jl2 = new JLabel("密码:");
        jl3 = new JLabel("权限:");
        radioButton1 = new JRadioButton("管理员", true);
        radioButton2 = new JRadioButton("学生");
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(radioButton1);
        buttonGroup.add(radioButton2);
        jtf = new JTextField(20);
        jpf = new JPasswordField(20);
        jb1 = new JButton("登录");
    }

    /**
     * 窗口
     */
    public void launch() {
        jb1.addActionListener(this);
        jl1.setBounds(50, 10, 120, 30);
        jtf.setBounds(90, 10, 250, 30);
        jl2.setBounds(50, 60, 120, 30);
        jpf.setBounds(90, 60, 250, 30);
        jl3.setBounds(50, 100, 50, 30);
        radioButton1.setBounds(90, 100, 70, 30);
        radioButton2.setBounds(160, 100, 100, 30);
        jb1.setBounds(50, 140, 290, 30);

        add(jl1);
        add(jl2);
        add(jtf);
        add(jpf);
        add(jb1);
        add(jl3);
        add(radioButton1);
        add(radioButton2);
        setLayout(null);
        setTitle("在线心理测试系统");
        setVisible(true);
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                int result = JOptionPane.showConfirmDialog(null, "确认退出?", "确认", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
                if (result == JOptionPane.OK_OPTION) {
                    System.exit(0);
                }
            }
        });
        setSize(400, 220);
        setLocationRelativeTo(null);
        setResizable(false);
    }



    /**
     * 检查登录状态
     */
    public boolean checkLogin() {
        String radioValue = null;
        if (radioButton1.isSelected()) {
            radioValue = "管理员";
        } else if (radioButton2.isSelected()) {
            radioValue = "学生";
        }
        new Account(radioValue);
        for (int i = 0; i < Account.getAccounts().size(); i++) {
            if (Account.getAccounts().get(i).getUsername().equals(jtf.getText()) &&
                    Account.getAccounts().get(i).getPassword().equals(jpf.getText())) {
                Account.getAccounts().clear();
                Account.setAccounts(Account.getAccounts());
                return true;
            }
        }
        Account.getAccounts().clear();
        Account.setAccounts(Account.getAccounts());
        return false;
    }

    /**
     * 执行操作
     *
     * @param e e
     */
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("登录")) {
            if (jtf.getText().isEmpty() || jpf.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "提示消息", JOptionPane.WARNING_MESSAGE);
                jtf.setText("");
                jpf.setText("");
            } else if (checkLogin()) {
                setUsername(jtf.getText());
                JOptionPane.showMessageDialog(null, "登录成功!", "提示消息", JOptionPane.WARNING_MESSAGE);
                dispose();
                if (radioButton1.isSelected()){
                    new TeacherMenu(getUsername());
                }else{
                    new StudentMenu();
                }
            } else {
                JOptionPane.showMessageDialog(null, "账号或密码错误!", "提示消息", JOptionPane.WARNING_MESSAGE);
            }
        }
    }
}

管理员界面

在这里插入图片描述
管理员可录入题目,生成试卷,设置测试评级等等。
同时可查看具体测试结果。

学生界面

在这里插入图片描述
在这里插入图片描述
当点击具体的测试后,第一次进入完善信息的界面。
在这里插入图片描述
随后点击提交,进入测试界面。
在这里插入图片描述
答完题点击提交,可查看结果。
在这里插入图片描述
不允许重复作答。

项目结构及其源码

点击下载

目录 第一章 需求分析…………………………………………………………1 1.1 项目名称……………………………………………………………1 1.2 系统开发的背景……………………………………………………1 1.3 系统开发的现状……………………………………………………1 1.4 系统开发的目标……………………………………………………1 1.5 系统开发的可行性分析………………………………………………1 第二章 系统分析…………………………………………………………2 2.1 系统分析方法…………………………………………………………2 2.2 数据流程分析…………………………………………………………2 第三章 系统设计与实施…………………………………………………6 3.1 系统设计……………………………………………………………6 3.2 总体设计……………………………………………………………6 3.3 详细设计……………………………………………………………7 3.4 程序设计……………………………………………………………8 3.5 系统实施……………………………………………………………8 3.6 系统测试……………………………………………………………9 第四章 系统运行………………………………………………………11 4.1 系统运行…………………………………………………………11 4.2 结论………………………………………………………………11
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redamancy_WC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值