【Java课设】学生信息管理系统简易版(文件IO代替数据库)

本文档描述了一个使用图形用户界面和TXT文件实现的学生信息管理系统。系统包括登录、主界面和添加信息界面,实现了增删改查功能。学生信息以表格形式展示,并通过IO流与TXT文件交互存储数据。在主界面中,用户可进行查询、删除操作,添加和修改信息则跳转至添加信息界面。
摘要由CSDN通过智能技术生成

学生信息管理系统简易版(文件IO代替数据库)

一.设计任务及要求

  1. 设计并实现一个学生信息管理系统
  2. 要求使用图形用户界面同时用数据库建立1或2个学生信息表。并且能连接数据库并实现查、增、删、改等功能。(这里使用TXT文件代替数据库)

二.需求分析

要求有完整的图形用户界面,界面应该能显示完整的学生信息表格,同时要能对学生信息完成添加、修改、查询、删除四个基本功能。学生信息表格的数据应该保存在数据库里,每次登录系统时即对数据库进行访问和修改,可以考虑用TXT文本代替数据库,在本地包里创建TXT文本,通过IO流进行访问。

三.总体设计

  1. 界面设计:初步规划为三个界面,一个登陆界面,一个主界面和一个添加信息的界面。登录界面通过在文本框中输入用户名和密码,点击登陆跳转到主界面,点击退出结束程序。主界面显示学生信息的列表,同时具有通过学号查询,修改和删除信息的功能。点击添加和修改,都会跳转到添加信息界面,添加信息界面包含对学生类的七种信息的添加和修改(覆盖)功能。点击返回即返回到主界面。
  2. 功能实现:封装一个学生信息类,具有学号、姓名、性别、年龄、电话号码、家庭住址、身份证号码等七种属性。编写一个function类,类里包含会用到的增删改查方法,以及读文件和写文件的方法,通过IO流与文件交互。主界面单独编写一个类,在本页面即可完成查找和删除的功能,添加和修改按钮则链接到信息添加界面。在主界面中,学生信息以表格的形式显示出来,表头设置为醒目的颜色便于观察,同时将表格放到滚动面板中,可以避免设置翻页的功能。使用学号进行查找,修改和删除功能时,若无与输入学号相对应的信息,则提示未查找到该学生,请重新输入。若成功执行,则提示修改或删除成功。执行添加功能时,自动跳转到添加页面,对七个信息进行输入,输入完成后点击保存则写入到文件中,同时刷新主界面,如果有信息未录入则默认用“–”代替。

四.代码详细实现

1.启动界面代码,程序唯一的main方法,单独独立出来,养成好习惯
/**
 * @ClassName: StudentMessageControlSystem
 * @Auther: Drawin
 * @Date: 2021/12/25 22:25
 * @Description:学生信息管理系统
 * 要求:
 * 使用图形用户界面
 * 用数据库建立 1或 2个学生信息表。 (可以使用 txt 文件代替数据库
 * 能连接数据库并实现查询、增、删、改等功能。
 */

public class StudentMessageControlSystem {
    public static void main(String[] args) {
        new LoginGUi();
    }
}

2.Student类代码
public class Student {
    private String stuID;    /*  学生学号  */
    private String name;     /* 学生姓名 */
    private String sex;     /* 学生性别  */
    private String age;        /*  学生年龄  */
    private String callnumber;   /* 学生电话号码   */
    private String home_place;   /* 学生家庭住址,籍贯 */
    private String identityID;   /* 学生身份证号码 */


    public Student(String stuID,String name,String sex,String age,String callnumber,String home_place,String identityID) {
        this.stuID=stuID;
        this.name=name;
        this.sex=sex;
        this.age=age;
        this.callnumber=callnumber;
        this.home_place=home_place;
        this.identityID=identityID;
    }

    public Student() {

    }

    public String getStuID() {
        return this.stuID;
    }
    public void setStuID(String stuID) {
        this.stuID=stuID;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name=name;
    }

    public String getSex() {
        return this.sex;
    }
    public void setSex(String sex) {
        this.sex=sex;
    }

    public String getAge() {
        return this.age;
    }
    public void setAge(String age) {
        this.age=age;
    }

    public String getCallnumber() {
        return this.callnumber;
    }
    public void setCallnummber(String callnumber) {
        this.callnumber=callnumber;
    }

