⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stumanagement.java

📁 这是一个用java语言编的一个程序--学生管理系统
💻 JAVA
字号:
package stumanagement;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.JList;
import javax.swing.JButton;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.io.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class StuManagement extends JFrame {
    JPanel contentPane;
    JScrollPane jScrollPane1 = new JScrollPane();
    JPanel jPanel1 = new JPanel();
    JPanel jPanel2 = new JPanel();
    JList StuList = new JList();
    JButton NewBtn = new JButton();
    JButton DelBtn = new JButton();
    JButton AvgBtn = new JButton();
    JButton StatBtn = new JButton();
    JButton SortBtn = new JButton();
    JButton SearchBtn = new JButton();
    GridLayout gridLayout1 = new GridLayout();
    JPanel jPanel3 = new JPanel();
    JPanel jPanel4 = new JPanel();
    JLabel jLabel1 = new JLabel();
    BorderLayout borderLayout1 = new BorderLayout();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel3 = new JLabel();
    JLabel jLabel4 = new JLabel();
    JTextField StuNum = new JTextField();
    JTextField StuName = new JTextField();
    JTextField StuScore = new JTextField();
    GridLayout gridLayout2 = new GridLayout();
    BorderLayout borderLayout2 = new BorderLayout();

    Collection stuCollect = new ArrayList();
    String strNum;
    String strName;
    double intScore;
    public int []levelNum = new int[4];

    public StuManagement() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
            open();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(450, 360));
        setTitle("学生信息管理");
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int x = (screenSize.width - 450)/2;
        int y = (screenSize.height - 400)/2;
        setLocation(x, y);
        jScrollPane1.setBorder(BorderFactory.createRaisedBevelBorder());
        jScrollPane1.setPreferredSize(new Dimension(260, 32));
        jScrollPane1.setBounds(new Rectangle(2, 1, 180, 272));
        jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
        jPanel1.setBounds(new Rectangle(182, 0, 218, 273));
        jPanel1.setLayout(borderLayout2);
        jPanel2.setBorder(BorderFactory.createRaisedBevelBorder());
        jPanel2.setBounds(new Rectangle(0, 273, 400, 27));
        jPanel2.setLayout(gridLayout1);
        NewBtn.setText("新增");
        NewBtn.addActionListener(new StuManagement_NewBtn_actionAdapter(this));
        DelBtn.setText("删除");
        DelBtn.addActionListener(new StuManagement_DelBtn_actionAdapter(this));
        AvgBtn.setMargin(new Insets(2, 2, 2, 2));
        AvgBtn.setText("平均成绩");
        AvgBtn.addActionListener(new StuManagement_AvgBtn_actionAdapter(this));
        StatBtn.setText("统计");
        StatBtn.addActionListener(new StuManagement_StatBtn_actionAdapter(this));
        SortBtn.setText("排序");
        SortBtn.addActionListener(new StuManagement_SortBtn_actionAdapter(this));
        SearchBtn.setText("查找");
        SearchBtn.addActionListener(new StuManagement_SearchBtn_actionAdapter(this));
        jPanel3.setBorder(BorderFactory.createRaisedBevelBorder());
        jPanel3.setLayout(borderLayout1);
        jPanel4.setBorder(BorderFactory.createRaisedBevelBorder());
        jPanel4.setLayout(gridLayout2);
        jLabel1.setText("请输入学生基本信息 :");
        jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
        jLabel2.setText("学号:");
        jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
        jLabel3.setText("姓名:");
        jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
        jLabel4.setText("成绩:");
        gridLayout2.setColumns(2);
        gridLayout2.setHgap(2);
        gridLayout2.setRows(3);
        gridLayout2.setVgap(3);
        StuList.setPreferredSize(new Dimension(0, 1));
        StuList.addMouseListener(new StuManagement_StuList_mouseAdapter(this));
        gridLayout1.setHgap(2);
        jPanel4.add(jLabel2);
        jPanel4.add(StuNum);
        jPanel4.add(jLabel3);
        jPanel4.add(StuName);
        jPanel4.add(jLabel4);
        jPanel4.add(StuScore);
        jPanel2.add(NewBtn);
        jPanel2.add(DelBtn);
        jPanel2.add(AvgBtn);
        jPanel2.add(StatBtn);
        jPanel2.add(SearchBtn);
        jPanel2.add(SortBtn);
        jPanel1.add(jPanel3, java.awt.BorderLayout.NORTH);
        jPanel3.add(jLabel1, java.awt.BorderLayout.NORTH);
        jPanel1.add(jPanel4, java.awt.BorderLayout.CENTER);
        contentPane.add(jScrollPane1, null);
        jScrollPane1.getViewport().add(StuList);
        contentPane.add(jPanel1, null);
        contentPane.add(jPanel2, null);
    }

    public static void main(String[] args) {
        new StuManagement().setVisible(true);
    }

    public void NewBtn_actionPerformed(ActionEvent e) {
        add();
        save();
    }

    public void add()
    {
        this.strNum = StuNum.getText();
        this.strName = StuName.getText();
        this.intScore = Double.parseDouble(StuScore.getText());

        Iterator it = stuCollect.iterator();
        Student stu;
        boolean search = false;
        while(it.hasNext())
        {
            stu = (Student)it.next();
            if(stu.getNum().equals(this.strNum))
            {
                this.StuNum.setText(stu.getNum());
                this.StuName.setText(stu.getName());
                this.StuScore.setText(String.valueOf(stu.getScore()));
                search = true;
            }
        }

        if(!search)
        {
            stuCollect.add(new Student(strNum, strName, intScore));
            updateStuList();
        }
        else
        {
            JOptionPane.showMessageDialog(this, "对不起,此学号已经存在了");
        }
        this.StuNum.setText("");
        this.StuName.setText("");
        this.StuScore.setText("");
    }

    public void updateStuList()
    {
        StuList.setListData(stuCollect.toArray());
    }

    public void DelBtn_actionPerformed(ActionEvent e) {
        del();
        save();
    }

    public void del()
    {
        String num = StuNum.getText();

        Iterator it = stuCollect.iterator();
        Student stu;
        while(it.hasNext()) {
            stu = (Student)(it.next());
            if(stu.getNum().equals(StuNum.getText()))
            {
                stuCollect.remove(stu);
                updateStuList();
                StuNum.setText("");
                StuName.setText("");
                StuScore.setText("");
            }
        }
    }

    public void StuList_mouseClicked(MouseEvent e) {
        Student stu = (Student)(StuList.getSelectedValue());
        StuNum.setText(stu.getNum());
        StuName.setText(stu.getName());
        StuScore.setText(String.valueOf(stu.getScore()));
    }

    public void AvgBtn_actionPerformed(ActionEvent e) {
        avg();
    }

    public void avg()
    {
        double sum = 0;
        int count = 0;
        Iterator it = stuCollect.iterator();
        Student stu;
        while(it.hasNext())
        {
            count++;
            stu = (Student)it.next();
            sum += stu.getScore();
        }

        double avg = sum / count;
        JOptionPane.showMessageDialog(this, new String("平均分 : " + avg));
    }

    public void SearchBtn_actionPerformed(ActionEvent e) {
        String num = JOptionPane.showInputDialog("请输入你的学号: ");
        Iterator it = stuCollect.iterator();
        boolean search = false;
        Student stu;
        while(it.hasNext())
        {
            stu = (Student)it.next();
            if(stu.getNum().equals(num))
            {
                this.StuNum.setText(stu.getNum());
                this.StuName.setText(stu.getName());
                this.StuScore.setText(String.valueOf(stu.getScore()));
                search = true;
            }
        }
        if(!search)
            JOptionPane.showMessageDialog(this, "对不起,没有找到此人,请重新输入!");
    }

    public void SortBtn_actionPerformed(ActionEvent e) {
        sort();
    }

    public void sort()
    {
        Iterator it = stuCollect.iterator();
        Student stu;
        int i = 0;
        int []num = new int[stuCollect.size()];
        while(it.hasNext())
        {
            stu = (Student)it.next();
            num[i] = Integer.parseInt(stu.getNum());
            i++;
        }
        Arrays.sort(num);
        Collection cTemp = new ArrayList();
        for(int j = 0; j < i; j++)
        {
            it = stuCollect.iterator();
            while(it.hasNext())
            {
                stu = (Student)it.next();
                if(stu.getNum().equals(String.valueOf(num[j])))
                    cTemp.add(stu);
            }
        }
        stuCollect = cTemp;
        updateStuList();
    }

    public void StatBtn_actionPerformed(ActionEvent e) {
        stat();
        new Stat(this).setVisible(true);
    }

    public void stat()
    {
        for(int i = 0; i < 4; i++)
            levelNum[i] = 0;
        Iterator it = stuCollect.iterator();
        Student stu;
        while(it.hasNext())
        {
            stu = (Student)(it.next());
            if(stu.getScore() >= 0.0 && stu.getScore() <60.0)
                levelNum[0]++;
            else if(stu.getScore() >= 60.0 && stu.getScore() <75.0)
                levelNum[1]++;
            else if(stu.getScore() >= 75.0 && stu.getScore() <90.0)
                levelNum[2]++;
            else
                levelNum[3]++;
        }
       /* for(int i = 0; i < 4; i++)
        {
            JOptionPane.showMessageDialog(this, String.valueOf(levelNum[i]));
        }*/
    }

    public void save()
    {
        int count = 0;
        try {
            FileOutputStream fos = new FileOutputStream("addressBook.ab");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            Iterator it = stuCollect.iterator();
            while(it.hasNext()) {
                oos.writeObject(it.next());
                count++;
            }
            oos.close();
            FileOutputStream temp = new FileOutputStream("num.ab");
            temp.write(count);
            temp.close();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

    public void open()
    {
        try {
            FileInputStream temp = new FileInputStream("num.ab");
            int count = temp.read();
            FileInputStream fis = new FileInputStream("addressBook.ab");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Student stu;
            for(int i = 0; i < count; i++) {
                stu = (Student)ois.readObject();
                stuCollect.add(stu);
            }
            updateStuList();

        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

}


class StuManagement_SearchBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_SearchBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.SearchBtn_actionPerformed(e);
    }
}


class StuManagement_SortBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_SortBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.SortBtn_actionPerformed(e);
    }
}


class StuManagement_StatBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_StatBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.StatBtn_actionPerformed(e);
    }
}


class StuManagement_StuList_mouseAdapter extends MouseAdapter {
    private StuManagement adaptee;
    StuManagement_StuList_mouseAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void mouseClicked(MouseEvent e) {
        adaptee.StuList_mouseClicked(e);
    }
}


class StuManagement_AvgBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_AvgBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.AvgBtn_actionPerformed(e);
    }
}


class StuManagement_DelBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_DelBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.DelBtn_actionPerformed(e);
    }
}


class StuManagement_NewBtn_actionAdapter implements ActionListener {
    private StuManagement adaptee;
    StuManagement_NewBtn_actionAdapter(StuManagement adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.NewBtn_actionPerformed(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -