宿舍管理系统

注意:这是使用idea制作的java代码,java+MySql(本地)

1  系统需求分析

1.1  系统功能需求分析

1.1.1  宿舍管理员管理

能够添加管理员用户、删除管理员用户信息、查找管理员信息、修改管理员信息。

1.1.2  学生信息管理

能够添加学生信息、删除学生信息、查找学生信息、修改学生信息。

1.1.3  宿舍楼信息管理

能够添加宿舍楼信息、删除宿舍楼信息、查找宿舍楼信息、修改宿舍楼信息。

1.1.4  宿舍信息管理

能够添加宿舍信息、删除宿舍信息、查找宿舍信息、修改宿舍信息。

1.1.5  学生住宿管理

能够给学生调换宿舍、能够删除学生住宿信息(增删改查)。

1.1.6  学生缺寝管理

学生缺寝时,能够记录学生缺寝记录,如果缺寝信息有误,学生申诉后能够修改缺寝信息、删除缺寝信息、查询学生缺寝信息。

1.1.7  系统登录退出

能够正常登录、退出系统。

1.2 内容主题介绍

1.2.1 登录界面

    用户可以根据注册的类型,系统自动判断是学生登录还是宿管登录或者是管理人员登录,成功登陆后,系统做出相关提示

1.2.2  主界面

    根据用户登录身份不同,主页面会有三种不同的显示,和不同的操作权限

//部分代码如下,全码+v: ershiqijian
 public AddLater(int type, Users user){
            this.user=user;
            this.type=type;
            setLayout(new FlowLayout());

            table.setModel(mm);
            table.setRowSorter(new TableRowSorter<>(mm));
            JScrollPane js=new JScrollPane(table);
            add(js);
            
            JLabel lblNewLabel = new JLabel("New label");
            js.setColumnHeaderView(lblNewLabel);
            search();
        }
        private void search(){
            PreparedStatement state;
            ResultSet resultSet;
            if(type==1){
                try {
                    state=connection.prepareStatement("select * from absent where Sname"+"="+"'"+user.getName()+"'");
                    resultSet = state.executeQuery();
                    while (resultSet.next()){
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Dno=resultSet.getString(3);
                        String Atime=resultSet.getString(4);
                        String Areason=resultSet.getString(5);
                        String[] data={Sno,Sname,Dno,Atime,Areason};
                        mm.addRow(data);
                    }
                } catch (SQLException e){
                    e.printStackTrace();
                }
            }

            if(type==2||type==3){
                try {
                    record();
                     state=connection.prepareStatement("select*from absent");
                     resultSet = state.executeQuery();
                    while (resultSet.next()){
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Dno=resultSet.getString(3);
                        String Atime=resultSet.getString(4);
                        String Areason=resultSet.getString(5);
                        String[] data={Sno,Sname,Dno,Atime,Areason};
                        mm.addRow(data);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        private void record(){ //这是宿管添加晚归记录的功能
            Sno=new JLabel("要添加学生的学号:");
            SnoText=new JTextField(10);
            Sname=new JLabel("姓名:");
            SnameText=new JTextField(10);
            Dno=new JLabel("宿舍号:");
            DnoText=new JTextField(10);
            Atime=new JLabel("缺寝时间:");
            AtimeText=new JTextField(10);
            Areason=new JLabel("缺寝原因:");
            AreasonText=new JTextField(10);
            submit=new JButton("添加");
            submit.addActionListener(this);

            student=new JPanel(new GridLayout(8, 1));
          
            student.add(Sno);student.add(SnoText);
            student.add(Sname);student.add(SnameText);
            student.add(Dno);student.add(DnoText);
            student.add(Atime);student.add(AtimeText);
            student.add(Areason);student.add(AreasonText);
            student.add(submit);
            add(student);
        }
 @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==submit){   //这是宿管添加晚归记录的功能
                try {
                    PreparedStatement   statement = connection.prepareStatement("insert into absent values(?,?,?,?,?)");
                    statement.setString(1, SnoText.getText());
                    statement.setString(2, SnameText.getText());
                    statement.setString(3, DnoText.getText());
                    statement.setString(4, AtimeText.getText());
                    statement.setString(5, AreasonText.getText());
                    statement.executeUpdate();

                    PreparedStatement state=connection.prepareStatement("select*from absent");
                    ResultSet resultSet = state.executeQuery();
                    while(mm.getRowCount()>0){//把表格进行刷新,下次显示的时候重头开始显示                
                        mm.removeRow(mm.getRowCount()-1);
                    }
                    while (resultSet.next()){
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Dno=resultSet.getString(3);
                        String Atime=resultSet.getString(4);
                        String Areason=resultSet.getString(5);
                        String[] data={Sno,Sname,Dno,Atime,Areason};
                        mm.addRow(data);
                    }
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
            JOptionPane.showMessageDialog(this,"添加成功");
        }
    }


/.../
 private void init() {//初始化界面、该函数为初始化功能
        welcome.setFont(font);//设置字体的方法
        setTitle("宿管系统   ");
        getContentPane().setLayout(new BorderLayout());
        user = new JLabel("name");
        password = new JLabel("password");
        button = new JButton("Reset");
        card = new JPanel(cardLayout);
        JPanel panel1 = new JPanel(new BorderLayout());
        username = new JTextField();
        passwordField = new JPasswordField();
        loginButton = new JButton("Login!");
        loginButton.addActionListener(this);
        JPanel titlepanel = new JPanel(new FlowLayout());//标题面板
        JPanel loginpanel = new JPanel();//登录面板
        loginpanel.setLayout(null);//关闭窗口布局管理器,使后面的setBounds生效

        //设定窗体的偏移量
        welcome.setBounds(300,100,400,25);
        user.setBounds(340, 170, 100, 20);
        password.setBounds(340, 210, 100, 20);
        username.setBounds(400, 170, 120, 20);
        passwordField.setBounds(400, 210, 120, 20);
        loginButton.setBounds(340, 250, 80, 25);
        button.setBounds(440,250,80,25);

        //把页面各项信息添加到登录login面板上
        loginpanel.add(welcome);
        loginpanel.add(user);
        loginpanel.add(password);
        loginpanel.add(username);
        loginpanel.add(passwordField);
        loginpanel.add(loginButton);
        loginpanel.add(button);
        panel1.add(titlepanel, BorderLayout.NORTH);
        panel1.add(loginpanel, BorderLayout.CENTER);    
        card.add(panel1, "login");     
        getContentPane().add(card);//初始化一个容器 ,在容器上添加控件
        setBounds(300, 100, 900, 600);
        setVisible(true);//显示JFrame对象

        button.addActionListener(new ActionListener(){//为重置按钮添加监听事件
            //同时清空name、password的数据
            public void actionPerformed(ActionEvent arg0) {
                // TODO 自动生成方法存根
                username.setText("");
                passwordField.setText("");
            }
        });
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值