当前位置:文档之家› 仿QQ聊天系统的数据库设计与实现

仿QQ聊天系统的数据库设计与实现

仿QQ聊天系统的数据库设计与实现
仿QQ聊天系统的数据库设计与实现

仿QQ聊天系统的数据库设计与实现

1引言

数据库课程设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足用户的应用需求。信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象要进行哪些操作,如查询、加入、删除、修改、统计等操作。数据库课程设计的目标是为了用户和各种应用系统提供一个信息基础设施和高效率的运行环境。高效率的运行环境包括:数据库的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率都是高的。本次课程设计的目的是把所学的数据库的知识应用到实践中去。现今知识已越来越受到人们的重视,仿QQ聊天系统是参考腾讯公司发布的腾讯QQ,主要运用数据库知识和C#将其初步实现[1]。

1.1课题背景

现在的信息越来越发达,很多人都在使用QQ作为聊天工具,现根据腾讯公司的QQ 聊天系统制造属于自己的聊天工具,表面上看上去是仿QQ聊天系统,其实等到时机成熟可以换成别的名字,相信在不远的将来在老师和同学们的帮助下,再借助互联网,我们一定可以打造出属于自己的聊天系统。当然系统存在着很多不足,需要老师的指点和帮助。

1.2系统需求分析

QQ聊天系统是大家广泛喜欢经常应用到CS应用程序软件[2],而现在仿QQ聊天系统开发工具,是本人对其程序的深感兴趣,不但可以了解从中的业务,而且还可以加强学习,以及对知识的回顾。同时也是尽快测试此聊天程序,以便和同学进行用自己的工具来交流聊天,由于好奇心促使和同学们一起来探讨此程序的开发,这样增强同学们之间的相互交流,相互学习。

该系统属于应用程序,需要对数据的处理,比如聊天信息要既是反馈给对方,故对数据的及时更新要求较高,保证数据的真实性.该系统在任何操作系统下都可以运行,但必须装有SQL2000数据库。

2 关键技术简介

2.1SQL Server2000

SQL Server 2000是Microsoft公司2000年推出的SQL Server数据库管理系统的版本。它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库、以及电子商务等。特点: 真正的客户机/服务器体系结构, 图形化用户界面, 丰富的编程接口工具。SQL Server与Windows NT完全集成, 具有很好的伸缩性,支持Web技术。SQL Server提供数据仓库功能[3]。

2.2C#简介

C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。C#是用于创建运行在.NET公共语言运行库上的应用程序的语言之一,它从C语言和C++语言演化而来,是Microsoft专门使用.NET平台而创建的,并且考虑了其他语言的许多有点。

由于语法简单,使用C#开发应用程序比C++程序相对简单。但是,C#也是一种强大的语言,在C++中能完成的任务在C#中同样也能完成。C#的代码要比C++略长些,这是因为C#是一种类型安全的语言(与C++不同),虽然C#的代码略长但其代码更健壮,调试也比较简单。

C#是唯一为.NET Framework而设计的语言,是移植到其他操作系统上的.NET版本中使用的主要语言,能使用.NET Framework代码库提供的每种功能。反之,如果要使用https://www.doczj.com/doc/e012953280.html,等语言尽可能与其以前的语言类似,而且仍然遵循CLR,这些语言就不能完全支持.NET代码库的某些功能。C#可以创建Windows应用程序,Web应用程序,Web服务这几种常见的应用程序[4]。具体实现如下:

1:首先根据对其业务逻辑的分析极其全面整合,加之我们所熟悉的QQ聊天技术。第一应该做的是界面,界面的美化程度直接反映着用户对此软件喜欢程度,所以借助了互联网搜索了一些好看的图片;

2:对界面的设计,这里所用到的就是C#里布局控件,精心的布局,这一点众所周之C#里丰富的控件为我们提供了方便,这样做就可以尽可能的让用户用起来比较舒服;

3:各个窗体画好后,接下来自然就是业务逻辑层的代码书写了,由于学习不够精,所以在书写代码方便并没有用到三层技术,但是本人对该系统考虑的比较全面,一些错误和异常都可以将其打印出来

C#里提供丰富的控件库,本来就可以自动生成一些代码,对业务逻辑比较明朗,对方法和类之间的命名比较规范,书写代码自然比较快,出错率比较少;方法就是增删改查,最后结合数据库技术完成业务逻辑。

3数据库概念结构设计

3.1构思E-R图原则

原则1:能独立存在的事物,例如人、物、事、活动、事项等等,在其有多个基本项描述的特性需要关注时,就应把它作为实体。

根据原则1,分析本系统中的实体主要有用户、星座、信息类型、聊天信息、好友策略、好友和血型。

原则2:两个或多个实体间的关联与结合,如主管、从属、组成、占有、作用、配合、协同等等,当需要予以关注时,应作为联系。联系通常是某类行为动作,E-R图关注的是其状态与结果而非其过程。

根据原则2,对本系统间的实体之间的关联进行分析,用户与星座、血型、好友策略之间有组成与被组成的关系;在这里解释一下所谓的好友策略,我们在聊天时,别人可能会加我们为好友,我们可以不通过系统的提示,自动允许,这是一种策略。另外一种策略就是别人要加我们为好友时,先通过系统信息请求我们是否同意。此外,QQ消息和消息类型之间也有组成与被组成的关系。

