数据库课程设计 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实现聊天室管理系统 大作业论文+源程序+数据库的主要内容,如果未能解决你的问题,请参考以下文章
数据库课程设计C#+SQL实现楼盘销售管理系统 大作业源代码+数据库+论文+使用说明
Python实战项目 - Python程序设计(期末大作业课程设计毕业设计)-用Python开发的基于TCP通讯协议的实时通讯和文件共享应用
求计算机网络课程设计,采用VC、VB、java或C等编程语言编程实现。题目如下:任选一个