基于Java+SQL Server实现的(GUI)会展中心管理系统

server/2025/1/6 5:41:10/

基于java实现的会展中心管理系统

1  系统设计

1.1设计目标

在学习了数据库原理和SQL Server 2008数据库管理系统后,采用Java编程语言开发工具,设计并实现会展中心管理系统。

本课程的目的是培养学生数据库技术的综合应用能力,通过设计开发一个小型的数据库管理系统,将原理与应用相结合,锻炼学生实际问题的分析、设计与编程能力。

设计过程:采用设计总体框图、数据库结构和功能结构图。

会展中心管理系统的设计,可以实现会展中心管理人员对会展中心的方便管理,以及会展信息的发布。客户可以通过系统来预定展馆,预定门票,展品采购,使操作更加集中,方便使用。该系统操作方便,适合大多数人操作使用。

1.2 需求分析

设计内容:

(1)对“会展中心管理系统”进行需求调研,完成概念模型和逻辑结构设计;

(2)建立“会展中心管理系统”数据库

(3)编程实现“会展中心管理系统”,主要包括客户管理员注册登录,会展信息管理,对展馆、展商、展品的增加删除查询;会展信息查询,展馆预约;门票预定;展品采购。

设计要求:

(1) 采用图形化界面;

(2) 操作方便、界面友好;

(3) 撰写课程设计说明书。

数据库安全性:数据库安全性指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。对本系统中管理员和客户的账号和密码以及客户的身份证号进行加密,防止其他用户窃取。用户登录设置有两个客户端,即客户和管理员,身份不同,进入的系统不同,相应的操作数据库的权限也不同。

数据库完整性:数据库完整性包括实体完整性,参照完整性和用户定义完整性。对每一个表中都设置有相应的主码约束,检查主码是否唯一,如果不唯一则拒绝插入或修改。对表设置列值非空,列值唯一,检查列值是否满足一个条件表达式。在表级定义有外码约束,将两个表中的相应元组联系起来。

1.3开发和运行环境选择

开发工具: 前台开发语言为Java,后台数据库为SQL Server2017

运行环境:windows10及更高的操作系统

2  数据库设计

2.1数据库概念设计

2.2数据库逻辑结构设计

  • 展馆表

列名

数据类型

说明

约束

Saccount

CHAR(20)

登录名

PRIMARY KEY

Spwd

CHAR(20)

密码

NOT NULL

  • 展品表

列名

数据类型

说明

约束

Pno

CHAR(20)

展品编号

PRIMARY KEY

Pname

CAHR(20)

展品名称

NOT NULL

Parea

INT

面积

Paddress

CHAR(20)

地址

Person

CHAR(20)

负责人

Pnum

INT

展位数

NOT NULL

  • 展会信息表

  • 采购商表

  • 展馆预定表

3  会展中心管理系统详细设计

3.1 功能描述

会展中心管理系统具体包含如下几个功能:

管理员功能:

(1)录入展商,展馆,展品,展会的信息。

(2)对展商,展品,展馆的信息进行增删改查。

客户功能:

(1)查询展会,展商,展品,展馆信息。

(2)预约展馆,预订门票,展品采购。

3.2 系统模块图

主要负责整个会展中心管理系统的框架搭建和逻辑设计。

功能描述:用户打开系统,选择不同的权限和输入不同的用户名进入不同的系统,如果用户名或密码输入正确,

进入系统之后,管理员的操作有会展信息管理、展馆管理、展商管理和展品管理。

客户的操作有展品采购、展馆预约、门票预定和会展信息查询。

操作完成之后,退出系统,系统功能模块图如图3.2所示。

4.系统实现

4.1创建数据库代码

