0 Star 1 Fork 0

明月安 / DesktopWeibo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

weibo微博(桌面版)-课设

使用Java开发

注册

image-20230201212135639

image-20230201212424526

主界面

image-20230201212717860

管理员

注意:管理员只能在数据库中手动添加

image-20230201215306733

image-20230201215339577

课程设计(练手)

用户登录等GUI界面,用户数据存在数据库里,并体现面向对象编程思想。

具体如下:

​ 一个基于用户关系的信息分享、传播以及获取的平台。

功能要求:

(1) 能够发布帖子、动态或文章,更新用户信息,并实现即时分享。

(2) 用户可以通过Web、WAP以及各种客户端组建个人社区。

(3) 有启动登陆界面

能够操作一条微博比如在数据收藏中收藏微博、取消收藏微博、订阅话题、取消订阅、删除微博等

项目启动

项目名称

桌面微博系统的设计与实现

项目目的

通过一个桌面应用软件“桌面微博系统”的设计与实现,按照项目开发流程,系统全面地理解和体验Java项目开发过程,同时进一步熟悉、掌握Java核心技术和数据库技术的具体应用,并将个人所学知识最大限度地进行发挥,使其成为实际工作中可以运用的实践经验和技能。 通过具体的实训任务,全面提高程序设计能力、项目开发能力和自主学习能力。

项目目标

  1. 知识目标
  • Java基本语法规范
  • 面向对象程序设计思想
  • Java核心技术
  • Java技术应用
  • Java软件开发
  1. 技能目标
  • 搭建Java开发环境
  • 技术文档阅读能力
  • 文档编辑、归纳能力
  • 编码、调试能力
  • 用户界面设计能力
  • 数据库编程能力
  • 系统架构能力
  • 系统分析、规划、设计、实现、测试、部署能力
  1. 素质目标
  • 诚信做人
  • 树立行业意识、团队意识
  • 培养协作、沟通、表达能力
  • 树立敢于创新、善于创新的意识
  • 树立终生学习、快乐学习、自主学习的意识
  • 培养积极进取、乐观向上、健康平和的学习心态

知识背景要求

  • 具备Java语言程序设计基础知识
  • 具备关系数据库的基础知识
  • 了解软件工程和项目管理的基本概念

软件开发流程

系统分析(可行性分析、需求分析)->系统设计->详细设计(数据库设计、各功能模块设计)->编码实现->系统测试->系统部署

桌面微博系统项目开发

项目选取原因

需要使用多方面知识,可以检测Java学习过程中对于各方面知识的掌握程度。

项目设计与实现的目的

1. Java技术应用

利用Java技术,如面向对象、封装、继承、接口、异常处理、泛型、图形界面编程、JDBC数据库编程、网络编程等技术,实现一个“桌面微博系统”,展示Java技术在实际系统开发过程中的具体应用。

2. 需求分析

  • 微博内容的浏览,数据库表设计

  • 用户社交体现:关注用户、取关用户

  • 拉取关注的人的微博内容

  • 一个基于用户关系的信息分享、传播以及获取的平台。

  • 能够发布帖子、动态或文章,更新用户信息,并实现即时分享。

  • 能够操作一条微博比如在数据收藏中收藏微博、取消收藏微博、订阅话题、取消订阅、删除微博等。

3.代码设计总览

  • 创建命名空间以及表名的定义
  • 创建微博内容表
  • 创建用户关系表
  • 创建用户微博内容接收信息表
  • 发布微博内容
  • 添加关注用户
  • 取关用户
  • 获取关注的人的微博内容
  • 测试

开发流程与任务划分

开发流程 任务
阶段1 项目启动
阶段2 系统分析可行性分析
阶段2 系统分析需求分析 用UML绘制系统用例图
阶段3 系统设计系统功能结构 绘制系统功能结构图
阶段3 系统设计系统流程 绘制系统流程图
阶段3 系统设计系统开发环境 搭建系统开发环境
阶段3 系统设计规划系统开发目录 创建系统开发目录
阶段4 详细设计与编码概述
阶段5 数据库设计与实现 创建物理数据模型,并生成数据表
阶段6 模型层设计与实现数据模型设计与实现 创建实体类
阶段6 模型层设计与实现业务模型设计与实现 创建业务模型类
阶段7 控制层设计与实现数据访问控制的设计与实现 创建数据访问控制类
阶段7 控制层设计与实现工具包设计与实现 创建工具包,并实现其中的类
阶段8 视图层设计与实现登录界面 Login类
阶段8 视图层设计与实现注册界面
阶段8 视图层设计与实现系统主界面 MainFrame类
阶段9 阶段测试 测试系统
阶段10 系统部署 打包、部署系统

系统分析

系统分析概述

