ImageVerifierCode 换一换
格式:DOC , 页数:40 ,大小:1.31MB ,
资源ID:1023489      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1023489.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(校园即时通讯设计与开发--实训报告.doc)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

校园即时通讯设计与开发--实训报告.doc

1、计 算 机 与 信 息 工 程 学 院题目: 校园即时通讯设计与开发 姓 名: 学 号: 专 业: 计算机科学与技术 指导教师: 起止日期: 12.11.2613.01.20 计 算 机 与 信 息 工 程 学 院实践题目校园即时通讯设计与开发学生姓名 班级学号指导教师职称实践地点计算机基础实验室实践日期2012年11月26日起至2013年1月20日选题的目的: 现在的大学网络的覆盖已经非常广泛,对于我们学校来讲已经有了非常完善的校园网络,校园的日益扩大也增加了师生之间的联系,这样一来就需要一个能方便师生联系的即时通讯系统,对于由于大家目前的IM都不统一,所以开发一款针对大学校园的即时通讯系统

2、是很有必要的,通过这套系统不仅仅能够方便师生联系,而且还融合了办公,校园通知等等,加上学校比较完善的校园网络,这套系统更能体现出来网络校园的特色。技术要求:1、系统要求利用VC#.NET开发工具,结合mysql数据库,采用C/S架构;2、系统的主要功能有:(1)通讯:信息的发送,信息查询,信息推送。(2)办公:办公提醒,校园信息查询进度安排:2012年11月26日2012年12月09日 可行性研究、需求分析2012年12月10日2012年12月23日 总体设计2012年12月24日2013年01月06日 详细设计2013年01月07日2013年01月13日 系统调试、测试2013年01月14日

3、2013年01月18日 撰写实训报告2013年01月19日2013年01月20日 验收主要参考资料:1 朱晔C#与.NET 4高级程序设计(第5版)人民邮电出版社2 陈向阳,巨修练 网络科学:原理与应用 机械工业出版社3 王志刚,江友华 MySQL 高效编程 人民邮电出版社4 张龙祥.UML与系统分析设计(第二版) M. 北京:人民邮电出版社, 2007.教师签名: 年 月 日目 录1 引言12 需求分析12.1 用例图12.2 用例描述43 系统设计83.1 系统架构设计83.2 系统功能模块划分93.3 系统数据库设计94 系统实现124.1 用户登陆124.1.1 用户登录124.1.2

4、 系统主界面144.1.3 用户通讯窗口154.1.4 校园消息查询194.1.5 用户办公提醒设置204.1.6 个人信息修改224.1.7 系统设置244.1.8 日程安排提醒设置264.1.9 聊天记录查看284.2 业务逻辑及数据库操作294.2.1 数据库操作294.2.2 网络通讯315 系统测试335.1 测试基本要求335.1.1 内容检查335.1.2 链接检查345.1.3 易用性测试345.1.4 功能检查345.1.5 容错性测试345.2 测试举例355.2.1 输入域测试355.2.2 页面控件检查355.2.3 功能测试366 总结387 参考文献3801 引言由

5、于即时通信软件的兴起,能够进行即时互通的“内容”正迅速由语音全面扩展到图像、文字、数据等方面,不过“多功能”还不是即时通信的全部内涵,能够跨越互联网、手机、固定电话等多个平台进行通信才是即时通信未来的价值所在。一位业内人士认为,即时通信已经跨越原来狭义上的“网络”概念,正向更为广义的方向发展,未来的即时通信软件可以随时随地和任何人进行任何方式的沟通,不仅是语音,还包括图像、资料、数据等等,不仅在电脑上,还可以在手机、固定电话等任何终端上。现在的大学网络的覆盖已经非常广泛,对于我们学校来讲已经有了非常完善的校园网络,校园的日益扩大也增加了师生之间的联系,这样一来就需要一个能方便师生联系的即时通讯

