数据库课程设计 java实现聊天室管理系统 大作业论文+源程序+数据库

Posted CSDN专家-小兔子编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库课程设计 java实现聊天室管理系统 大作业论文+源程序+数据库相关的知识,希望对你有一定的参考价值。

一、java实现聊天室管理系统

包含完整的论文(近4000字数)+源程序+数据库,可作为数据库、软件开发等相关课程的课程设计或者大作业。

二、目录

1. 背景及意义

2. 需求分析

2.1 需求概述

2.2 功能需求

2.3 数据流图

2.4 数据字典

3. 概念结构设计

3.1 局部E-R图

3.2 全局E-R图

4. 逻辑结构设计

4.1 E-R图对应的关系模式

5. 物理结构设计

5.1 描述

5.2 创建索引

6.数据库实施

6.1 各个表结构

7.关键程序代码及截图

8.系统运行情况及用户界面

9.总结

—————————————————————————————————

此处省略几千字

—————————————————————————————————

三、需求分析

聊天室管理系统包括用户信息管理,用户数据管理,聊天室管理,用户查询,用户修改和删除用户六个模块。管理员要为每位用户建立个人信息,用户需提供自己的ID,昵称,性别,年龄以及所在聊天室。管理员可以通过用户ID对用户的信息和数据进行修改,用户只能对自己的信息进行修改,同时管理员和用户都可以通过用户ID,昵称和聊天室名等关键字查询相应用户。

1、功能需求

用户信息管理: 管理员可通过用户ID对用户信息(用户昵称,用户性别,用户年龄,所在聊天室)进行增加和修改

用户数据管理:管理员可通过用户ID对用户数据(用户发言数,用户收藏数,用户被赞数)进行增加和修改

用户查询:用户可通过用户ID,用户昵称,聊天室名称等关键字进行模糊查询查询其他用户。

用户修改:用户可通过用户ID修改自己的用户信息(用户ID,用户昵称,用户性别,用户年龄,所在聊天室)

管理员注册:管理员可通过在注册界面输入管理员账号和密码进行注册

删除用户:管理员可通过用户ID删除对应用户

2、数据流图

顶层图

0层图

四、概念设计

1、全局ER图

实体属性定义:

管理员(管理员账号,密码)

用户信息(用户ID,用户昵称,用户性别,用户年龄,所在聊天室)

用户数据(用户ID,用户发言数,用户收藏数,用户被赞数)

用户(用户ID,用户密码)

聊天室(聊天室序列,聊天室名称)

2、局部E-R图(部分)

用户数据管理模块

实体属性定义:

管理员(管理员账号,密码)

用户数据(用户ID,用户发言数,用户收藏数,用户被赞数)

用户(用户ID,用户密码)

管理员管理聊天室模块

实体属性定义:

管理员(管理员账号,密码)

用户(用户ID,用户密码)

聊天室(聊天室序列,聊天室名称)

五、逻辑结构设计

E-R图对应的关系模式

(1)实体所对应的关系模式:

管理员(管理员账号,密码)

用户信息(用户ID,用户昵称,用户性别,用户年龄,所在聊天室)

用户数据(用户ID,用户发言数,用户收藏数,用户被赞数)

用户(用户ID,密码)

聊天室(聊天室序列,聊天室名称)

(2)联系所对应的关系模式:

管理(管理员账号,用户ID)

处理(管理员账号,用户ID,聊天室名称)

删除(管理员账号,用户ID)

其他联系处理说明如下:

用户数据和用户之间的 n:1 查询联系与用户关系合并;

用户信息和用户之间的 1:1 修改联系与用户关系合并;

聊天室和用户之间的 1:n选择联系与用户关系合并;

六、数据库设计(部分)

1、user表

2、number表

3、rooms表

七、代码实现(部分)

1、连接数据库代码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
tring url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hownya";
String user="hownya";
String password="123";
Connection conn=DriverManager.getConnection(url,user,password);

2、用户登录代码

