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
2)基于JavaSocketTCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient;
3)服务器端启动时需传递root目录参数,并校验该目录是否有效;
4)服务器启动后,开启TCP:2021端口,UDP:2020端口,其中,TCP连接负责与用户交互,UDP负责传送文件;
5)客户端启动后,连接指定服务器的TCP2021端口,成功后,服务器端回复信息:“客户端IP地址:客户端端口号>连接成功”;
6)连接成功后,用户可通过客户端命令行执行以下命令:[1]ls服务器返回当前目录文件列表(namesize)[2]cd进入指定目录(需判断目录是否存在,并给出提示)[3]get通过UDP下载指定文件,保存到客户端当前目录下[4]bye断开连接,客户端运行完毕7)服务器端支持多用户并发访问,不用考虑文件过大或UDP传输不可靠的问题。
2023/12/21 2:01:51 13KB socket tcp udp
1
安装完PI服务端,重新启动计算机后,PI系统就开始运行了,这时PI的默认数据库只有3个,大小为安装时配置的1024M,此时还需再增加几个数据库,以保证数据长时间存放,增加方法如下,点击“开始”—“运行”,输入“CMD”,然后转到PI安装目录,例如:“c:\pi\adm”。
这时,运行创建数据库文件命令,命令格式如下:●创建数据库文件piarcreate-dpathmaxpointsmaxsize(Mb)piarcreatepathsize(Mb)eg:piarcreate.exeD:\PIPC\DAT\piarch.0041024●关联数据库文件piartool.exe-arpath eg:piartool.exe–arD:\PIPC\DAT\piarch.0043.配置接口机和服务器之间的通讯。
有些网络中,接口机和服务器之间的通讯需要在服务器端开通和接口机的认证,同增加数据库的方法一样,进入“c:\pi\adm”,运行“piconfig”命令,进入PI系统命令格式。
运行如下:C:\PI\adm>piconfig*(Ls-)PIconfig>tablepitrust//选择表*(Ls-PITRUST)PIconfig>@modecreat//进入创建模式*(Cr-PITRUST)PIconfig>@istrtrust,ipaddr,netmask,piuser//这里trust可以自己取个名字,IPADDR就是接口机的IP地址,netmask是255.255.255.255,piuser用piadmin*(Cr-PITRUST)PIconfig>client2,192.168.28.227,255.255.255.255,piadmin//例子*(Cr-PITRUST)PIconfig>@ends*(Cr-PITRUST)PIconfig>@modelist//浏览模式*(Ls-PITRUST)PIconfig>@ostr**(Ls-PITRUST)PIconfig>@seletrust=*//选择所有TRUST名*(Ls-PITRUST)PIconfig>@ends//结束后系统会列举出所有的配置二.PIOPC接口机的安装及配置PIOPC接口机端的安装源程序由3部分组成,在PIOPC目录下面,有2个文件夹“PIAPI”和“NTI”,先安装PIAPI,安装时配置如下:
2023/12/19 10:32:33 128KB PI服务器及各客户端安装配置
1
两篇论文和一篇PDF文档1、ARP协议的含义和工作原理……………………………………………………51.1、ARP协议简介……………………………………………………………51.2、ARP协议的数据结构……………………………………………………51.3、ARP协议的利用………………………………………………………51.3.1、交换网络的嗅探…………………………………………………51.3.2、IP地址冲突………………………………………………………61.3.3、阻止目标的数据包通过网关………………………………………61.3.4、通过ARP检测混杂模式节点………………………………………71.4、ARP协议的原理……………………………………………………………7
2023/12/16 22:48:05 496KB ARP 攻击 防御
1
在嵌入式web服务器boa框架的基础上,使用C语言cgi,或者Python脚本,结合HTML+javascript+ajax的嵌入式web系统的开发实例html中使用javascritp+ajax从C语言生成的cgi文件的get,set一些值.boa服务器的相关配置参数说明:http://www.cnblogs.com/liuweiqiang/p/3859130.htmlboa安装包文件名:boa-for-hi3516a.tar.gzboa.conf文件的保存路径:cat/etc/boa/boa.confboa可执行文件的路径:/usr/local/bin/boa,可以设置为:系统启动的时候,这个进程自动启动boa.conf文件的重要参数保存html文件的目录DocumentRoot/www可以将这个目录,设置为samb共享文件夹的目录,方便修改调试修改完成以后,肯定要重启boa进程的保存python脚本,或者C语言cgi文件的目录ScriptAlias/cgi-bin//var/www/cgi-bin/说明:cgi-bin/后面的斜杠,一定要加上可以将这个目录,设置为samb共享文件夹的目录,方便修改调试修改完成以后,肯定要重启boa进程的html文件文件中,调用python脚本的时候,指定的路径,需要有:/cgi-bin,比如:varurl="/cgi-bin/getuser.py";这个是python或者varurl="/cgi-bin/output.cgi";这个是C语言说明:如果发现,html文件,修改了,可是在浏览器中,查看html源代码的时候,这个代码,还是旧的,那么可以通过清空"IE浏览器","360浏览器"的浏览记录以上,javascript可以调用python同样,也可以调用C语言生成的cgi文件(其实,就是可执行文件)C语言+Html例子C语言CGI实例http://blog.csdn.net/ajrm0925/article/details/8810342http://blog.csdn.net/liang890319/article/details/6277900http://blog.csdn.net/gnefniu/article/details/42432657上传文件:http://blog.csdn.net/yu_xiang/article/details/7996670查找文件find.-typef-name"boa.conf"-print-mountfind.-typef-name"boa"-print-mount四、嵌入式web服务器boa的配置和使用嵌入式web服务器boa的配置文件为boa.conf,在boa-0.94.13目录下面,复制该文件到文件系统的/etc/boa目录下面,打开boa.conf,修改为如下内容:Port80UserrootGrouprootErrorLog/dev/consoleAccessLog/dev/nullServerNameSoftEmbed.comDocumentRoot/wwwDirectoryIndexindex.htmlKeepAliveMax1000KeepAliveTimeout10MimeTypes/etc/mime.typesDefaultTypetext/plainCGIPath/bin:/usr/bin:/usr/local/binScriptAlias/cgi-bin//www/cgi-bin/几个重要配置参数如下:DocumentRoot:存放html文档的主目录;
DirectoryIndex:默认返回的html文档;
ScriptAlias:cgi脚本虚拟路径对应的实际路径,/www/cgi-bin/为cgi脚本存放的实际路径;
其他配置选项的意义请参考相关资料。
复制boa可执行文件到/usr/sbin目录中,启动boa进程重新制作文件系统,系统启动后,在客户端浏览器上输入开发板的ip地址,例如:http://192.168.0.218,就可以看到显示的测试网页了,如下图所示CGIgetenv函数的参数详解:http://www.cnblogs.com/ser0632/p/5498228.htmls=geten
2023/12/16 11:01:12 2.62MB boa C语言cgi python html
1
程序可配置多个海康摄像头地址,转发成本地IP地址的RTSP地址,使用VLC客户端可直接播放。
使用前,请修改配置文件中摄像头的地址,以及本机的IP地址。
2023/12/13 18:44:14 23.4MB VLC RTSP 海康 网络摄像头
1
oracle9i(9.2.0.4)32位,在官方网站,下载的,比较费劲的下载来的,官方网站下来的,通过迅雷下载的。
国内IP地址部分无法正常下载。
反正对于大家有帮助的事情是最好的!9I也适合新手朋友学习!
2023/12/12 23:36:10 374B ORACLE9i
1
使用注意:1.WebLogic反弹需要等5秒左右2.该工具为对外测试版,请尽量按照正常思路来用,比如Url填写清楚,IP地址写对了,报错或者抛异常神马的别怪我,调输入校验好蛋疼。
本工具与网上已公布工具优点:1.综合实现网上公布的代码执行、反弹2.jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell3.反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。
4.jboss回显执行命令部分利用异常抛出机制,本地(4.2.3.GA)测试成功,其他版本请自测5.体积更小,不再依赖java环境,但程序采用.net编写,需要.net4.0环境待完成:weblogic回显结果测试中,稍后加入
2023/12/8 21:11:17 31KB java Java反序列
1
用Qt实现的Windows平台远程控制软件,包含源代码和编译后可以运行的程序,服务器端(被控端)为进程形式,客户端(主控端)为图形界面程序。
客户端在连接时要设置服务器端的ip地址以及要显示的长度和宽度(不能超过服务器端屏幕分辨率)。
2023/12/7 16:40:44 6.07MB 远程控制 Qt Windows
1
有两个功能:1.获取目标地址:command2.ARP断网攻击:command对应参数解释:target_ip:目标IP地址source_ip:在断网攻击时将本机IP伪装为自己指定的IPinterface:网卡接口
1
共 304 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