file-type

2018年吉林大学C++课程设计——模拟即时通信系统源码

ZIP文件

下载需积分: 23 | 1.17MB | 更新于2025-01-28 | 101 浏览量 | 90 下载量 举报 45 收藏
download 立即下载
从提供的信息中,我们可以提取到关于C++课程设计、面向对象编程、即时通信系统设计的知识点。下面将详细说明这些知识点: ### 标题知识点: **2018吉林大学c++课设源代码压缩包** - **C++课程设计**:课程设计是学生实践能力培养的重要环节,通常要求学生将理论知识应用到实际问题的解决中,通过设计和实现软件项目来加深对课程内容的理解。 - **即时通信系统模拟实现**:模拟即时通信系统的设计要求学生运用C++语言,通过面向对象的编程方法,设计一个具有用户管理、好友管理、群管理、登录管理等功能的系统。 ### 描述知识点: **2018年软件学院C++课程设计** - **面向对象方法与C++编程思想**:熟悉面向对象的编程语言C++,运用继承和多态等面向对象的基本特性来完成系统设计。 - **类层次结构**:建立清晰的类层次结构,合理使用继承、组合等手段来实现类的功能复用。 - **即时通信系统设计**:设计一个模拟即时通信平台,要求涉及用户信息管理、好友和群管理、登录状态同步等功能。 - **技术层次要求**: - **基本层次**:完成基础功能实现,不限制技术使用。 - **支持对象层次**:采用对象技术,实现相关类的设计。 - **抽象、封装层次**:通过抽象和封装,利用继承或组合实现复用,保护数据成员。 - **面向对象层次**:支持多态功能,优化设计以符合面向对象设计原则。 - **优化提高层次**:包括简化用户界面、I/O操作、系统扩展性、灵活性等。 ### 标签知识点: **c++ course** - **C++语言基础**:掌握C++语言的基本知识和语法规范,熟练使用其面向对象的编程特性。 - **面向对象编程思想**:深刻理解面向对象的编程思想,并能够在实际开发中应用。 ### 压缩包子文件的文件名称列表知识点: **TencentAll** - **项目结构**:根据文件名推测,项目中可能包含了一个统一的类或者命名空间,用于整合整个即时通信系统的各个组件。 - **企业命名标识**:有可能Tencent代表与腾讯公司相关的即时通信功能的模拟,比如QQ或微信。 ### 总结 本次课程设计的知识点涵盖了面向对象编程的多个方面,包括类的继承、多态、封装、对象的创建与销毁、以及对象间关系的建立。设计者需利用C++语言实现一个即时通信平台的模拟,其中需要涉及到用户信息管理、好友和群的管理、系统的登录状态同步,以及可能的网络通信编程(如TCP通信的收发功能)。此外,设计者还需关注程序的可用性和扩展性,并且在设计上采用适当的工具和技术,以达到良好的设计质量和用户体验。最终,设计者需要提交设计报告,并在完成前对程序进行检查和质疑,以达到课程考核的要求。

相关推荐

