软件课程设计报告
软件工程课程设计报告

软件工程课程设计报告( 2015 -- 2016 学年第一学期)课程名称:软件工程课程设计题目:学生宿舍管理系统院系:控制与计算机工程学院班级:组号:组长:组员:指导教师:设计周数:两周小组成绩:日期:2016 年1月8日《软件工程》课程设计任务书一、目的、要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神。
二、主要内容1.运用面向对象方法进行校园宿舍管理系统的需求分析与设计;2.建模语言采用UML,以Rational Rose为建模工具,进行系统的静态建模和动态建模;3.利用对象模型自动生成数据模型,自动建立数据库;4.使用hibernate技术以面向对象的方式编程管理数据库,前端使用html+css结合javaScript 进行设计,后台逻辑采用java来实现,整个系统采用了ssh框架来实现,使得各个模块低耦合,分层明确,提高了代码的重用以及二次开发;5.撰写课程设计报告。
三、任务分配四、进度计划序号设计内容名称完成时间备注1 分组及确定题目1个工作日2 初步的需求分析与设计建模, 确定实2个工作日现平台,并搭建环境3 详细的需求分析与设计建模2个工作日进行中期检查4 关键模块的实现与测试3个工作日5 编写课程设计报告1个工作日6 验收检查及评定成绩1个工作日五、设计成果要求1.建立系统分析模型与设计模型;2.初步建立系统原型,实现关键的功能;3.编写课程设计报告。
六、考核方式1.系统演示及讲解占50%。
2.设计报告占50%。
指导教师:日期:2015 年12 月25 日《软件工程》课程设计成绩评定一、指导教师评语二、成绩学号姓名成绩备注指导教师:日期:2015 年 1 月8 日摘要:学生宿舍管理是学校的一项重要工作,使用计算机技术来管理学生宿舍,不但可以节省时间、人力和资源,更能全面有效地掌握学生的基本情况,及时获取最新的准确资料和信息,加强对来访人员的管理,优化宿舍内部信息的公示,提高报修物品的处理效率,督促学生提高宿舍的卫生质量,重点监控学生缺寝情况,为同学们营造一个良好、舒适、安全的宿舍环境,从而提高生活质量。
《工程软件应用》课程设计报告

课程设计报告:工程软件应用一、引言随着科技的进步,工程软件在各个领域的应用越来越广泛,对于提高工作效率,降低生产成本,提升产品质量具有重要意义。
本课程设计报告将介绍如何应用工程软件进行实际项目的设计与开发。
二、工程软件介绍本课程设计所使用的工程软件为AutoCAD和SolidWorks。
AutoCAD是一款广泛应用于二维绘图和三维建模的工程软件,而SolidWorks则是一款功能强大的三维CAD软件,适用于进行复杂的机械设计和仿真。
三、项目设计流程1. 需求分析:首先对项目需求进行详细分析,明确设计目标,为后续的设计工作打下基础。
2. 方案设计:根据需求分析结果,设计出满足要求的方案。
3. 详细设计:使用AutoCAD进行二维图纸设计,使用SolidWorks进行三维建模。
4. 仿真分析:使用SolidWorks的仿真功能对设计进行静态和动态分析,确保设计的有效性。
5. 优化改进:根据仿真结果对设计进行优化改进,提高设计的性能。
6. 文档编写:编写详细的技术文档,记录设计的详细过程和结果。
四、具体实施步骤1. 需求分析:明确项目需求,确定设计目标,制定设计方案。
2. 方案设计:使用AutoCAD和SolidWorks进行初步方案设计。
3. 详细设计:使用AutoCAD绘制二维图纸,使用SolidWorks 建立三维模型。
4. 仿真分析:使用SolidWorks的仿真功能对设计进行静态和动态分析。
5. 优化改进:根据仿真结果对设计进行优化改进。
6. 文档编写:编写详细的技术文档,记录设计的详细过程和结果。
五、结论通过本次课程设计,我们深入了解了工程软件在项目设计和开发中的应用,掌握了AutoCAD和SolidWorks的使用方法,并成功完成了项目的设计与开发。
工程软件的应用对于提高工作效率,降低生产成本,提升产品质量具有重要意义,是未来工程设计和制造业发展的重要趋势。
软件课程设计实验报告(3篇)

