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
目录:第一章绪论1·1生物视觉通路简介1·2Marr的计算视觉理论框架1·3本书各章内容简介1·4计算机视觉的现状与阅读本书需注意的问题思考题参考文献第二章边缘检测2·1边缘检测与微分滤波器2·2边缘检测与正则化方法2·3多尺度滤波器与过零点定理2·4最优边缘检测滤波器2·5边缘检测快速算法2·6图像低层次处理的其他问题思考题参考文献第三章射影几何与几何元素表达3·1仿射变换与射影变换的几何表达3·2仿射坐标系与射影坐标系3·3仿射变换与射影变换的代数表达3·4不变量3·5由对应点求射影变换3·6点3·7指向和方向3·8平面直线及点线对偶关系3·9空间平面及点面对偶关系3·10空间直线3·11二次曲线与二次曲面思考题参考文献第四章摄像机定标4·1线性模型摄像机定标4·2非线性模型摄像机定标4·3立体视觉摄像机定标4·4机器人手眼定标4·5摄像机自定标技术思考题参考文献第五章立体视觉5·1立体视觉与三维重建5·2极线约束5·3对应基元匹配5·4射影几何意义下的三维重建思考题参考文献第六章运动与不确定性表达6·1欧氏平面上的刚体运动6·2欧氏空间中的刚体运动6·3不确定性的描述6·4不确定性的运算6·5不确定性运算的几个例子6·6三维直线段的不确定性6·7不确定性的显示思考题参考文献第七章基于光流场的运动分析7·1光流场和运动场7·2光流的约束方程7·3微分技术7·4其他方法7·5基于光流场的定性运动解释思考题参考文献第八章长序列运动图像特征跟踪8·1引论8·2参数估计理论初步8·3特征运动模型8·4特征跟踪的阐述8·5匹配8·6实际应用中需要考虑的问题思考题参考文献第九章基于二维特征对应的运动分析9·1极线方程和本质矩阵9·2基于点匹配的运动计算9·3图像是一个空间平面的投影时的运动计算9·4基于直线匹配的运动计算9·5基本矩阵的估计思考题参考文献第十章基于三维特征对应的运动分析10·1由三维点匹配估计运动10·2不需显式匹配的方法10·3从三维直线匹配估计运动10·4从平面匹配估计运动10·5二维-三维的物体定位思考题参考文献第十一章由图像灰度恢复三维物体形状11·1辐射度学与光度学11·2光照模型11·3由多幅图像恢复三维物体形状11·4由单幅图像恢复三维物体形状思考题参考文献第十二章建模与识别12·1CAD系统中的三维模型表达12·2曲线与曲面的表达12·3三维世界的多层次模型12·4由二维图像建模12·5识别的一般原则——问题与策略12·6特征关系图匹配12·7“假设检验”识别方法思考题参考文献第十三章距离图像获取与处理13·1距离传感器13·2数据预处理13·3深度图分割思考题参考文献第十四章计算机视觉系统体系结构讨论与展望14·1计算机视觉系统的基本体系结构14·2视觉系统体系结构讨论14·3主动视觉14·4计算机视觉的应用展望参考文献附录A实验数据及参考结构A·1图像的格式A·2摄像机定标A·3立体视觉A·4基于光流场的运动分析A·5长序列运动图像特征跟踪A·6基于二维特征对应的运动分析A·7基于三维特征对应的运动分析
2023/12/23 18:13:56 13.62MB 计算机视觉 马颂德 张正友
1
摘要:为什么我们就要使用n(物理)层体系结构来构建系统?这是一篇基础性的文章,介绍了人们对于软件的一种理念,即当我们面对新项目时往往将系统明确地分为三个物理层次:表现层、业务逻辑层和数据访问或资源层。
然而,对于循规蹈矩的做事方式应当重新审视。
有些事物是如此坚定地挺进了我们的通俗文化之中,以至于不发生灾难性的事故就无法将其摈弃,即使它们早已不能适应我们的生活。
这样的例子在法律界比比皆是,在当今时代或其他时代美国的市、州甚至联邦政府针对无意义的书籍都有相关的法律(据说,在亚利桑那州的某个小镇上,在公路中间倒车是违法的)。
这不禁使人联想到一个老笑话:一个刚结婚的男人看到妻子正在准备晚餐要吃的烤肉。
2023/12/19 13:48:18 139KB 实用体系结构:逻辑分层
1
小波变换系数等值线图时间序列(TimeSeries)是地学研究中经常遇到的问题。
在时间序列研究中,时域和频域是常用的两种基本形式。
其中,时域分析具有时间定位能力,但无法得到关于时间序列变化的更多信息;
频域分析(如Fourier变换)虽具有准确的频率定位功能,但仅适合平稳时间序列分析。
然而,地学中许多现象(如河川径流、地震波、暴雨、洪水等)随时间的变化往往受到多种因素的综合影响,大都属于非平稳序列,它们不但具有趋势性、周期性等特征,还存在随机性、突变性以及“多时间尺度”结构,具有多层次演变规律。
对于这类非平稳时间序列的研究,通常需要某一频段对应的时间信息,或某一时段的频域信息。
显然,时域分析和频域分析对此均无能为力。
2023/12/18 21:16:17 530KB MATLAB 小波分析
1
函数填空:层次遍历多元树(在文件tree.cpp中3个空)、先根遍历、后根遍历的递归函数(在文件tree.h中2个空);
1
问题描述:在图书馆中,通常图书采用多级分类管理,即将图书分类目录(简称书目)利用目录树的形式来表示,如下图所示。
现要求设计一个简单的书目管理系统,其功能如下:(1)书目的显示功能:要求以“树型的层次结构”显示所有图书分类。
(2)书目的维护功能:包括添加、删除、修改等。
具体如下:①添加书目:能够向目录树中添加新书目。
②删除书目:删除某个指定书目。
删除某个书目时,若其还有下级书目,则还须删除其所有的下级书目。
③修改书目:修改书目信息。
(3)书目的查询功能。
其查询结果应为从根目录至此目录的路径。
2023/12/15 1:40:15 42KB 数据结构 C C++
1
《Java程序员面试笔试宝典》引入了一批来自于名牌高校、就职于明星企业的职场达人的真实求职案例,通过他们的求职经验与教训,抛砖引玉,将整个求职过程生动形象地展示在读者面前,进而对求职者起到一定的指引作用。
同时,为了更具说服力,书中特邀多位IT名企面试官现身说法,以独到的视角对面试过程中求职者存在的各类问题进行了深度剖析。
为了能够让读者对即将投身的工作有一份更加清楚的认识,能够更加有针对性地进行求职准备,《Java程序员面试笔试宝典》对各种类型的IT企业的招聘环节进行了庖丁解牛式的分析。
不仅如此,书中还特别针对当前各大IT企业面试笔试中常见的问题以及注意事项,进行了深层次的分析。
技术性知识的考核是程序员求职中最重要的内容,鉴于此,《Java程序员面试笔试宝典》除了对传统的计算机相关知识(Java语言基础知识、Web基础知识、数据结构与算法、操作系统、计算机网络与通信、数据库、设计模式等)以及面试笔试真题进行分析与解答外,还根据当前计算机技术的发展潮流,对面试笔试中常见的海量数据处理进行了详细地分析。
,《Java程序员面试笔试宝典》是一本计算机相关专业毕业生面试笔试的求职用书,同时也适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。
2023/12/11 18:53:22 6.11MB 文字版
1
本书全面系统地介绍了Excel数据透视表的技术特点和应用方法,深入揭示数据透视表的原理,并配合大量典型实用的应用实例,帮助读者全面掌握Excel数据透视表技术。
本书共18章,分别介绍创建数据透视表,改变数据透视表的布局,刷新数据透视表,数据透视表的格式设置,在数据透视表中排序,数据透视表的项目组合,在数据透视表中进行计算,数据透视表函数的综合应用,创建动态数据透视表,创建复合范围的数据透视表,通过导入外部数据“编辑0LEDB查询”创建数据透视表,使用“MicrosoftQuery”数据查询创建透视表,利用多样的数据源创建数据透视表,在Web上使用数据透视表,数据透视表与VBA,使用数据透视图,数据透视表与数据透视图打印技术,数据透视表技术综合运用等内容。
本书适合各个层次的Excel用户,既可作为初学者的入门指南,又可作为中、高级用户的参考手册。
书中大量的实例还适合读者直接在工作中借鉴。
2023/12/10 5:18:49 105.4MB Excel 数据透视表 应用 办公软件
1
数学建模算法:包括数学规划,图论,排队论,层次分析,多元统计分析方法,微分方程,模糊数学,灰色模型,神经网络,现代算法,非常全的数学建模资料,而且还包含相应的matlab程序,这个是全本。
2023/12/9 8:17:21 4.62MB matlab 数学建模
1
现代综合评价软件,模糊层次分析法计算,灰色关联度分析
2023/12/8 2:50:54 5.92MB AHP
1
共 416 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