public static void main(String[] args) 
	{
        JFrame d=new JFrame();
    d.setResizable(false);
    d.setTitle("\\u804A\\u5929\\u5BA4\\u7BA1\\u7406\\u767B\\u5F55");
    d.setSize(663, 521);
    d.getContentPane().setLayout(null);
    JLabel p1 = new JLabel("New label");
    p1.setBounds(229, 10, 200, 200);
    p1.setIcon(new ImageIcon("image/管理员.png"));
    d.getContentPane().add(p1);
    JLabel lblNewLabel_1 = new JLabel("\\u8D26\\u53F7");
    lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 18));
    lblNewLabel_1.setBounds(91, 269, 54, 38);
    d.getContentPane().add(lblNewLabel_1);
    JLabel lblNewLabel_2 = new JLabel("\\u5BC6\\u7801");
    lblNewLabel_2.setFont(new Font("宋体", Font.PLAIN, 18));
    lblNewLabel_2.setBounds(91, 338, 54, 38);
    d.getContentPane().add(lblNewLabel_2);
    user = new JTextField();
    user.setBounds(229, 269, 317, 38);
    d.getContentPane().add(user);
    pass = new JPasswordField();
    pass.setBounds(229, 338, 317, 38);
    d.getContentPane().add(pass);
    JButton log = new JButton("\\u767B\\u5F55");
    log.setFont(new Font("宋体", Font.PLAIN, 18));
    log.setBounds(229, 429, 93, 23);
    d.getContentPane().add(log);
    JButton reg = new JButton("\\u6CE8\\u518C");
    reg.setBounds(402, 430, 93, 23);
    d.getContentPane().add(reg);
    JComboBox cmb = new JComboBox();
    cmb.addItem("--请选择--");
    cmb.addItem("管理员");
    cmb.addItem("用户");
    cmb.setBounds(10, 21, 93, 23);
    d.getContentPane().add(cmb);
    d.setLocationRelativeTo(null);
    d.setVisible(true);
    /*JRadioButton btno1 = new JRadioButton("\\u7528\\u6237");
    btno1.setBounds(170, 216, 121, 23);
    d.getContentPane().add(btno1);
    JRadioButton btno2 = new JRadioButton("\\u7BA1\\u7406\\u5458");
    btno2.setBounds(363, 216, 121, 23);
    d.getContentPane().add(btno2);
    ButtonGroup group = new ButtonGroup();
    group.add(btno1);
    group.add(btno2);*/