系统分析包括系统可行性分析和需求分析两部分内容。 系统可行性分析:从多方面论证此项目的可行性 需求分析:进行用户访谈,归纳、抽取、总结出用户需求(功能需求、非功能需求) 用例分析

  • 参与者:表示与系统交换的人、硬件设备、另一个系统或子系统。一般用人物图形表示,下方标出参与者名称
  • 用例:表示系统功能。一般用椭圆图形表示,在椭圆中标出用例名称
  • 参与者与用例之间的关系:使用关联关系连接,表示参与者可以执行的操作

“桌面微博系统”需求分析

  1. 基本需求
  • 系统应当对不同用户设置不同的使用权限,系统的使用者包括系统管理员、操作员和访客(一般用户)
  • 系统管理员:(对于次级管理员)
  • 操作员:(对于访客)
    • 审核
    • 查找
    • 禁言
    • 封号
    • 查看
  • 访客:
    • 个人信息编辑
    • 发布微博
    • 工具条(搜索、举报、关注、注销)
    • 查看(主页、@我、评论、私信、收藏、关注、粉丝、微博)
    • 文本编辑(打开文本、保存文本、另存为)
    • 音乐播放(打开音乐文件、打开音乐文件夹)
  • 系统要求操作简单,界面友好、美观大方
  1. 用例图

系统设计

系统设计概述

系统设计阶段的基础是系统功能需求和非功能需求。 系统设计要按照需求进行系统概要设计和详细设计。 系统设计阶段的目的是使所有需求被开发团队所理解,并能够正确地实现。 系统设计采用自上而下、逐次展开的方法,即首先完成总体设计,然后完成各个组成部分的设计。 需求分析阶段->需求说明书-逻辑模型 设计阶段->设计说明书-物理模型

概要设计

概要设计的主要任务是完成系统的结构设计,包括组成模块、模块的层次结构、模块的调用关系、每个模块的功能,同时还包括对数据结构和数据库结构的设计。

  • 将一个复杂的系统按功能划分为模块
  • 确定每个模块的功能
  • 确定模块之间的调用关系
  • 确定模块之间的接口,即模块间传递信息

系统功能模块设计

系统功能模块设计是使用功能结构图将系统的主要功能结构和流程表示出来。根据需求说明,按照系统实现的功能类型,将系统划分为不同功能的模块。

  • 需求合并:对系统需求进行分析,将其有相同或相似功能的需求进行合并
  • 定义功能模块:将所有具有相同或相似功能的需求与系统实现相对应,定义成单独的功能模块
  • 定义模块功能:定义每个功能模块的功能

模块接口定义

系统或对象对外提供服务都是通过接口完成的。这个接口描述了系统或对象能够提供的服务,它不包括服务实现细节。 接口的两种含义

  1. 概念性接口,指系统对外提供的服务,表现为对象方法的public访问权限
  2. 接口类型,即使用interface定义的接口,明确描述了系统对外提供的服务,将实现与接口真正分离

软件架构模式

软件架构是一系列相关的抽象模式,用于指导软件系统各个方面的设计。它是一个系统的草图,描述的对象是直接构成系统的抽象组件。各个组件之间的连接明确,而且相对细致地描述了组件之间的通信。 实现时,这些抽象组件被细化为实际的组件,可以具体到某个类或对象,组件之间的连接通常用接口来实现。 MVC架构模式,将应用程序的输入、处理、输出分开。将应用程序分为三个核心部件:模型、视图、控制。

  • 视图:用户界面,与系统进行交互
  • 模型:接收视图请求的数据,并返回最终的处理结果 业务模型:业务逻辑处理 数据模型:有关数据库的操作
  • 控制:判断选择什么模型,选择什么视图,可以完成什么样的用户请求

详细设计

详细设计是对概要设计中的每一个模块在结构化及层次方面进行更为细致:精确的描述。其主要任务是依据概要设计中的功能模块,设计每个模块自身的实现层次、逻辑层次及状态。

“桌面微博系统”系统设计

功能结构

  1. 功能结构图
  2. 功能模块描述 “桌面微博系统”设置有三级用户:管理员、操作员、访客。用户级别不同,其管理权限就不同,显示的界面也不同。
  • 登录模块:第一个界面,可进行访客注册。输入正确的账号和密码后,系统验证输入信息,验证正确后启动与用户角色相对应的主界面。如果验证不正确,则根据不同的错误给出错误信息。
  • 访客模块:包括工具条、菜单条、个人信息面板、编辑发布微博面板、主功能面板、音乐播放控件面板六个子模块。
  • 操作员模块:包括审核、查看两个子模块。
  • 管理员模块:包括增加操作员、删除操作员、修改操作员、查看操作员四个子模块。