创建数据库相关代码。
CREATE DATABASE HZZX;
--操作信息表
CREATE TABLE Operator(
Sacc CHAR(20) PRIMARY KEY,--登录名
Spwd CHAR(20) NOT NULL,--密码
);
--展商表
CREATE TABLE Business(
Bno CHAR(10) PRIMARY KEY,--展商编号
Bname CHAR(20) NOT NULL,--姓名
Bid CHAR(50) NOT NULL UNIQUE,--身份证号
Bwork CHAR(20),--职业
Bworkplace CHAR(20),--工作单位
Btel CHAR(20)--手机号
);
--展品表
CREATE TABLE Thing(
Tno CHAR(10) PRIMARY KEY,--展品编号
Tname CHAR(20),--展品名称
Tkind CHAR(10),--类别
Tprice INT,--售价
Tarea INT--规格
IsBuy CHAR(5)--售出状态
);
--展馆表
CREATE TABLE Place(
Pno CHAR(10) PRIMARY KEY,--展馆编号
Pname CHAR(20),--展馆名称
Parea INT,--面积
Padd CHAR(20),--地址
Ppeo CHAR(20),--负责人
Pnum INT--展位数
);
--门票预定表
CREATE TABLE Ticket
(Ano CHAR(10) PRIMARY KEY,--观众编号
Aname CHAR(20),--姓名
Asex CHAR(5) CHECK (Asex IN ('男','女')),--性别
Awork CHAR(10),--职业
Mno CHAR(10)--展会编号);
--展会信息表
CREATE TABLE Meeting
(Mno CHAR(10)PRIMARY KEY,--展会编号
Mname CHAR(20),--展会名称
Bno CHAR(10),--展商编号
Tno CHAR(10),--展品编号
Pno CHAR(20),--展馆编号
Mtime CHAR(20),--时间
FOREIGN KEY(Bno) REFERENCES Business(Bno),
FOREIGN KEY(Tno) REFERENCES Thing(Tno));
--采购商表
CREATE TABLE Shop
(Sno CHAR(10) PRIMARY KEY,--采购商编号
Sname CHAR(20),--姓名
Tno CHAR(10),--展品编号
Stime DATE,--采购时间
FOREIGN KEY(Tno) REFERENCES Thing(Tno));
--展馆预定表
CREATE TABLE Reserve
(RNO CHAR(10) PRIMARY KEY,--订单编号
Pno CHAR(10),--展馆编号
Bno CHAR(10),--展商编号
Bname CHAR(20),--展商姓名
Rtime DATE NOT NULL,--时间
Rnum INT NOT NULL,--展位数
FOREIGN KEY(Pno) REFERENCES Place(Pno),
FOREIGN KEY(Bno) REFERENCES Business(Bno));
//创建视图
CREATE VIEW v_reserve(no,p_name,name,time,num) AS SELECT Reserve.RNO,Place.Pname,Reserve.Bname,Reserve.Rtime,Reserve.Rnum FROM Reserve,Place WHERE Place.Pno = Reserve.Pno;CREATE VIEW v_ticket(no,t_name,sex,work,m_name,p_name,price) AS SELECT Ano,Aname,Asex,Awork,Meeting.Mname,Place.Pname,Meeting.Mprice FROM Ticket,Meeting,Place WHERE Ticket.Mno = Meeting.Mno and Meeting.Pno = Place.Pno;CREATE VIEW [dbo].[v_shop] (no,s_name,t_name,kind,time,price) AS SELECT Shop.Sno,Shop.Sname,Thing.Tname,Thing.Tkind,Shop.Stime,Thing.Tprice FROM  Shop,Thing WHERE Shop.Tno = Thing.Tno;

4.2工具类

public class Facade {SQLserver s = new SQLserver();//登录成功与否的验证public void SQLverify1(String a, String b) {s.SQLverify1(a, b);}//客户登录与否验证public void SQLverify2(String a, String b) {s.SQLverify2(a, b);}//是否注册成功public void zhuceverify1(String a) {s.ZhuceVerify1(a);}}

4.3业务代码

package HZZX.customer.placeReserve;import HZZX.manager.place.UpdatePlaceInformation;
import HZZX.utils.DatabaseConnection;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class SelectPno extends JFrame implements ActionListener {JButton jb1,jb2;JPanel jp1,jp2,jp3;JLabel jl1,jl2;public static JTextField jt1;public SelectPno(){jb1 = new JButton("确定");jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jl1 = new JLabel("预约展馆订单查询系统");jl2 = new JLabel("订单号");jt1 = new JTextField(8);jb1.addActionListener(this);jp1.add(jl1);jp2.add(jl2);jp2.add(jt1);jp3.add(jb1);this.add(jp1);this.add(jp2);this.add(jp3);this.setVisible(true);this.setLayout(new GridLayout(3,1));this.setBounds(720,350,510,280);this.setTitle("会展中心管理系统");}public int verify(){Connection con = null;ResultSet rs;int result = 0;try {if (!jt1.getText().isEmpty()) {con = DatabaseConnection.getConnection();PreparedStatement ps = con.prepareStatement("select * from Reserve where RNO = ?");ps.setString(1, jt1.getText());rs = ps.executeQuery();if (rs.next()) {JOptionPane.showMessageDialog(null, "该编号存在", "提示消息", JOptionPane.WARNING_MESSAGE);result = 1;} else {JOptionPane.showMessageDialog(null, "该编号不存在,请重新输入", "提示消息", JOptionPane.WARNING_MESSAGE);}}else {JOptionPane.showMessageDialog(null, "请输入完整信息", "提示消息", JOptionPane.WARNING_MESSAGE);}}catch (SQLException e){e.printStackTrace();}return result;}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {if (verify() == 1) {new SelectReserve();dispose();}else {jt1.setText("");}}}
}

