Java课程设计——学生寝室管理系统的设计与实现

2024-07-03 1255阅读

1.基本思路

首先用JFrame类创建初界面、登录界面、教师用户注册界面、学生用户注册界面、教师功能界面、学生功能界面、管理员功能界面。

然后各界面添加各自的按钮,并对按钮进行事件监听,通过类方法或jdbc连接数据库实现相应的功能。

再用JFrame类装JTable,JTable装数据库中的数据。

最后通过更改背景颜色、添加图片或图标丰富界面内容。

2.课程设计报告中可能需要的素材

2.01功能框架图

Java课程设计——学生寝室管理系统的设计与实现

2.02 系统E-R图

Java课程设计——学生寝室管理系统的设计与实现

2.03数据库里创建的的用户表

Java课程设计——学生寝室管理系统的设计与实现

2.04 数据库里创建的的学生宿舍信息表

Java课程设计——学生寝室管理系统的设计与实现

2.05添加功能流程图

Java课程设计——学生寝室管理系统的设计与实现

2.06修改功能流程图

Java课程设计——学生寝室管理系统的设计与实现

2.07删除功能流程图

Java课程设计——学生寝室管理系统的设计与实现

2.08注册流程图

Java课程设计——学生寝室管理系统的设计与实现

2.09系统流程图

Java课程设计——学生寝室管理系统的设计与实现

2.10管理员功能界面流程图

Java课程设计——学生寝室管理系统的设计与实现

 3.数据库脚本

学生宿舍信息表以学籍号作为主码

用户信息表以用户名作为主码

//创建学生宿舍数据库
create database stu-dor;
//进入学生宿舍数据库
 use stu_dor;
//创建学生宿舍信息表(学籍号作为主码)
create table Dinfo(name char(20) not null,
    -> sno char(9) check(sno>200000000 and sno sex char(2) check(sex in('男','女'))not null,
    -> age smallint,
    -> bno char(4) check(bno in('左一','左二','右一','右二')),
    -> Dno int check(Dno>99 and Dno Sapb smallint check(Sapb>00 and Sapb );
//创建用户信息表(用户名作为主码)
create table user(username char(200)primary key,password char(200)not null);
//插入管理员用户名和密码数据
insert into user values('Admin','123456');
//插入学生宿舍信息数据
insert into Dinfo values('李勇','202105122','男',19,'左一',100,01);
insert into Dinfo values('江城','202105123','男',19,'左二',100,01);
insert into Dinfo values('王弘文','202105124','男',19,'右一',100,01);
insert into Dinfo values('刘烨伟','202105125','男',19,'右二',100,01);
insert into Dinfo values('沈希文','202105126','男',19,'左一',101,01);
insert into Dinfo values('宁鸿恩','202105127','男',19,'左二',101,01);
insert into Dinfo values('孙玄华','202105128','男',19,'右一',101,01);
insert into Dinfo values('秦哲瀚','202105129','男',19,'右二',101,01);
insert into Dinfo values('王梦琪','202105130','女',21,'左一',401,18);
insert into Dinfo values('梨香巧','202105131','女',21,'左二',401,18);
insert into Dinfo values('刘代云','202105132','女',20,'右一',401,18);
insert into Dinfo values('李海莲','202105133','女',21,'右二',401,18);
insert into Dinfo values('周千萍','202105134','女',20,'左一',402,18);
insert into Dinfo values('曹芷巧','202105135','女',20,'左二',402,18);
insert into Dinfo values('钱冬云','202105136','女',19,'右一',402,18);
insert into Dinfo values('沈笑白','202105137','女',22,'右二',402,18);

 4.详细代码及图片展示

4.1初始界面

Java课程设计——学生寝室管理系统的设计与实现

//注意把包名更改为自己创建的
package an;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
											//身份选择界面窗口
public class Cs extends JFrame{
	public Cs() {
											//创建组件
		setTitle("学生寝室管理系统初界面");
		JButton btn1=new JButton("注册教师用户");
		JButton btn2=new JButton("注册学生用户");
		JButton btn3=new JButton("用户登录");
		JLabel jbl1=new JLabel("请选择您的操作");
		
		ImageIcon im1=new ImageIcon("C:\\Users\\Desktop\\images\\教师.png");
		ImageIcon im2=new ImageIcon("C:\\Users\\Desktop\\images\\学生.png");
		ImageIcon im3=new ImageIcon("C:\\Users\\Desktop\\images\\用户登录.png");
		JLabel jbl2=new JLabel(im1);
		JLabel jbl3=new JLabel(im2);
		JLabel jbl4=new JLabel(im3);
		//注册教师用户按钮事件监听
		btn1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				New_t t1=new New_t();
				setEnabled(false);	//设置初界面窗口不可操作
				setVisible(false);	//设置初界面窗口不可见
				t1.addWindowListener(new WindowAdapter() {	//监听教师注册窗口是否关闭
					@Override
					public void windowClosed(WindowEvent e) {
						setEnabled(true);
						setVisible(true);
					}
				});
			}
		});
		//注册学生用户按钮事件监听
		btn2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				New_s s1=new New_s();
				setEnabled(false);
				setVisible(false);
				s1.addWindowListener(new WindowAdapter() {	//监听学生注册窗口是否关闭
					@Override
					public void windowClosed(WindowEvent e) {
						setEnabled(true);
						setVisible(true);
					}
				});
			}
		});
		//用户登录按钮事件监听
		btn3.addActionListener(new ActionListener() {
			
			
			@Override
			public void actionPerformed(ActionEvent e) {
				Dl d1=new Dl();
				setEnabled(false);
				setVisible(false);
				d1.addWindowListener(new WindowAdapter() {
					@Override
					public void windowClosed(WindowEvent e) {  //监听登录窗口是否关闭
						setEnabled(true);
						setVisible(true);
					}
				});
			}
		});
		
		
		jbl2.setBounds(40, 40, 150, 130);
		btn1.setBounds(40, 180, 150, 25);
		jbl3.setBounds(300, 40, 150, 130);
		btn2.setBounds(300, 180, 150, 25);
		jbl4.setBounds(195, 200, 100, 80);
		btn3.setBounds(195, 260, 100, 25);
		jbl1.setBounds(200, 10, 150, 100);
											//设置窗口属性
		setSize(500,400);
		setLocation(800, 400);
		setResizable(false);
		getContentPane().setBackground(Color.ORANGE);
		setLayout(null);
											//设置按钮字体颜色
		btn2.setForeground(Color.BLUE);
		btn3.setForeground(Color.green);
		btn3.setBackground(Color.blue);
											//设置字体线框消失
		btn1.setFocusPainted(false);
		btn2.setFocusPainted(false);
		btn3.setFocusPainted(false);
				
		getContentPane().add(btn1);
		getContentPane().add(btn2);
		getContentPane().add(btn3);
		getContentPane().add(jbl1);
		getContentPane().add(jbl2);
		getContentPane().add(jbl3);
		getContentPane().add(jbl4);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
	}
}