流程图

  1. 系统流程图
  2. 系统流程描述 用户启动“桌面微博系统”,将进入系统“登录界面”。在“登录界面”中输入用户名和密码,单击“登录”按钮后,将进行用户名和密码的验证工作。通过验证后,根据用户权限启动相应的系统主界面。“桌面微博系统”分为三级用户,其权限不同,主界面也就不同,可进行的操作也不同。

系统架构

  1. 系统架构模式 采用MVC架构模式
  • 模型层:业务逻辑模型和数据逻辑模型
  • 视图层:操作界面,进行系统与用户之间的信息交换
  • 控制层:接收来自视图层的用户操作或请求,交给模型层处理,并将处理结果返回给视图层
  1. MVC模式处理过程
  • 用户通过视图发出请求
  • 控制器接收用户请求,并决定调用哪个模型来进行处理
  • 模型用业务逻辑来处理用户的请求并返回数据
  • 控制器将后台的数据传递给视图
  • 视图将数据展示给用户

创建系统开发目录

项目开发目录

  • src:源代码文件
  • images:图片文件
  • libs:外部类库文件
  • database:创建数据表的.sql文件
  • control:控制包
  • data:数据库访问包
  • model:模型包
  • test:测试包
  • tools:工具包
  • view:通用界面
  • view_administrator:管理员界面包
  • view_operator:操作员界面包
  • view_visitor:访客界面包

系统详细设计与编码概述

系统详细设计概述

在详细设计阶段要对系统设计阶段中定义的所有功能模块进行更为精确的结构化及层次化的描述。通过对各模块功能的分析,提炼出实现的逻辑,并画出页面流程图。

模块分析

分析模块功能,整理系统对应的实现逻辑,并绘制页面流程图

  • 从模块功能中提炼系统的实现逻辑
  • 定义实现逻辑需要的页面
  • 定义所需页面的流转顺序
  • 定义逻辑页面上应具有的页面元素

视图层分析

按照模块的实现逻辑,找出在实现过程应由视图层完成的实现内容,并定义视图层与控制层的接口

  • 分析模块实现逻辑,提炼出所有与用户有直接交互的步骤
  • 分析其他步骤,判断是否需要在视图层实现
  • 分析不在视图层实现的步骤与视图层之间的关系,并添加相应的接口

控制层分析

根据视图层接口分析需要实现逻辑的实现步骤,拆分出应在控制层完成的实现内容,并定于控制层和模型层的接口

  • 根据视图层和控制层的接口,分析其中实现逻辑的所有结点
  • 判断结点的实现属于业务逻辑还是数据逻辑,属于业务逻辑的在控制层实现,属于数据逻辑的在模型层实现,并添加相应的接口

模型层分析

按照控制层和模型层接口,分析模型层需要的数据表结构及数据关系,并更新对应控制层和模型层的接口

  • 根据控制层和模型层接口,分析所有需要的数据表结构
  • 分析数据表之间的关联关系
  • 分析数据处理内容

“桌面微博系统”详细设计概述

模块分析

  • 注册模块:用于访客注册
  • 登录模块:输入账号和密码登录界面
  • 系统界面模块:根据用户权限展示系统功能操作模块

视图层、控制层和模型层的关系分析

视图层(发出请求) 控制层(业务控制) 模型层(数据处理)
注册模块:发出用户注册请求 按照用户输入的用户名和密码添加用户对象 对个人信息表和访客信息表进行更新处理
登录模块:1.发出用户登录请求2.请求打开系统主界面 按照用户名和密码获取用户对象 对个人信息表和访客信息表进行查询处理

编码概述