6、系统,对于由于大家目前的IM都不统一,所以开发一款针对大学校园的即时通讯系统是很有必要的,通过这套系统不仅仅能够方便师生联系,而且还融合了办公,校园通知等等,加上学校比较完善的校园网络,这套系统更能体现出来网络校园的特色。2 需求分析本系统总体目标是为了实现网络通讯。通过系统实现和对方进行在线交流或者发送离线消息,并且还能通过该信息查询全校师生的基本信息,通过该系统还能够查询学校的最新通知或者之前的通知,并且根据师生的日常学习和工作的需要还能够设置工作提醒。2.1 用例图用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的

7、关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素。1、IM系统的用例图(如图2-1所示)。图2-1 IM系统用例图2、登陆子系统的用例图(如图2-2所示)。 图2-2 登陆子系统的用例图3、通讯子系统的用例图(如图2-3所示)。 图 2-3 通讯子系统的用例图4、信息修改子系统的用例图(如图2-4) 图 2-4 信息修改子系统的用例图5、信息查询子系统的用例图(如图 2-5) 图 2-5 信息查询子系统的用例图2.2 用例描述用例是软件工程或系统工程中对系统

8、如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何同最终用户或其它系统交互(interact)的,也就是谁可以用系统做什么,获得一个明确的业务目标。如下为IM系统的用例描述。用例名称:登录前台用例目的:登录前台,让用户显示主界面参与者: 普通用户前置条件:用户已经注册过事件流: 第一步:系统显示登录界面 第二步:用户输入登录信息 第三步:用户点击登录 第四步:系统验证登录信息正确,是否为空等,如果正确,则进入系统主界面,如果不正确则继续执行第二步后置条件:用户登录成功,系统才会显示主界面用例名称:通讯信息的发送用例目的:成功发

9、送信息,是对方能成功的接收的信息参与者:普通用户前置条件:用户已经登录,打开聊天界面事件流: 发送文本信息 第一步:选中文本信息输入框 第二步:输入文本信息,如果超过限制的字数,则不能再输入 第三步:点击发送按钮发送表情 第一步:在聊天界面,点击表情选项,弹出表情列表 第二步:选中需要的表情,单击显示的信息输入框内 第三步:点击发送发送图片 第一步:在聊天界面,点击发送图片选项,弹出图片路径选择框 第二步:选择图片所在路径,点击打开按钮,图片会显示在信息输入框内 第三步:点击发送发送文件 第一步:在聊天界面,点击发送文件选项,弹出文件路径选择框 第二步:选择需要发送文件的路径,点击确定 第三步

10、:点击发送字体修改 第一步:在聊天界面,点击字体选项,弹出字体选择界面 第二步:选择需要修改的字体大小,字形等,点击确定 后置条件:当前处于聊天界面,表情列表,图片、文件路径选择框,字体选择框点击弹出用例名称:帐号信息修改用例目的:让用户对自己所用的帐号信息进行修改参与者:用户前置条件:该用户已经登录事件流:第一步:选中该用户,点击修改用户名及用户资料第二步:弹出更改用户名对话框第三步:对相关条目进行修改,点击确定第四步:系统检查用户填写的新用户名是否为空,如果不为空则执行下一步。否则判断用户资料信息是否全部为空,如果用户资料全为空,则用户名采用默认名称,执行下一步,否则显示提示对话框,跳转到

11、第三步。第五步:保存修改信息后置条件:更改用户名对话框关闭,用户名显示修改后信息用例名称:好友信息修改用例目的:让用户对自己好友所用的用户名信息进行修改参与者:用户前置条件:该用户已经登录,修改对象已加为好友事件流:第一步:选中该好友,点击修改用户名第二步:弹出更改用户名对话框第三步:对备注名进行修改,点击确定第四步:系统检查用户填写的新用户名是否为空,如果不为空则执行下一步。否则判断用户资料信息是否全部为空,如果用户资料全为空,则用户名采用好友默认名称,执行下一步,否则显示提示对话框,跳转到第三步。第五步:保存修改信息后置条件:更改用户名对话框关闭,该好友用户名显示修改后信息用例名称:好友分

