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.pswp.cn/news/393733.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393733.shtml
英文地址,請注明出處:http://en.pswp.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&#…