根据详细设计内容,在编码规范的指导下,完成代码编写,并进行单元测试 编码规范是开发团队需要遵照执行的代码编写的统一规定和约定,是指导程序员进行规范化编码的文档。目的是增强程序的可读性,减少编码错误,方便日后代码的维护。 编码规范内容

  • 命名规则约定
  • 排版及格式规则
  • 编程惯例
  • 注释及声明规则
  • 语句规范
  • 变量及方法规范 “桌面微博系统”编码规范
  1. 注释
  • 类注释:所有类开头添加类注释,用于说明类的功能
  • 方法注释:所有方法开头添加方法注释,用于说明方法的功能、输入/输出参数的类型和用途、方法的返回值类型和用途
  1. 声明
  • 成员声明变量:在类的第一个方法之前声明变量
  • 变量声明:代码块开始处声明变量
  • 类和接口声明:在类定义、接口定义或方法定义中,“{”在声明部分的最右侧,“}”独占一行,需要与相应的声明语句对齐。若为空语句,“}”应紧跟在“{”之后
  1. 命名规范
  • 类和接口命名:采用驼峰式命名规则,要求第一个单词首字母大写
  • 方法命名:采用驼峰式命名规则,要求第一个单词的首字母小写
  • 变量命名:每个字母全部小写,可用下划线隔开
  • 常量命名:每个字母全部大写,可用下划线隔开
  1. 缩进 代码以1个Tab键或4个空格缩进

数据库设计与实现

数据库概念设计

  • 设计物理数据模型
  • 由物理模型生成创建表的SQL命令文件
  • 在数据库管理系统中执行SQL命令文件创建数据表

个人实体E-R图

“桌面微博系统”的登录模块、注册模块、判断操作权限模块、修改密码模块等都会用到个人实体,个人实体包括个人账号、个人密码、个人操作权限、是否登录成功等属性。

访客实体E-R图

“桌面微博系统”的模块等都会用到访客实体,访客实体包括访客账号、访客头像、访客昵称、访客性别、访客生日、访客等级、关注数、粉丝数、微博数、访客账号状态等属性。

操作员实体E-R图

“桌面微博系统”的模块等都会用到操作员实体,操作员实体包括操作员账号、待审核数、已审核数等属性。

微博实体E-R图

“桌面微博系统”的模块等都会用到微博实体,微博实体包括微博编号、访客账号、微博内容、微博评论、微博状态等属性。

数据表设计与实现

数据库概念设计已经分析了个人、访客、操作员、微博等主要实体对象,这些实体对象是数据表的基本模型,最终的数据模型都要在数据库中实施,形成整体的数据结构。

数据表设计

物理数据模型

模型层设计与实现

数据模型的设计与实现

数据模型主要是对实体对象的数据保存,所有对数据库的操作都在数据模型中完成。

数据模型需要开发4个实体类:

  • Personal类:用于保存、设置、获取个人的属性 说明|字段名 -----|----- 个人账号|id 个人密码|password 个人操作权限|power 是否登录成功|login_success
  • Visitor类:用于保存、设置、获取访客的属性 说明|字段名 -----|----- 访客账号|id 访客头像|visitor_image 访客昵称|visitor_name 访客性别|visitor_sex 访客生日|visitor_birthday 访客等级|visitor_grade 关注数|visitor_num_attention 粉丝数|visitor_num_fans 微博数|visitor_num_weibo 访客账号状态|visitor_state
  • Operator类:用于保存、设置、获取操作员的属性 说明|字段名 -----|----- 操作员账号|id 待审核数|operator_wait 已审核数|operator_complete
  • Weibo类:用于保存、设置、获取微博的属性 说明|字段名 -----|----- 微博编号|weibo_id 访客账号|visitor_id 微博内容|weibo_content 微博评论|weibo_comments 微博状态|weibo_state

Personal类的设计与实现

  • 类的设计 成员变量:共4个 成员方法:共8个
  • 类的实现 源代码

Visitor类的设计与实现

  • 类的设计
  • 类的实现 源代码

Operator类的设计与实现

  • 类的设计
  • 类的实现 源代码

Weibo类的设计与实现

  • 类的设计
  • 类的实现 源代码

业务模型的设计与实现

业务模型的设计是MVC重要核心部分之一,软件系统中的全部业务处理都是通过业务模型来完成。

在“桌面微博系统”的业务模型层中,主要定义了两个类:

  • ChangeString类:用于字符编码转换
  • BaseDao:用于数据库访问操作,包括加载驱动、建立与数据库的连接、创建执行对象、执行查询操作、执行更新操作,关闭与数据库的连接。

ChangeString类的设计与实现

  • 分析 桌面微博系统选用MySQL数据库,它开源、跨平台且易于使用和管理。系统需要从数据表中添加、更新、查询数据。由于MySQL默认的是Latin1编码,而Java程序默认的文本文件编码是GBK,这就需要字符编码转换。如果不进行字符编码转换,就会出现乱码问题。为解决乱码问题,需要编写字符编码转换方法。 字符编码转换的方向: 程序->表、表->程序
  • 方法的设计
  • 类的实现 源代码

BaseDao类的设计与实现

  • 分析 桌面微博系统需要与数据库进行连接,才能进行增、删、改、查等操作。这些操作需要利用JDBC技术来完成。
  • 类的设计
  • 方法的设计
  • 类的实现 源代码

控制层设计与实现

数据访问控制类的设计与实现

工具类的设计与实现

视图层设计与实现

登录界面的设计与实现

注册界面的设计与实现

访客界面设计与实现

操作员界面设计与实现

管理员界面设计与实现

系统测试

系统测试概述

“桌面微博系统”测试

系统部署

系统部署概述

“桌面微博系统”部署

参考文献

空文件

简介

桌面微博系统 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/mingyuean/DesktopWeibo.git
git@gitee.com:mingyuean/DesktopWeibo.git
mingyuean
DesktopWeibo
DesktopWeibo
master

搜索帮助