谁可以用csharp帮我写个qq程序,高手指点一下?

 我来答
匿名用户
2013-12-15
展开全部
我写过一次,好多功能都没实现,这是我们老师对我们的要求,你有什么问题,加我qq331074366,我教你
数据库设计
数据库名称:MYqq
数据库表信息
(1) 用户表:Users,用来寸放用户的基本信息。安全设置信息
表名 user
主键 ID
列名 数据类型 允许空 说明
Id Int 否 主键,自动增长,标识种子为10000
LoginPwd Varchar(50) 否 用户密码
friendshippolicyid int 否 外键,对应FriendshipPolicy表中的Id,当别人添加自己为好友时,是否同意,需要验证
nickname Vachar(50) 否 用户呢称
faceid int 是 用户头像的索引,使用的imagelist头像列表的索引
sex Varchar(50) 否 性别,两个值:男,女
age int 否 年龄
name Varchar(50) 是 真实姓名
startid int 是 外键,对应star表中的ID表示星座
bloodtypeid int 是 外键,对应boodtype中的id,表示血型

(2) 好友表:friends,用来存放用户之间的好友关系,一对好友关系存为一条记录。
表名 Friends
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增
Hostid Int 否 好友关系中,主任的号码
FriendId Int 否 好友关系中,好友的号码

(3)好友策略表:FriendshipPolicy ,用来存放几种好友策略。

表名 FriendshipPolicy
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子1
FriendshipPolicy Varchar(50) 否 好友策略的描述
FriendshipPolicy 表中包含3条数据,如图 1 所示。
允许任何人加我为好友
需要验证
不允许

(4)星座表:Star ,存放12星座的名称和编号,是基础数据表,各星座的名称进提供的电子资料。
表名 Star
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
Star Varchar(50) 否 星座名称

(5)血型表:BlooType,存放4中血型的名称和编号,是基础数据表。

表名 BlooType
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
BlooType Varchar(50) 否 血型名称

(6)消息表:Messages,存放聊天信息、添加好友请求纤细。
表名 Messages
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,表识种子 1
FromUserId Int 否 发消息的用户号码
ToUserId Int 否 收消息的用户号码
Messages Varchar(50) 是 消息内容
MessageType Int 否 外键,对应 MessafeType表中的Id。表示消息类型
MessageState Int 否 消息状态,0表示未读,1表示已读
MessageTime dateTime 否 消息发送的时间,插入数据是,由数据库自动生成

(7)消息类型表:messagetype,存放消息的类型描述和编号。

表名 messagetype
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
MessageType Varchar(50) 否 消息类型

Messagetype 表包含2条数据,如图所示
Id messagetype
1 普通聊天消息
2 添加好友消息

三、要求

利用winform编程,实现myqq聊天工具。要求实现用户注册,用户登录,好友列表,修改个人信息,查找/添加好友,聊天功能,该工具是c/s结构,客户端通过公共的数据库交换信息,消息的发送和读取都是通过操作数据库来完成的。在程序中采用定时扫描数据库的方式来查找未读消息。

1.“注册”窗口界面如下图所示。输入注册的基本资料,向数据库插入一条用户记录,在数据库中自动生成一个新的myqq号码(users表的id 字段),以消息框的形式告诉用户他申请成功的myqq号码。

2.“登陆”窗口界面如下图所示。单击“申请号码”标签,打开注册界面。在登陆界面输入myqq号码和密码后,单击‘登陆‘按纽,打开登陆后的主界面’忘记密码功能不要求实现,只要放置一个带链接的标签控键即可。

3登陆后的主界面如下图所示。登陆后要在“我的好友”列表中显示好友列表,包括好友的头像和呢称,在主窗体的顶部要显示当前登陆的用户头像,呢称和myqq号码。
实现右键菜单功能,通过右键菜单能够切换大小头像。能够把陌生人转为好友,能够删除一个好友或陌生人。
当有新的聊天消息时候。发来的消息的好友头像要闪动,双击头像弹出“聊天”窗口后,头像停止闪动,当有添加好友请求消息时,窗体底部的小喇叭要闪烁,单击喇叭弹出“系统消息”窗体后,喇叭停止闪烁。

通过主窗体下方的按纽打开“查找/添加好友”窗体,“个人信息”窗口,“系统消息”窗口

提示:

显示好友列表的控键可以用提供的第三方控键sidebar,见提示的电子资料,该控键的命名空间为Aptech.ui。
Sidebar是一个能够以分组形式显示列表的控件,能够实现类似QQ的好友分组功能,sidebar控键中可以包含很多组(sbgroup),每个组可以包含很多sidebar项(sbitem)。

Sidebar的列表项有两种显示方式:大图标和小图标,它可以通过它的view属性来设置。
Sidebar 控件还有一个imagelist 属性,可以和一个imagelist控件关联,列表项中显示的
图片就是存放在imagelist控件中的图片。可以通过Sidebar项(sbitem)的imageindex
来指定图片在imagelist控件中的索引。
代码提示:
//添加Sidebar的两个组
Sbfriends.addgroup(“我的好友”);
Sbfriends.addgroup(陌生人);

//创建一个Sidebar项,指定显示的文本和图片索引
Sbitem item = new SbItem((string)dataReadwr[“NickName”],(int)dataReader[“FaceId”]);
//向“我的好友“组中添加一项
sbFriends.Group[0].Item.Add(item);

4.“查找/添加好友”窗体界面如下图所示。

点击“查找”后结果如下图所示:

单击“上一步”则回到“基本查找”页面。
点击“精确查找”,如下图所示:

输入帐号或呢称,点击“查找”可以显示查询结果。

“高级查找”界面如下图所示:

操作方法同基本查找类似。

单击“查找”按纽后在窗体中显示查询结果。要求以datagridview 控键显示查找的结果。选中一个用户,单击“加为好友”按纽,进行添加好友的操作,并根据不同的情况弹出消息对话框,告知用户如“添加好友请求成功”,“对方不让任何人添加他为好友“,“对方需要身份验证,已发出验证请求”等。如果需要身份验证,不要求输入验证消息内容,直接发送验证消息即可。

5“聊天”窗口界面如图13 所示。当有消息来时。主窗体中的好有头像闪烁,双击头像,弹出“聊天”窗口,在“聊天”窗口中显示好友为读消息。并能够给好友发送消息。

6“个人信息”窗口界面如下图所示,在“个人信息”窗口能够修改个人的基本资料,进行安全设置。单击头像旁边的按纽,弹出“头像选择“窗口。

7“头像选择”窗体界面,头像列表要求使用listview 控键实现。双击窗口中头像或者单击“确定”按纽,更新“个人信息”窗口中的头像。

8“系统消息”窗口界面如QQ。单击主窗体低部的喇叭按纽,弹出“系统消息”窗口,显示向用户发送的未读的添加好友请求消息。单击“同意”按纽,实现对方添加当前用户为好友的操作。

四、推荐实现步骤

1. 建立数据库,数据表,建立表的关系。
2. 建立myqq项目
(1) 实现注册功能
(2) 实现登陆功能
(3) 实现查找/添加好友功能
(4) 实现好友列表功能
(5) 实现聊天功能
(6) 实现修改个人信息功能

3. 测试运行

一. 注意事项
A. 仔细审题,把题目要求理解准确;
B. 请注意按照界面设计要求来进行界面设计
C. 请注意代码的书写,命名符合规范和适当的注释;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式