    public String getHome_place() {
        return this.home_place;
    }
    public void setHome_place(String home_place) {
        this.home_place=home_place;
    }

    public String getIdentityID() {
        return this.identityID;
    }
    public void setIdentityID(String identityID) {
        this.identityID=identityID;
    }

    //从文件中录入的数据格式    "学号  姓名  性别  年龄  电话号码  家庭住址  身份证号码"
    public String fileString()
    {
        return stuID+" "+name+" "+sex+" "+age+"  "+callnumber+"  "+home_place+"  "+identityID;
    }
}

3.MainView主界面代码,包括四个功能按钮,和完整的查找,删除功能
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;


/**
 * @ClassName: MainView
 * @Auther: Drawin
 * @Date: 2021/12/26 19:01
 * @Description:主界面,四个功能按钮,和完整的查找,删除功能
 */

public class MainView extends JFrame implements ActionListener {
    JTable table = null;
    DefaultTableModel model = null;
    JPanel jPanelNorth;
    JTextField search;
    JButton add,delete,modify,seek;
    Function act =new Function();
    //显示全部学生信息
    public MainView() {

        //顶部
        JLabel jLabel = new JLabel("请输入学号");
        jPanelNorth=new JPanel();
        jPanelNorth.setLayout(new GridLayout(1, 6));
        search =new JTextField(10);
        add =new JButton("添加");
        delete =new JButton("删除");
        modify =new JButton("修改");
        seek =new JButton("查找");

        jPanelNorth.add(jLabel);
        jPanelNorth.add(search);
        jPanelNorth.add(seek);
        jPanelNorth.add(add);
        jPanelNorth.add(modify);
        jPanelNorth.add(delete);

        //中间的表格
        JFrame jf = new JFrame("学生信息管理系统");
        // 创建内容面板
        JPanel panel = new JPanel();
        // 表头(列名)
        Vector columnNames=createColumnNames();
        Vector data=createTableModelData();
        // 创建一个默认的表格模型
        model = new DefaultTableModel(data, columnNames);
        table = new JTable(model);
        table.setPreferredScrollableViewportSize(new Dimension(500, 80));
        JScrollPane tablePanel = new JScrollPane(table);
        // 设置表格内容颜色
        table.setForeground(Color.BLACK);                   // 字体颜色
        table.setFont(new Font(null, Font.PLAIN, 14));      // 字体样式
        table.setSelectionForeground(Color.DARK_GRAY);      // 选中后字体颜色
        table.setSelectionBackground(Color.LIGHT_GRAY);     // 选中后字体背景
        table.setGridColor(Color.GRAY);                     // 网格颜色

        // 设置表头
        table.getTableHeader().setFont(new Font(null, Font.BOLD, 14));  // 设置表头名称字体样式
        table.getTableHeader().setForeground(Color.RED);                // 设置表头名称字体颜色
        table.getTableHeader().setResizingAllowed(false);               // 设置不允许手动改变列宽
        table.getTableHeader().setReorderingAllowed(false);             // 设置不允许拖动重新排序各列

        // 设置行高
        table.setRowHeight(40);

        // 第一列列宽设置为40
        table.getColumnModel().getColumn(0).setPreferredWidth(60);

        // 设置滚动面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到)
        table.setPreferredScrollableViewportSize(new Dimension(640, 320));

        // 把表格放到滚动面板中(表头将自动添加到滚动面板顶部)
        JScrollPane scrollPane = new JScrollPane(table);

        // 添加 滚动面板 到 内容面板
        panel.add(scrollPane);
        // JScrollPane pane = new JScrollPane(table);
        // 设置 内容面板 到 窗口
        jf.setContentPane(panel);
        jf.pack();
        jf.setSize(800, 500);
        jf.add(jPanelNorth,BorderLayout.NORTH);
        jf.add(scrollPane, BorderLayout.CENTER);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


        //数据居中显示
        DefaultTableCellRenderer r = new DefaultTableCellRenderer();
        r.setHorizontalAlignment(JLabel.CENTER);
        table.setDefaultRenderer(Object.class, r);

        jf.setLocationRelativeTo(null);
        int t=table.getRowCount();
        if(t<=0){
            JOptionPane.showMessageDialog(null, "该系统中还没有录入学生信息!!!");
            jf.setVisible(false);
        }
        else {
            jf.setVisible(true);
        }

        //监听开始
        add.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jf.setVisible(false);
                new AddView();
            }
        });
        modify.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    new AddView();
            }
        });
        seek.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String sID= search.getText();
                int flag=act.seek(sID);
                if (flag==-1)
                {
                    JOptionPane.showMessageDialog(null, "未查找到该学号的学生!!!\n\n请重新输入");
                    return;
                }
                else{
                     JOptionPane.showMessageDialog(null,act.find(sID));
                }
                search.setText("");
            }
        });
        delete.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String sID = search.getText();    //获取文本框中内容
                int flag=act.seek(sID);
                if(flag==-1)
                {
                    JOptionPane.showMessageDialog(null, "未查找到该学号的学生!!!\n\n请重新输入");
                }
                else {
                    act.delete(sID);
                    act.writefile();
                    JOptionPane.showMessageDialog(null, "删除成功!!!\n");
                }
                new MainView();
                search.setText("");
            }
        });
    }


    private Vector createColumnNames() {
        Vector columnNames = new Vector();
        //columnNames.add("序号");
        columnNames.add("学号");
        columnNames.add("姓名");
        columnNames.add("性别");
        columnNames.add("年龄");
        columnNames.add("电话号码");
        columnNames.add("家庭住址");
        columnNames.add("身份证号码");

        return columnNames;
    }

    private Vector createTableModelData() {

        Vector data = new Vector();
        String t=null;
        try{
            FileReader f1 = new FileReader("student.txt");
            BufferedReader br=new BufferedReader(f1);
            //arry.clear();//	清除原数组列表中的数据
            int i=0;
            while ((t= br.readLine())!= null)
            {
                String [] s=t.split("\\s+");		//通过空格分割字符串数组
                Vector rowData = new Vector();
                //rowData.add("i");
                rowData.add(s[0]);
                rowData.add(s[1]);
                rowData.add(s[2]);
                rowData.add(s[3]);
                rowData.add(s[4]);
                rowData.add(s[5]);
                rowData.add(s[6]);
                data.add(rowData);
                // System.out.print(s[6]);
                i++;
            }
            f1.close();
            br.close();

        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return data;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
    }
}