5.项目展示

6.参考文献

[1] 《数据库原理及应用》 钱雪忠主编 北京邮电大学出版社 2007.8 第二版

[2] 《SQL server 2000数据仓库与Analysis Services》 Bain T著 中国电力出版社 2003

[3] 《数据库系统概论》 王珊 萨师煊 编著 高等教育出版社 2014.9 第五版

[4] 《数据库技术与联机分析处理》 王珊主编 北京科学出版社 1998

[5] 张桂珠 刘丽 陈爱国 Java面向对象程序设计(第2版)北京邮电大学出版社

[6] 毕广吉 Java程序设计实例教程[M] 北京:冶金工业出版社,2007年


http://www.ppmy.cn/server/155736.html

相关文章

Redis Hash哈希

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Redis Hash哈希 收录于专栏[redis] 本专栏旨在分享学习Redis的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 概述 常见命令 HSET …

TinaCMS: 革命性的开源内容管理框架

在如今的数字时代,高效的内容管理系统(CMS)已成为构建内容丰富网站和应用程序的必需品。传统 CMS,如 WordPress 和 Drupal,功能丰富但复杂度高。而新一代 CMS,例如 TinaCMS,以其灵活性和开发者友…

Web3对跨境支付系统的潜在影响与发展前景

近年来,Web3技术凭借其去中心化和开放性的特点,逐渐受到各界关注。跨境支付系统作为全球化的重要桥梁,其发展正面临效率、透明性和互操作性等方面的挑战。而Web3的引入为跨境支付系统的优化提供了全新思路。本文将探讨Web3在这一领域的潜在影…

面向实习的Golang服务端技能分析

背景: 这个文章就当总纲看吧,没什么内容,大概是我的一个学习计划 首先,该文章是我希望大二暑期能够找到Go后端开发岗位实习机会,结合boss、2024版go学习路线以及我一个go萌新的现有技能做出的大约四个月时间掌握开发…

题海拾贝:[USACO3.4] 美国血统AmericanHeritage(求先序排列问题)

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、求…

植物活性长末端重复序列反转录转座子研究进展-文献精读95

Plant active LTR retrotransposons: a review 植物活性长末端重复序列反转录转座子研究进展 摘要 长末端重复序列 (Long terminal repeat&#xff0c;LTR) 反转录转座子是真核生物基因组中普遍存在的一类可移动的DNA序列&#xff0c;它们以RNA为媒介&#xff0c;通过“复制粘…

Bash 中的 2>1 | tee 命令详解

Bash 中的 2>&1 | tee 命令详解 在 Linux 和 Unix 系统中&#xff0c;命令行提供了强大的输出控制功能&#xff0c;能够灵活地处理标准输入&#xff08;stdin&#xff09;、标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;。本文将详…

深入AIGC领域:ChatGPT开发者获取OpenAI API Key的实用指南

在AIGC&#xff08;人工智能生成内容&#xff09;领域&#xff0c;ChatGPT作为一种强大的自然语言处理工具&#xff0c;正逐渐成为开发者们不可或缺的助手。然而&#xff0c;要充分发挥ChatGPT的潜力&#xff0c;首先需要获取OpenAI的API Key。本文将详细介绍如何获取OpenAI AP…