原则3:实体的属性是实体的本质特征。实体应有标识属性,并指定其中一个作为主标识。联系的属性是联系的结果或状态。属性具有如下几个特点:非多值性、非复合性、非导出性。实体的属性还应有非关联性。

根据原则3,分析本系统中的实体属性。QQ用户的属性包括QQ号(标识属性)、QQ 密码、用户昵称、用户真实姓名、性别和年龄等;星座的属性包括星座的编号(标识属性)和名称;血型的属性包括血型编号(标识属性)和名称;好友策略的属性包括策略编号(标识属性)和策略名称;消息类型包括消息类型编号(标识属性)和消息类型名称;QQ消息的属性包括消息记录编号(标识属性)、消息记录名称、消息接受状态和接发消息的时间原则4:所有基本项在同一E-R图中作为属性要在仅在一个地方出现[5]。

3.2设计E-R图

根据构思E-R图的原则联系本系统的需求分析,将数据库中所涉及的各个实体与它们各自的属性以及各个实体之间的关联用E-R图的形式表现出来,实体用方形表示,属性用椭圆表示,关联关系用没有箭头的直线连接,具体如下图3.1所示:

图3.1QQ系统E-R图

3.3E-R图向关系模型转换原则

(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是关系的候选码。如果与某一端实体对应的关系模式合并,则需要在改关系模式的属性中加入另一个关系模式的码和联系本身的属性。

(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

(3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

(5)具有相同码的关系模式可合并[6]。

根据这5项实体间的联系将上述E-R图转换为关系模型

QQ消息(消息记录编号、消息、消息接受状态、发消息时间)

此为消息实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。

消息类型(消息类型编号、消息类型名称)

此为消息类型实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。用户(QQ号、QQ密码、昵称、真实姓名、年龄、性别)

此为用户实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。

星座(星座编号、星座名称)

此为星座实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。

血型(血型编号、血型名称)

此为血型实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。

好友策略(好友策略编号、好友策略名称)

此为好友策略实体对应的关系模式,该关系模式已包含了联系“组成”所对应的关系模式。

4数据库逻辑结构设计

4.1 数据库需求分析

针对自己所要设计的仿QQ聊天系统的需求,设计如下所示的数据项和数据结构:用户表:QQ号码、QQ密码、加好友的方式编号、昵称、QQ头像编号、性别、年龄、实姓名、星座编号、血型编号

星座表:星座编号、星座名称

信息类型表:信息类型编号、信息类型

聊天信息表:聊天信息表记录编号、发送信息者QQ号、收到信息者QQ号、发送信息、信息类型编号、信息状态、发送时间

好友策略表:加好友的方式编号、加好友的方式设置

好友表:表添加记录、发送者的QQ、好友的QQ

血型表:血型编号、血型以上内容如图4.1所示:

图4.1数据流图

根据本系统的业务逻辑关系,得出了此数据流图,每一个箭头都带表着数据的流向,

而数据的流向直接反映给数据库,并将此信息保存在数据库,从而比较正确的设计出数据库。

4.2 数据库初步关系框架

User(用户表)( QQ号码、QQ密码、加好友的方式编号、昵称、QQ头像编号、性别、年龄、真实姓名、星座编号、血型编号)

Star(星座表)(星座编号、星座名称)

MessageType(信息类型表)( 信息类型编号、信息类型)

Messages(聊天信息表)( 聊天信息表记录编号、发送信息者QQ号、收到信息者QQ号、发送信息、信息类型编号、信息状态、发送时间)

FriendshipPolicy(好友策略表)( 加好友的方式编号、加好友的方式设置)

Friends(好友表)( 表添加记录、发送者的QQ、好友的QQ)

BloodType(血型表)( 血型编号、血型)

4.3数据库关系模式优化

该系统的数据库设计是满足数据库设计的第三范式。在设计数据库的时候例如对本数据库中任意一个表,例如用户表;

在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例如QQ号码,用户昵称,用户真实姓名,年龄(一个人可能只有一个用户昵称,一个QQ号码,用户的编号,一个姓名,电话号码……)

如果一是重复存储用户的QQ号码和姓名。这样,关键字只能是用户的编号。

很显然这种方法是不可取的;

如果用户的QQ号码是关键字,电话号码分为单位电话和住宅电话两个属性。

所以说:用户表中的列是不可再分的(即列的原子性),则可以说明该表满足第一范式!如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。

还拿出上面所说的用户表,例如每个用户都自己的详细信息(即,例如qq的头像编号,血型,星座……)

那么我们可以简单的举几个例子就可以很简单的看出;

a.数据冗余,假设同一种血型由50个学生都一样,那么血型就重复了50次。

b.更新异常,若调整了某种血型,相应的元组血型值都要更新,有可能会出现血型的不

同。

c..插入异常,如果科学家研究出来一种新的血型,由于没人选修,没有qq号作为关键

字,只能等有人选修才能申请qq和录入血型成功。

d.删除异常,如果qq管理员要删除过期的qq或者是很久没有人用的qq,从当前数据库

删除选修记录。那么刚要申请qq号的人,则申请的qq号和个人的血型都无法保存。原因是:血型都要依赖于血型的编号。

解决方法:分成两个关系模式分别在用户表血型编号,和血型表中的血型编号建立关系,即需要时再进行自然联接,恢复了原来的关系[7]。

所以说综合上面所叙述,此数据库满足第二范式。

如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。

仍然按照上面的例子来说明,即例如每个用户都自己的详细信息(即,例如qq的头像编号,血型,星座……)

如果只按照qq作为关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关用户属性将重复存储,插入,删除和修改时也将产生类似以上例的情况。

原因:关系中存在传递依赖造成的。假如要插入星座中的白马座,显然它不属于12星座,这样插入很显然是不会成功的,关键是用户星座的编号和星座表中的编号相互联系起来的,也就是函数决定是通过传递依赖。

解决目地:每个关系模式中不能留有传递依赖。

这样就满足了第三范式!

这样做的目的就是:规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新

原则:遵从概念单一化 "一事一地"原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念的单一化[8]。就是增加系统的稳定性以及系统的成本和后期的维护。

方法:将关系模式投影分解成两个或两个以上的关系模式。

要求:分解后的关系模式集合应当与原关系模式"等价",即经过自然联接可以恢复原关系而不丢失信息,并保持属性间合理的联系。

从而在建立数据逻辑时能够更加清晰明白避免数据的冗杂,降低了出错的可能性使得该系统更加可靠。

通过上面的数据库关系优化之后我们就可以很简单的写出逻辑关系。

4.4具体逻辑模式设计

表4.1用户表Users

表4.2星座表Star

表4.3信息类型表MessageType

表4.4聊天信息表Messages

续表4.4

表4.5好友策略表FriendshipPolicy

表4.6好友表Friends

表4.7血型表BloodType

4.5数据库设计表

在上述每张表中,第一个数据都作为自己所在表的主键,而在表与表之间也有主外键关系存在,对用户表和星座表来说,星座表是主键表,用户表是外键表;对用户表和血型

主键表,用户表是外键表;对聊天信息表和信息类型表来说,信息类型表是主键表,聊天信息表是外键表。

表4.8 设计表Users

表4.9 设计表BloodType

表4.10 设计表Friends

表4.11 设计表FriendshipPolicy

表4.12 设计表Messages

表4.13 设计表MessageType

表4.4 设计表Star

4.6 关系图

图4.2关系图

5程序实现

5.1界面和系统设计

该界面用户可以申请号码,然后注册自己的基本信息,若注册成功就可得到一个QQ 号码,并根据此号码加上自己在注册基本资料时注册的密码就可以实现用户的登录,具体操作见下列各图5.1到图5.14所示:

图5.1用户登录运行界面

具体实现:在Visual https://www.doczj.com/doc/e012953280.html,2005的Windows应用程序里面,首先创建一个名为“MyQQ 用户登录”的主窗体,然后按照需要的功能拖控件,

如果用户名和密码为空:

图5.2 登录提示界面1

MessageBox.Show("请输入登录的号码", "登录提示",MessageBoxButtons.OK, https://www.doczj.com/doc/e012953280.html,rmation);

txtLoginId.Focus();

如果密码有错:

则由图5.3所示:

图5.3登录提示界面2

具体实现代码如下:

MessageBox.Show("请输入密码", "登录提示",MessageBoxButtons.OK, https://www.doczj.com/doc/e012953280.html,rmation);

如果用户名和密码都对:

return false;

}

return true;

}

图5.4申请号码的运行界面

创建“申请号码”主窗体,此窗体由三部分组成,具体操作同上,部分涉及数据库信息的代码如下:

string sql = "SELECT Star FROM Star";

// 修改查询语句,查询血型

sql = "SELECT BloodType FROM BloodType";

// 获得血型的Id

bloodTypeId = GetBloodType();

sql = string.Format("INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name, StarId, BloodTypeId) values ('{0}','{1}','{2}',{3},'{4}',{5},{6})",

txtLoginPwd.Text.Trim(), txtNickName.Text.Trim(), sex,

int.Parse(txtAge.Text.Trim()), txtName.Text.Trim(), starId, bloodTypeId);// 获得星座的Id starId = GetStarId();

sql = string.Format("INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name, StarId) values ('{0}','{1}','{2}',{3},'{4}', {5})",

txtLoginPwd.Text.Trim(), txtNickName.Text.Trim(), sex, int.Parse(txtAge.Text.Trim()), txtName.Text.Trim(),starId);

图5.5登录后运行界面

此界面具体功能未能实现。

5.2界面具体操作

打开用户登录,申请号码注册:

图5.6用户登录

点击申请号码以后,注册自己的基本信息,包括昵称、年龄、性别、密码、真实姓名、星座和血型。

图5.7 用户注册界面

注册成功后,将获得提示。

如图5.8所示:

图5.8注册成功提示

注册成功以后,用申请的号码和自己的密码进行登录。

如图5.9所示:

图5.9用户登录界面

如果用户名和密码有错则会:

如图5.10所示:

图5.10用户登录出错

具体实现代码如下:

MessageBox.Show("请输入密码", "登录提示",MessageBoxButtons.OK, https://www.doczj.com/doc/e012953280.html,rmation);

如果用户名和密码都对:

return false;

}

return true;

其效果图如图5.11所示:

图5.11用户登录成功后的主窗体好友列表——第三方控件运用了第三方SideBar

// 命名空间

using Aptech.UI;

// 添加组

sbFriends.AddGroup("我的好友");

sbFriends.AddGroup("陌生人");

// 添加项

SbItem item = new SbItem((string)dataReader["NickName"], sbFriends.Groups[0].Items.Add(item);

如果要添加好友的话:

将通过三步来实现。

a.查找如图5.12所示

b.添加如图5.13所示

c.反馈成功信息如图5.14所示

图5.12查找好友

图5.13好友列表

图5.14 加载好友已经存在// 添加好友

private void btnAdd_Click(object sender, EventArgs e) {

数据库管理系统的设计与实现

数据库管理系统的设计与实现 1.DBMS的目标 (1)用户界面友好对一个实用DBMS来说,用户界面的质量直接影响其生命力。DBMS的用户接口应面向应用,采用适合最终用户的交互式、表格式、菜单式、窗口式等界面形式,以方便使用和保持灵活性。一般地说,用户界面应具有可靠性、简单性、灵活性和立即反馈等特性。 (2)功能完备DBMS功能随系统的规模的大小而异。大型DBMS功能齐全,小型DBMS功能弱一些。DBMS主要功能包括数据定义、数据库数据存取、事务控制、数据库组织和存储管理、数据库安全保护等等。我们在下面讨论这些功能的内容。 (3)效率高系统效率包括三个方面:一是计算机系统内部资源的使用效率。能充分利用资源(包括存储空间、设备、CPU等),并注意使各种资源负载均衡以提高整个系统的效率,二是DBMS本身的运行效率。三是用户的生产率。这是指用户学习、使用DBMS和在DBMS基础上开发的应用系统的效率。 2.DBMS的基本功能 (1)数据库定义对数据库的结构进行描述,包括外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义(如用户口令、级别、存取权限);存取路径(如索引)的定义。这些定义存储在数据

字典(亦称为系统目录)中,是DBMS运行的基本依据。为此,提供数据定义语言DDL。 (2)数据存取提供用户对数据的操纵功能,实现对数据库数据的检索、插入、修改和删除。一个好的DBMS应该提供功能强易学易用的数据操纵语言(DML)、方便的操作方式和较高的数据存取效率。DML有两类:一类是宿主型语言,一类是自含型语言。前者的语句不能独立使用而必须嵌入某种主语言,如C语言、COBOL语言中使用。而后者可以独立使用,通常以供终端用户交互使用和批处理方式两种形式使用。 (3)数据库运行管理这是指DBMS运行控制、管理功能。包括多用户环境下的并发控制、安全性检查和存取权限控制、完整性检查和执行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保证事务的正确性),这些功能保证了数据库系统的正常运行。 (4)数据组织、存储和管理DBMS要分门别类地组织、存储各类数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法确保较高存取(如随机查找、顺序查找、增、删、改)效率。 (5)数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及有性能监测分析等功能。

数据库课程设计图书管理系统的设计与实现要点

计算机工程学院数据库原理及应用 课程设计报告 课题名称: 专业: 班级: 姓名:图书管理系统的设计与实现 信息管理与信息系统 信管1121 杨** 学号:1121807131 指导老师:周泓、金春霞 2013年12月14日

指导教师(签章): 年月日

课程设计评语 学生姓名:杨**班级、学号:信管 1 1 2 1 1121807131 题目:图书管理系统的设计与实现 综合成绩: 教师评语: 教师(签字): 年月日

中文摘要 图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建 立和维护以及前端应用程序的开发两个方面,一方面要求建立起数据一致性和完 整性强、数据安全性好的库另一方面则要求应用程序功能完备易使用等特点。因 此我结合学校图书借阅的要求,对Visual FoxPro数据库管理系统、SQL语言进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。VFP图书管理系统是一个教育单位不可缺少的部分它的内容对于学校的决策者和图书管理者来说都至关重要所以图书管理系统应该能够为教师和学生提供充足的图书信息和快捷的查询手段。 关键词信息管理,VFP,图书管理,数据库

外文摘要

目录 1引言 (1) 1.1选题背景 (1) 1.2系统环境 (1) 2 系统总体分析 (2) 2.1需求分析 (2) 2.1.1 功能需求 (2) 2.1.2 性能需求 (3) 2.1.3 环境需求 (3) 2.2 可行性分析 (3) 2.2.1 经济可行性 (3) 2.2.2 技术可行性 (3) 2.2.3 管理可行性 (4) 2.2.4 用户可行性 (4) 3系统总体设计......‥ (4) 3.1 软件模块结果设计 (4) 3.1.1 系统方案确定 (4) 3.1.2 软件结构设计 (4) 3.2系统模块功能图 (4) 3.3 数据库设计 (5) 3.4 概念结构设计 (6) 3.4.1实体功能图 (6) 3.4.2 E-R图 (8) 3.5 逻辑结构设计 (8) 4系统实现与测试 (10) 4.1 连接数据库的实现 (10) 4.2 模块功能实现 (10) 5备份和还原数据库 (16) 5.1 规划数据库的还原和备份 (16) 5.2 数据库的备份 (16) 5.3 还原数据库 (18) 结论 (20) 致谢 (21) 参考文献 (22)

论分布式数据库的设计与实现

论分布式数据库的设计与实现 摘要:本文讨论某高校管理信息系统中分布式数据库的设计与实现。该系统架构设计采用C/S与B/S混合的架构方式。在全局数据与各院系的数据关系中,采用水平分片的方式;在全局数据与各部门之间,以及数据库服务器与Web数据库服务器的数据关系中,采用垂直分片的方式。设计过程中采用了基于视图概念的数据库设计方法。开发过程中在数据集成、测试、分布式数据库部署等方面做了大量的工作。并使用合并复制的方式有效地解决了分布式数据库中数据同步的问题。 关键词:分布式数据库架构设计应用数据集成合并复制 针对某高校管理信息系统的开发,该高校共有三个校区,总校区和两个校区,教务处等校级行政部门在总校区办公,15个院、系分布在两个校区。在工作中它们处理各自的数据,但也需要彼此之间数据的交换和处理,如何处理分散的数据和集中的管理是一个难题。学校信息系统中复杂而分散的数据信息之间的交换、相互转换和共享等问题是系统开发要解决的关键性问题,分布式数据库系统技术为解决这个问题提供了可能。 1、系统的架构设计 采用分布式的C/S与B/S混合的架构方式。各院系、部(室)通过局域网直接访问数据库服务器,软件采用C/S架构;其它师生员工通过Internet访问Web 服务器,通过Web服务器再访问数据库服务器,软件采用B/S架构。学校各部门之间工作时数据交互性较强,采用C/S架构可以使查询和修改的响应速度快;其它师生员工不直接访问数据库服务器,能保证学校数据库的相对安全。 2、数据的分布 从全局应用的角度出发,将局部数据库自下而上构成分布式数据库系统,各系部存放本机构的数据,全局数据库则存放所有业务数据,并对数据进行完整性和一致性的检查,这种做法虽然有一定的数据冗余,但在不同场地存储同一数据的多个副本,能提高系统的可靠性和可用性,也提高了局部应用的效率,减少了通讯代价。 将关系分片,有利于按用户需求组织数据的分布,根据不同的数据关系采用了不同的分片方式: (1)在全局数据与各院系的数据关系中,由于各院系的数据是全局数据的子集,采用了水平分片的方式。 (2)在全局数据与教务处、总务处等各部门之间,数据是按照其应用功能来划分的,所以采用了垂直分片的方式。在数据库服务器与Web数据库服务器

最新简单聊天系统的设计与实现

JISHOU UNIVERSITY 专业课课程论文 简单聊天系统的设计与实现题目: 作者: 学号: 所属学院:信息科学与工程学院 专业班级: 总评分: 完成时间: 吉首大学信息科学与工程学院

简单聊天系统的设计与实现 (吉首大学信息科学与工程学院,湖南吉首 416000) 摘要 网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。本程序正是用java 语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt 包,java.swing 包等。 关键词:网络聊天室;java;面向对象;通信机制;图形界面

目录 第一章引言1 第二章关键技术 (2) 2.1开发技术 (2) 2.1.1什么是Java (2) 2.1.2主要特性 (2) 2.1.3 Java中的布局 (3) 2.2 开发工具 (3) 2.2.1 Eclipse (3) 2.2.2 SQL Sever数据库 (3) 第三章需求分析 (4) 3.1可行性分析 (4) 3.1.1 经济可行性 (4) 3.1.2 操作可行性 (4) 3.1.3 技术可行性 (4) 3.2功能分析 (4) 3.2.1 注册 (4) 3.2.2 登录 (5) 3.2.3 私聊 (5) 第四章概要设计 (6) 4.1系统总体结构 (6) 4.2数据库设计 (6) 第五章详细设计 (8) 5.1登录模块设计 (8) 5.2注册模块设计 (9) 5.3消息格式化设计 (10) 5.4 界面设计 (10) 5.4.1 登录界面 (10) 5.4.2 注册界面 (11) 5.4.3 聊天界面 (11) 结束语 (12) 参考文献...... (123)

《数据库系统设计与开发》模拟实习教学大纲

《数据库系统设计与开发》 模拟实习教学大纲 (Database System Design and Development) 制定单位:工学院计算机科学与技术系 制定人:课程组 编写时间:2016年01月06日

第一部分课程概述 一、基本信息 (一)课程代码 课程代码:07110640 (二)课程属性、学分、学时 计算机专业的专业模拟实习、独立实验、2学分、40学时 (三)适用对象 本课程适用的对象为计算机科学与技术专业的本科生 (四)先修课程与知识准备 《C/C++程序设计》,《数据库原理》,《.Net编程》,《软件工程》 二、实验简介 《数据库系统设计与开发》模拟实习以数据库应用系统的设计与开发为主要目标,结合本专业的多门专业课程:《程序设计》、《数据结构》、《数据库原理》、《面向对象程序设计》、《.Net编程》、《软件工程》等开展专业模拟实习。《数据库系统设计与开发》模拟实习将针对一个现有的数据库应用领域,遵照《软件工程》课程中的生命周期法和软件开发规范进行系统分析与设计,按照《数据库原理》中的关系规范化理论进行数据库的模式设计,并结合《.Net编程》所学基于C#语言及.Net集成开发环境进行系统编码与调试,完成一个小型数据库应用系统的开发任务。最后,通过提交实习报告,提高学生科技论文的撰写能力。通过这一完整的实践教学过程,将进一步加强学生实践和动手能力的培养,真正理解和掌握数据库系统设计和开发的方法,提高学习效果,使学生可以学以致用,成为具有专业技能并有一定实际经验的人才。

三、实验项目 实验一:系统需求分析(4学时) (一)实习(实验)类型 综合性实验。 (二)实习(实验)目的和要求 1.理解需求分析在软件工程应用中的重要性 2.熟悉数据库建模的方法 3.掌握如何将客户的实际需求转化为描述性设计语言 (三)实习(实验)内容 为将要开发的系统作出一份明确、详细的需求分析报告。需求分析报告至少应该包含以下几部分: 1.系统的名称; 2.系统概述; 3.系统要实现哪些功能,每个功能的具体描述。 (四)实习(实验)地点 竞秀楼或竞慧楼机房 实验二:系统设计(4学时) (一)实习(实验)类型 综合性实验。 (二)实习(实验)目的和要求 1.掌握SQL Server数据库管理软件的使用,学习CASE工具(Visio或SA2001)的使用,用信息系统开发工具(例如VS2008)设计一个实用的中小型管理信息系统2.掌握系统设计的基本方法,提高解决实际问题、开发信息系统的实践能力 (三)实习(实验)内容 用信息系统开发工具(例如VS2008)设计一个实用的中小型管理信息系统。 1.根据实验时间选择适当规模大小的设计课题 2.根据合理的进度安排,按照软件工程系统开发的流程及方法,进行实验 3.实验过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档,最后要

JAVA聊天室课程设计报告(含源代码压缩文件)

南京晓庄学院 《JAVA程序设计》 课程设计报告 Java聊天室的设计与实现题 目 姓名:戴佳伟 学号:14552019 班级:14软件工程3班 指导教 王峥 师: 完成时间2016.10.7 成绩: 信息工程学院 2016年6月

目录 1引言.............................. . (3) 1.1 java 聊天室开发背景.................................... (3) 1.1java 聊天室开发的目的和意义........ (3) 1.2完成的主要工作.................... (4) 2 需求分析和总体设计................ (5) 2.1 需求分析与设计思路................ (5) 2.1.1 关键技术说明 .................................... . (5) 2.1.2 需求分析..................... ....................... 6 2.1.3 java 聊天室设计方案与思路 (6) 2.1.4 java 聊天室目录结构说明....... (7) 2.2 java 聊天室功能结构 .................................... (8) 3 详细设计.......................... (10) 3.1 java 聊天室模块实现 .................................... (10) 3.1.1 XX 模块实现.................. ..................... 10 4 java 聊天室运行结果.................................... (13) 5课程设计总结...................... .. (15)

简单聊天系统的设计与开发

简单聊天系统的设计与开发 摘要 随着计算机的普及和快速发展,计算机网络已经渗入到我们的日常生活中,而网络聊天系统的使用最为频繁。网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的,通过网络聊天系统,不仅可以联络人们之间的感情,增进人们之间的友谊,而且还使这个世界越来越小,同时也越来越方便。因此,研究网络聊天系统是十分有意义的。 该聊天系统是一个基于C/S架构(即客户机/服务器的系统),采用Visual Studio 2005作为该聊天系统的开发环境,C#作为开发语言,运行的环境为Windows XP操作系统,后台的数据库使用Microsoft SQL Server 2005。该聊天系统能在局域网实现聊天功能,提供用户注册、登录、聊天、修改个人信息、查找/添加好友、更换皮肤、听音乐等功能。 关键词:网络聊天系统;数据库Microsoft SQL Server 2005;Visual Studio 2005

Abstract With the development of computer, Internet has entered our daily life, the most frequently use of Internet is Internet Chatting System. Therefore, it is very valuable and meaningful to study and research Internet Chatting System. Internet Chatting System can help people in chatting with other people far away. You can also have visual talk with other people through Internet Chatting System.So, it can help people to develop friendship with any people who are able to search Internet in the world. The earth looks like smaller than before because you can have relationship with people more convenient. It is based on the system of C/S, use Visual Studio 2005 as exploit language of the environment. Its running environment is Windows XP operating system. And uses Microsoft SQL Server 2005 as its background database management system. Clients can run this Internet Chatting System under Windows XP environment.This system can do a full management on scientific project and scientific and technology paper, providing necessary functions of everyday management, for example, data input, query with more conditions, statistics, report forms output etc. and easy to use. Keywords:Scientific research project management system;Database SQL Server 2005;Visual Studio 2005

数据库系统设计说明书

数据库课程设计——学生信息管理系统 学院:机电工程学院 班级:09工业工程 组员:郎建鹏 学号:0911******* 指导老师:李峰平

目录 第一章系统分析 (2) 1 建立新系统的必要性 (2) 2 业务流程分析(业务流程图) (2) 3 数据流程图 (3) 4 数据字典 (4) 第二章系统设计 (4) 1 数据库设计(E-R) (4) 2系统运行环境 (6) 3输入输出设计 (10) 第三章设计总结 (10) 参考文献……………………………………………………………… 图例说明………………………………………………………………

第一章系统分析 1 建立新系统的必要性 这次的课程设计是在学习完《数据库原理》和《delphi程序设计》基础上进行的一次系统性的训练,既是对所学知识的巩固,也是对自己综合运用所学知识解决实际问题的一次锻炼。学生信息管理系统的主要目的是为了方便学校对学生的信息进行录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。 学生信息管理可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能。 2 业务流程分析(业务流程图)

数据流图是结构化分析中不可缺少的有力工具,它描述了系统的分解,即系统由哪些部分组成,各部分之间有什么联系等。但是,它还不能完整地表达一个系统的全部逻辑特征,特别是有关数据的详细内容。因此,仅仅一套数据流图并不能构成系统说明书,只有对图中出现的每一个成分都给出详细定义以之后,才能全面地描述一个系统。对数据流、数据存储和数据处理的详细描述,需要用数据字典(DD)。它包括数据流、数据存储、外部项和处理过程的详细条目。数据字典中把数据的最小单位定义为数据项,而若干数据项可以组成一个数据结构。数据字典是通过以数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。 第二章系统设计 1 数据库设计(E-R) (1)管理员实体的E-R图 (2)普通用户实体的E-R图

数据库的设计与实现

《数据库原理》课程设计论文 院(系、部)名称: 专业名称: 学生姓名: 学生学号: 指导教师:

系统简介 开发目的和任务 客户信息是个人,机关,企事业等进行业务联系所必需而频繁使用的信息资料,在许多大型应用系统中都有客户信息管理工具,它是企业单位现代化管理的一个重要的组成部分。本系统的任务是制作一个简单,实用的通讯薄,既可以单独使用,也可以作为其他大型应用系统的一个组成部分来使用。 1.系统功能 (1) 总体功能要求 本系统将介绍如何让在Visual FoxPro 6.0开发环境下快速开发数据库和数据表的方法,并在此基础上建立一个表单,通过表单的运行,可以初步体会到什么是程序,什么是数据库应用程序,数据库应用程序是如何进行编辑,修改,增加,删除,查询和退出的. (2) 客户信息管理系统的基本功能 1)登录:本功能主要是为了防止非操作人员对系统随意更改. 2)主界面:为用户提供了一个友好的界面,是维护,查询模块间相互切换的桥梁. 3)维护:本功能模块主要实现数据的浏览,添加,删除,退出等功能. 4)查询:本功能模块主要实现按姓名,职务,出生日期等查询功能. 2. 系统的特点 (1) 数据库设计的考虑 本系统的信息两不太大,因此只涉及一个库,一个表.库名为通讯