4.登录界面LoginGUI
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @ClassName: LoginGUi
 * @Auther: Drawin
 * @Date: 2021/12/26 16:34
 * @Description:
 */

public class LoginGUi extends JFrame implements ActionListener {
    public LoginGUi(){
        JFrame jFrame = new JFrame("登录");
        JLabel jLabel1 = new JLabel("  用户名");
        JLabel jLabel2 = new JLabel("  密码");
        JTextField jTextField1 = new JTextField(10);
        JTextField jTextField2 = new JTextField(10);
        JButton jButton1 = new JButton("登录");
        JButton jButton2 = new JButton("退出");
        JPanel jPanel1 = new JPanel();
        JPanel jPanel2 = new JPanel();

        jPanel1.setLayout(new GridLayout(3,2));
        jPanel2.setLayout(new GridLayout(1,2));
        jPanel1.add(jLabel1);
        jPanel1.add(jTextField1);
        jPanel1.add(jLabel2);
        jPanel1.add(jTextField2);


        jPanel2.add(jButton1);
        jPanel2.add(jButton2);
        jFrame.add(jPanel1, BorderLayout.NORTH);
        jFrame.add(jPanel2,BorderLayout.SOUTH);


        jFrame.setVisible(true);
        jFrame.setSize(350,150);
        jFrame.setLocationRelativeTo(null);//在屏幕中间显示
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame

        jButton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jFrame.setVisible(false);
                new MainView();
            }
        });

        jButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
           System.exit(0);
            }
        });

    }

    @Override
    public void actionPerformed(ActionEvent e) {

    }
}

5.Function类,增删改查功能实现(通过IO)
import java.io.*;
import java.util.ArrayList;

/**
 * @ClassName: Function
 * @Auther: Drawin
 * @Date: 2021/12/26 21:11
 * @Description:
 */

public class Function {