12、组修改用例目的:让用户对自己好友分组信息进行新增,删除,修改参与者:用户前置条件:该用户已经登录事件流:(增加)第一步:点击新建组,系统显示新建组名对话框第二步:填写新建组信息,点击确定第三步:保存增加信息,系统关闭新建组名对话框(删除)第一步:选中所要删除的分组名第二步:点击删除,进行该分组信息的删除第三步:系统提示删除成功(修改)第一步:选中所要修改的组名第二步:对相关条目进行修改第三步:点击保存,系统提示修改成功后置条件:页面自动转跳到即时通讯界面用例名称:声音设置 用例目的:让用户选择消息提示声音的开关并自定义消息提示声音。 参与者:用户 前置条件:用户处于已登录状态。 事件流: 第一

13、步:显示声音设置界面。 第二步:用户设置消息提示声音的开关或者自定义消息声音,并提交设置。 第三步:系统应用声音设置。 后置条件:声音设置已应用。用例名称:快捷键设置 用例目的:让用户自定义快捷键,使软件使用更快捷方便。 参与者:用户 前置条件:用户处于已登录状态。 事件流: 第一步:显示快捷键设置界面 第二步:用户自定义快捷键,并提交设置。 第三步:系统判断已定义快捷键是否存在冲突。如果存在,则返回上一步;如 果不存在,则继续进入下一步。 第四步:系统应用快捷键设置。 后置事件:快捷键已应用。用例名称:常规设置 用例目的:用户按照个人喜好选择锁需要的常规设置。 参与者:用户 前置条件:用户处

14、于已登录状态 事件流: 第一步:显示常规设置界面 第二步:用户选择所需要的设置,并提交。 第三步:系统应用常规设置。 后置条件:已应用常规设置。用例名称:文件设置 用例目的:设置文件接收的路径参与者:用户 事件流: 第一步:显示文件设置界面 第二步:选择或填写接收文件的默认路径,并提交 第三步:系统判断默认文件接收路径是否为空。如果为空,返回上一步;如果不为空,则继续下一步。 第四步:系统应用文件设置。 后置事件:文件设置已应用。用例描述:查询 用例目的:使用户可以清晰的查看好友的信息,查看学校的通知信息 参与者:用户前置条件:查询界面已经打开 事件流: 好友查询 第一步:点击查询按钮选,显示

15、信息查询界面 第二步:选择好友查询选项卡,在搜索栏搜索好友信息,如果为空,怎不能搜索,如果查询信息格式不对,则没有结果,成功搜索,会显示与相关信息有关的好友 第三步:右击可以添加好友 第四步:提示是否添加该用户为好友 第五步:添加则点击确定,不同意则取消 校园信息查询 第一步:点击校园信息选项卡,显示校园通知信息 第二步:输入需要查询的某日期的学校通知的信息,将显示此日期的所有校园通知的信息 第三步:点击查看后置条件:用户已查询成功,成功退出查询界面 用例描述: 聊天记录 用例目的:用户查看聊天记录 参与者:用户 前置条件:用户打开聊天界面 事件流: 第一步:点击聊天记录选项,聊天界面右侧弹出

16、聊天记录界面 第二步:在日期搜索栏输入需要查看的日期记录 第三步:再次点击聊天记录按钮,退出查看 后置条件:聊天记录弹窗关闭 用例描述:校园即时通知查看 用例目的:即时了解校园的通知 参与者:用户 前置条件:用户在某时间段第一次登录,学校在此时间段有消息通知 事件流: 第一步:在软件图标上会自动弹出信息通知小窗体 第二步:点击查看,则启动连接,连接到校园信息通知处,取消则推出弹窗 后置条件:用户已查看窗体或取消窗体3 系统设计3.1 系统架构设计本系统采用三层架构设计,将整个业务应用划分为表示层、业务逻辑层、数据访问层三层。数据访问层DAL:用于实现与数据库的交互和访问,从数据库获取数据或保存