录.DBC表名为通讯录.DBF. (2) 提高系统集成化的考虑 为了是系统短小精悍,并最大限度的提高系统设计的效率,在设计中较多的应用了Visual FoxPro 提供的“选项卡”控件和容器控件.除此之外,还采用了页框控件,其目的是在一个窗口上尽可能多的扩展应用空间,容纳最多的信息量. (3)提高可操作性的考虑 由于使用本系统的人员不一定熟悉计算机基本操作,因此要求系统的操作应尽量简单,本系统在设计时已考虑到这一点,尽可能少的使用键盘的地方,要保证用起来“顺手”. 3. 开发工具与运行环境 (1) 开发工具. VFP6.0 为集成开发环境提供了项目管理器,设计器,生成器和向导机制等,使其成为强有力的数据库开发工具. 1)项目管理器. 2)设计器. 3)生成器. 4)向导. (2)运行环境 硬件环境: PⅡ350MHz以上处理器,16MB以上内存,一般需240MB 硬盘空间. 软件环境:Windows 95及以上的操作系统支持.

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 1.1开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 1.2设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 1.3设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 1.4功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。 服务器的主要功能有 1)在特定端口上进行侦听,等待客户连接 2)用户可以配置服务器的真挺端口

数据库系统课程设计--实例

摘要 数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求; 信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径. 校园网信息系统建设的重要性越来越为成人高校所重视. 利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的件。在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数据设计成为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要。 本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。本系统利用IBM DB2企业版本开发出来的。DB2是IBM公司开发的关系关系数据库管理系统,它把SQL语言作为查询语言。 本文的分为5章。其中第1章主要是课题简介及设计的内容与目的。第2章是需求分析,此阶段是数据库设计的起点。第3章是概念设计,它是将需求分析的用户需求抽象为信息结构,这是整个数据库设计最困难的阶段。第4章是逻辑结构设计,它将概念模型转换为某个DBMS所支持的数据模型。第5章是数据库的实施与运行,它包括数据的载入及数据库的运行。 关键词:SQL语言;IBM DB2;数据库设计;教学管理系统 I

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

