linux课程设计qq,仿QQ聊天系统课程设计.doc

目录

绪论1

一.需求分析1

1.1软件功能需求分析2

1.2 安全需求分析2

二.总体设计3

2.1 软件结构图3

2.2 功能描述3

2.2.1注册功能概要4

2.2.2登录功能概要4

2.2.3聊天功能概要5

2.3 安全设计6

三.数据库设计6

3.1概念结构设计6

3.2逻辑结构设计7

3.3物理结构设计7

四.详细设计8

4.1 用户聊天模块总体流程图8

4.2 服务端模块8

4.3 客户端模块9

五.编码14

六.结论16

学习体会17

致谢17

参考文献17

绪论

随着现代技术的不断输入和信息化的广泛普及,移动网络作为一种新兴事物,在近些年得到了前所未有的普及和深入,移动网络上的各种应用层出不穷,给各个阶层、各个年龄段的用户提供了不同的个性化的服务。而现代中小型企业的领导认识到进一步提高企业信息化的必要性。为使企业能在瞬息万变的信息时代生存下去,适应激烈的市场竞争,现代企业要求加强员工之间的交流和通信能力,尤其是领导和员工之间的共同能力,实时的交流系统就是在这种条件下诞生的。

在这个信息化时代,手机已成为继固话之后最为通俗的交流工具,“聊天”成了生活的必需品,这就有了系统下人与人之间的多样会话方式—QQ聊天。传统会话聊天或许是面对面闲话家常或许是通过打电话进行交流,但都存在各种不便及弊端 。而手机QQ,在手机系统下,占用手机相对很小的空间,系统的记录了QQ好友的信息,不仅突破了各种条件的束缚,减轻了机主的负担,更方便了使用者的通讯交流。?

综上所述,本课题主要研究基于Android的移动聊天系统,以更好的用户体验性为目的开发出界面简洁,用户易操作的移动即时通信聊天工具。该聊天工具的主要功能:用户注册,登录,好友一对一聊天,添加新好友,修改个人信息等。在该即时通信工具中利用Bmob实现Android端与Bmob服务端的数据操作。Bmob对数据的增删改查找做了很好地封装,以及其批量的处理。客户端之间通过服务器对数据的转发实现相互通信。

需求分析

随着经济全球化以及企业激烈的竞争,改善企业内部及整个供应链各环节的管理、调度资源配置,迅速适应客户的新需求和市场新机遇,是企业赢得竞争胜利的决定性因素。

图2.1 软件结构图

2.2 功能描述

进入该软件,进入登录界面,如果没有账号,则可以点击立即注册,进入注册界面进行注册,登录进入主界面,显示会话、联系人、设置,通过选择相应菜单进行相关操作。

2.2.1注册功能概要

输入注册需要的信息,且保证正确

参与者:用户

执行者:用户

前提条件:开启程序,进入注册界面

用户注册流程图:

图2.2.1 用户注册流程图

2.2.2登录功能概要

判断输入信息格式

服务器验证输入信息

跳转进入好友列表界面

登录流程图:

失败

成功

图2.2.2 登录功能流程图

2.2.3聊天功能概要

用户点击联系人列表中的一个好友时,进入聊天界面

在输入框输入信息,点击发送按钮,发送信息

好友回复消息是在该聊天页面显示

当有好友发消息过来时,系统会通过Toast提示

当QQ在后台运行时有好友发送消息过来时,系统会通过广播的形势告诉用户

用户聊天后退出聊天界面后,聊天信息保留

用户聊天模块总体流程图:

传输好友回复的消息 传输好友回复的消息

封装信息进行传输 封装信息进行传输

图2.2.3 用户聊天模块总体流程图

2.3 安全设计

通过为不同的用户设计不同的用户视图,和为每一个登录的用户设置密码来实现数据库的安全设计要求。

三.数据库设计

3.1概念结构设计

图3.1 总体E-R图

3.2逻辑结构设计

用户信息(用户编号,用户账号,用户密码,性别,昵称,头像)

会话信息(消息编号,好友账号,好友头像,发送/接收消息时间,消息内容)

3.3物理结构设计

表3-1 用户信息-Users

明细字段类型主键外键唯一可为空用户编号objectIdString 是否账号UsernameString是是是否密码PasswordStr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ocp linux 基础要点

基本命令: 创建/修改/删除用户 useradd/usermod/userdel 创建/修改/删除用户组 groupadd/groupmod/groupdel 修改所属用户/所属用户组 chown/chgrp 修改权限 chmod 创建文件夹 mkdir 创建文件 touch 切换目录 …

leetcode1386. 安排电影院座位(贪心)

如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10 。 给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i][3,8] &…

首席技术执行官_如何在几分钟内找到任何首席执行官的电子邮件地址

首席技术执行官by Theo Strauss由西奥斯特劳斯(Theo Strauss) 如何在几分钟内找到任何首席执行官的电子邮件地址 (How to find any CEO’s email address in minutes) 银河电子邮件指南:第一部分 (The Emailer’s Guide To The Galaxy: Part I) I’m 17, so my net…

Linux 查看磁盘或文件夹及文件大小

