2018年软件学院C++课程设计课程设计目的:1、熟悉利用面向对象的方法以及C++的编程思想来完成系统的设计;
2、锻炼学生在设计的过程中,建立清晰的类层次,应用继承和多态等面向对象的编程思想;
3、通过本课程设计,加深对面向对象程序设计课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,深刻体会面向对象的编程思想,掌握使用面向对象程序设计语言C++,学会编写结构清晰、风格良好的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
课程设计题目:模拟即时通信系统实现一、题目描述基于社交的即时通信是腾*公司的主要业务,先后有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等函数用法。
二、技术层次要求及说明1、基本层次。
完成上述功能要求,所采用技术不限,比如采用纯面向过程思想实现;
2、支持对象层次。
正确完成了类的切割,利用对象技术实现。
(1)容器类主要包括:例如,微X成员管理。
(2)其它主要类包括:例如,微X信息、群信息、好友信息。
3、抽象、封装层次采用了继承或者组合实现复用,对数据成员提供了必要的接口保护;
(1)抽象出了基础类,并被其它功能复用;
(2)如好友维护、群信息维护等操作均应该提供接口形式;
4、面向对象层次支持多态功能,支持依据设计原则的优化。
好友管理、群管理等;
5、优化提高层次(1)提供简便菜单,以1、2等数字区分几类功能,并允许返回菜单;
(2)I/O操作支持。
基本功能中,已有设定信息,在初始化时候可以固化在程序代码中,也可以存放在文件中,每次容器实例化时读入,析构时写回文件中,以实现断电保存。
(3)可扩展性支持,需要考虑群、好友等与主要服务之间的关系;
(4)灵活性支持。
群的管理模式动态可变;
(5)程序有必要的注释;
(6)可以采用UML工具画出简单类图(7)为防止不诚信行为,要求类的设计均以独立文件存在,且所有的类名称后面应有自己的姓名缩写,如张三设计的QQ信息类名称:TencentZhS。
三、设计步骤(参考):在清楚上述系统功能要处理是什么的基础上,考虑用如下方式来设计1、确定所需的类及其相互间的关系。
(1)要从问题中归纳出一个概念或实体,从这些概念或实体出发建立相应的类。
(2)尽量使类小而简单,以使其看起来容易理解。
(3)充分利用封装以增加类的可靠性,以便使用时保证更加可靠。
(4)通过继承建立类族,以方便使用多态性。
2、确定每个类的实现。
(1)考虑类的对象应该如何构造和析构。
(2)考虑类的成员函数的建立。
(3)综合考虑各个类在命名和功能方面有哪些共性。
3、细化有关的类,描述他们之间的相互关系,
1
看看压缩包大小你就知道怎么样!完美运行后从eclipse导出来的项目文件!不会出现少math3的提示!因为已经在lib中导入了需要的Apachecommon中的math库!CloudSim是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型,支持云计算的研究和开发。
它的首要目标是在云基础设施(软件、硬件、服务)上,对不同应用和服务模型的调度和分配策略的性能进行量化和比较,达到控制使用云计算资源的目的。
2023/12/21 6:23:27 26.8MB 云计算 仿真 cloudsim 最新
1
Qt5类继承关系图,对于理清Qt5框架还有有点帮助的。
pdf文档只有一面,缩放比例放小一点。
2023/12/20 22:36:14 1.03MB Qt5
1
CS4604实验室这些实验室将使用关系数据库管理系统(RDBMS),例如,,,和非关系数据库,例如MongoDB。
PostgreSQL是一个免费的开源关系数据库管理系统,它强调可扩展性和SQL合规性。
它最初的名称为POSTGRES,指其起源是加州大学伯克利分校开发的Ingres数据库的继承者。
SQLite是一个进程内库,可实现自包含的,无服务器的,零配置的事务型SQL数据库引擎。
SQLite的代码在公共领域,因此可以免费用于任何目的,无论是商业目的还是私人目的。
MySQL是一个开放源代码的关系数据库管理系统。
它的名称是联合创始人MichaelWidenius的女儿的名字“My”和结构化查询语言的缩写“SQL”的组合。
MariaDB是MySQL关系数据库管理系统的社区开发的,商业支持的分支,旨在根据GNU通用公共许可证保留为免费和开源软件。
实验室
2023/12/17 19:13:17 2.68MB JupyterNotebook
1
内容简介······这是一本经典的Windows核心编程指南,从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。
作为Windows开发人员的必备参考,本书是为打算理解Windows的C和C++程序员精心设计的。
第5版全面覆盖WindowsXP,WindowsVista和WindowsServer2008中的170个新增函数和Windows特性。
书中还讲解了Windows系统如何使用这些特性,我们开发的应用程序又如何充分使用这些特性,如何自行创建新的特性。
...作者简介······JeffreyRichter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。
他的第一本Windows著作Windows3:ADeveloper'sGuide大获好评,从而声名远扬。
之后,他又推出了经典著作《Windows高级编程指南》和《Windows核心编程》。
如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。
他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。
Jeffery是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。
现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。
因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。
他是.NET著作领域中当之无愧的一面旗帜。
ChristopheNasarre是BusinessObjects的软件架构师和开发部门领导,该公司致力于帮助其他企业更好地专注于其主营业务,通过商业智能方案来提升决策能力和业绩。
他为Addison-Wesley,APress和MicrosoftPress出版的许多图书担任过技术审校,此外还是MSDNMagazine的撰稿人。
目录······第1部分必备知识第1章错误处理1.1定义自己的错误代码1.2ErrorShow示例程序第2章字符和字符串处理2.1字符编码2.2ANSI字符和Unicode字符与字符串数据类型2.3Windows中的Unicode函数和ANSI函数2.4C运行库中的Unicode函数和ANSI函数2.5C运行库中的安全字符串函数2.5.1初识新的安全字符串函数2.5.2在处理字符串时如何获得更多控制2.5.3Windows字符串函数2.6为何要用Unicode2.7推荐的字符和字符串处理方式2.8Unicode与ANSI字符串转换2.8.1导出ANSI和UnicodeDLL函数2.8.2判断文本是ANSI还是Unicode第3章内核对象3.1何为内核对象3.1.1使用计数3.1.2内核对象的安全性3.2进程内核对象句柄表3.2.1创建一个内核对象3.2.2关闭内核对象3.3跨进程边界共享内核对象3.3.1使用对象句柄继承3.3.2改变句柄的标志3.3.3为对象命名3.3.4终端服务命名空间3.3.5专有命名空间3.3.5复制对象句柄第Ⅱ部分工作机制第4章进程4.1编写第一个Windows应用程序4.1.1进程实例句柄4.1.2进程前一个实例的句柄4.1.3进程的命令行4.1.4进程的环境变量4.1.5进程的关联性4.1.6进程的错误模式4.1.7进程当前所在的驱动器和目录4.1.8进程的当前目录4.1.9系统版本4.2CreateProcess函数4.2.1pszApplicationName和pszCommandLine参数4.2.2psaProcess,psaThread和bInheritHandles参数4.2.3fdwCreate参数4.2.4pvEnvironment参数4.2.5pszCurDir参数4.2.6psiStartInfo参数4.2.7ppiProcInfo参数4.3终止进程4.3.1主线程的入口点函数返回4.3.2ExitProcess函数4.3.3TerminateProcess函数4.3.4当进程中的所有线程终止时4.3.5当进程终止运行时4.4子进程4.5管理员以标准用户权限运行时4.5.1自动提升进程的权限4.5.2手动提升进程的权限4.5.3何为当前权限上下文4.5.4枚举系统中正在运行的
2023/12/17 14:07:31 227.8MB Windows C++
1
火龙果软件工程技术中心  你通常需要一个命令来进入Ruby和Java的联合世界:includeJava这使你可以实例化Java类,调用其方法,甚至继承它们,就好象它们仅仅是普通的Ruby对象一样。
但这其中有一些微妙的差异,这篇文章将向你展示如何管理它们以便能以最快的速度设计出新的应用并部署到你的客户那里。
这篇文章基于一个简单的应用,该应用使用JRuby和Swing实现了一个简单的ObjectSpace浏览器。
Ruby的ObjectSpace特性提供了一种方式来访问系统中所有对象。
例如,我们可以这样打印所有使用中的字符串:ObjectSpace.each_object(String)do|str
2023/12/15 1:09:08 138KB 使用JavaWebStart部署JRuby应用
1
《VisualC++实用教程(第3版)》图书目录:第1部分实用教程第1章基本C++语言1.1C++程序结构1.2数据类型和基本输入/输出1.3运算符和表达式1.4基本语句1.5函数和预处理1.6构造类型1.7指针和引用第2章C++面向对象程序设计2.1类和对象2.2继承和派生类2.3多态和虚函数2.4运算符重载2.5输入/输出流库第3章MFC基本应用程序的建立3.1Windows编程基础3.2编制一个MFC应用程序3.3使用MFCAppWizard3.4使用类向导第4章对话框和常用控件4.1对话框的使用
2023/12/13 16:27:01 7.17MB 郑阿奇 电子工业
1
首款专门针对公益行业需求而研发的产品化公益管理软件,提供门户管理系统、志愿者管理系统、救助管理系统、活动管理系统、财务管理系统、物资管理系统、义卖管理系统等七大业务系统,全面覆盖公益组织各种需求,全面解决公益组织门户建设、内部管理、社会监督和公示、财务管理等困扰公益组织发展的难题。
1、志愿者注册和管理:志愿者通过前台直接注册并申请成为志愿者,审核通过后及可以参与救助、发布救助信息、参加活动、捐赠物资、接受协会统一管理和考核(志愿服务时长和荣誉头衔管理)。
2、救助管理平台:志愿者可以在系统中发布受助人详细信息,系统审核通过后即在前台公开展示并接受系统中其他志愿者和爱心人士的捐赠,并能实时公示捐赠详情,包括参与捐赠人数、捐赠金额、完成进度等。
3、活动管理系统:协会官方和志愿者都可以申请并发起活动,审核通过后即在前台展示并接受其他志愿者报名和物资以及先现金赞助等,活动结束后可以对参加活动的志愿者进行统一考核增加志愿服务时长。
4、物资管理系统:志愿者可以在系统中直接捐赠物资,系统审核通过后即在前台展示,并接受社会监督使用情况,在后台可以查询到物资使用去向,包括捐赠给那些受助人,以及发放情况等。
5、义卖管理系统:志愿者可以将自己的爱心物品上传到系统中来,其他志愿者可以参与竞拍和购买,义卖所得将转入志愿者账户,志愿者可以用义卖所得捐赠需要帮助的受助人。
6、财务管理系统:系统设立个人账户、官方账户、总账三种账户,并详细记录系统产生的每一笔财务动作,包括会员充值、捐款、赞助、官方收入、官方支出等,这些均可以在前台查询到。
更详细的社会监督包括查询受助人接受捐赠的详情、志愿者捐款详情、官方总收入、官方总开支、官方接受捐款总额和详情等,让公益账务清楚明了的展示在大众面前接受监督。
7、门户管理系统:门户管理系统基于Live!Engin和LiveWeb开发而来,继承了Live!Engin和LiveWeb的优异特性,支持可视化DIY建站和导入导出模板,利用Live!CMP可以快速建立起个性化的功能全面的公益门户网站。
8、UCenter整合:Live!CMP跨越.NET和PHP平台障碍,实现与UCenter的深度整合,目前已经支持UCenter用户直接登录Live!CMP,并支持同步登陆和退出。
与UCenter的深度整合将极大的方便地方门户网站快速将数量众多的会员转化为志愿者进而开展公益活动,让地方门户和社会公益相互促进共同发展。
9、集成支付宝在线支付,支持众多网银在线支付,实时到账,让网络爱心更加便捷。
网络捐款+财务公示使得网络公益更加容易被认可,不仅解决线下捐款成本高不便捷等难题,更使得捐款数额更加随心、随意,彻底解决捐款面子问题。
2023/12/9 12:13:08 14.95MB 公益 管理平台 公益系统 公益软件
1
类与类属性:Employee:firstName,lastName,socialSecurityNumberSalaridEmployee:weeklySalary(周薪)HourlyEmployee:wage(每小时的工钱),hours(月工作小时数)CommisionEmployee:grossSales(销售额),commissionRate(提成比率)BasePlusCommisionEmployee:baseSalary(月基本工资)生成10个员工对象,根据随机数决定生成对象的类型,对象引用保存到数组中。
然后依次调用对象的toString方法输出对象的信息,调用earning方法来输出对象的月工资。
2023/12/7 5:52:09 11KB Java 继承与多态 Employee
1
实现中的几个注意点:  1Socket类几个成员函数的访问权限为protected使Socket类可以进行继承但不允许私自使用;  2TCPClient类的sendreceive方法使用了著名的writenreadn来源UNP实现解决了TCP的粘包问题  3TCPSe
2023/12/6 15:55:26 3KB Socket TCP 封装
1
共 252 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