数据库系统的设计步骤

数据库系统的设计步骤 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。下面小编整理了数据库系统的设计步骤,供大家参考! 进行数据库设计首先必须准确了解和分析用户需求。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。 需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。 调查的重点是,数据与处理。达到信息要求,处理要求,安全性和完整性要求。 分析方法常用SA(Structured Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。 数据流图表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若

干层次的数据流图。系统中的数据则借助数据字典来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS 的概念模型。 设计概念结构通常有四类方法: 自顶向下。即首先定义全局概念结构的框架,再逐步细化。 自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。 逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。 混合策略。即自顶向下和自底向上相结合。 逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。 在这阶段,E-R图显得异常重要。大家要学会各个实体定义的属性来画出总体的E-R图。 各分E-R图之间的冲突主要有三类:属性冲突,命名冲突,和结构冲突。

SQL SERVER数据库系统设计与实现实验报告

SQL SERVER数据库系统设计与实现实验报告 编制教师傅荣会 (适用于计算机科学学院各专业) 计算机科学学院

实验一:数据库的定义、建立和维护指导教师: 实验日期:年月日实验地点:成绩: 实验目的: 了解SQL Server数据库的逻辑结构和物理结构; 了解表的结构特点; 了解SQL Server的基本数据类型; 了解空值概念; 学会在“对象资源管理器”中创建数据库和表; 学会使用T-SQL语句创建数据库和表。 实验内容及基本要求: l、创建一个新的数据库。 创建用于企业管理的员工管理数据库,数据库名为YGGL。 数据库YGGL的逻辑文件初始大小为10MB,最大大小50MB,数据库自动增长,增长方式是按5%比例增长。日志文件初始大小为2MB,最大可增长为5MB(默认为不限制),按1MB增长(默认是按5%比例增长)。 数据库的逻辑文件名和物理文件名均采用缺省值。 事务日志的逻辑文件名和物理文件名也均采用缺省值。 要求分别使用“对象资源管理器”和T-SQL命令完成数据库的创建工作。 2、在创建好的数据库YGGL中创建数据表。 考虑到数据库YGGL要求包含员工的信息、部门信息以及员工的薪水信息,所以数据库YGGL 应包含下列3个表:Employees(员工信息)表、Departments(部门信息)表、Salary(员工薪水情况)表。各表的结构分别为表T2.1、T2.2和表T2.3所示。 表T2.1 Employees表结构 表T2.2 Departments表结构

表T2.3 Salary表结构 要求分别使用“对象资源管理器”和T-SQL语句完成数据表的创建工作。基本要求: 1.写出实验步骤 2.写出实验中遇到的问题及解决的方法

网络编程_基于TCP的简易聊天室_实验报告

网络编程 课程设计说明书 题目名称:基于TCP/IP的网络文字聊天程序设计专业:网络工程

班级: 1201班 学号: 1220140105 姓名:蒋星 指导老师:利平 完成日期: 2014年12月13日

目录 一、实验基本信息概要3 1. 题目要求 3 2. 题目容3 3. 开发环境 3 二、流程图4 三、系统简介5 1.界面5 2. 软件功能 5 3. 系统设计 9 4. 优点与缺点9 四、系统详细设计11 1. ChatServer类11 2. ChatClient 类13 3. SocketException类15 5. 命令协议 15 6. 消息格式 16 五、系统测试16 1. 服务器使用错误16 2. 客户端使用错误17 3. 启动服务器17 4. 启动客户端17 5. 关闭客户端17 6. 启动服务器错误提示18 7. 公开聊天 18 8. 私聊 18 9. 错误的私聊19 10. 更名20 11. 帮助20 12. 非法指令20 13. 非法的指令参数20 14. 连接服务器失败21 六、心得体会21 七、完整代码21 Charserverd.cpp 服务器main函数文件 21 ChatServer.h 服务器类头文件 22 ChatServer.cpp 服务器类 23 ClientInfo.h 客户信息类 33 Charclientd.cpp 客户端main函数 34 ChatClient.h 客户端头文件34 ChatClient.cpp 客户端类 35 InitSock.cpp 初始化WINSOCK类41

SockException.h 异常类41八、[参考文献] 42

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间:2015年11月3日

一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2 背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c. 它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3 定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统 经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关的数据 的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。 c、输出 用户基本信息和聊天容 d、输入 用户根据自身需要,发起聊天 e、安全方面的要求 设置管理员 2.2 目标 该软件的设计目标必须尽量达到人力与设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。 2.3 条件、假定和限制 a、本聊天室建议使用寿命为5-10年 b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭 2.4 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

网络编程 基于TCP的简易聊天室 实验报告

网络编程课程设计 -基于TCP的简易聊天室 一、实验基本信息概要 1.题目要求 熟悉异步网络编程的基本方法,掌握异步网络编程和网络协议设计的方法。要求采用select 模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成编程任务。 2.上机要求 要求采用select模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成下面的任务。 3.题目内容 内容概要:实现一个聊天室,支持多人聊天。也可以增加私聊等功能。 4.开发环境 操作系统:Windows 7 开发语言:C++ 集成开发环境:Microsoft Visual Studio 2010

二、系统简介 1.界面 本软件使用DOS控制台界面,界面风格较为朴素,没用使用复杂的颜色。但是对聊天时界面进行了一定的控制和修正使得界面较为美观,易读。 服务器: 客户端: 2.软件功能 本软件实现了聊天室基本的功能,包括公开聊天,私聊,获取在线用户,更改昵称,获得帮助等。

1)公开聊天 在光标处直接输入消息后按回车即为发送公开聊天,如下图所示。 2)私聊 使用命令【/m 对方UID 消息】即可发送私聊,私聊只有对方可以看到,如下图所示:客户端1,密聊UID为132的用户。 发送后 客户端2,UID为132的用户收到私聊消息。

3)获取在线用户列表 使用命令【/list】即可获得在线用户列表,用户列表会议系统消息的方式返回,如下图所示。命令 发送后 4)更改昵称 使用命令【/name 你的新昵称】即可立即更改昵称,成功修改后服务器会以系统消息的方式返回成功修改的提示。 命令

聊天软件数据库设计

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite来存储配置数据的,Android和iPhone都是使用SQLite来存储数据的。 首先,我们看一下api,所有数据库相关的接口、类都在android.database和android.database.sqlite两个包下。 1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper) 这是一个抽象类,关于抽象类我们都知道,如果要使用它,一定是继承它! 这个类的方法很少,有一个构造方法 SQLiteOpenHelper(android.content.Context context, https://www.doczj.com/doc/e012953280.html,ng.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version); 参数不做过多的解释,CursorFactory一般直接传null就可以 public void onCreate(SQLiteDatabase db) 此方法在创建数据库是被调用,所以,应该把创建表的操作放到这个方法里面,一会儿在后面我们会再详细的说如何创建表。 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)从方法名上我们就能知道这个方法是执行更新的,没错,当version改变是系统会调用这个方法,所以在这个方法里应该执行删除现有表,然后手动调用onCreate的操作

相关主题
文本预览
相关文档 最新文档