filetype
课程设计题目:模拟即时通信系统实现 一、题目描述 基于社交的即时通信是腾*公司的主要业务,先后有QQ、微信、微博等服务,可能还将继续推出微商、微唱、微走、微笑等产品。这些软件既可以独立提供服务,又互相辉映关联。腾*公司希望对各系统进行整合形成统一的立体社交软件平台。现请完成该平台的设计并实现。要求如下: 1、用户基本信息: 号码ID,昵称,出生时间,T龄(号码申请时间)、所在地、好友列表、群列表。 微博与QQ共享ID,微信采用独立ID,但是可以与QQ号码绑定对应。其他微X产品也分为这两种情况。 2、好友管理 (1)实现各功能好友信息的添加、修改、删除、查询的功能。 (2)可以查询微X之间各自共同好友。如微信可以添加QQ推荐好友。 3、群管理 (1)设定每个微X功能已有1001、1002、1003、1004、1005、1006等群号。 (2)加入群、退出群、挨T、查询群成员等。 (3)不同微X之间群的理念不同,比如:QQ群可以申请加入,而微信群则只能推荐加入;QQ群允许设置临时讨论组(子群),微信群则不允许;QQ群有以群主为核心的管理员制度而微信群仅有群主为特权账号。 4、开通管理 用户可以选择自己开通该平台的N个微X服务。 5、登录管理 各微X之间只要有一个服务登录,则其它服务简单确认后视为自动登录。 6、功能展示要求(main函数) (1)设计约定。开通服务情况、群成员信息和好友信息可以预先保存到文件中,在系统启动时将这些信息加载到内存中; (2)一个服务登录后,本人开通的其它所有服务均进入开通状态。 (3)服务之间可以依据本人开通的任意另外一个服务的好友添加好友。 (4)展示一个服务当前群的特色功能;在群成员数据不受伤害的前提下,动态变换为其他类型群的管理特色。 (5)实现QQ的点对点的TCP通信的收发功能。(选做)提示: a)需要加载ws2_32.lib静态库,打开头文件winsock.h。 b)百度IP地址、端口等概念; c)百度socket编程,关注bind、listen、accept、connect、send、receive等函数用法。
filetype
作业04 行为型+其它(以step0_src中代码为基础) 1. 将玩家改为只有两个Player,一个HumanPlayer,一个AutoPlayer。初始时,各玩家都站在map中的第一个Block上,初始的移动方向任意。每轮次HumanPlayer玩家前进3格,AutoPlayer前进2格。前进方向任意,但若前方有格子(前进、左转、右转),必定前进,而不能往回走。HumanPlayer所在的格子用[X]表示,AutoPlayer的格子用(X)表示。请实现代码。 2. 在Players的代码中,通过getFirst和getLast取得两个玩家,但这两个成员函数与Player用deque表示紧密相关,且只能取得前后两个Player。考虑到玩家数量可多个,玩家集合的数据结构可多样,请用迭代器模式重新实现遍历所有玩家的功能,要求分别实现C++风格的外部迭代器和Java风格的外部迭代器。迭代器接口如下: class CppIterator { public: CppIterator( ) {} virtual ~CppIterator( ) {} virtual void first() = 0; virtual void next() = 0; virtual bool isLast() const = 0; virtual void * current() = 0; virtual int count() const=0; }; class JavaIterator { public: JavaIterator() {} virtual ~JavaIterator() {} virtual void* next() = 0; virtual bool hasNext() const = 0; virtual int count() const=0; }; 3. 若玩家前进时,各玩家的前进策略多种多样,如一种策略是各可能方向是等概率的(例如1中的代码),另一种策略是各方向有不同几率:inDir未确定时,向各方向前进的概率相等;inDir确定时,各方向的概率不一定相同。具体可见下表。而且以后可能会添加新的前进策略,如具有AI的策略等;玩家还可能需要动态改变前进策略。请使用策略模式实现。 inDir==NONE时 inDir!=NONE时 连通四个方向 各方向各25% 直行50%,左转25%,右转25% 连通往三方向 各方向各33% 可直行时,直行60%,左转(或右转)40%; 不可直行时,左转和右转各50% 连通两个方向 各方向各50% 与inDir不同的方向为100% 连通一个方向 各方向各100% 100%地转向往回走 4. 为提高趣味性,增加了卡片子系统和魔法子系统, Player可以使用卡片、魔法等,作用于各玩家或系统中的其它对象上。部分类图如下: 这里使用RobCard会抢走指定玩家的一半金钱;使用MeanCard会平均所有玩家的金钱;使用ReturnSpell会使指定玩家直接返回到开始的Block,inDir不定。 1) 修改PlayMenu为: PlayMenu 1. Go… 2. ApplyRobCard 3. ApplyMeanCard 4. ApplyReturnSpell 5. Load 6. Save 7. Back To MainMenu Your selected: 并给Player类添加行为ApplyRobCard(Player * target);、ApplyMeanCard();和ApplyReturnSpell(Player * target),然后实现。 2) 以后肯定要添加其它Card和Spell,还有可能增加道具子系统等。由于Player已有子类AutoPlayer和HumanPlayer,而且未来扩展Card、Spell和道具等时,作用目标target有多种可能,如Player、Block、Player集合,甚至Card类等,所以希望在未来扩展时,避免通过继承Player类或其子类进行扩展。请使用命令模式实现此目地。 5. 若需要增加FlyCard和FreezeSpell。其作用是:当应用FlyCard到某个Player上时,该player将每轮次前进6格,并持续2个轮次;当施加FreezeSpell到某个Player上时,该player将每轮次只前进1格,并持续3个轮次。 考虑到以后还会添加其它类似功能的Card和Spell,但不希望直接从Player类派生子类进行扩展。请使用状态模式实现此目的。 6. 若还需要增加HurtSpell,该Spell会导致被作用的Player,每轮次减少Money的数量5,并持续2
qq_37150980
  • 粉丝: 1
上传资源 快速赚钱