当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个…

Python列表基础

列表:创建列表:list[] 注意:列表里面类型可以是不同的类型 取值:list[2]   替换:注意不要越界(下表超出了可表示范围) 操作: 合并列表:   list3list2list1 列表的重复:   (list8*3)   判断元素是否…

树莓派 触摸屏_如何用树莓派搭建一个颗粒物(PM2.5)传感器

用树莓派、一个廉价的传感器和一个便宜的屏幕监测空气质量。-- Stephan Tetzel(作者)大约一年前,我写了一篇关于如何使用树莓派和廉价传感器测量 空气质量 的文章。我们这几年已在学校里和私下使用了这个项目。然而它有一个缺点:由于它基于无线/有线网&a…

shell 25个常用命令

1.列出所有目录使用量,并按大小排序。 ls|xargs du -h|sort -rn #不递归下级目录使用du -sh2.查看文件排除以#开关和空白行,适合查看配置文件。 egrep -v "^#|^$" filenamesed /#.*$/d; /^ *$/d3.删除空格和空行。 sed /^$/d filename #删除空…

tensorflow入门_TensorFlow法律和统计入门

tensorflow入门by Daniel Deutsch由Daniel Deutsch TensorFlow法律和统计入门 (Get started with TensorFlow on law and statistics) What this is about 这是关于什么的 What we will use 我们将使用什么 Get started 开始吧 Shell commands for installing everything you …

centos7 nginx+php5.6+mysql安装与配置

安装与配置 php 56的安装 php的配置写在 php.ini,可在phpinfo()中查看 //查找已安装 yum list installed | grep php // php卸载 yum -y remove php56* yum remove httpd* php* 可用的资源:centos 安装php56nginx nginx php-fpm nginx安装 sudo rpm -Uv…

leetcode337. 打家劫舍 III(dfs)

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房…

c语言面试题东软,2012东软笔试题

1、下列变量定义错误的是Dint a;double b4.5;boolean btrue;float f9.8; (9.8f)2、65%32的值是 D 3%53219103、对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是k n / 10 % 10k ( n - n / 100 * 100 )k n % 10k n / 104、下列语句序列执…

matlab肌电信号平滑滤波_MATLAB图像处理:43:用高斯平滑滤波器处理图像

本示例说明了如何使用imgaussfilt来对图像应用不同的高斯平滑滤波器。高斯平滑滤波器通常用于降低噪声。将图像读入工作区。I imread(cameraman.tif);使用各向同性的高斯平滑核增加标准偏差来过滤图像。高斯滤波器通常是各向同性的,也就是说,它们在两个…

Github 简明教程 - 添加远程库

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得…

githooks_使用Githooks改善团队的开发工作流程

githooksby Daniel Deutsch由Daniel Deutsch 使用Githooks改善团队的开发工作流程 (Improve your team’s development workflow with Githooks) Every product that is developed by more than one programmer needs to have some guidelines to harmonize the workflow.由多…

分享AI有道干货 | 126 篇 AI 原创文章精选(ML、DL、资源、教程)

一年多来,公众号【AI有道】已经发布了 140 的原创文章了。内容涉及林轩田机器学习课程笔记、吴恩达 deeplearning.ai 课程笔记、机器学习、深度学习、笔试面试题、资源教程等等。值得一提的是每篇文章都是我用心整理的,编者一贯坚持使用通俗形象的语言给…

c语言qt生成dll与加载dll,Qt制作界面的DLL以及调用

1、将界面做成dll修改pro文件DEFINES WIDGETDLL_LIBRARYTEMPLATE lib修改头文件#if defined(WIDGETDLL_LIBRARY)# define WIDGETDLLSHARED_EXPORT Q_DECL_EXPORT#else# define WIDGETDLLSHARED_EXPORT Q_DECL_IMPORT#endifclass WIDGETDLLSHARED_EXPORT WidgetDll:public QWi…

leetcode1338. 数组大小减半(贪心算法)

给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1: 输入:arr [3,3,3,3,5,5,5,2,2,7] 输出:2 解释:选择 {3…

20162329 张旭升 2017 - 2018 《程序设计与数据结构》第五周总结

20162329 2017-2018-1 《程序设计与数据结构》第五周学习总结 教材学习内容总结 1.学习目标 了解集合的概念了解并使用抽象数据类型初步了解使用Java泛型学习栈这种数据结构用数组、链表实现栈2.学习内容 集合的概念: 集合是手机并组织其他对象的对象,他…

centos 安装trace_前期的准备工作-MacOS Mojave 10.14.3 下安装CentOS 7及Bochs 002

MacOS Mojave 10.14.3 下使用虚拟机安装CentOS 7 以及 Bochs 2.6.9CentOS 7.6.1810 系统下 安装Bochs 2.6.91 下载CentOS 7.6.1810网址为https://www.centos.org/遇到的问题安装后无法使用使用网络,最简单的解决方法就是增加一个新的网络适配器,使用Nat共…

js中的extend的用法及其JS中substring与substr的区别

1. JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的。这样就直接按照在C#中使用Substring的方式,直接在js中用了substring&#…