    ArrayList<Student> arry=new ArrayList<Student>();
    public Function()           //读文件,将文件中的学生信息存放在数组列表
    {
        this.readfile();
    }
    //根据学号查找学生信息,找到返回学号,找不到返回-1
    public int seek(String str)
    {
        for (int i = 0; i<arry.size(); i++)
            if (arry.get(i).getStuID().equals(str))
                return i;//等于在数组列表的位置
        return -1;
    }
    public String find(String str)
    {
        for (int i = 0; i<arry.size(); i++)
            if (arry.get(i).getStuID().equals(str))
                return arry.get(i).fileString();//等于在数组列表的位置
        return null;
    }

    //修改学生信息
    public void modify(YYX.Smcs.Student stu) {
        int flag=seek(stu.getStuID());    //查找是否存在
        arry.set(flag, stu);		   //替换 flag 处的学生信息
    }
    // 读文件
    public boolean readfile() {
        String t=null;
        try{
            FileReader f1 = new FileReader("student.txt");
            BufferedReader br=new BufferedReader(f1);
            arry.clear();    //	清除原数组列表中的数据
            while ((t= br.readLine())!= null)
            {
                String [] s=t.split("\\s+");
               YYX.Smcs.Student st=new Student (s[0],s[1],s[2],s[3],s[4],s[5],s[6]);
                arry.add(st);
                System.out.println("读取文件:");
                System.out.println(s[0]);
            }
            f1.close();
            br.close();
            return true;
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
            return false;
        }
    }
    //添加学生信息
    public boolean add(YYX.Smcs.Student stu)
    {
        System.out.println();
        System.out.println("要添加的学生");
        System.out.println(stu.fileString());
        System.out.println();
        if (seek(stu.getStuID())!=-1)
            return false;
        arry.add(stu);
        return true;
    }

    //写,注意每行必须有七个元素,否则读取文件并判断是否存在时会出错时会出错,没有输入的用---代替
    public boolean writefile() {
        FileWriter fw=null;
        BufferedWriter out=null;
        try {
            fw = new FileWriter("student.txt");
            out = new BufferedWriter(fw);
            //姓名学号等中间隔一个空格
            for(int i=0;i<arry.size();i++){
                String s=arry.get(i).fileString();
                System.out.println("数组列表数据:");
                System.out.println(arry.get(i).fileString());
                out.write(s);
                out.newLine();
            }
            out.close();
            fw.close();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

    //删除学生信息,并且文件中的内容也要修改
    public boolean delete(String s)	//添加学生记信息
    {
        int pos=seek(s);
        if (pos==-1)
            return false;
        arry.remove(pos);
        return true;
    }
}
6.AddView 添加修改页面,第三个界面
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 * @ClassName: AddView
 * @Auther: Drawin
 * @Date: 2021/12/26 19:52
 * @Description:添加,修改功能
 */

public class AddView extends JFrame {
    private JPanel jPanelCenter, jPanelSouth;
    private JButton addButton, exitButton,modiButton;
    private JTextField stuID,name,sex,age,callnumber,home_place,identityID;
    Function act =new Function();

    public AddView(){
        //center
        jPanelCenter = new JPanel();
        jPanelCenter.setLayout(new GridLayout(7, 2));

        jPanelCenter.add(new JLabel("  学号"));
        stuID=new JTextField();
        jPanelCenter.add(stuID);
        jPanelCenter.add(new JLabel("  姓名"));
        name = new JTextField();
        jPanelCenter.add(name);
        jPanelCenter.add(new JLabel("  性别"));
        sex = new JTextField();
        jPanelCenter.add(sex);
        jPanelCenter.add(new JLabel("  年龄"));
        age = new JTextField();
        jPanelCenter.add(age);
        jPanelCenter.add(new JLabel("  电话号码"));
        callnumber = new JTextField();
        jPanelCenter.add(callnumber);
        jPanelCenter.add(new JLabel("  家庭住址"));
        home_place = new JTextField();
        jPanelCenter.add(home_place);
        jPanelCenter.add(new JLabel("  身份证号码"));
        identityID = new JTextField();
        jPanelCenter.add(identityID);

        //south
        jPanelSouth = new JPanel();
        jPanelSouth.setLayout(new GridLayout(1, 3));
        addButton=new JButton("添加");
        exitButton=new JButton("返回");
        modiButton=new JButton("修改");
        jPanelSouth.add(addButton);
        jPanelSouth.add(modiButton);
        jPanelSouth.add(exitButton);

        this.add(jPanelCenter, BorderLayout.CENTER);
        this.add(jPanelSouth, BorderLayout.SOUTH);

        //监听
        exitButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                setVisible(false);
               new MainView();
            }
        });
        Student s1=new Student();
        ArrayList<Student> arry=new ArrayList<Student>();
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String sID = stuID.getText();    //获取文本框中内容
                if(act.seek(sID)!=-1)
                {
                    JOptionPane.showMessageDialog(null, "该学号对应的学生已经存在!");
                    //清空文本框
                    stuID.setText("");
                    name.setText("");
                    age.setText("");
                    callnumber.setText("");
                    home_place.setText("");
                    identityID.setText("");
                    return;
                }
                String sname = name.getText();
                //先判断学号和姓名是否为空,如果为空,直接退出
                if(sID.equals("")||sname.equals(""))
                {
                    JOptionPane.showMessageDialog(null, "请重新输入");
                    return;
                }
                String sage = age.getText();
                if(sage.equals(""))//年龄为空,没有输入
                    sage="--";
                String scall = callnumber.getText();
                if(scall.equals(""))
                    scall="--";
                String shome = home_place.getText();
                if(shome.equals(""))
                    shome="--";
                String siden = identityID.getText();
                if(siden.equals(""))
                    siden="--";
                String ssex=sex.getText();
                if (ssex.equals(""))
                    ssex="--";