4.2注册界面

教师用户的注册码为123456

Java课程设计——学生寝室管理系统的设计与实现

 4.2.1教师用户注册界面详细代码

//注意把包名更改为自己创建的
package an;
import java.awt.BorderLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class New_t extends JFrame{
	public New_t() {
		
		setSize(500, 400);
		setLocation(600, 300);
		setTitle("教师用户注册界面");
		setLayout(null);					
		setResizable(false);
		
		JLabel lb1=new JLabel("新用户名");
		JLabel lb2=new JLabel(" 新密码");
		JLabel lb4=new JLabel("确认密码");
		JLabel lb3=new JLabel("教师注册码");
		JLabel lb5=new JLabel("请用'T'或't'开头");
		JTextField user = new JTextField(200);
		JPasswordField pass = new JPasswordField(200);
		JPasswordField repass = new JPasswordField(200);
		JTextField yzm = new JTextField(8);
		JButton btn1=new JButton("注册");
		JButton btn2=new JButton("清空");
		
		ImageIcon im1=new ImageIcon("C:\\Users\\Desktop\\images\\用户名.png");
		ImageIcon im2=new ImageIcon("C:\\Users\\Desktop\\images\\密码.png");
		ImageIcon im3=new ImageIcon("C:\\Users\\Desktop\\images\\确认密码.png");
		ImageIcon im4=new ImageIcon("C:\\Users\\Desktopy\\images\\注册码.png");
		JLabel bl1=new JLabel(im1);
		JLabel bl2=new JLabel(im2);
		JLabel bl3=new JLabel(im3);
		JLabel bl4=new JLabel(im4);
		
		//清空按钮事件监听
		btn2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				user.setText("");
				pass.setText("");
				yzm.setText("");
				repass.setText("");
				
			}
		});
		//注册按钮事件监听
		btn1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String username=user.getText().trim();			//获取用户名
				String zcm=yzm.getText().trim();			//获取注册码
				String password=pass.getText().trim();			//获取密码
				String repassword=repass.getText().trim();		//获取确认密码
				
				if( yzm == null|| !("123456".equals(zcm)))	
				{
					JOptionPane.showMessageDialog(null, "错误:注册码为空或不匹配");
					yzm.setText("");
				}
				else if(user == null|| "".equals(username))
				{
					JOptionPane.showMessageDialog(null, "错误:新用户名不能为空");
				}
				else if(username.charAt(0)!='t'&&username.charAt(0)!='T')
				{
					JOptionPane.showMessageDialog(null, "新用户名不符合要求");
					user.setText("");
				}
				else if(pass == null|| "".equals(password))
				{
					JOptionPane.showMessageDialog(null, "错误:新密码不能为空");
				}
				else if(repass == null|| "".equals(repassword))
				{
					JOptionPane.showMessageDialog(null, "错误:确认密码不能为空");
				}
				else if( !(password.equals(repassword)))	//检测密码与确认密码是否一致
				{
					JOptionPane.showMessageDialog(null, "错误:两次密码不一致");
					pass.setText("");
					repass.setText("");
				}
				else {							//用户名和密码以及确认密码和注册码都输入正确才可进入
					PreparedStatement psts=null;
					PreparedStatement psti=null;
					ResultSet rss=null;		
					Connection con=null;
					try {
						//连接数据库,进入user表
						Class.forName("com.mysql.cj.jdbc.Driver");
						con=DriverManager.getConnection(Way.url, Way.us, Way.ps);
						//查找用户名是否存在
						String sqlselect="select * from user where username='"+username+"'";
						psts=con.prepareStatement(sqlselect);
						rss=psts.executeQuery(sqlselect);			
						if(rss.next()) {
							JOptionPane.showMessageDialog(null, "用户名已存在,请重新注册");
							return;
						}
						else {
							psti=con.prepareStatement("insert into user values(?,?)");	//SQL中占位符会自动加上单引号
							psti.setString(1, username);
							psti.setString(2, password);
							int rsi=psti.executeUpdate();			//括号内可不写语句
							if(rsi
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]