3.3 性能需求
首先要求程序要完全可靠,可以应付各种由于系统问题产生的错误,比如初始网络失败等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。
程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。
开发文档要有好的易理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。
要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的耦合,以免维护困难。
3.4 系统功能需求
这个程序要实现的功能如下:
(1)程序启动之后就能直接进入登陆界面,输入错误时会提示。 (2)登陆界面有注册新用户选项,点击进入注册界面。 (3)注册成功后会提示自动生成的QQ号码。
(4)登陆后进入主界面,用户可以添加好友,可以直接查找,也可以按条件查找,还可以查看所有用户。
(5)当双击列表中某个用户头像的时候,要弹出聊天对话框,可以在其中编辑要发送的聊天信息,并进行发送。
(6)聊天界面要人性化,下面是发送框,上面对方发来的上一条聊天记录。
(7)可以修改自己的个人资料,也可以更换头像。
第四章 系统设计
4.1 系统功能结构
图4-1 系统功能结构
4.2 系统模块划分
登录模块:实现用户登录功能。在没有账号的情况下可以选择进入注册新用户界面。
注册模块:实现注册新用户功能。注册信息包括必填基本资料与选填资料。
主模块:实现列表功能。列表包括好友列表与陌生人列表。通过主界面可以进行聊天功能,也可以打开查找添加好友功能与个人设置功能等。
聊天模块:实现发送消息与接收消息功能。通过公共的数据库交换信息,消息的发送和读取都是通过操作数据库来完成的。在程序中采用定时扫描数据库的方式来查找未读消息。也能实现删除好友功能。
查找添加好友模块:实现查找好友功能与添加好友功能。主要方法有精确查找、按条件查找,与查看所有用户。
个人设置模块:实现修改个人资料。
更换头像模块:实现更换用户头像。 系统消息模块:实现添加好友信息的读取。
4.3 系统整体流程图
该网络聊天工具系统整体流程图如图4-2所示:
图4-2 系统整体流程图
第五章 详细设计
5.1 登录界面设计
当用户运行程序时,首先进入的是登录界面,如图5-1所示:
图5-1 登录界面
如果没有账号,则单击“注册新用户”标签,可以打开注册界面;
如果有已注册的账号,则在输入账号与密码后,点击“登录”按钮,可以
打开主界面。
如果输入有误,则出现图5-2所示界面:
图5-2 输入错误
程序也不允许在账号或密码处输入空格字符,如有此情况,则会出现图5-3与图5-4所示界面:
图 5-3 未输入账号 图5-4 未输入密码
当点击“登录”按钮时,则触发登录按钮事件,其处理流程图如图5-5所示:
图5-5 登录事件流程图
其中登录按钮的代码实现如下:
登录按钮事件处理
private void btnLogin_Click(object sender, EventArgs e) {
bool error = false; 标志在执行数据库操作的过程中是否出错 如果输入验证成功,就验证身份,并转到相应的窗体 if (ValidateInput()) {
int num = 0; 数据库操作结果 try {
查询用的sql语句
string sql = string.Format(\Users WHERE Id={0} AND LoginPwd = '{1}'\,
int.Parse(txtLoginId.Text.Trim()), txtLoginPwd.Text.Trim());
创建Command 对象
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open(); 打开数据库连接
num = Convert.ToInt32(command.ExecuteScalar()); }
catch (Exception ex) {
error = true;
Console.WriteLine(ex.Message); } finally {
DBHelper.connection.Close(); 关闭数据库连接 }
if (!error && (num == 1)) 验证通过 {