软件课程设计实验报告(3篇)【导语】软件课程设计试验报告怎么写出亮点?整理了3篇优秀的《软件课程设计试验报告》通用版范文,有规范的开头结尾写法和标准的书写格式。
是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。
【第1篇】软件课程设计试验报告一、目的、要求通过该课程设计要使同学树立起剧烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,同学在对所开发的系统进行软件方案、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使同学具备实际软件项目分析、设计、实现和测试的基本力量。
二、主要内容要求同学把握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。
每个同学选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华高校出版社出版),根据软件工程的生命周期,完成软件方案、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的`文档。
详细的方法可以选用传统的软件工程方法或者面对对象的方法,开发环境和工具不限。
三、进度方案略四、设计成果要求1.至少提交4个文档,包括软件方案、软件需求规格说明书、软件设计说明书、软件测试方案,要求文档格式规范、规律性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式(1)提交的文档规范,工作量大,文档规律性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》试验报告评分表)占60%(2)系统验收、讲解、答辩占25% (3)考勤占15%软件课程设计试验报告【第2篇】应用软件课程设计报告计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的进展战略讨论报告中也指出:计算机专业的人才应当被分为科学型、工程型、应用型三类,而绝大多数应当是工程型和应用型的。
软件工程课程设计报告

《软件工程》课程设计报告课程设计题目:网上书店专业:软件工程班级: 2015-2设计人: **学号: 201*01060902 实验时数: 30 学时: 30同组其他成员: *** ** *** *** 完成起始日期: 201*.4.8——201*.7.15 承担角色:组长实验地点: J13-132课程教师: *** 实验指导教师: **** * * * 大学201* 年 7月 16日目录一、可行性研究报告 (5)1.1 引言 (5)1.1.1 编写目的 (5)1.1.2 背景 (5)1.2 系统信息 (5)1.3 任务的详细信息 (5)1.4 基本要求 (6)1.4.1 功能要求:本系统分为客户端和服务器端。
(6)1.4.2 性能要求: (6)1.4.3 安全与保密方面的要求 (6)1.4.4 完成期限要求21周前完成任务 (7)1.4.5 系统必须满足的限制 (7)1.5 所建议的系统 (7)1.5.1 对所建议系统的说明 (7)1.5.2 处理流程 (8)1.5.3 建立扩建议系统时的影响 (8)1.5.4技术条件方面的可行性 (9)1.5.5 投资及效益分析 (9)1.5.6 社会因素方面的可行性 (9)1.5.7 结论 (9)二、需求说明书 (10)2.1 引言 (10)2.1.1 编写目的 (10)2.1.2 读者对象 (10)2.1.3 软件项目概述 (10)2.2 定义 (11)2.2.1 概念 (11)2.2.2 一般性描述 (11)2.3 系统Use Case图 (12)2.4 Use case 说明 (12)2.4.1 用户注册Use case说明 (12)2.4.3 书籍订购Use case说明 (13)2.4.4 个人信息管理Use case说明 (13)2.4.5 系统管理Use case说明 (13)2.5 系统模块 (13)2.6.1 系统的类图 (14)2.6.2 类的说明 (14)三、总体测试报告 (17)3.1 测试说明 (17)3.1.1 测试内容 (17)3.1.2 测试目标 (17)3.2 总体测试测试方案 (17)3.2.1 测试项目 (17)3.2.2 测试方式 (110)3.3 测试用例 (18)3.3.1 注册登录测试 (18)3.3.2 图书检索测试 (20)3.3.3 图书购买测试 (21)3.3.4 管理员功能测试 (22)四、个人总计 (25)一、可行性研究报告1.1 引言1.1.1 编写目的可行性报告分析是为“网上书店管理系统”开发的可行性、必要性提供论据,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。
软件测试课程设计报告

软件测试课程设计报告目录1. 软件测试课程设计报告简介1.1 课程设计的背景和意义1.2 设计目标和要求1.3 设计内容和范围2. 软件测试需求分析2.1 客户需求分析2.2 系统功能需求分析2.3 非功能需求分析3. 软件测试方案设计3.1 测试方法选择3.2 测试用例设计3.3 测试环境搭建4. 软件测试执行与分析4.1 测试执行过程4.2 测试结果分析4.3 缺陷管理与跟踪5. 软件测试评估与总结5.1 测试效果评估5.2 课程设计总结5.3 反思与改进方向软件测试课程设计报告简介1.1 课程设计的背景和意义软件测试作为确保软件质量的重要环节,对于软件项目的成功实施至关重要。
本课程设计旨在提高学生对软件测试的理解和实践能力,培养学生分析和解决问题的能力。
1.2 设计目标和要求课程设计的主要目标是让学生能够独立完成一个小型软件测试项目,包括需求分析、测试方案设计、执行与分析、以及评估与总结等环节。
要求学生能够运用所学知识和技能,发现和解决实际软件项目中的问题。
1.3 设计内容和范围课程设计内容包括软件测试需求分析、测试方案设计、测试执行与分析、以及评估与总结。
设计范围限定于一个小型软件项目,着重于实际操作和结果验证。
软件测试需求分析2.1 客户需求分析在软件测试项目开始之前,必须对客户的需求进行详细分析,确保测试过程能够覆盖到客户的期望和要求。
这一环节需要与客户进行充分沟通,明确需求内容和范围。
2.2 系统功能需求分析根据客户需求,对软件系统的功能进行详细分析。
需要确定系统的功能点和操作流程,以便后续设计测试用例和执行测试计划。
2.3 非功能需求分析除了功能需求外,还需要对系统的非功能需求进行分析,包括性能、安全性、易用性等方面。
这些需求对软件的整体质量也具有重要影响,必须在测试过程中得到充分考虑。
软件测试方案设计3.1 测试方法选择根据软件项目的特点和需求,选择合适的测试方法。
常见的测试方法包括黑盒测试、白盒测试、自动化测试等,需要结合实际情况进行选择。
软件工程课程设计报告

软件工程课程设计报告一、需求分析:1、本系统只有一个文件,包含学生姓名、成绩。
姓名、语文成绩、数学成绩、英语成绩均由键盘输入。
(1)文件名:file(2)文件类型:顺序文件(3)文件结构姓名数学语文英语数据类型字符型单精度数单精度数单精度数数据占用长度字节字节字节字节(4)文件记录长度:、输出时根据操作显示排名或查询成绩,按姓名、数学成绩、语文成绩、英语成绩。
、该程序具有初始化学生成绩,录入学生成绩,修改学生成绩,删除学生成绩,添加学生成绩,按总成绩查询,按姓名查询,按总分查询排名,按英语成绩查询,显示所有学生的数据等功能。
、测试数据:例如:姓名语文数学英语小五小王小李按姓名查询:输入姓名小五,显示语文成绩,数学成绩,英语成绩按语文成绩排序:姓名语文数学英语小王小李小五、数据流图:二、概要设计:、类的定义格式:<类名>{<成员函数或函数数据成员的说明>::<数据成员或成员函数的说明>}<各个成员的实现>、定义数组类型{:下标和数据元素值组成的数据堆集合,其中任意两个数据队的下标各不相同。
:():建立一个数组。
():返回下标位的元素值。
():将下标位的数据对的值为.}3、义字符串类型{:: 字符串是由(≤)各字符组成的有限序列”……”(≤)(): 建立一个空串(): 撤销一个串(): 求串长(): 置为空串(): 串赋值(): 串连接(): 串插入(): 串删除(): 串替位(): 取子串(): 求子串在主串中的位置}三、详细设计1、主程序模块的基本算法(){初始化{根据显示键入操作符}(根据状态标志位返回);{(键入的操作符)'':{ 录入模块}'':{ 总成绩查询模块}'':{按姓名查询模块}'':{ 添加成员模块}'':{删除模块}'':{ 修改模块}'':{显示所有学生成绩模块}'':{按总分查询排名}'':{按语文查询排名}'':{按数学查询排名}'':{按英语查询排名}} <<"您想继续进行其他操作吗?()"<<;;{>>;('''')<<"指令错误!请重新输入!"<<;;}();('')<<"请输入操作代码( 录入按总分查询按姓名查询增加人员删除人员修改数据显示所有成员数据按总分排名按语文排名按数学排名按英语排名)"<<;>>;}('');( <){[];<<" !"<<;、子程序函数清单(因为所用到的算法比较简单算法略)();();();();();DEL();();();();();();();、学生成绩管理软件由主控模块形成顶层模块,由初始化,数据录入,增加人员,删除人员,修改数据,按总成绩查询,按语文成绩查询,按数学成绩查询,按英语成绩查询模块组成一级模块如图:四、调试分析:()由于我们在各模块中用到的状态标志位太多,而且在定义时出现了错误,在老师和同学们的帮助下,我们组的成员齐心协力使得错误很快得到了解决。
软件工程课程设计报告

软件工程课程设计报告软件工程课程设计报告1、项目概述本项目是一个软件工程课程的设计项目。
通过设计和开发一个软件系统,来实践软件工程的相关知识和方法。
本项目旨在提高学生的实践能力和团队合作能力,培养学生的软件开发和管理能力。
2、项目背景随着信息技术的发展,软件系统在各个领域中得到广泛应用。
软件开发的需求量不断增加,对软件工程人才的需求也日益增长。
因此,学习和掌握软件工程的知识和方法成为了现代学生必备的能力之一。
3、项目目标本项目的目标是通过设计和开发一个软件系统,来实践和应用软件工程的相关知识和方法。
具体目标包括:- 学习和掌握软件工程的基本理论和方法;- 通过实践项目,提高学生的软件开发和管理能力;- 培养学生的团队合作能力和沟通能力;- 在项目中培养学生的创新思维和问题解决能力。
4、项目计划本项目的计划包括以下几个阶段:- 需求分析阶段:通过与用户和相关利益方沟通,收集和分析项目的需求;- 设计阶段:根据需求分析结果,进行系统设计和架构设计;- 编码阶段:根据设计文档,进行系统编码和单元测试;- 测试阶段:进行系统测试和集成测试,包括功能测试和性能测试;- 部署阶段:将系统部署到实际环境中,并进行用户培训和验收测试;- 维护阶段:对系统进行维护和支持,解决用户的问题和bug。
5、项目团队本项目的团队由多名学生组成,每名学生负责不同的角色和任务。
其中包括项目经理、需求分析师、设计师、开发工程师、测试工程师和运维工程师等。
6、项目成果本项目的最终成果是一个完整的软件系统,包括用户界面、功能模块和数据库等。
项目成果将根据用户需求和项目计划来确定和评估。
7、项目总结通过本项目的设计和开发,学生将能够实践和应用软件工程的相关知识和方法,提高其软件开发和管理能力。
同时,通过团队合作和沟通,学生的团队合作能力和沟通能力也将得到提高。
这对于学生的综合素质和就业能力都有着重要的意义。
软件工程课程设计报告

软件工程课程设计报告旅游信息管理系统姓名: ___________________________学号: _____________________专业: ______ 软件工程 ___________________ 班级:14软件工程1班_______________ 指导教师:__________________________1.课程设计概述 ------------------------------------------------- 1 - 1.1系统目的 (1)1.2系统任务 (1)1.3运行环境 (2)2. ---------------------------------------------------------------------------------------------- 项目的可行性研究---------------------------------------------------- 2 - 2.1旅游网站的可行性研究 (2)2.2.1技术可行性.............................................. -2 - 2.2.2经济可行性.............................................. -3 -2.2.3操作可行性.............................................. -3 -3.需求分析 ------------------------------------------------------ 3 -3.1功能需求分析.............................................. -4 -3.2性能需求分析.............................................. -4 -4.概要设计 ------------------------------------------------------ 5 4. 1系统结构图................................................. -8 4.2系统登陆流程图 (7)4. 3系统E-R图 (8)4.4数据字典.................................................. -9 -5.课程设计完成结果分析与个人小结 ------------------------------ 10 -参考文献----------------------------------------------------- 11 - 1.课程设计概述1.1系统目的该系统主要建立一个完整的旅游网站,突出旅游特点,有美观的界面设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件课程设计报告电信学院 09 级电子专业题目简易网络聊天室学生学号指导教师2012年4月26日简易网络聊天系统摘要:本设计在VC++6.0平台下利用MFC对话框工程实现了简易聊天室的设计,完成了简易聊天的各项基本功能,界面友好。
要求能网络侦听,接受多个客户端的连接,一个聊天服务器和很多客户端进行通信,接受客户端发送的信息,能分析信息的含义并在服务器停止服务时,停止端口侦听,将停止服务器信息发给所有客户端。
在实际编程中运用了C++语言,并通过学习socket编程实现了局域网内各节点通信。
关键字:MFC 聊天室 VC++编程CSocket类1.引言当今世界正处于信息时代,在互联网相当普及的今天,大众已经对互联网形成了相当的依赖性,局域网内多节点通信已经是非常普遍的简单需求。
聊天室是适合于陌生人之间进行较为主观、感兴化的讨论。
所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。
基于SOCKET的局域网通信是一种灵活的、易于实现的、低成本的方法。
它可以运行在各种使用TCP/IP协议作为通讯协议的网络上。
而在SOCKET API的帮助下,开发基于SOCKET的局域网通信软件也是易于实现的。
2.设计依据及框图2.1 设计平台本设计主要在VC++6.0平台下,基于MFC的界面编程主要是面向对象的方法来调用Windows API,提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。
同时,在Visual C++内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间。
2.2 设计思想本设计的总体思想是在基于MFC的界面编程基础上加入windows socket类实现局域网通信。
本设计主要分为服务器端和客户端两部分组成。
服务器端监听各个客户端节点发送的信息并把信息发送到相应的客户端。
客户端实现发送和接受自己节点的信息。
2.3 设计框图Server端Client端创建CClientSocket对象,在某个端口提供监听服务等待来自Client端的服务请求接受Client端的请求,用返回的CClientSocket建立连接向用CClientSocket连接建立的流中读写数据关闭CClientSocket,结束与当前Client的通信,等待其他请求关闭CClientSocket对象,结束监听服务创建CChatSocket对象,向Server的监听端口发出请求向用CChatSocket连接建立的流中读写数据关闭CChatSocket,结束与当前Server端的通信建立连接拆除链路数据通路图1:连接过程流程图一是总体的连接过程流图,服务器端创建socket对象后启动监听,等待客户端与服务器连接,客户端发送连接请求后与服务器连接,然后与服务器直接通信。
关闭时服务器关闭当前通信,结束监听服务。
3各模块功能及主要模块的流程图3.1 各模块功能简介本设计主要分为以下各个模块:1、用户登录服务器,客户端socket类创建,实现相应的监听功能。
2、客户端信息发送,客户端判断信息是否私聊信息,并把信息发送到服务器端。
3、客户端信息接受,客户端接受到服务器发送的信息后判断该信息为聊天信息是聊天信息还是用户列表信息。
并在相信位置正确显示信息。
4、服务器启动监听,服务器创建socket 类,实现监听功能。
5、服务器接受信息后,对信息完成相应的判断并发送到相应的客户端。
3.2 主要流程图发送新用户信息获取登录信息与服务器连接开始创建socket 对象结束开始监听成功成功失败失败开始是否私聊信息加入privChat 和私聊对象昵称信息发送结束获取发送信息否是图2:客户端登录流程图 图3:客户端信息发送流程图图2为客户端登录流程图,用户输入登录信息后,程序创建socket 对象,与服务器连接,如果连接成功,就把新用户昵称发送到服务器。
图3为客户端信息发送流程图,判断信息是否是私聊信息,如果是则在发送信息前加入Privchat 和私聊用户昵称,然后将信息发送到服务器。
图4为客户端信息接受处理流程图,接受到信息后通过前面8个字母判断是否为用户列表信息,如果是,则根据信息的“|”分割依次获取用户昵称,并在用户列表框中完成显示。
如果不是用户列表信息,则按照聊天信息在信息显示框完整显示接受到的信息。
图5为服务器接受信息处理流程图,服务器接受到信息后判断是否为新用户登录,如果是,则向各个客户端节点发送所有用户列表。
否则,判断信息是否为私聊信息,如果是,则查找节点中昵称和私聊对象相同的用户,然后把信息发送到该节点。
不是则判定信息为广播信息,把信息发送到每个用户节点。
开始用户列表信息信息框显示用户列表框显示结束是否开始是否新用户信息发送用户列表信息到各节点是否私聊信息查找私聊对象,发送信息到相信节点发送信息到所有节点结束接受信息是否是否图4:客户端信息接受处理 图5:服务器接受信息处理4 软件调试分析设计最后运行效果如下:图6:服务器界面截图图7:客户端界面截图设计主要分为服务器端和客户端两个界面。
图6和图7分别展示了服务器和客户端的界面效果。
实现了群聊,私聊以及显示所有用户列表的功能。
达到了简易聊天室的设计要求。
5 结语5.1 结论与讨论本设计在VC++6.0平台下完成了简易网络聊天室,实现了简易聊天室的各项设计要求,设计界面友好。
在本设主要是在MFC简易对话框工程下利用Csocket类实现局域网内通信。
MFC界面编程比较简单,本设计的主要难点是服务器和客户端之间私聊功能实现和用户列表信息与普通聊天信息的区别,个人在程序中通过把信息的前面8个字符赋予信息的区别意义,通过这几个字符判断信息的类型,再进行相信的处理。
本设计完成了基本要求,但是文字字体大小和颜色设定以及聊天间表情的发送并不能实现,通过查阅相关资料,该功能的实现需要重载MFC中的RichEdit 类,设计难度较大,暂未实现。
通过本课程设计把以前学到的书本知识运用到了实际的设计,对理论知识有了更深刻的理解。
看到了自己的设计成果,感受到了软件设定的乐趣。
参考文献[1]罗莉琴,詹祖桥.Windows网络编程.北京:人民邮电出版社,2011[2]宋斌.Visual C++6.0教程.北京:北京希望电子出版社,1999[3]郑莉,董江舟.C++语言程序设计.北京:清华大学出版社,2010附录本设计中主要用到的算法程序附录如下(完整程序见电子档工程附件)1、客户端网络链接程序代码void CChatRoomDlg::OnConnectButton(){// TODO: Add your control notification handler code here UpdateData(TRUE);char *nikename,*address;int n;if (!myServerSocket->Create()){myServerSocket->Close();AfxMessageBox("网络创建错误!!");return;}n=m_IDC_EDIT_ADDRESS.GetLength();address=new char(n+1);sprintf(address,"%s",m_IDC_EDIT_ADDRESS.GetBuffer(n));address[n]=0;n=m_IDC_EDIT_NIKENAME.GetLength();nikename=new char(n+1);sprintf(nikename,"%s",m_IDC_EDIT_NIKENAME.GetBuffer(n)); nikename[n]=0;if (!myServerSocket->Connect(address,6767)){myServerSocket->Close();AfxMessageBox("网络连接错误,请检查服务器地址。
");return;}m_BNSend.EnableWindow(TRUE); //"发送信息"按钮状态为有效m_BNExit.EnableWindow(TRUE); //"离开聊天室"按钮状态为有效myServerSocket->NikeName=nikename;//************发送新用户昵称char message2[20];strcpy(message2,"NEW_USER:");strcat(message2,myServerSocket->NikeName);if (myServerSocket->Send(message2,20)){}else{AfxMessageBox("网络传输错误!!!");}}2、客户端信息发送程序void CChatRoomDlg::OnButton1() //发送按钮的函数{// TODO: Add your control notification handler code hereint n;char message[1000];CString to_name;UpdateData(TRUE);if(m_SL==TRUE) //私聊{if(m_USER.GetCurSel()>=0){m_USER.GetText(m_USER.GetCurSel(),to_name);m_IDC_EDIT_MESSAGE=myServerSocket->NikeName+"悄悄对"+to_name+"说:\r\n"+m_IDC_EDIT_MESSAGE;m_IDC_LIST_CHATBOX_CONTROL.AddString(m_IDC_EDIT_MESSAGE);m_IDC_EDIT_MESSAGE="PrivChat|"+to_name+"|"+m_IDC_EDIT_MESSAGE;n=m_IDC_EDIT_MESSAGE.GetLength();sprintf(message,"%s",m_IDC_EDIT_MESSAGE.GetBuffer(n));message[n]=0;}else{AfxMessageBox("没有选择私聊对象!");return ;}}else{m_IDC_EDIT_MESSAGE=myServerSocket->NikeName+"对大家说:\r\n "+m_IDC_EDIT_MESSAGE;n=m_IDC_EDIT_MESSAGE.GetLength();sprintf(message,"%s",m_IDC_EDIT_MESSAGE.GetBuffer(n));message[n]=0;}if (myServerSocket->Send(message,n+1)){m_IDC_EDIT_MESSAGE="";UpdateData(FALSE);}else{AfxMessageBox("网络传输错误!");}}3、客户端信息接受程序BOOL CChatRoomDlg::GetMessage()//显示聊天信息{char buff[2000];char name[20];int count;count=myServerSocket->Receive(buff,2000);buff[count]=0;char Flag[10];for(int i=0;i<8;i++) Flag[i]=buff[i];Flag[8]=0;if(strcmp(Flag,"USERLIST")==0)//新用户昵称列表{m_USER.ResetContent();CString sTemp;int j=8;for(i=8;buff[i]!=0;i++){if(buff[i]=='|')//昵称分割符号{for(int m=0;j<i;j++,m++)name[m]=buff[j];name[m]='\0';sTemp.Format("%s",name);//昵称m_USER.AddString(sTemp);j=i+1;}}}else //聊天信息{m_IDC_LIST_CHATBOX_CONTROL.AddString(buff);}return true;}4、服务器端信息处理程序void CClientSocket::OnReceive(int nErrorCode){// TODO: Add your specialized code here and/or call the base classchar buff[1000];char all_user[2000];char name[20];int n,m;n=this->Receive(buff,1000);buff[n]=0;char Flag[10];for(int i=0;i<8;i++) Flag[i]=buff[i];Flag[8]=0;//下面两行代码用来获取对话框指针CChatRoomServerApp* pApp=(CChatRoomServerApp*)AfxGetApp();CChatRoomServerDlg * pDlg=(CChatRoomServerDlg *)pApp->m_pMainWnd;if(strcmp(Flag,"NEW_USER")==0)//新用户加入{CString sTemp;for(i=9;buff[i]!=0;i++)buff[i-9]=buff[i];buff[i-9]=0;sTemp.Format("%s",buff);//新用户昵称sTemppDlg->m_USER.AddString(sTemp);//新的在线用户昵称名单发给所有用户m=pDlg->m_USER.GetCount();strcpy(all_user,"USERLIST");for(i=0;i<m;i++){pDlg->m_USER.GetText(i,name);strcat(all_user,name);strcat(all_user,"|");}strcat(buff,"进入聊天室");//List->Sends(this,buff,strlen(buff));List->Sends(all_user,strlen(all_user));}elseif(strcmp(Flag,"CLOSEUSE")==0)//用户退出{CString sTemp;for(i=9;buff[i]!=0;i++)buff[i-9]=buff[i];buff[i-9]=0;sTemp.Format("%s",buff);//离线用户昵称m=pDlg->m_USER.GetCount();for(i=0;i<m;i++)//查找离线用户在列表框的索引号{pDlg->m_USER.GetText(i,name);if (strcmp(name,buff)==0)pDlg->m_USER.DeleteString(i);}//新的在线用户昵称名单发给所有用户m=pDlg->m_USER.GetCount();strcpy(all_user,"USERLIST");for(i=0;i<m;i++){pDlg->m_USER.GetText(i,name);strcat(all_user,name);strcat(all_user,"|");}strcat(buff,"离开聊天室");List->Sends(all_user,strlen(all_user));List->Del(this);//List->Sends(this,buff,strlen(buff));}else //****if(strcmp(Flag,"PrivChat")==0)//私聊{CString sTemp;for(i=9;buff[i]!='|';i++)buff[i-9]=buff[i];buff[i-9]=0;sTemp.Format("%s",buff);//私聊对象昵称for(int k=i+1;buff[k]!=0;k++)buff[k-i-1]=buff[k];buff[k-i-1]=0;m=pDlg->m_USER.GetCount();for(i=0;i<m;i++)//查找离线用户在列表框的索引号{pDlg->m_USER.GetText(i,name);if (strcmp(name,sTemp)==0){List->OnlySend(buff,strlen(buff),i);}}}else //聊天信息群发给所有用户{List->Sends(buff,n);}//Receive只能接受一次,除非下次发送触发后CString sTemp;sTemp.Format("收到:%s",buff);pDlg->m_ChatList.AddString(sTemp);pDlg->m_ChatList.SetTopIndex(pDlg->m_ChatList.GetCount()-1);CSocket::OnReceive(nErrorCode);}致谢。