                s1.setStuID(sID);
                s1.setAge(sage);
                s1.setName(sname);
                s1.setSex(ssex);
                s1.setCallnummber(scall);
                s1.setHome_place(shome);
                s1.setIdentityID(siden);

                System.out.println(s1.fileString());
                act.add(s1);
                act.writefile();

                JOptionPane.showMessageDialog(null, "录入成功!!!");
                setVisible(false);
                new MainView();

            }
        });

        modiButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String sID =stuID.getText();    //获取文本框中内容
                int flag=act.seek(sID);    //查找是否存在
                if (flag==-1)
                {
                    JOptionPane.showMessageDialog(null, "未查找到该学号的学生!!!\n\n请重新输入");
                    return;
                }
                else {
                    JOptionPane.showMessageDialog(null, "确认返回后请输入需要修改后的数据");
                }
                String sage = age.getText();
                if(sage.equals(""))//年龄为空,没有输入
                    sage="--";
                String scall = callnumber.getText();
                if(scall.equals(""))
                    scall="--";
                String shome = home_place.getText();
                if(shome.equals(""))
                    shome="--";
                String siden = identityID.getText();
                if(siden.equals(""))
                    siden="--";
                String ssex=sex.getText();
                if (ssex.equals(""))
                    ssex="--";

                String sname = name.getText();
                //先判断学号和姓名是否为空,如果为空,直接退出
                if(sname.equals(""))
                {
                    JOptionPane.showMessageDialog(null, "录入的学生姓名为空!!!\n\n请重新输入");
                    return;
                }
                s1.setStuID(sID);
                s1.setAge(sage);
                s1.setName(sname);
                s1.setSex(ssex);
                s1.setCallnummber(scall);
                s1.setHome_place(shome);
                s1.setIdentityID(siden);

                act.modify(s1);       //修改
                act.writefile();
                JOptionPane.showMessageDialog(null, "修改成功!!!");
            }
        });

        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setBounds(500, 300, 400, 270);
        setVisible(true);

    }
}

五.功能实现截图

1.登录界面
GUI登录界面显示

2.管理系统主界面
在这里插入图片描述

3.添加修改界面
在这里插入图片描述

4.查找功能
在这里插入图片描述

5.反馈信息
在这里插入图片描述

6.提示信息
在这里插入图片描述

六.参考文献

Java课程设计【学生信息管理系统】——振华OPPO
Java+学生信息管理系统+GUI+文件——H千面
学生信息管理系统–(Java+MySQL实现)——__Mzzz