17、数据到数据库的部分。业务逻辑层BLL:业务逻辑层承上启下,用于对上下交互的数据进行逻辑处理,实现业务目标。表示层UI:主要实现和用户的交互,接收用户请求或返回用户请求的数据结果的展现,而具体的数据处理则交给业务逻辑层和数据访问层去处理。三层架构是将系统按其作用分成三部分,每部分解决自己负责的流程。3.2 系统功能模块划分系统功能模块图如图3-1所示。图3-1 系统功能模块图3.3 系统数据库设计本系统采用mysql5.5建立和维护数据库,该数据库主要是用于以下任务:班级信息,客户端状态,院系信息,用户信息,行政部门信息,专业信息,校园信息。数据库中主要有以下表:(1)用户信息表(im_user

18、),用于保存用户的基本信息,包括用户id,登陆密码,用户名,性别,签名,邮箱,电话号码。用户信息表结构如图3-2所示。图3-2 用户信息表(2)客户端状态表(usr_status),主要包括以下字段:用户id,客户端登陆ip,最近一次刷新的时间,登陆状态。客户端状态表结构如图3-3所示。图3-3 客户端状态表(3)院系信息表(department)用于保存院系的基本信息,包括院系id,院系名称。院系信息表结构如图3-4所示。图3-4 院系信息表(4)未接收信息表(not_receive_message)用于记录未接收的信息,包括发送时间,发送人id,接收人id。未接收信息表结构如图3-5所示。

