精华内容
下载资源
问答
  • 本系统采用java语言开发,实现了学生宿舍管理系统的增删改查,宿舍,宿舍楼,管理员,学生,文件上传下载,缺勤纪律,访客,评分等一系列功能的实现和运行
  • Java学生宿舍管理系统

    2018-08-29 10:31:33
    Java学生宿舍管理系统附代码和文件说明,有需要的可以借鉴一下
  • JAVA学生宿舍管理系统

    万次阅读 多人点赞 2019-01-22 21:28:14
    system.java (系统管理界面) sql.java (数据库操作,包括连接、断开、增删改查等操作) 一、登陆界面及代码 主要代码: 登陆按钮事件 public void actionPerformed(ActionEvent e) { // TODO Auto-...

    需要的工具
    1.SQL Server
    2.Eclipse
    3.JDBC连接数据库驱动
    https://download.microsoft.com/download/A/F/B/AFB381FF-7037-46CE-AF9B-6B1875EA81D7/sqljdbc_6.0.8112.200_chs.exe

    功能实现
    分为三大类
    1.land.java (登陆界面)
    2.system.java (系统管理界面)
    3.sql.java (数据库操作,包括连接、断开、增删改查等操作)

    一、登陆界面及代码
    在这里插入图片描述

    部分代码:

    登陆按钮事件

    public void actionPerformed(ActionEvent e) {
    	// TODO Auto-generated method stub
    		if((JButton)e.getSource()== buttonLand)
    		{
    		
    		String name = textName.getText().trim();
    		String password = String.valueOf(textPassword.getPassword()).trim();
    	    int num = sq.landing(name, password);
    	    if(num==1)
    	    {
    	    	JOptionPane.showMessageDialog(frame, "欢迎进入学生宿舍管理系统!","提示:",JOptionPane.PLAIN_MESSAGE);
    	    	system system = new system();
    	    	frame.dispose();
    	    }
    	    else
    	    {
    	    	JOptionPane.showMessageDialog(frame, "账号或者密码错误!","提示:",JOptionPane.ERROR_MESSAGE);
    	    }
    		}
    	}
    

    二、系统管理界面及代码**(这里只添加了俩个表,多少表都是一样的道理**)

    增加数据:点击增加按钮会出现一空白行,填写完点击保存即可
    保存(更新)数据:直接在表中进行相应的操作,再点击保存即可
    删除数据:选择某行,点击删除按钮即可

    在这里点插入图片描述在这里插入图片描述
    部分代码:

    //--------------------------------------按钮事件--------------------------------
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		//------------------------------- 删除-----------------------------
    		String tableName = null;
    		String key1 = null;
    		if((JButton)e.getSource()==buttonDelete)
    		{   if(paneParent.getSelectedIndex()==1)
    			{
    				tableName = "学生信息表";
    				key1 = "sno";
    			}
    			if(paneParent.getSelectedIndex()==2)
    			{
    				tableName = "宿舍信息表";
    				key1 = "dno";
    			}
    			int row = table.getSelectedRow();			
    			if(row!=-1)
    			{
    				String key2 = (String) tableModel.getValueAt(row, 0);
    				int result = JOptionPane.showConfirmDialog(null, "确定要删除吗?","请确认",JOptionPane.YES_NO_OPTION);
    				if(result==JOptionPane.OK_OPTION)
    				{
    					String sql = "delete from "+tableName+" where "+key1+"="+key2;
    					int num = sq.delete(sql);
    					if(num>0)
    					{
    						tableModel.removeRow(row);
    					}
    				}
    			}
    			else 
    			{	
    				JOptionPane.showMessageDialog(null, "请选择要删除的行!","提示:",JOptionPane.ERROR_MESSAGE);
    			}
    		}
    		//------------------------------保存------------------------
    		if((JButton)e.getSource()==buttonSave)
    		{
    			int result = JOptionPane.showConfirmDialog(null, "请确认数值已经更改,否则保存无效","请确认",JOptionPane.YES_NO_OPTION);
    			if(result==JOptionPane.OK_OPTION)
    			{
    				int row = table.getRowCount();
    				int column = table.getColumnCount();			
    				String[][]valueRow= new String[row][column];
    				String[] sqlvalue  = new String[row];
    				for(int i = 0; i < row; i++)
    				{
    					for(int j = 0; j < column; j++)
    					{
    						valueRow[i][j] = table.getValueAt(i, j).toString();
    					}
    				}
    				if(paneParent.getSelectedIndex()==1)
    				{	
    					for(int i =0;i<row;i++)
    					{
    						String sql = "insert into 学生信息表"+" values ("+valueRow[i][0].toString()+","+valueRow[i][1].toString()+","+valueRow[i][2].toString()+","+valueRow[i][3].toString()+","+valueRow[i][4].toString()+","+valueRow[i][5].toString()+")";				
    						sqlvalue[i]=sql.toString();									
    					}
    					data = sq.Save(sqlvalue,"学生信息表",row, column);
    		            tableModel.setDataVector(data,dataTitle);			
    				}
    				if(paneParent.getSelectedIndex()==2)
    				{
    					for(int i =0;i<row;i++)
    					{
    						String sql = "insert into 宿舍信息表"+" values ("+valueRow[i][0].toString()+","+valueRow[i][1].toString()+")";				
    						sqlvalue[i]=sql.toString();									
    					}
    					data = sq.Save(sqlvalue,"宿舍信息表",row, column);
    		            tableModel.setDataVector(data,TitleDormitor);			
    				}				
    			}					        
    		}
    		//------------------------------增加---------------------------
    		if((JButton)e.getSource()==buttonIncrease)
    		{
    			tableModel.addRow(new Vector<>());
    		}
    	}
    

    三、sql.java (重要)

    public class SQL {
        public  Connection conn;
        public  Statement st;
        public  ResultSet rs;
      
    //----------------------------获取链接--------------------------------
    public Connection getConn() throws SQLException, ClassNotFoundException
    {
      String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
      String url = "jdbc:sqlserver://localhost:1433;databaseName=学习宿舍";
    //:1433为数据库默认端口号,学习宿舍为数据库名字
      String user = "sa"; //登录用户名
      String password = "123456"; //登录密码
      try { 
       Class.forName(driverClassName);
       conn = DriverManager.getConnection(url, user, password);
       System.out.println("数据库连接成功");
      } catch (SQLException ex1)
      {
       System.out.println("数据库连接失败");
      } 
      return conn;
    }
    
    //-----------------------------------关闭链接----------------------------------
    
    public  void Close() 
    {
      try {
    	rs.close();
    } catch (SQLException e) {
    	e.printStackTrace();
    }
      try {
    	st.close();
    } catch (SQLException e1) {
    	e1.printStackTrace();
    }
      try {
    	conn.close();
    } catch (SQLException e) {
    	e.printStackTrace();
    }
    }
    //----------------------------------------登陆---------------------------------
    public int landing(String name1,String password1) 
    {
    	int num = 0;
    	String sql = "select *from 用户表";
    	try{
    		getConn();
    		st = conn.createStatement();
    		rs = st.executeQuery(sql);
    		while(rs.next())
    		{
    			String name = rs.getString(1).trim();
    			String password = rs.getString(2).trim();
    			if(name.equals(name1)&&password.equals(password1))
    			{
    				num = 1;
    			}
    			
    		}
    	}catch (SQLException e) {
    		// TODO: handle exception
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	Close();
    	return num;
    }
    //--------------------------------查询-------------------------------
    public Vector<Vector<Object>> query(String tableName,int column)
    {
    	int num = 0;
    	String sql = "select *from "+tableName;
    	Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    	try{
    		getConn();
    		st = conn.createStatement();
    		rs=st.executeQuery(sql);
    		while(rs.next())
    		{
    			Vector<Object> rowdata = new Vector<Object>();
    			for(num=1;num<=column;num++)
    			{
    				rowdata.add(rs.getString(num));	  
    			}
    			data.add(rowdata);
    		}
    	  }catch(SQLException ex1)
    		{
    		System.out.println("失败"+ex1);
    		} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    		}
    		Close();
    		return data;
    }
    //---------------------------------------删除----------------------------------
    public int delete(String sql)
    {
    	int num = 0;
    	try{
    		getConn();
    		st = conn.createStatement();
    	    num = st.executeUpdate(sql);
    	}catch (SQLException e) {
    		// TODO: handle exception
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}	
    	Close();
    	return num;
    }
    //-------------------------------------保存-------------------------------------
    public Vector<Vector<Object>> Save(String[] sqlvalue,String tableName,int row,int column) 
    {
    	Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    	try{
    		getConn();
    		st = conn.createStatement();
    	    st.executeUpdate("delete from "+tableName);
    		for(int i =0;i<row;i++)
    		{
    			st.executeUpdate(sqlvalue[i].toString());
    		}		
    		data = query(tableName, column);
    		
    	}catch (SQLException e) {
    		// TODO: handle exception
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	return data;
    }
    }
    

    数据库连接账号密码及表名

    **

    这个是数据库的连接账号和密码123456
    这个是数据库的连接账号和密码

    这个是用户表结构和登陆账号和密码(可自行修改)
    在这里插入图片描述

    在这里插入图片描述

    **

    宿舍信息表结构**
    在这里插入图片描述

    **

    学生信息表结构**
    在这里插入图片描述

    ## 需要源码,点赞关注截图,发邮箱到1397195447@qq.com

    展开全文
  • JAVA语言写的一个宿舍管理系统。包括学生,管理人员和游客的登陆,以及登陆后进行的操作。
  • java 学生宿舍管理系统,两套源码均可运行,总有一套适合你,可以运行,有数据库文件,导入库即可,小白可以操作。亲测可以运行的,eclipse / idea 均可。
  • javaweb使用Tomcat连接MySQL数据库,编写的学生宿舍管理系统,有不足之处,望各位大佬指正。
  • Java-学生宿舍管理系统

    万次阅读 多人点赞 2018-12-30 10:29:03
    这次记录的是最近完成的实训作业,学生宿舍管理系统,使用Java swing完成界面设计,数据库用的是SQL server,IDE使用的是IDEA 学生宿舍管理系统的用户有宿管和学生,宿管有最高的权限,学生只有部分权限, 一、...

    更新:因为好多人说连不上数据库或者没有数据库表,所以现在更新了代码,从SQL server改为MySQL,同时附有数据库表文件。同时有些同学GitHub登录不了,于是把资源放在了CSDN,有任何问题可以评论或者私信我

    (GitHub还是有之前的代码)

                                                                                                                                            2021-10-20

    Java-学生宿舍管理系统

    这次记录的是最近完成的实训作业,学生宿舍管理系统,使用Java swing完成界面设计,数据库用的是SQL server,IDE使用的是IDEA

    学生宿舍管理系统的用户有宿管和学生,宿管有最高的权限,学生只有部分权限,

    一、宿舍楼管理员:
        a.
    信息要求:

    宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。

    b.处理要求:

    当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。

    当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。

    当快件到达本宿舍楼时,宿舍楼管理员应依据到达快件的相关信息在快件信息中插入一条记录,当同学们接收快件后,管理员应登记快件的接收时间,表明该信件已成功到达收信人的手中。

    当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。

    二、本宿舍楼的学生:

        a.信息要求:

    本宿舍楼的学生能查询其所在的宿舍的所有信息,能查询本楼的指定宿舍的电话号码以利于同楼宿舍间的通信。能查询自己的快件信息。能查询自己的夜归记录和离返校记录。

    b.处理要求:

    本宿舍楼的学生能在报修信息表中插入报修信息,表示本宿舍的财产发生了损毁需要学校派人维修。·

    学生离校时,能在离返校记录表中插入离校时间;学生返校后,能在离返校记录表中插入返校时间,表示已经回校。

    根据下面来建立表

    住宿学生数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    学号

    Sno

    char

    20

    住宿学生学号

    姓名

    Sname

    char

    20

    住宿学生姓名

    性别

    Ssex

    char

    4

    专业

    Sdept

    char

    40

    学生专业

    宿舍号

    Dno

    char

    6

    住宿学生宿舍号

    入住时间

    Scheckin

    date

    8

    新生搬入时间

    宿舍数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    宿舍号

    Dno

    char

    6

    宿舍电话

    Dphone

    char

    15

    宿舍财产数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    物品号

    Pno

    Int

    2

    宿舍物品编号

    物品名

    Pname

    char

    20

    宿舍物品名

    邮件快递数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    姓名

    Sname

    char

    20

    收件人姓名

    宿舍号

    Dno

    char

    6

    收件人宿舍号

    到达时间

    Marrive

    date

    8

    邮件快递到达时间

    接收时间

    Mreceive

    date

    8

    收件人接收时间

    邮件数量

    Mnumber

    tinyint

    2

    学生收到邮件数量

    报修数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    宿舍号

    Dno

    char

    6

    报修人宿舍号

    物品号

    Pno

    Int

    2

    报修物品编号

    提交日期

    Rsubmit

    date

    8

    报修提交日期

    解决日期

    Rsolve

    date

    8

    问题解决日期

    报修原因

    Rreason

    char

    50

    物品损坏原因

    晚归数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    学号

    Sno

    char

    20

    晚归学生姓名

    宿舍号

    Dno

    char

    6

    晚归学生宿舍号

    晚归时间

    Btime

    timestamp

    14

    学生晚归时间

    晚归原因

    Breasonr

    Char

    10

    学生晚归原因

    离校数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    学号

    Sno

    char

    20

    离校学生姓名

    宿舍号

    Dno

    char

    6

    离校学生宿舍号

    离校时间

    Ltime

    date

    8

    学生离校时间

    返回时间

    Lreturn

    date

    8

    学生返校时间

    用户数据字典:

    属性名

    存储代码

    类型

    长度

    备注

    用户ID

    Uname

    char

    20

    用户密码

    Upassword

    char

    20

    用户类型

    Utype

    tnyint

    1

    普通或超级用户

    本次使用了卡片布局器(CardLayout)和选项卡布局器(JTabbedPane)来构成界面主体,登录界面和操作界面之间使用卡片布局器进行切换,(控件的位置请忽略,因为我懒得弄好看了......)

    正确输入用户名,密码之后切换到操作界面

    操作界面使用选项卡布局器来操作不同的表

    界面和操作界面代码(前面忘了说了,因为只是为了完成实训作业,并没有想着后期的维护,所以我的代码写的很烂,只是完成了功能,我会加上注释让你们尽可能的看明白,日后再把代码规范起来):

    public class login extends JFrame implements ActionListener {
        JLabel user, password;
        JTextField username;
        JPasswordField passwordField;
        JButton loginButton;
        CardLayout cardLayout = new CardLayout();
        JPanel card;
        JPanel cardPanel;
        JTabbedPane jTabbedPane;
        int type=1;
        Users users;
    
    
    
        public login() {
            init();
        }
    
        private void init() {//初始化界面
            setTitle("宿舍管理系统");
            setLayout(new BorderLayout());
            user = new JLabel("用户名");
            password = new JLabel("密码");
    
            card = new JPanel(cardLayout);
    
            JPanel panel1 = new JPanel(new BorderLayout());
    
            username = new JTextField();
            passwordField = new JPasswordField();
            loginButton = new JButton("登录");
            loginButton.addActionListener(this);
    
            JPanel titlepanel = new JPanel(new FlowLayout());//标题面板
            JLabel title = new JLabel("学生宿舍管理系统");
            titlepanel.add(title);
    
            JPanel loginpanel = new JPanel();//登录面板
            loginpanel.setLayout(null);
    
            user.setBounds(50, 20, 50, 20);
            password.setBounds(50, 60, 50, 20);
            username.setBounds(110, 20, 120, 20);
            passwordField.setBounds(110, 60, 120, 20);
            loginpanel.add(user);
            loginpanel.add(password);
            loginpanel.add(username);
            loginpanel.add(passwordField);
    
            panel1.add(titlepanel, BorderLayout.NORTH);
            panel1.add(loginpanel, BorderLayout.CENTER);
            panel1.add(loginButton, BorderLayout.SOUTH);
    
    
            card.add(panel1, "login");
            //card.add(cardPanel, "info");
    
            add(card);
            setBounds(600, 200, 900, 600);
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    
        public static void main(String[] args) {
            new login();
        }
    
        @Override
        public void actionPerformed(ActionEvent e) {
            boolean flag=false;//用来标志用户是否正确
    
            if (e.getSource() == loginButton) {
                ArrayList<Users> list = new CheckUsers().getUsers();//获得所有用户信息
                for (int i = 0; i < list.size(); i++) {//遍历所有用户信息,以此来判断输入的信息是否正确
                    users = list.get(i);
                    String passwordStr = new String(passwordField.getPassword());
                    if (username.getText().equals(users.getName()) && passwordStr.equals(users.getPassword())) {
                        if(users.getType()==1){//如果时学生
                            type=users.getType();
                            JOptionPane.showMessageDialog(null, "欢迎登录(学生)", "学生宿舍管理系统", JOptionPane.PLAIN_MESSAGE);
                        }else{//如果时宿管
                            type=users.getType();
                            System.out.println(type);
                            JOptionPane.showMessageDialog(null, "欢迎登录(宿管)", "学生宿舍管理系统", JOptionPane.PLAIN_MESSAGE);
                        }
                        flag = true;
                        break;//如果信息正确就退出遍历,提高效率
                    }
                }
                if(!flag){//信息不正确,重新输入
                    JOptionPane.showMessageDialog(null, "请输入正确的用户名或密码", "警告",JOptionPane.WARNING_MESSAGE);
                    username.setText("");
                    passwordField.setText("");
                }else{
                    //当输入的信息正确时,就开始加载选项卡界面,并把选项卡界面加入到卡片布局器中
                    DormitoryInfo dormitoryInfo = new DormitoryInfo(users,type);//宿舍信息
                    Express express = new Express(type,users);//快件信息
                    Renovation renovation = new Renovation(type,users);//维修信息
                    OutAndIn outAndIn = new OutAndIn(type,users);//学生离校和回校信息
                    Things things=new Things(type,users);//宿舍物品信息
                    Later later = new Later(type,users);//晚归信息
                    cardPanel = new JPanel();
                    jTabbedPane = new JTabbedPane(JTabbedPane.LEFT);
                    jTabbedPane.add("宿舍信息", dormitoryInfo);
                    jTabbedPane.add("快件信息", express);
                    jTabbedPane.add("维修信息", renovation);
                    jTabbedPane.add("学生离校与返校", outAndIn);
                    jTabbedPane.add("晚归记录", later);
                    jTabbedPane.add("宿舍物品", things);
                    cardPanel.add(jTabbedPane);
                    card.add(cardPanel, "info");
                    cardLayout.show(card, "info");//输入信息正确就显示操作界面,否则重新输入正确信息
                }
            }
        }
    }

    数据库的数据显示:我用的是表格来显示数据,这样能够看起来整齐点

        JTable table=new JTable();
        String[] col = { "学号", "姓名", "性别","专业","宿舍号","入住时间" };
        DefaultTableModel mm = new DefaultTableModel(col, 0); // 定义一个表的模板
    
    
    while (resultSet.next()){//把数据库中的数据添加到表格中
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Ssex=resultSet.getString(3);
                        String Sdept=resultSet.getString(4);
                        String Dno=resultSet.getString(5);
                        String Scheckin=resultSet.getString(6);
                        String[] data={Sno,Sname,Ssex,Sdept,Dno,Scheckin};
                        mm.addRow(data);
                    }

    SQL server连接

    SQL server的下载。和SQL server的JDBC怎么搞,我这里就不多说了,网上教程很多,也不难

    public class GetConnection {
        private Connection con=null;
        public Connection GetConnection(){
            String URL="jdbc:sqlserver://localhost:1433;DatabaseName=students";
            String USER="sa";
            String KEY="********";
    
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                con= DriverManager.getConnection(URL, USER, KEY);
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            return con;
        }
    }

    因为代码不少,全部放上来有点太长了,所以我这里只写其中一个,其他的都是大同小异无非就是对数据库的增删改查,源码我会放在我的Github上

    宿管对于宿舍信息的操作,当有学生换宿舍或者换专业的时候,宿管能够对该学生的宿舍信息进行修改并保存到数据库中,

    代码:(再次声明,我的代码只是为了完成作业,不建议像我这样写代码,很杂乱,不仅难理解还难维护)

    public class DormitoryInfo extends JPanel implements ActionListener {
        Connection connection = new GetConnection().GetConnection();
        Users users;//当前用户
        int type;//用户类型
        String Dno="";//宿舍号
        JTable table=new JTable();
        String[] col = { "学号", "姓名", "性别","专业","宿舍号","入住时间" };
        DefaultTableModel mm = new DefaultTableModel(col, 0); // 定义一个表的模板
        JLabel Sdept,suse,name;
        JTextField SdeptText,suseText,nameText;
        JButton submit;
        JPanel suguan;
        public DormitoryInfo(Users users,int type){//从登录界面传回,用户名和用户类型
            this.type=type;
            this.users=users;
            setLayout(new FlowLayout());
    
            table.setModel(mm);
            table.setRowSorter(new TableRowSorter<>(mm));//排序
            JPanel jPanel=new JPanel(new FlowLayout());
            JScrollPane js=new JScrollPane(table);
            jPanel.add(js);
    
            add(jPanel);
            search();
        }
    
        private void search(){
            PreparedStatement state;
            ResultSet resultSet;
            if(type==1){//如果是学生,只显示学生自己宿舍的信息
                try {
                    inquire();
                    String select="select Dno from student where Sname"+"="+"'"+users.getName()+"'";
                    state=connection.prepareStatement(select);
                    resultSet=state.executeQuery();
                    while (resultSet.next()){
                        Dno=resultSet.getString("Dno");
                    }
                    System.out.println(users.getName()+users.getName().length());
                    select="select*from student where Dno"+"="+"'"+Dno+"'";
                    state=connection.prepareStatement(select);
                    resultSet = state.executeQuery();
                    while (resultSet.next()){
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Ssex=resultSet.getString(3);
                        String Sdept=resultSet.getString(4);
                        String Dno=resultSet.getString(5);
                        String Scheckin=resultSet.getString(6);
                        String[] data={Sno,Sname,Ssex,Sdept,Dno,Scheckin};
                        mm.addRow(data);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }else if(type==2){//如果是宿管,则显示全部学生的宿舍
                try {
                    xiugai();
                    state=connection.prepareStatement("select *from student");
                    resultSet = state.executeQuery();
                    while (resultSet.next()){
                        String Sno=resultSet.getString(1);
                        String Sname=resultSet.getString(2);
                        String Ssex=resultSet.getString(3);
                        String Sdept=resultSet.getString(4);
                        String Dno=resultSet.getString(5);
                        String Scheckin=resultSet.getString(6);
                        String[] data={Sno,Sname,Ssex,Sdept,Dno,Scheckin};
                        mm.addRow(data);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
        }
    
        private void inquire(){//学生只能查询任意宿舍的电话
            suse=new JLabel("宿舍号");
            suseText=new JTextField(10);
            submit=new JButton("查询");
            submit.addActionListener(this);
           suguan=new JPanel(new GridLayout(2, 2));
           suguan.add(suse);suguan.add(suseText);suguan.add(submit);
           add(suguan);
        }
    
    
        private void xiugai(){//宿管修改学生的宿舍信息
            Sdept=new JLabel("学院");
            suse=new JLabel("宿舍号");
            SdeptText=new JTextField(10);
            suseText=new JTextField(10);
            name=new JLabel("名字");
            nameText=new JTextField(10);
            suguan=new JPanel(new GridLayout(4, 2));
            submit=new JButton("提交");
            submit.addActionListener(this);
            suguan.add(name);suguan.add(nameText);
            suguan.add(Sdept);suguan.add(SdeptText);
            suguan.add(suse);suguan.add(suseText);
            add(suguan);
            suguan.add(submit);
        }
        @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==submit&&type==2){//如果点击按钮的是宿管
                try {
                    if (suseText.getText().length()>0&&SdeptText.getText().length()==0){//只修改宿舍号
    
                        Statement statement = connection.createStatement();
                        String sql="update student set Dno="+"'"+suseText.getText()+"'"+"where Sname"+"="+"'"+nameText.getText()+"'";
                        statement.executeUpdate(sql);
                        PreparedStatement state;
                        ResultSet resultSet;
                        state=connection.prepareStatement("select *from student");
                        resultSet = state.executeQuery();
                        while(mm.getRowCount()>0){//把表格进行刷新,下次显示的时候重头开始显示
                            //System.out.println(model.getRowCount());
                            mm.removeRow(mm.getRowCount()-1);
                        }
                        while (resultSet.next()){//把更新后的数据重新显示到表格中,下同
                            String Sno=resultSet.getString(1);
                            String Sname=resultSet.getString(2);
                            String Ssex=resultSet.getString(3);
                            String Sdept=resultSet.getString(4);
                            String DDno=resultSet.getString(5);
                            String Scheckin=resultSet.getString(6);
                            String[] data={Sno,Sname,Ssex,Sdept,DDno,Scheckin};
                            mm.addRow(data);
                        }
                    }
                  if(suseText.getText().length()==0&&SdeptText.getText().length()>0){//只修改所在系
                        Statement statement = connection.createStatement();
                        String sql="update student set Sdept="+"'"+SdeptText.getText()+"'"+"where Sname"+"="+"'"+nameText.getText()+"'";
                        statement.executeUpdate(sql);
                        PreparedStatement state;
                        ResultSet resultSet;
                        state=connection.prepareStatement("select *from student");
                        resultSet = state.executeQuery();
                        while(mm.getRowCount()>0){//把表格进行刷新,下次显示的时候重头开始显示
                            //System.out.println(model.getRowCount());
                            mm.removeRow(mm.getRowCount()-1);
                        }
                        while (resultSet.next()){
                            String Sno=resultSet.getString(1);
                            String Sname=resultSet.getString(2);
                            String Ssex=resultSet.getString(3);
                            String Sdept=resultSet.getString(4);
                            String DDno=resultSet.getString(5);
                            String Scheckin=resultSet.getString(6);
                            String[] data={Sno,Sname,Ssex,Sdept,DDno,Scheckin};
                            mm.addRow(data);
                        }
                    }
                    if(suseText.getText().length()>0&&SdeptText.getText().length()>0){//同时修改专业和宿舍
                        Statement statement = connection.createStatement();
                        String sql="update student set Sdept="+"'"+SdeptText.getText()+"'"+", Dno="+ "'"+suseText.getText()+"'"   +"where Sname"+"="+"'"+nameText.getText()+"'";
                        statement.executeUpdate(sql);
                        PreparedStatement state;
                        ResultSet resultSet;
                        state=connection.prepareStatement("select *from student");
                        resultSet = state.executeQuery();
                        while(mm.getRowCount()>0){//把表格进行刷新,下次显示的时候重头开始显示
                            //System.out.println(model.getRowCount());
                            mm.removeRow(mm.getRowCount()-1);
                        }
                        while (resultSet.next()){
                            String Sno=resultSet.getString(1);
                            String Sname=resultSet.getString(2);
                            String Ssex=resultSet.getString(3);
                            String Sdept=resultSet.getString(4);
                            String DDno=resultSet.getString(5);
                            String Scheckin=resultSet.getString(6);
                            String[] data={Sno,Sname,Ssex,Sdept,DDno,Scheckin};
                            mm.addRow(data);
                        }
                    }
    
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
            }
            if(e.getSource()==submit&&type==1){//如果是学生的身份进入
                PreparedStatement state;
                ResultSet resultSet;
                try {
                    state=connection.prepareStatement("select Dphone from Dormitory where Dno ="+"'"+suseText.getText()+"'");
                    resultSet = state.executeQuery();
                    while (resultSet.next()){
                        //suse.setText("电话");
                        suseText.setText(resultSet.getString("Dphone"));
                    }
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
    
            }
        }
    }

    这里提几个可能会遇到的问题,至少是我遇到的问题

    1.当我们更新完数据,再次显示数据的时候会发现,上一次显示的并没有消失,而是会叠加

    解决这个问题只需要再每次显示新数据的时候,把表格之前的数据都删除掉就行了

     while(mm.getRowCount()>0){//获得当前表格的行数,如果大于0就删除
                            mm.removeRow(mm.getRowCount()-1);//列名不删除
                        }

    2.SQL server的char 类型和varchar类型,一开始设计表的时候,字符全都是char类型,但是在登录时,即使信息输入正确还是没法登录,后来才知道char时定长的,如果你的字符长度不够,它会在后面用空格补充,所以在验证的时候即使信息看似正确了,但后面其实跟着空格,除非你能够确定你每个字符的长度,否则建议使用varchar,varchar是变长的,你保存的字符是多长,它就是多长,是可变的,这就让信息判断很方便准确了,

    其他的操作都跟上面介绍的那个差不多,只是实现的功能不同,但界面都是相同的,我就不一一介绍了,有需要的就去我GitHub看看吧

    GitHub

    展开全文
  • java ssm学生宿舍管理系统,可以运行,有数据库文件,导入库即可,小白可以操作
  • 数据库课设学生宿舍管理系统源码,直接将项目拖入eclipse就可以用,有视频教程。
  • 上传的资源为学生宿舍管理系统(内含前台与后台管理),基本语言采用的是Java+jsp的动态web项目,内含mysql数据库脚本与项目源代码,该管理系统基于Java Web开发技术主要实现了学生信息、宿舍信息、管理员信息、考勤...
  • java学生宿舍管理系统

    2021-04-29 17:55:38
    java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了!
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 学生宿舍管理系统 摘 要 随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公,即从原来的人工记录管理模式转变为电脑一体化管理。高校是科研的阵地,后勤的宿舍管理也应该一改传统的人工...

    欢迎添加微信互相交流学习哦!

    二维码

    项目源码:https://gitee.com/oklongmm/biye

    学生宿舍管理系统
     
    摘  要
    随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公,即从原来的人工记录管理模式转变为电脑一体化管理。高校是科研的阵地,后勤的宿舍管理也应该一改传统的人工管理,更加信息化,时代化,节省人力物力,提高效率。学生宿舍是每一位在校学生生活、学习、相互交流的主要场所,如何提供一个良好的学生宿舍的管理体系,对学校和同学而言至关重要。以往的学生宿舍管理基本上还处于人工操作的阶段,随着计算机技术和网络技术的日益广泛应用,采用计算机以及网络来管理学生宿舍,有着很好的前景。基于这一点,开发此学生宿舍管理软件。
    论文将设计一个学生宿舍管理系统的Web应用解决方案并予以实现。学生宿舍管理系统是一个安全和高效的专用系统,。这个系统使用了很多技术,比如JSP,JDBC等。专用系统使用的数据库是SQL Server 2005 数据库。基于JSP学生宿舍管理系统的主要功能包括:可以实现对学生宿舍信息的录入功能,修改功能,删除功能。通过系统上述功能实现宿舍管理部门对于学生宿舍信息的日常管理,即方便宿舍管理人员及时全面地掌握学生住宿情况及宿舍分配情况;为用户(管理用户和一般用户,如学生)提供了一些简单的数据查询并输出各种信息等;在实现检索迅速和查找方便的同时,对新入校学生很快地进行宿舍安排等日常管理。
    关键字:宿舍管理,学生宿舍信息,B/S模式;SQL Server 2005


    Abstract
    With the popularity of computers and use, current management has improved a notch, and gradually achieve a paperless office, from the original manual records management into the integrated management of the computer. Colleges and universities are research positions, dormitory management of logistics should also be changed the traditional manual management, more information, times of, saving manpower and resources and improve efficiency. Each dormitory is the student life in school, learning, the main place to communicate with each other, how to provide a good student hostel management system is critical for schools and students. Dormitory Management is basically the previous manual operation is still in the stage, with the computer technology and network technology becomes more widely used, the use of computers and networks to manage the student hostel, with good prospects. Based on this, developing the student dormitory management software. 
        Thesis, a student hostel management system solutions and Web applications to be realized. Student hostel management system is a safe and efficient dedicated system. The system uses a number of technologies such as JSP, JDBC and so on. Dedicated system using the database is SQL Server 2005 database. Dormitory Management System based on JSP main features include: can the student dormitories information input function, modify the function, delete function. Through the system to achieve the above functions for the student hostel dormitory management information, daily management, the management staff to facilitate timely accommodation of students fully grasp the allocation of accommodation and hostels; for the user (management of users and general users, such as students) to provide some simple data query and export all kinds of information; in achieving rapid and find easy to retrieve the same time, new students quickly into the arrangements for the daily management of the hostel. 
    Keywords: dormitory management, information on student hostels, B / S mode; SQL Server 2005 
     
    目  录
    摘  要    1
    Abstract    2
    1引言    1
    1.1选题背景    1
    1.2研究意义    1
    1.3研究思路和方法    2
    1.4预期结果    2
    2开发平台及语言介绍    3
    2.1基于B/S结构开发    3
    2.2 JAVA语言简介    3
    2.3 JSP技术    3
    2.4  Tomcat    5
    2.5 SQL Server 2005    6
    2.6 Eclipse    7
    3需求分析    9
    3.1基本要求分析    9
    3.2设计条件分析    9
    3.3系统技术分析    9
    3.4可行性分析    10
    3.4.1管理上的可行性    10
    3.4.2技术上的可行性    10
    3.4.3经济上的可行性    10
    3.4.4分析结论    10
    3.5系统功能分析    11
    4总体设计    12
    4.1系统功能模块的设计    12
    4.2数据库设计    12
    4.3物理结构设计    14
    4.4出错设计    14
    5详细设计    15
    5.1登入界面    15
    5.2管理登录主界面    15
    5.2.1录入学生信息    16
    5.2.2 熄灯时间设置    17
    5.2.3 宿舍添加    17
    5.2.4来访者添加    17
    5.2.5 卫生检查信息录入    18
    5.2.6 保修信息审批    18
    5.3 学生登录主界面    19
    5.3.1添加报修    19
    5.3.2 卫生排名信息查询    19
    6 系统调试与测试    20
    6.1 程序调试    20
    6.2 程序的测试    20
    6.2.1 测试的重要性及目的    20
    6.2.2 测试的步骤    21
    6.2.3 测试的主要内容    22
    6.3总结    23
    结    论    24
    致谢    25
    参考文献    26
     

    1引言
    随着中国高等教育规模的不断扩大,各高校都面临着各种各样的问题,而共有的一个问题就是学生宿舍日益紧张。如何合理安排学生住宿是高校后勤改革中必须考虑的一个重要问题。设计一个宿舍管理系统可以使这个问题变得简单易行,并有一定的通用性,可以推广到不同的高校。
    宿舍管理系统的信息量比较大,数据安全性和保密性要求较高。本系统可实现对宿舍信息、学生信息、管理人员信息的查询、输出和维护。工作人员可浏览、查询、添加、删除、修改、统计各种基本信息。
    使用计算机对宿舍信息进行管理,具有手工管理所无法比拟的优点,例如:查找便捷、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大的提高管理日益增多的宿舍的效率。 
    论文通过宿舍管理需求分析,介绍了本课题所要完成的功能和开发的过程。通过这次论文的设计使的自己更深入的了解JAVA及其强大的功能,同时也提高了自己的软件开发能力和编程能力。由于时间仓促和本人水平有限,不当之处在所难免,请各位老师批评指正。  
    1.1选题背景
    学生宿舍是每一位在校同学生活、学习、相互交流的主要场所,如何提供一个良好的学生宿舍的管理体系对学校和同学而言至关重要。以往的学生宿舍管理基本上还处于人工操作的阶段,随着计算机技术和网络技术的日益广泛应用,采用计算机以及网络来管理学生宿舍似乎也已经不是一件新鲜事了。本毕业设计的目的主要是为了检查学生综合运用以前所学知识的能力,开发一个多功能的学生宿舍管理系统。       
    1.2研究意义
    为了方便宿舍管理人员在数据方面的管理,结合当今各学校的宿舍管理,为了能全面、准确、有效地管理学生宿舍的各种信息而开发与研制的一个系统。其主要功能是快速适应现代化物管水平和解决工作人员繁重而冗长的工作量。使得他们在学生宿舍的各方面都会达到事半功倍的效果,减轻了人力的负担,方便了数据的存储,增加了安全性。本次毕业设计不仅考查了我综合运用以前所学知识的能力,同时也锻炼了我的实际动手能力,对于我以后工作能力的培养具有重要的意义。
    1.3研究思路和方法
    本次毕业设计应首先分析学生宿舍管理系统的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,选择JSP+ SQL Server 2005进行本毕业设计的开发;以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关设计文挡,为毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和试运行,做好调试和试运行的相关记录,为毕业论文的写作准备材料。
    1.4预期结果
    本设计的预期成果是完成一个学生宿舍管理系统,从而使学生宿舍的管理更加方便有效;提供本毕业设计开发的软件和毕业设计论文。

    2开发平台及语言介绍
    2.1基于B/S结构开发
    由于学生宿舍管理系统分布的特性,本系统采用B/S结构,即Brower-Server(浏览器-服务器)架构,B/S 结构是目前最流行的数据库应用模式,它解决了各种分布式应用,扩展了业务范围;在B/S结构下,整个系统的管理、资源分配、数据库操作、业务逻辑部件的管理等工作集中用服务器,容易部署和管理。
    整个系统使用B/S架构,则在客户端使用标准的Web页面浏览器(如Internet Explorer等),不需安装特殊的应用程序,减少了升级和维护的难度,所有的业务数据都保存在服务器(Server)端,确保了业务的安全;在通讯方面,由于使用的是标准的Http协议,使得系统可以轻松的实现移动管理和分布式管理。
    2.2 JAVA语言简介
    Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。
    2.3 JSP技术
    JSP是“Java Server Pages”的缩写,可以解释为“基于Java的服务端动态页面技术” [4]基于Java是JSP一切优秀品质的根本物质基础。因为Java是编译解释执行的,所以JSP也就摆脱了VBScript、Perl等脚本语言纯粹的解释执行带来的低效率问题。尽管在JSP中Java仍被称为脚本语言。因为Java是平台无关的,所以JSP是跨平台的。基于Java是JSP区别包含ASP(Active Server Pages)在内的其它服务端动态页面技术的重要特征。JSP是服务端技术,所以JSP文档要先经服务端翻译、解释、执行,才能得到客户端浏览器能识别的HTML文档。这是当前Web技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是JSP区别于JavaScript、VBScript等客户端动态页面技术的重要牲。JSP是一种页面技术,而现在JSP只实现了HTTP(Hypertext Transfer Protocol)协议,只能应用于Web页面。这是JSP区别于Servlet的重要牲。JSP是一种动态技术,这是JSP基于Java的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,JSP就是基于Java的服务端动态页面技术。
    JSP技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP的设计目标主要有以下几点:
    a)一次编写,到处运行
    JSP技术是完全的与平台无关的设计,包含它的动态网页与底层的服务组件设计。可以在任何平台下编写JSP网面并且在任何支持JSP的系统上执行。
    也可建立自已的组件,并在JSP中使用。目前主要是JavaBean和Java Servlet,而它们都是跨平台的。
    b)加强组件能力
    JSP技术以Java的组件模型JavaBean为基础,加强了组件的使用能力。
    这不但省去了一些开发时间,而且还可以将网页页面设计和商业分开,有助于快速开发和维护。
    c)作为Java企业平台的门户
    JSP高度整合了Java企业平台部分(Java专注于企业应用方面的平台技术)。可以Java的企业级API(Application Programming Interface)开发企业的各种需求系统,而使用JSP作为这些技术的前端。当需要升级应用程序时,只需升级组件与动态页面部分,而这些都存在于服务器上,所以修改服务器上的资源,客户端的显示即会跟着改变。
    d)更容易建立动态页面
    JSP就是用标准HTML语法混合自身语法标记,就是如此简单,不需要有使用Java、C++等程序设计语言的能力与经验。可以这么说,它的出现也正是要实现简单容易的开发页面的需要,否则它与Java Servlet相比没有任何存在的理由。
    JSP2.0是对JSP1.2版本的升级,其中增加了一些有趣的新特性。JSP2.0的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。JSP2.0增加了一种称为SimpleTag的扩展机制来简化标签API(Tag API)。JSP2.0引入的最主要的新特性包括[2]:
    a)  引入简单表达式语言(EL,Expression Language),它用于JSP页面中的数据访问。这种表达式语言简化了JSP中数据访问的代码,不需要使用Java Script或者Java表达式。
    b)  引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。
    c)  对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。
    2.4  Tomcat
    Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
    Tomcat服务器是在SUN公司的JSWDK(JavaServer Web DevelopmentKit,SUN 公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的Java Web应用容器。Tomcat已经被JavaWorld杂志的编辑选为2001年度最具创新力的Java产品,同时它又是SUN公司官方推荐的Servlet/JSP容器[14]。作为一个开放源码的软件,Tomcat得到了开放源码志愿者的广泛支持,它可以和目前大部分主流HTTP服务器一起工作(如IIS和Apache服务器),而且运行稳定、可靠、效率高。同时,它还提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
    作为Servlet容器,Tomcat负责处理客户请求,把请求传送给Servlet并把结果返回给客户。Servlet容器与Servlet之间的接口是由Java Servlet API定义的,在 Java Servlet API中定义了Servlet的各种方法,这些方法在Servlet生命周期的不同阶段被Servlet容器调用;Servlet API还定义了Servlet容器传递给Servlet的对象类,如请求对象ServletRequest和响应对象ServletResponse。
    当客户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象。在ServletRequest对象中封装了客户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象付给客户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后Servlet窗口把响应结果传给客户。
    Tomcat已经为Servlet和JSP提供了强大的支持,Servlet和JSP最新技术规范都可以在Tomcat中及时地得到实现。Tomcat应用已经成为目前开发企业Java Web应用的最佳选择之一。
    2.5 SQL Server 2005
    SQL Server 2005是微软推出的一个大型的关系型数据库管理系统。作为Windows数据库中出类拔萃的成员,SQL Server 2005能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。SQL Server的可伸缩性既可以适应很小的兆字节个人数据库,也可以适应由数以万记用户使用的巨大的太字节数据库。
    SQL Server 2005是一种客户机/服务器模式的数据库管理系统,这种体系结构把所有的工作负荷分解成在服务器机器上的任务和在客户机机器上的任务,有效地了资源,减轻了服务器的压力。
    Microsoft SQL Server 2005能够提供特大系统所需要的数据库服务。在大型客户/服务器系统中,成千的用户可能同时连接一个SQL Server 2005实例,SQL Server 2005有强大的保护功能来处理这种情况。SQL Server 2005也可以有效地为多个用户分配可用的资源,如内在、网络带宽和磁盘I/O等。
    非常大的Internet站点能够将它们的数据在多个服务器间划分,将处理负担分布到许多计算机上,且允许站点为大量用户服务。
    多实例SQL Server 2005可以在单台计算机上运行。例如,为许多其他组织提供数据库服务的组织可以为每个用户组织运行一个单独的SQL Server 2005实例,所有实例都在一台计算机上。这样使得每个用户组织的数据相互独立,而服务组织只管理一个服务器计算机来减少开支。
    SQL Server 2005应用程序也可以像SQL Server 2005一样运行在同一台计算机上。应用程序使用Windows Interprocess Communications(IPC)组件,如共享内存来连接SQL Server 2005,而不是网络。这样SQL Server 2005就可以在小系统上使用,此时应用程序必须在本地保存它的数据。
    SQL Server 2005还支持对多节点群集的规模扩充(Scale Out),即把一个巨型数据库分区到一个服务器群集中,但是对于用户来说,整个数据库的存储和访问就像是对待一个单独的数据库那样。通过使用这种扩充规模的伸缩样式,SQL Server2000达到了任何数据库系统在任何平台上所能达到的性能。故障切换和恢复这两种技术内置到了SQL Server系统中,使得SQL Server具有了高度的可用性[16]。
    2.6 Eclipse
    Eclipse最初是IBM公司的一个软件产品,2001年11月其1.0版正式发布。面世之初,Eclipse还很不起眼,并饱受业界批评。所谓万事开头难,软件的初版一般都比较稚嫩。到2003年3月,Eclipse发布了它的2.1版,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而拥塞了。
    现在,IBM已将投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织Elipse.org,Eclipse出色而有独创性的平台,吸引了众多大公司加入到Eclipse这个平台的发展上来,这样的公司有HP、Oracle、Sybase、Borland、RedHat、Rational Software、SuSE、Together Soft等。
    最初Eclipse的开发人员,大部分都来自于当年与JBuilder齐名的Visual Age项目组,现在虽然IBM已将Eclipse捐献给了开源组织,但仍由IBM的子公司OTI(主要从事Eclipse开发的人)继续领导着Eclipse的开发[11]。
    Eclipse是一种通用工具平台——普遍适用的开放式扩展IDE(Integrated Develop Environment)。它拥有功能丰富的开发环境,并允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。
    Eclipse的设计思想是:一切皆为插件。Eclipse的核心是非常小的,其它所有的功能都以插件的形式附加到这个Eclipse核心之上。这样的功能插件包括它的图形API(称为SWT/JFace)、Java开发环境插件、插件开发环境等。Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
    Eclipse对这些插件是动态载入动态调用的。所谓动态就是指,Eclipse启动后要真正用到这个插件时,它才会被调入内存。当插件不再被使用时,它就会被在适当的时候清除出内存。因此即使装了一大堆插件在Eclipse里,也不必担心某些不常用的插件白白占着内存。
    此外,Eclipse有极为强大的集成开发环境,它集成了CVS,JUnit和Ant,并且强大的代码重构功能独步江湖无人能及。因为Eclipse的安装包集成了Java开发环境的插件JDT,所以Eclipse默认是一个和JBuilder类似的Java开发工具。但Eclipse不仅仅只是Java的开发工具,我们只需要装上C/C++的插件,就可以把它当作一个C/C++开发工具来使用。只要有相应的插件,Eclipse也可以用做其他语言的开发工具。Eclipse的这种插件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度。我们可以Eclipse的插件开发环境来开发自己的Eclipse插件,随己所需地扩展Eclipse的功能。

    3需求分析
    3.1基本要求分析
    宿舍信息系统应该便于院系的宿舍管理,提高工作效率。能有效地对数据进行更新查询,并能在一定程度上实现自动化。
    1)本系统的主要功能:学生管理,宿舍公告信息管理,宿舍管理,来访者信息管理,卫生检查信息管理以及保修审批管理。
    2)系统性能:应方便快捷地完成宿舍管理的各项工作,数据查询速度快,查询安全、准确,数据合法性检验度高。
    3)系统输入:学生的各种信息,包括学号、班级等。
    3.2设计条件分析
    该系统至少需要一台主机作为服务器,并且该主机要以独立的IP接入互联网。如果需要的话,可以为此IP申请域名绑定。具体系统需求如下:
    Windows XP 或Windows 2000
    SQL Server 2005数据库服务器
    JRE 1.4.2_03 或更高版本的Java运行时环境
    Tomcat 5.0.28 或更高版本的应用服务器
    3.3系统技术分析
    ①本宿舍管理系统的简单描述:宿舍管理系统采用常规的数据管理方法,根据宿舍信息管理的特点对数据库操作,如对数据的增加、删除、修改等。
    ②数据流程。本系统数据流程如图3-1

     图3-1本系统数据流程如图
    ③与现有人工管理系统相比的优越性。宿舍管理系统有利于数据的集中、有效管理,与人工管理相比,本系统占据空间小,易更新,易备份,可有效地实现各种查询。
    3.4可行性分析
    通过前期信息收集,对设计开发的学生宿舍信息管理系统进行了可行性分析,分析如下:
    3.4.1管理上的可行性
    设计开发的信息管理系统面向的是学校内部宿舍,管理部门的工作人员都具备一定电脑基本操作技能。而且目前的宿舍管理制度也比较完善,实现管理人员查询相关资料的信息化,可将使宿舍管理部门的办事效率提高到一个新的档次。
    3.4.2技术上的可行性
    设计开发的信息管理系统采用SQL Server 2005数据库,可实行数据信息自动化管理,高效率进行数据处理。而且通过使用计算机网络化来处理信息,宿舍管理部门的工作人员只需懂得计算机操作的初步知识和上网知识即可。
    3.4.3经济上的可行性
    成本低:通过运用计算机技术,进行信息化管理;虽然计算机资源需要一定的开支,但可以充分利用其部门已有的资源(其部门已有计算机);这样可以减少不必要的人力,物力和财力的支出。
    该系统在将来经济允许的条件下还可进行系统扩展。
    3.4.4分析结论
    通过以上的分析,管理、技术、经济都具有可行性,故该信息管理系统可以进行设计和实现。  
    3.5系统功能分析
    针对管理中心日常宿舍信息管理工作收集到的信息来分析,管理中心的工作人员可以对入住学生信息登记,对其资料进行编辑存档;工作人员可对各入住学生信息可进行查询;可实现学生的卫生检查以及设备保修等功能操作。此外,考虑到本信息管理系统是基于B/S体系结构的Web应用程序,将面对不同用户(主要是管理中心工作人员和一般用户,一般用户就是学生)的使用,对于不同用户应具备对本信息管理系统不同权限的功能操作,因此需要一个用户管理功能。

    4总体设计
    本系统旨在为宿舍管理人及其用户提供一个功能齐全、使用方便的管理系统,以代替现有人工管理方法。
    本系统的主要用户有:学生和宿舍管理员。
    4.1系统功能模块的设计
    该学生宿舍管理系统主要实现了对学校宿舍的管理功能。系统分为管理员模块和学生模块两个部分。
    管理员模块实现的功能有:
    1)    学生信息管理功能:主要是添加学号,姓名,性别,年龄,政治面貌,班级,登录帐号以及登录密码等属性,也可以删除不存在的学生。
    2)    宿舍信息管理功能:主要是添加房间号,学生人数,学生班级和楼号等属性,也可以删除无用的宿舍信息。
    3)    公告信息管理功能:设置学校的静校时间和熄灯时间。
    4)    卫生检查信息功能:主要是录入卫生检查信息,查询卫生检查信息以及根据得分排名。
    5)    保修审批功能:学生使用系统申报需要修的设备,管理员使用保修审批功能进行操作。
    学生模块实现的功能有:
    1)    保修模块:学生可以添加保修信息,并且查看我的保修。
    2)    卫生排名信息:可以查看各宿舍卫生排名的信息。
    4.2数据库设计
    本系统采用广泛使用并较易掌握的JAVA作为编程语言进行数据库设计。数据库的物理设计阶段是根据数据模型、数据库管理系统及计算机系统, 设计数据库的物理结构(存储结构和存取方法) 。物理设计的目的是提高系统的处理效率, 充分利用计算机存储空间。下面列出宿舍管理系统所有表的结构及索引, 以便进行系统的运行调试。数据库共含7张表,分别如下所示:
    1.管理员表
     
    2.报修信息表
     
    3.来访信息表
     
    4. 熄灯时间表
     
    5.学生信息表
     
    6.宿舍信息表
     
    7.卫生信息表
     

    4.3物理结构设计
    数据库的物理设计阶段是根据数据模型、数据库管理系统及计算机系统, 设计数据库的物理结构(存储结构和存取方法) 。物理设计的目的是提高系统的处理效率, 充分利用计算机存储空间。
    1)数据库文件物理结构采用顺序记录方式。
    2)全局变量用于保存用户数据连接字符、用户姓名等。
    4.4出错设计
    软件在运作时需要出错的提示,在身份验证、查询信息、修改密码时可能出现输入错误或没有这用户等情况,所以必须设计出错提示信息。
    1)充分考虑各种系统错误,给出相应提示信息,避免数据的不一致性或损坏数据。
    2)对重要操作提供确认机制。


    5详细设计
    5.1登入界面      
    登入界面是用来让管理员或学生按照用户名和口令并选择身份进行登录,并且根据用户名检查user表中的“用户名”和“密码”的字段,以分辨是不是合法用户,是合法用户就会进入系统,就可以使用系统提供的所有功能,如果不是合法用户就会退出。登入界面如图5-1:
     
    图5-1登录界面
    5.2管理登录主界面
    管理员登录系统主界面如下所示:
     
    图5-2 主界面

    5.2.1录入学生信息
     
    图5-3 录入学生
    5.2.2 熄灯时间设置
     
    图5-4 熄灯时间设置

    5.2.3 宿舍添加
     
    图5-5 宿舍添加
    5.2.4来访者添加
     
    图5-6 来访者信息添加

    5.2.5 卫生检查信息录入
     
    图5-7 卫生检查信息录入
    5.2.6 保修信息审批

     

    图5-8保修信息审批

    5.3 学生登录主界面
     
    图5-9学生登录主界面
    5.3.1添加报修
     
    图5-10 添加报修

    5.3.2 卫生排名信息查询
     
    图5-11卫生排名信息查询

    6 系统调试与测试
    6.1 程序调试
    在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
    6.2 程序的测试
    6.2.1 测试的重要性及目的
    (1)测试的重要性
    软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 
    事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 
    在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括: 
    ① 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感; 
    ② 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定; 
    ③ 测试工作枯燥无味,不能引起人们的兴趣; 
    ④ 测试工作是艰苦而细致的工作; 
    ⑤ 对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。 
    这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。 
    (2)测试的目的 
    如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。 
    ① 软件测试是为了发现错误而执行程序的过程; 
    ② 测试是为了证明程序有错,而不是证明程序无错误; 
    ③ 一个好的测试用例是在于它能发现至今未发现的错误; 
    ④ 一个成功的测试是发现了至今未发现的错误的测试。 
    这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 
    首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
    6.2.2 测试的步骤
    与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:
    (1)模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。
    (2)系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
    (3)验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。
    6.2.3 测试的主要内容
    为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 
    (1)单元测试 
    单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 
    (2)集成测试 
    集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 
    (3)确认测试 
    确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。 
    (4)系统测试 
    软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。 
    单独对系统的测试主要从以下几方面入手:
    ① 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
    ② 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
    ③ 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。
    经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。 
    6.3总结
    系统完成后,进行了一系列的调试与测试,主要是针对系统功能是否按照设计要求正常工作,以及系统对大量数据的处理能力。
    通过调试,系统功能都能正常工作,但调整了分页中显示的数据条数,修改了部分组件的显示位置,以达到一定美化效果;同时在对大量数据的处理方面,信息录入功能需要一条一条的录入,存在工作量较大的问题,其他功能不存在问题。
    通过调试,用户管理功能发现设计上存在不完善的设计考虑,需要进一步完善,此外需要利用其他途径实现SQL与电子表之间的转换。
    通过系统调试后,对于系统的后期扩展和建议如下:
    1.    进一步完善用户管理功能的设计;
    2.    寻找其他途径实现SQL与电子表之间的转换;
    3.    与宿舍管理的其他子系统,如宿舍水电收费系统,宿舍人员来访考勤系统,宿舍物件维修管理系统等,进行组合使用.

    结    论
    通过自己不懈地学习JAVA的基本知识和开发技巧,以及系统后期的调试与完善,实现了学生宿舍信息管理系统的最基本的功能:
    1.    实现了信息管理系统的查询功能,包括了快速查询功能和分类查询功能;
    2.    实现了信息管理系统的信息录入,信息修改和信息删除功能;
    3.    信息删除功能可批量删除信息,但信息录入功能未能做到批量录入,有点不足;
    本次毕业设计对系统进行了详细的需求分析,对开发所需要的主要技术做了阐述。同时设计并实现了一个简单的学生宿舍管理系统。该系统基于B/S模式开发,使用JSP实现前后台的数据交互,后台选用SQL Sever 2005作为数据库服务器。该系统分为管理员权限和学生权限两个模块。系统经过调试和试运行,能够正常运行。但是因为初次开发,系统中难免会存在各种问题,有待进一步完善。
    学生宿舍是每一位在校同学学习、生活和交流的地方,良好的管理体系对学校和同学都至关重要。该系统的研发,使后勤和管理人员脱离了人工操作阶段,适应了现代化物管的需要,减轻了工作人员繁重而冗长的工作量。同时也方便了数据的存储,增加了安全性。本毕业设计也锻炼了我综合运用以前所学知识的能力和实际动手能力。

    致谢
    本毕业设计是在老师的全程指导下完成的,王老师在系统设计方面具有非常丰富的经验,而且她将这些经验也无偿地传授给了我,才使得我的毕业设计可以按期顺利地完成,所以,在此要对王老师对我提供的帮助表示感谢!
    同时,在整个毕设过程中,我周围的同学也给予了我很多帮助,为我解决了很多代码方面的问题,而且帮助我进行系统的测试,如果没有他们,我同样无法完成此次毕业设计,在这里也要感谢所有为我提供过帮助的同学!
    在毕业设计期间,我也通互联网向无数的网友寻求过帮助,很多热情的网友也很热心地帮助我寻找问题、解决问题,在互联网这个虚幻的世界里也能有这么多好心人对我的毕业设计工作提供了巨大的支持,在此也要向这些不留姓名的好心人提出感谢!

    参考文献
    [1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003年6月
    [2]BruceEckel.《Java编程思想》. 机械工业出版社,2003年10月
    [3]FLANAGAN.《Java技术手册》. 中国电力出版社,2002年6月
    [4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2002年8月
    [5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月
    [6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月
    [7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月
    [8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月
    [9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月
    [10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2003年3月  
    [11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月
    [12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月    
    [13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月
    [14]美.霍尔著钟鸣等译. Servlet与JSP权威指南. 机械工业出版社. 2002-10-1
    [15]刘彬主编. JSP数据库高级教程. 清华大学出版社. 2006-3-1
    [16]飞思科技产品研发中心编著. SQLServer2000高级管理与开发. 电子工业出版社.2002-1-1
    [17赵杰等编著. 数据库原理与应用(SQLServer). 人民邮电出版社. 2006-7-1
     

    展开全文
  • 6.1.3学生页面模块实现 17 6.1.4房间信息页面模块实现 18 6.1.5来访信息页面模块实现 19 6.1.6物品报修信息页面模块实现 20 6.2日志功能模块 21 6.3安装部署 22 第七章 系统测试 23 7.1系统调试的目的和意义 23 7.2...
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 项目描述 Java+MySQL+EasyUI框架,实现的宿舍管理系统的项目 运行环境 jdk7+tomcat7+mysql+IntelliJ IDEA 项目技术(必填) jsp+java servlet+easyui+jquery+css
  • 实现基本的增删改查功能,内部含有完整的Java源代码和数据库备份,实现Java+MySQL管理系统功能。
  • 整个项目采用java awt + mysql 做成的单体系统,是课程设计一个很不错的选择
  • 学生宿舍管理系统JAVA版本 使用ACcess数据库,简单好用 调试修改方便,做毕业设计很好.
  • 学生宿舍管理系统,学习Java必备的小程序,走过路过不要错过。
  • 学生宿舍管理系统

    2018-06-21 13:32:04
    宿舍管理主要在各个中学和高校中经常提到。宿舍管理是后勤部门的一个重要工作。但是现在很多后勤部门都还是在使用最原始的宿舍管理方法。而且在学生入住的过程中学生住宿的信息得不到有效的更新,同时学生经常会更换...
  • 基于jsp + servlet +Mysql 写的关于学生宿舍管理的后端系统,实现后端对学生宿舍管理信息的数据库增删改查操作。
  • 学生宿舍管理系统sql文件
  • 自己做的数据库课程设计包括需求分析、逻辑结构设计、概念设计、物理结构设计、数据库实施和维护、sql语句增删查改、存储过程触发器都有、还有各种图也画了
  • JAVA学生宿舍后台管理系统源码
  • 宿舍管理:宿舍分配、学生入住安排。 登记管理:宿舍违规管理、水电费管理、夜归统计、评分录入、来访登记。 公告栏管理:公告上传、在线编辑。 班级管理:学院管理、专业管理。 信息查询: 学生信息查询、辅导员...
  • 系统功能方便实用,好的软硬件环境,友好的流程化界面、向导性的简易操作,实现了对宿舍信息数据的远程浏览、查询、编辑和管理等基本数据库操作。...对于宿舍楼的管理不科学的地方则是没有和学生联系起来。
  • 数据库课设----宿舍管理系统java编写。主要是对宿舍进行管理,包括学生入住搬离、宿舍卫生检查、来访人员登记、宿舍报修、学生信息查询、宿舍信息查询等等,具体在文件的报告中叙述
  • 一个java校园宿舍管理系统,jdk1.6以上,tomcat6.0以上,eclipse、myeclipse、idea导进去就可运行,附带了数据库文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,132
精华内容 1,252
关键字:

学生宿舍管理系统java

java 订阅