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
VCU整套开发源码+PCB原理图+详细资料开发流程说明书,从底层程序到上层界面,以及故障诊断等,全部包含在内,十分丰富的资源。
电动汽车整车控制器(VCU)是电动汽车整车控制系统的核心部件,它采集电机控制系统信号、加速踏板信号、制动踏板信号及其他部件信号,根据驾驶员的驾驶意图综合分析并做出相应判断后,计算出运行所需要的电机输出转矩等参数,从而协调各个动力部件的运动,保障电动汽车的正常行驶。
此外,可以通过充电和制动能量回收等实现较高的能量效率。
在完成能量和动力控制的同时,还监控下层的各部件控制器的动作,它对汽车的正常行驶、电池能量的制动回馈、网络管理、故障诊断与处理、车辆状态监控等功能起着关键作用。
1
SSCOM4。
2最好用的串口调试工具,让您爱不释手的专业串口调试软件,使用完全免费!本软件可以在Win95/98、Win2000、WinNT、WinXP等下面运行.软件功能主要为:1.接收从串口进来的数据并在窗口显示.显示流畅,可以保持接收大量数据不死机.2.所接收到的数据数据显示方式可以选择为字符方式或者HEX方式4.中文显示无乱码,且不影响速度5.串口波特率可以选择为110bps-256000bps.(波特率>115200时需要硬件支持)6.可以即时显示存在的串口号.如果您增加了usb转串口等设备,串口号也会在列表中出现.7.可以选择“5、6、7、8”四种数据长度.8.可以选择为“1、1.5、2”三种停止位.(1.5停止位需要硬件支持)8.可以自由选择校验方式.9.可以自由选择流控方式.(某些计算机不能选择硬流控)10.串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入.11.可以在接收窗口按键即发送该键值.12.可以在字符串输入框输入您想发送的字符串,并发送.13.可以在字符串输入框输入您想发送的HEX数据串,数据的值从00到FF,没有任何限制.14.可以定时重复发送数据,并可以设置发送时间间隔.15.可以在发送字符串时选择发送新行,即自动加上回车换行.16.可以显示当前串口的CTS、DSR、RLSL(CD)信号线的状态.17.可以自由控制当前串口的DTR、RTS信号线的输出状态.18.可以打开一个文本文件或者一个二进制文件预览其内容,查看方式可以是文本或者HEX方式.19.可以打开一个文本文件或者一个二进制文件并以当前波特率发送到串口.20.可以保存串口接收到的内容到文件,文件名取自当前时间,保存在当前目录.21.可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零.22.带有功能强大的扩展功能:多条字符串发送预先定义,并自动保存.23.可以定义最多32条预备发送的字符串,每条字符串可以定义为HEX数据串或者字符串方式.在每一条数据的左边打勾就表示这是一条hex数据串.24.点击字符串右边的标号即可以发送这条定义好的字符串.25.可以设置为循环发送你定义过的多条字符串,并且可以设置发送时间间隔.25.可以同时打开多次软件,进行不同的串口的调试.26.在产品信息栏可以从网上自动获得现时最新的产品信息.27.这是个绿色软件,单个文件即可执行,不会给您的机器增加任何负担.28.发送字符串时选择'发送新行',可以加发回车换行.V4.1(2007-9-15)主要改进在:1。
发送文件字节数增加到8M字节2。
增加发送过程中断停止发送功能3。
增加发送进度条显示4。
修改保存接收到的数据为二进制文件,是原始的从串口收到的数据内容(不再修改00H为空格了)5.串口打开时的容错.由于很多人使用usb串口,当串口拔出时经常发生串口丢失错误.6.奇偶校验选择和流控生效了.(不过很多计算机还是无法选择硬流控)7.可以关闭设置栏,留出更多位置显示数据.
2023/12/24 8:25:30 716KB sscom4.2
1
当要求隔离的两个网络之间需要经常性传输一些文件时,使用优盘拷贝费时费力;
使用网闸,动辄花费数万至数十万元。
而此时使用“串口文件自动发送/接收系统”不失为很好的解决方案:串口文件自动发送/接收系统使用的是Zmodem文件传输协议,虽然速度不快,但不使用任何网络协议,比网闸的隔离通用网络协议功能要彻底。
串口文件自动发送/接收系统由发送端和接收端两部分组成:发送端可设置需要传输的文件夹和文件类型,支持定时检测,当发现新增文件或当文件长度、创建时间发生变化时,都会自动地通过串口发送到接收端;
接收端处在自动接收状态,收到文件时会自动存到指定的文件夹中。
ComSend.exe是发送端软件,ComReceive.exe是接收端软件,均为绿色软件。
串口文件自动发送/接收系统与超级终端中的Zmodem文件收发功能保持兼容。
2023/12/24 5:39:15 3.1MB 串口 文件传输
1
子空间状态空间系统辨识(4SID)方法是近年来出现的一种用于辨识线性振动系统动态特性的时域技术。
它直接由输入/输出数据矩阵序列,通过基本的代数运算求取系统模型。
本文概要地介绍了子空间系统辨识方法及其运算步骤,并应用该方法对一已知模态参数的桁架结构进行了仿真计算,得到了准确的辨识结果。
关键词:系统辨识;子空间方法;结构系统
2023/12/23 19:09:26 137KB 子空间辨识
1
C#开发的串口助手串口调试工具。
1、支持串口数据16进制格式收发。
2、支持9以上的串口通信。
3、支持自动收发保存数据。
4、自由控制数据显示。
5、实时显示收发数据字节大小以及串口状态。
6、智能清空缓冲数据。
7、支持发送历史记录。
8、串口自动识别。
9、支持云端同步,可远程监控串口数据。
[3]
2023/12/23 18:34:28 415KB C#串口助手
1
对高压直流输电系统进行了具体的分析,针对系统中的谐波问题,研究了高压直流输电系统中滤除谐波设备的一些设计办法。
通过研究高压直流输电系统中的滤波原理和滤除谐波使用的方式,基于高压直流输电实验平台设计了滤波装置设备。
最后利用MATLAB中的Simulink仿真软件对系统进行了建模和仿真。
具体工作如下:(1)对电气系统谐波产生的因素及形成的危害进行了剖析,简要描述治理电气系统里面的谐波及滤除谐波设备目前的研究;
(2)阐述了高压直流输电技术拥有的一些特点及其近年来的发展状态,研究了高压直流输电系统中仍然存在的问题,分别对系统中直流侧特征谐波与交流侧特征谐波以及非特征谐波进行了具体的分析;
(3)分别对高压直流输电系统中直流滤波设备与交流滤波设备的不同设计办法施行了具体分析,同时研究比较了两种滤除谐波设备不同地方;
(4)对滤除谐波设备的构成与接连线路的方式进行了具体的阐述,计算了滤除谐波设备的很多参数;
(5)分析了解了高压直流输电实验平台的内部组成结构及其各部分功能,基于新型换流变压装置直流输电试验平台完成了滤除谐波装置设备的设计,利用仿真软件对系统进行了建模,从而使滤波设备的滤除谐波效果得到了验证。
2023/12/23 11:10:32 13.5MB 谐波控制  谐波分析 滤波器 Simulink
1
本代码实现了读MPU6050三轴6个数据,用其中的GY和AZ、AX结合融合滤波算法,解出X单轴角度,并在黑金开发板的EP4C15F17C8芯片上调试成功,±5°范围内LED灯灭,左右摆动时相应左右灯亮。
顶层模块每隔5ms,发出一个is_read高电平,下面的模块读取一次数据,并计算,更新LED状态。
有关计算都用的ip核,占用资源很大。
代码随笔,希望对小小小小白有所帮助。
压缩包里面有代码.v和doc随笔。
2023/12/23 9:08:19 9.06MB verilog MPU6050
1
本文来自于个人图书馆,本文通过多端的B2B系统,简单介绍了系统的架构设计演进。
之前开发了一个包括多端(PC端,移动端,微信端,API)的B2B系统,分享一下系统的架构设计演进。
技术选型playframework无状态全栈(Hibernate,Netty,Groovy,Cache)Python运维支持,开发热加载AngularJS对象操作双向绑定模版这样的技术选型是基于低成本/小规模团队快速上线应用的需要。
选择playframework是它让我们从开发到运维都能省去很多成本,对于开发人员只要掌握一定的语法就可以直接关注业务逻辑,不用所有的人都特别深入的学习框架。
自动编译和重载:当编辑Java文件
2023/12/22 19:49:40 161KB 一个业务系统的架构设计
1
详细讲解如何使用web3j为Java应用或AndroidApp增加以太坊区块链支持,课程内容即涉及以太坊中的核心概念,例如账户管理、状态与交易、智能合约开发与交互、过滤器和事件等,同时也详细说明如何使用web3j提供的开发接口与以太坊进行交互。
2023/12/22 17:30:04 3.32MB web3j 以太坊 区块链
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