学生成绩管理系统(Java+MySQL+文件保存+GUI)

第一次发布自己写的代码,有点简单,使用到了MySQL保存学生信息,还有文件保存个人信息,做的还不是很完善,如果有什么建议欢迎在评论或是私信向我提出,谢谢

登录界面

package Adminni;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Register extends JFrame implements ActionListener {
    JLabel txt1=new JLabel("欢迎登录学生成绩管理系统");
    JLabel txt2=new JLabel("请选择您的身份");
    JButton b1=new JButton("学生");
    JButton b2=new JButton("教师");
    Panel p1=new Panel();
    public Register(){
        setTitle("学生成绩管理系统");
        setSize(400,300);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setLayout(new GridLayout(3,1));
        setLocation(800,400);
        add(txt1);
        add(txt2);
        add(p1);
        p1.add(b1);
        p1.add(b2);
        txt1.setHorizontalAlignment(SwingConstants.CENTER);
        txt1.setFont(new Font("",1,20));
        txt2.setHorizontalAlignment(SwingConstants.CENTER);
        txt2.setFont(new Font("",1,20));
        b1.addActionListener(this);
        b2.addActionListener(this);
    }

    public static void main(String[] args) {
        new Register();
    }
    public void actionPerformed(ActionEvent e) {
        if (e.getSource()==b1){
             new stu_register();
             setVisible(false);
        }
        if (e.getSource()==b2){
            new tea_register();
            setVisible(false);

        }
    }
}
package Adminni;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

public class stu_register extends JFrame implements ActionListener {
    public static String name;
    public static String no;
    public static String C;
    public static String Data;
    public static String LInux;
    public static String JAVA;
    public  static  String sum;

    public static Stu_information d=new Stu_information();
    public  static final String DRIVER="com.mysql.jdbc.Driver";
    public static final String URL="jdbc:mysql://localhost:3306/test1";
    public  static final  String USER="root";
    public  static final String PASSWORD="123456";

    JLabel jl1=new JLabel("请输入姓名和学号");
    JLabel jl2=new JLabel("姓名:");
    JTextField txt1=new JTextField(25);
    JLabel jl3=new JLabel("学号:");
    JTextField txt2=new JTextField(25);
    Panel p1=new Panel();
    Panel p2=new Panel();
    JButton b1=new JButton("确定");
    public  stu_register(){
        setSize(400,300);
        setTitle("学生端");
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        setLocation(800,400);
        add(jl1);
        jl1.setFont(new Font("",1,20));
        add(p1);
        p1.add(jl2);
        jl2.setFont(new Font("",1,20));
        p1.add(txt1);
        add(p2);
        p2.add(jl3);
        jl3.setFont(new Font("",1,20));
        p2.add(txt2);
        add(b1);
        b1.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        PreparedStatement pstmt = null;
        Connection con=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con= DriverManager.getConnection(URL, USER, PASSWORD);//创建一个数据库连接
            System.out.println("连接成功");
            String sql="SELECT * FROM stuname(DEFAULT,?)";

            pstmt = con.prepareStatement(sql);// 对sql语句的预编译
            pstmt.setString(1, d.getName());// 设置sql语句中的第一个"?"为name属性
            ResultSet result = pstmt.executeQuery("SELECT * FROM student");// 产生执行结果集
            while (result.next()){
                if (txt1.getText().equals(result.getString("stuname"))){
                    name =txt1.getText();
                        if (txt2.getText().equals(result.getString("stusno")))
                        {no=txt2.getText();
                        C=result.getString("stuc") ;
                        Data=result.getString("studata");
                        JAVA=result.getString("stujava");
                        LInux=result.getString("stulinux");
                        int c1=Integer.parseInt(C),data1=Integer.parseInt(Data),
                                java1=Integer.parseInt(JAVA),linux1=Integer.parseInt(LInux);
                        sum= String.valueOf(c1+java1+linux1+data1);

                        new stu_mainwin();
                        }
                        else {
                            JOptionPane.showMessageDialog(null,"学号错误");
                        }
                }

            }
            String r1="UPDATE  student set stusum ='"+stu_register.sum+"' where stuname='"+txt1.getText()+"'";
            pstmt.executeUpdate(r1);
        } catch (Exception e1) {
            e1.printStackTrace();
        }






    }
}

学生界面

教师界面

package Adminni;

import javax.swing.*;
import operation.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Hashtable;

public class tea_mainwin extends Panel implements  TreeSelectionListener {
    public static Stu_information d=new Stu_information();
    public  static final String DRIVER="com.mysql.jdbc.Driver";
    public static final String URL="jdbc:mysql://localhost:3306/test1";
    public  static final  String USER="root";
    public  static final String PASSWORD="123456";
    JTree tree=null;
    JTextArea txt=new JTextArea(22,50);
    public tea_mainwin(){
        JFrame f=new JFrame();
        Hashtable f1=new Hashtable();
        String [] s1={"新建学生信息","显示所有学生信息","退出"};
        String[] s2={"修改学生信息","查找学生信息","删除学生信息"};
        f1.put("编辑",s2);
        f1.put("开始", s1);

        tree=new JTree(f1);
        JScrollPane scrollPane1=new JScrollPane();
        JScrollPane scrollPane2=new JScrollPane();

        scrollPane1.setViewportView(tree);
        scrollPane2.setViewportView(txt);
        Container con=f.getContentPane();
        con.add(scrollPane1);
        con.add(scrollPane2);
        tree.addTreeSelectionListener(this);

        JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,scrollPane1, scrollPane2);
        f.add(splitPane);
           f.setSize(800,500);
           f.setVisible(true);
           f.setLocation(500,300);
           f.setTitle("学生成绩管理系统教师端");
           f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       }

    public void valueChanged(TreeSelectionEvent e) {
        if (e.getSource() == tree) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
            if (node.isLeaf()) {
                String str = node.toString();
                if (str.equals("新建学生信息")) {
                    new stu_new();
                }
                if (str.equals("退出")){
                    System.exit(0);
                }
                if (str.equals("修改学生信息")){
                    new stu_change();
                }
                if (str.equals("查找学生信息")){
                    new stu_find();
                }
                if (str.equals("删除学生信息")){
                    new stu_delete();
                }
                if (str.equals("显示所有学生信息")){
                    show1();
                }
            }

        }

    }


    public  void show1(){

        txt.setText("以下信息按照总分降序排列\n\n\n");
        String s;
        PreparedStatement pstmt = null;
        Connection con = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(tea_mainwin.URL, tea_mainwin.USER, tea_mainwin.PASSWORD);//创建一个数据库连接
            System.out.println("连接成功");
            String sql = "SELECT * FROM stuname(DEFAULT,?)";
            pstmt = con.prepareStatement(sql);// 对sql语句的预编译
            pstmt.setString(1, tea_mainwin.d.getName());// 设置sql语句中的第一个"?"为name属性
            rs = pstmt.executeQuery("SELECT * FROM student order by   stusum desc");// 产生执行结果集
            while (rs.next()) {
                s = "学生信息如下:\n 姓名:" + rs.getString("stuname") + "\t学号" + rs.getString("stusno") + "\tC语言程序设计" + rs.getString("stuc") +
                            "\n数据库管理系统:" + rs.getString("studata")+ "\tLinux:" + rs.getString("stulinux") + "\tJava程序设计:" + rs.getString("stujava") +
                            "\t总成绩:" + rs.getString("stusum")+"\n\n";
                txt.append(s);
                }
                } catch (Exception e1) {
            e1.printStackTrace();
        }

        }
}


  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

落日与鲸.520

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

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

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

打赏作者

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

抵扣说明:

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

余额充值