java课程设计学生信息管理系统 第 5 页 共43页 目录 1 需求分析 2 1.1 设计任务要求 2 1.2 系统功能需求分析 2 2 概要设计 2 2.1 图形用户界面的设计 2 2.2 用数据库建立学生信息表 3 2.3 数据库的连接 3 2.4 模块功能的实现 3 3 详细设计 3 3.1 图形用户界面的设计 3 3.2 用数据库建立学生信息表 3 3.3 数据库的连接 3 3.4 模块功能的实现 3 4 调试分析 3 4.1 系统功能测试 3 4.2 系统调试常见错误 3 4.3 实验小结 3 5 用户使用说明 3 6 测试数据和数据结果 3 参考文献 3 附件 3 java课程设计学生信息管理系统全文共44页,当前为第1页。 java课程设计学生信息管理系统全文共44页,当前为第1页。 1 需求分析 利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。我这次的课题就是设计与实现一个学生信息管理系统。 1.1 设计任务要求 该学生信息管理系统的设计要求主要有以下几点: (1)使用图形用户界面; (2)用数据库建立1或2个学生信息表;(不限使用哪种数据库) (3)能连接数据库并实现对学生信息查询、增、删、改等功能。 1.2 系统功能需求分析 系统主要包括以下几项功能: (1)添加学生信息; (2)查询学生信息; (3)删除学生信息; (4)修改学生信息。 java课程设计学生信息管理系统全文共44页,当前为第2页。 java课程设计学生信息管理系统全文共44页,当前为第2页。 2 概要设计 2.1 图形用户界面的设计 图形用户界面中,设置窗口大小、显示位置和窗口标题,设置窗口关闭之后其后台程序同时关闭,设置窗口可拉伸且为可见的。同时设置了用户输入文本框,文本框的窗口大小等属性也进行设置,文本框中可输入用户需要输入的学生信息。 2.2 用数据库建立学生信息表 在这里我用的是数据库mysql,建立的数据库名字为student,而且程序使用的是单表形式,表名为 st ,st表的字段,各个字段分别对应学生的学号,名字,性别,年龄,籍贯,系别。 2.3 数据库的连接 数据库的连接只需通过jdbc驱动,即可实现用户操作与数据资源的连接,并可对相关的数据库信息进行操作。 2.4 模块功能的实现 以下是学生信息管理系统功能模块关系图,主要包含查询、添加、修改、删除学生信息等功能。 学生信息管理系统查询学生信息添加学生信息修改学生信息删除学生信息 学生信息管理系统 查询学生信息 添加学生信息 修改学生信息 删除学生信息 java课程设计学生信息管理系统全文共44页,当前为第3页。图2.1 系统功能模块关系图 java课程设计学生信息管理系统全文共44页,当前为第3页。 根据功能的需要,我设想了主窗口界面的大体布置图,并在设计与实现的过程中尽量去按照设想图的图样去实现。设想图如下图所示,图中也大概地标明了部分标语与说明。 主模块外出容器:Panel3:用来显示 按钮(添加) 按钮(修改) 按钮(删除)jscrollPane:用来显示数据库调出的数据表 主模块外出容器: Panel3:用来显示 按钮(添加) 按钮(修改) 按钮(删除) jscrollPane:用来显示数据库调出的数据表 Panel1:标签(学生姓名) 输入框(学生姓名) 按钮(查询) Panel1:标签(学生姓名) 输入框(学生姓名) 按钮(查询) 图2.2 设想的主界面 图2.2中组件功能的实现: (1)当用户点击查询按钮 ,系统创建一个数据库连接,从数据库调出用户所输入要查询学生的信息,并显示到jscrollPane中,即主模块的中部; (2)当用户点击添加按钮时,系统创建一个数据连接,弹出一个添加学生的信息的文本框,文本框可输入要添加的学生信息,并可存入数据库。 (3)当用户点击修改按钮时,系统创建一个数据连接,从数据库中调出你所选行的学生信息,并弹出修改该学生的信息文本框,文本框可进行学生信息修改,修改完确认后,该学生的信息会重新存入数据库。 (4)当用户点击删除按钮时,系统创建一个数据连接,根据你所选行的学生学号,在数据库中找到该学生信息,并删除。 java课程设计学生信息管理系统全文共44页,当前为第4页。 java课程设计学生信息管理系统全文共44页,当前为第4页。 3 详细设计 3.1 图形用户界面的设计 (1)主界面窗口设计函数代码程序如下: //定义用户界面用到的组件 JLabel userName = null; //要查询的学生的名字 JTex
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值