19、图3-5 未接收信息表(5)专业信息表(profession)用于保存学校各个专业的基本信息,包括专业id,专业名称。专业信息表结构如图3-6所示。图3-6 专业信息表(6)管理者信息表(manager)用于保存管理者所属行政部门的信息。管理者信息表结构如图3-7所示。图3-7 管理者信息表(7)班级信息表(class)用于记录班级的基本信息,包括班级id,班级名称。班级信息表结构如图3-8所示。图3-8 班级信息表(8)学生信息表(student)用于保存学生的基本信息,包括用户id,院系id,专业id,班级id。学生信息表结构如图3-9所示。图3-9 学生信息表(9)教职工信息表(teac

20、her)用于记录教职工所属院系的信息。包括教职工id,院系id。教职工信息表结构如图3-10所示。图3-10 教职工信息表4 系统实现4.1 用户登陆4.1.1 用户登录用户登陆如图4-1所示。如果输入信息有误则会提示错误信息,需要重新输入。图4-1 会员注册页面首先程序在启动时会自动加载上一次的登陆记录下来的信息。包括服务器信息,用户民,如果上次登录时还选择了记住密码则在登陆框中密码会以“*”代替,直接进行登陆。读取配置文件如下:/ / 读取配置文件 若读取不成功,重建配置文件 / private void ReadINI() boBox1.Text = inifile.Readfile(L

21、ogin, server); this.textBox1.Text = inifile.Readfile(Login, ui); if (inifile.Readfile(Login, pwd) != ) this.textBox2.Text = dl.Decrypto(inifile.Readfile(Login, pwd); if (inifile.Readfile(Login, Remember) = true) this.checkBox1.CheckState = CheckState.Checked; if (inifile.Readfile(Login, AutoLogin) =

22、 true) this.checkBox2.CheckState = CheckState.Checked; 本次登录成功后,系统会根据用户选择的进行保存信息配置信息,以便以后可以快速登录:代码如下:/ / 写入配置文件 / private void SetINI() inifile.Writefile(Login, server, boBox1.Text); inifile.Writefile(Login, ui, this.textBox1.Text); inifile.Writefile(Login, Remember, this.checkBox1.Checked.ToString()

23、.ToLower(); inifile.Writefile(Login, AutoLogin, this.checkBox2.Checked.ToString().ToLower(); if (this.checkBox1.Checked = true) inifile.Writefile(Login, pwd, dl.Encrypto(this.textBox2.Text); else inifile.Writefile(Login, pwd, ); 用户登录判断的代码如下:/ / 登陆判断 / / 账号 / 密码 / private bool Check_Login(string ui,

24、string pwd) DBHelper.DBHelper db = new DBHelper.DBHelper(boBox1.Text.Trim(), nyist_im_test, nyist_im_test, nyist); DataSet ds = new DataSet(); ds= db.Login(ui, dl.Encrypto(pwd); if (ds.Tables0.Rows.Count != 0) /if (db.GetColumn(SELECT state_num FROM user_state WHERE userid= + ui + )=1) / / return fa

25、lse; / fm = new Frm_Main(db,ds,this.textBox1.Text,this); user_name = ds.Tables0.Rows0.ItemArray0.ToString(); return true; return false; 4.1.2 系统主界面系统主界面如图4-3所示。图4-3系统主界面登录成功后会太转到系统的主界面,主界面会自动加载校内的所有用户的列表,包括院系,专业,教职工,行政单位等等,主要代码实现如下:private void Tree_Group_NodeMouseClick(object sender, TreeNodeMouseC

26、lickEventArgs e) if (e.Button = MouseButtons.Right) this.Tree_Group.SelectedNode = e.Node; if (Tree_Group.SelectedNode.ImageIndex = 2) contextMenu_tree.Items0.Visible = true; contextMenu_tree.Items1.Visible = true; contextMenu_tree.Items2.Visible = true; else contextMenu_tree.Items0.Visible = false;

27、 contextMenu_tree.Items1.Visible = false; contextMenu_tree.Items2.Visible = false; this.contextMenu_tree.Show(Tree_Group, e.Location); this.str_name = e.Node.Text.ToString();/选中的节点信息 else if (e.Button = MouseButtons.Left) if (e.Node.IsExpanded = false) e.Node.Expand(); this.Tree_Group.SelectedNode =

28、 e.Node; if (e.Node.Nodes.Count = 0&e.Node.ImageIndex!=2) Upload_friend(e.Node.Name,e.Node.Parent.Text,e.Node); else if (e.Node.IsExpanded = true) e.Node.Collapse(); else MessageBox.Show(test); 4.1.3 用户通讯窗口在如图4-4所示的就是用户之间进行聊天的窗口图4-4 用户聊天窗口 当用户主动与对方发起聊天请求的时候可以通过两种方式进行: 1:可以通过双击用户列表中的用户就能直接弹出聊天窗口 主要代码

29、如下: /双击好友,进行聊天 private void Tree_Group_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) if (e.Node.ImageIndex = 2) Chat_Show(e.Node.Name,e.Node.Text); 2:用户也可以通过右击用户节点,会弹出快捷菜单,菜单中有聊天选项,代码实现如下: private void contextMenu_tree_ItemClicked(object sender, ToolStripItemClickedEventArgs e)

30、this.contextMenu_tree.Hide(); switch (e.ClickedItem.Text) case 发送消息: if (this.Tree_Group.SelectedNode.ImageIndex = 2) Chat_Show(this.Tree_Group.SelectedNode.Name, this.Tree_Group.SelectedNode.Text); break; case 发送文件: MessageBox.Show(发送文件); break; case 查看资料: if (this.Tree_Group.SelectedNode.ImageInde

31、x = 2) if (frm_info_show = null|frm_info_show.IsDisposed) frm_info_show = new Frm_Info_Show(str_name, this.Tree_Group.SelectedNode.Name.ToString(), db); frm_info_show.Show(); else frm_info_show.Activate(); break; case 刷新: if(Tree_Group.SelectedNode.Nodes.Count!=0) if (Tree_Group.SelectedNode.Nodes0.

32、ImageIndex = 2) if (Tree_Group.SelectedNode.IsExpanded) Tree_Group.SelectedNode.Toggle(); Tree_Group.SelectedNode.Nodes.Clear(); MessageBox.Show(刷新完毕!); break; 当对方像自己发起聊天请求时,聊天窗口会自动弹出,主要代码如下: / / 新建聊天窗口 / / 对方账号 / 对方姓名 / 返回新建的窗体对象 private void Create_Char(string user_id, string user_name,string info

33、) try f_chat = new Frm_Chat(user_id, user_name); f_chat.from_close += new dell_close(f_chat_from_close); f_chat.SendInfo += new IM.Frm_UI.Communication.Message(f_chat_SendInfo); list_chat.Add(f_chat); /Application.DoEvents(); if (info != ) ImShoeMessage showinfo = new ImShoeMessage(f_chat.Receive_info); this.Invoke(showinfo,info); f_chat.Show(); /f_chat.Receive_info(info); /Application.DoEvents(); /f_chat.Activate();

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922