log.addActionListener(new ActionListener()    //监听登录按钮
{

		public void actionPerformed(ActionEvent e)
		{
			String jusername=user.getText();
			char s[]=pass.getPassword();
			String jpassword=new String(s);
			
		   
		try {
				Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载对应的驱动
				String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hownya";//配置连接字符串
				String user="hownya";
				String password="123";
				Connection conn=DriverManager.getConnection(url,user,password);//创建数据库连接对象
				Statement st=conn.createStatement();//创建SQL语句执行对象
 

			    String  strSQL="(Select * from  dbo.admir where ID='"+jusername+"'And PAWD='"+jpassword+"' )";
				ResultSet rs=st.executeQuery(strSQL);
				if(rs.next())
				{							 				    					
					new A();
				}	
				
				else
				{ 
					JOptionPane.showMessageDialog(null,"用户名不存在或密码错误","错误!",JOptionPane.ERROR_MESSAGE);
				}
			    conn.close();
			   
				//关闭数据库连接	
			            
				}
			
		catch (ClassNotFoundException ex1) {
			System.out.println("没有找到对应的数据库驱动类");
		}
		catch (SQLException ex) {
			System.out.println("数据库连接或者是数据库操作失败");
		}
	}
}

3、添加用户代码

public void actionPerformed( ActionEvent e) {
			JFrame a1=new JFrame("增");
			a1.setSize(795,527);
			a1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//和主窗口不一样的关闭方式
			a1.setLocationRelativeTo(null);
			a1.getContentPane().setLayout(null);
			
			txt1 = new JTextField();
			txt1.setBounds(79, 42, 190, 39);
			a1.getContentPane().add(txt1);
			txt1.setColumns(10);
			
			txt5 = new JTextField();
			txt5.setBounds(79, 340, 190, 39);
			a1.getContentPane().add(txt5);
			txt5.setColumns(10);
			
			txt2 = new JTextField();
			txt2.setBounds(79, 127, 190, 39);
			a1.getContentPane().add(txt2);
			txt2.setColumns(10);
			
			txt3 = new JTextField();
			txt3.setBounds(79, 198, 190, 39);
			a1.getContentPane().add(txt3);
			txt3.setColumns(10);
			
			txt4 = new JTextField();
			txt4.setBounds(79, 266, 190, 39);
			a1.getContentPane().add(txt4);
			txt4.setColumns(10);
			
			JLabel lblNewLabel = new JLabel("ID");
			lblNewLabel.setBounds(10, 54, 54, 15);
			a1.getContentPane().add(lblNewLabel);
			
			JLabel lblNewLabel_1 = new JLabel("\\u6635\\u79F0");
			lblNewLabel_1.setBounds(10, 139, 54, 15);
			a1.getContentPane().add(lblNewLabel_1);
			
			JLabel lblNewLabel_2 = new JLabel("\\u6027\\u522B");
			lblNewLabel_2.setBounds(10, 210, 54, 15);
			a1.getContentPane().add(lblNewLabel_2);
			
			JLabel lblNewLabel_3 = new JLabel("\\u5E74\\u9F84");
			lblNewLabel_3.setBounds(10, 278, 54, 15);
			a1.getContentPane().add(lblNewLabel_3);
			
			JLabel lblNewLabel_4 = new JLabel("\\u6240\\u5728\\u804A\\u5929\\u5BA4");
			lblNewLabel_4.setBounds(10, 352, 54, 15);
			a1.getContentPane().add(lblNewLabel_4);
			
			JButton add1 = new JButton("\\u786E\\u5B9A");
			add1.setBounds(122, 410, 93, 23);
			a1.getContentPane().add(add1);
			
			txt6 = new JTextField();
			txt6.setBounds(586, 42, 190, 39);
			a1.getContentPane().add(txt6);
			txt6.setColumns(10);
			
			txt7 = new JTextField();
			txt7.setBounds(586, 127, 190, 39);
			a1.getContentPane().add(txt7);
			txt7.setColumns(10);
			
			txt8 = new JTextField();
			txt8.setBounds(586, 198, 190, 39);
			a1.getContentPane().add(txt8);
			txt8.setColumns(10);
			
			txt9 = new JTextField();
			txt9.setBounds(586, 266, 190, 39);
			a1.getContentPane().add(txt9);
			txt9.setColumns(10);
			
			JLabel lblNewLabel_5 = new JLabel("ID");
			lblNewLabel_5.setBounds(481, 54, 54, 15);
			a1.getContentPane().add(lblNewLabel_5);
			
			JLabel lblNewLabel_6 = new JLabel("\\u53D1\\u8A00\\u6570");
			lblNewLabel_6.setBounds(481, 139, 54, 15);
			a1.getContentPane().add(lblNewLabel_6); 
			
			JLabel lblNewLabel_7 = new JLabel("\\u6536\\u85CF\\u6570");
			lblNewLabel_7.setBounds(481, 210, 54, 15);
			a1.getContentPane().add(lblNewLabel_7);
			
			JLabel lblNewLabel_8 = new JLabel("\\u88AB\\u8D5E\\u6570");
			lblNewLabel_8.setBounds(481, 278, 54, 15);
			a1.getContentPane().add(lblNewLabel_8);
			a1.setVisible(true);
		    add1.addActionListener(new ActionListener(){
	            public void actionPerformed(ActionEvent e)
	            {
	            	try {
	    				Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
	    				String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hownya";
	    				String user="hownya";
	    				String password="123";
	    				Connection conn=DriverManager.getConnection(url,user,password);
	    				Statement st=conn.createStatement();
	   
	    				String a=txt1.getText().trim();   String a1=txt2.getText().trim();			
	    				String a2=txt3.getText().trim();  String a3=txt4.getText().trim();				
	    				String a4=txt5.getText().trim();  String a5=txt6.getText().trim();//ID2			
	    				String a6=txt7.getText().trim();  String a7=txt8.getText().trim();			
	    				String a8=txt9.getText().trim();
	    				
	    				String  s="(Select * from dbo.userbase where ID='"+a+"')";
	     				ResultSet r=st.executeQuery(s);
	     				if(r.next())
	     				{
	     				JOptionPane.showMessageDialog(null, "你要创建的该用户已存在或你要添加的数据没有对应用户","提示消息",JOptionPane.WARNING_MESSAGE);
	     				}
	     				else
	     				{			
	  
	     					
	     					String  s1="insert into dbo.userbase(ID,昵称,性别,年龄,所在聊天室) values('"+a+"','"+a1+"','"+a2+"','"+a3+"','"+a4+"')";
	     					int r1=st.executeUpdate(s1);
	     					String  s2="insert into dbo.number(ID,发言数,收藏数,被赞数) values('"+a5+"','"+a6+"','"+a7+"','"+a8+"')";
	     					int r2=st.executeUpdate(s2);
							if(r1==1&&r2==1)
							{
							    JOptionPane.showMessageDialog(null, "添加成功","提示消息",JOptionPane.WARNING_MESSAGE);				    
						    }	
	     					
	     				}
	     				
	     				conn.close();
	            	}catch (ClassNotFoundException ex) {
	    				System.out.println("没有找到对应的数据库驱动类");
	    			}
	    			catch (SQLException ex) {
	    				System.out.println("数据库连接或者是数据库操作失败");
	    			}      	
	            }
		    }

—————————————————————————————————

此处省略几千字

—————————————————————————————————

八、资源下载

对应完整的论文+源程序+数据库下载:https://download.csdn.net/download/frank2102/20542937

以上是关于数据库课程设计 java实现聊天室管理系统 大作业论文+源程序+数据库的主要内容,如果未能解决你的问题,请参考以下文章

java设计模式大作业

数据库课程设计C#+SQL实现楼盘销售管理系统 大作业源代码+数据库+论文+使用说明

Python实战项目 - Python程序设计(期末大作业课程设计毕业设计)-用Python开发的基于TCP通讯协议的实时通讯和文件共享应用

求计算机网络课程设计,采用VC、VB、java或C等编程语言编程实现。题目如下:任选一个

数据库课程设计 java实现高校学生选课管理系统论文+源程序+数据库

软件开发大作业 基于C#开发的汽车售票管理系统 数据库课程设计