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
《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
类与类属性: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
为了方便,把代码放在Word里面了,每次上机实验的题目代码都在。
第一次:对如下多项式编写类定义:+++…+其中,n为多项式的次数。
完成如下功能:(1)可存储任意大的多项式(提示:可用动态数组实现)。
(2)定义构造函数、析构函数、拷贝构造函数。
(3)包含一个static成员存储定义的多项式的数量。
(4)定义一个成员函数输出多项式。
(可参照-x^4-6x^3+5格式输出)(5)定义一个成员函数计算多项式的值。
(6)写main函数测试类的功能。
(7)采用多文件实现。
考虑:哪些成员函数可以声明为const.第二次:(8)重载“+”运算符,实现两个多项式相加。
(9)重载“-”运算符,实现两个多项式相减。
(10)重载“*”运算符,实现两个多项式相乘。
(11)重载“=”运算符,实现两个多项式的赋值运算。
考虑:把其中某个运算符重载为友元函数。
第三次:C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能:(1)strings=“吉林大学”;
(2)stringt=s;(3)stringm;
m=t;
(4)m.legnth()函数测量字符串的长度(5)m.cat(stringconst&)连接字符串第四次:我公司为仪器生产企业,目前生产摄像机和行车记录仪两种产品,分别销售给用户。
摄像机包含摄像、图像质量设定、编码算法等属性。
将摄像机增加相应芯片(具有操作菜单、自动拍摄、车速传感器、源代码等功能)后,形成一个行车记录仪。
要求:设计摄像机类,并请根据下列不同的功能要求,采用不同的继承方式,设计行车记录仪类,并添加测试代码,体验不同继承方式下的成员访问属性。
(类设计时可根据需要自行添加数据成员和其他成员函数。
)(1)行车记录仪的芯片可以使用摄像机的摄像、图像质量设定功能。
行车记录仪用户可以操作行车记录仪的操作菜单和摄像机的摄像功能。
(2)行车记录仪的芯片可以使用摄像机的拍摄、图像质量设定功能。
行车记录仪用户仅仅可以操作行车记录仪的操作菜单。
(3)行车记录仪的芯片可以使用摄像机的拍摄、图像质量设定功能。
行车记录仪用户仅仅可以操作行车记录仪的操作菜单同时其他公司购买行车记录仪,因该公司也用于销售,不得泄露其全部内容课后:(1)采用组合方式设计行车记录仪类,增加相应测试代码,体验继承和组合的关系。
(2)分别为继承和组合方式下为各类添加构造函数、析构函数,增加相应测试代码,体验对象的初始化和构造顺序。
(3)将摄像机类和行车记录仪类功能相近的函数(如拍摄、编码等功能函数)设为同名函数,增加相应测试代码,体验同名函数覆盖。
(4)为我公司建立一个多态的产品类层次结构,使用抽象类,测试时,创建一个基类指针的容器,通过基类指针调用虚函数,体验多态。
2023/12/6 1:35:36 110KB 吉林大学 C++ 实验报告 代码
1
编辑推荐:38位大师级的程序员,一步步讲解他们的项目架构,开发时的种种折中考虑(tradeoffs)以及何时必须打破常规,寻求突破。
全球38位顶尖高手、众多语言之父经典之作。
本书收录的是软件设计领域中的一组大师级作品。
每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。
本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。
它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。
本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。
内容简介:本书介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。
在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。
本书33章,有33位作者,每位作者贡献一章。
每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。
33位大师,每个人对代码之美都有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。
虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。
目录信息:第1章正则表达式匹配器。
1.1编程实践1.2实现1.3讨论1.4其他的方法1.5构建1.6小结第2章Subversion中的增量编辑器:像本体一样的接口2.1版本控制与目录树的转换2.2表达目录树的差异2.3增量编辑器接口2.4但这是不是艺术?2.5像体育比赛一样的抽象2.6结论第3章我编写过的最漂亮代码3.1我编写过的最漂亮代码3.2事倍功半3.3观点3.4本章的中心思想是什么?3.5结论3.6致谢第4章查找4.1.耗时4.2.问题:博客数据4.3.问题:时间,人物,以及对象?4.4.大规模尺度的搜索4.5.结论第5章正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验5.1XML验证器的作用5.2问题所在5.3版本1:简单的实现5.4版本2:模拟BNF语法——复杂度O(N)5.5版本3:第一个复杂度O(logN)的优化5.6版本4:第二次优化:避免重复验证5.7版本5:第三次优化:复杂度O(1)5.8版本6:第四次优化:缓存(Caching)5.9从故事中学到的第6章集成测试框架:脆弱之美6.1.三个类搞定一个验收测试框架6.2.框架设计的挑战6.3.开放式框架6.4.一个HTML解析器可以简单到什么程度?6.5.结论第7章美丽测试7.1讨厌的二分查找7.2JUnit简介7.3将二分查找进行到底7.4结论第8章图像处理中的即时代码生成第9章自顶向下的运算符优先级9.1.JavaScript9.2.符号表9.3.语素9.4.优先级9.5.表达式9.6.中置运算符9.7.前置操作符9.8.赋值运算符9.9.常数9.10.Scope9.11.语句9.12.函数9.13.数组和对象字面量9.14.要做和要思考的事第10章追求加速的种群计数10.1.基本方法10.2.分治法10.3.其他方法10.4.两个字种群计数的和与差10.5.两个字的种群计数比较10.6.数组中的1位种群计数10.7.应用第11章安全通信:自由的技术11.1项目启动之前11.2剖析安全通信的复杂性11.3可用性是关键要素11.4基础11.5测试集11.6功能原型11.7清理,插入,继续……11.8在喜马拉雅山的开发工作11.9看不到的改动11.10速度确实重要11.11人权中的通信隐私11.12程序员与文明第12章在BioPerl里培育漂亮代码12.1.BioPerl和Bio::Graphics模块12.2.Bio::Graphics的设计流程12.3.扩展Bio::Graphics12.4.结束语和教训第13章基因排序器的设计13.1基因排序器的用户界面13.2通过Web跟用户保持对话13.3.多态的威力13.4滤除无关的基因13.5大规模美丽代码理论13.6结论第14章优雅代码随硬件发展的演化14.1.计算机体系结构对矩阵算法的影响14.2一种基于分解的方法14.3一个简单
2023/11/20 12:23:22 49.42MB 《代码之美》 中文 完整版 pdf
1
由浅入深学C++基础进阶与必做300题源程序解压后122MC++是近年广泛使用的程序设计语言,由C语言的基础上发展而来,实现了由面向过程到面向对象的转变,全面支持面向对象的程序设计方法。
C++语言在软件工业领域一直处于领先地位,并且自身在不断完善,必将作为高性能软件开发的基础,在软件开发中发挥主要的作用。
由肖俊宇等编著的《由浅入深学C++--基础进阶与必做300题(附光盘)》是C++语言的入门教程,较为系统地介绍了C++语言的基础内容。
本书共分为3篇22章,详细介绍了C++语言的基础知识、面向对象、标准模块、底层开发和综合案例。
本书循序渐进地讲述了C++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、封装、继承、多态、类模板、文件流、标准模板库STL和编程实践等内容。
《由浅入深学C++--基础进阶与必做300题(附光盘)》涉及面广,从基本知识到高级内容和核心概念,再到综合案例,几乎涉及C++开发的所有重要知识。
本书适台所有想全面学习C++开发技术的人员阅读,尤其适合没有编程基础的C++语言初学者作为入门教程,也可作为大、中院校师生和培训班的教材,对于C++语言开发爱好者,本书也有较大的参考价值。
2023/11/14 6:44:17 5.88MB C++
1
《C++程序设计教程(第二版)》,作者:钱能,出版社:清华大学出版社,ISBN:7302114641,PDF格式,大小24.9MB,高清影印版。
内容简介:本书是《C++程序设计教程》的第二版。
然而从指导思想、内容结构、写作特点等方面,都以全新的面貌呈现于读者。
全书全部重新执笔,代码全部重写,涵盖了基本C++编程方法的全部技术特征。
本书以C++标准为蓝本,从过程化编程的基本描述,到对象化编程的方法展开,乃至高级编程的实质揭示,形成一条自然流畅的主线,通俗易懂,形象风趣。
本书在内容结构上自成体系,并以独特的描述手法,辐射到计算机专业其他诸课程,体系严谨,结构独特。
作者在长期的教学、科研实践以及ACM大学生程序设计竞赛培训工作中,总结出了许多难能可贵的教学经验,能使读者快捷而准确地找到编程技术要领,洞穿C++内部实现要害,直击抽象编程本质。
与本书配套,《C++课程设计指导》、《C++程序设计习题及解答》、《C++程序设计教程详解》和《C++程序设计教程精粹》也将陆续面世。
除此之外,还配有C++程序设计教程课件和源代码供读者下载。
本书适用于大学计算机程序设计教学,也适合于立志自学成才的读者,帮助他们从零开始走向高级程序员。
本书也旨在引导读者从欣赏C++入门的初级精彩到享受C++经典名作的内在精彩,因而,也是一本软件工作者不可多得的案头参考书。
目录:第一部分基础编程第1章概述1.1程序设计语言1.2c++前史1.3c++1.4c++编程流程1.5程序与算法1.6过程化程序设计1.7对象化程序设计1.8目的归纳1.9练习1第2章基本编程语句2.1说明语句2.2条件语句2.3循环语句2.4循环设计2.5输入输出语句2.6转移语句2.7再做循环设计2.8目的归纳.2.9练习2第3章数据类型3.1整型3.2整数子类3.3浮点型3.4c-串与string3.5数组3.6向量3.7指针与引用3.8目的归纳3.9练习3第4章计算表达4.1名词解释与操作符4.2算术运算问题4.3相容类型的转换4.4关系与逻辑操作4.5位操作4.6增量操作4.7表达式的副作用4.8目的归纳4.9练习4第二部分过程化编程第5章函数机制5.1函数性质5.2指针参数5.3栈机制5.4函数指针5.5main函数参数5.6递归函数5.7函数重载5.8目的归纳5.9练习5第6章性能6.1内联函数6.2数据结构6.3算法6.4数值计算6.5标准c++算法6.6动态内存6.7低级编程6.8目的归纳6.9练习6第7章程序结构7.1函数组织7.2头文件7.3全局数据7.4静态数据7.5作用域与生命期7.6名空间7.7预编译7.8目的归纳7.9练习7第三部分面向对象编程技术第8章类8.1从结构到类8.2成员函数8.3操作符8.4再论程序结构8.5屏蔽类的实现8.6静态成员8.7友元8.8目的归纳8.9练习8第9章对象生灭9.1构造函数设计9.2构造函数的重载9.3类成员初始化9.4构造顺序9.5拷贝构造函数9.6析构函数9.7对象转型与赋值9.8目的归纳9.9练习9第10章继承10.1继承结构10.2访问父类成员10.3派生类的构造10.4继承方式10.5继承与组合10.6多继承概念10.7多继承技术10.8目的归纳10.9练习10第11章基于对象编程11.1抽象编程11.2编程质量11.3分析josephus问题11.4基于过程的解决方案11.5基于对象的解决方案11.6程序维护11.7程序扩展11.8目的归纳11.9练习11第四部分高级编程第12章多态12.1继承召唤多态12.2抽象编程的困惑12.3虚函数12.4避免虚函数误用12.4.3若干限制12.5精简共性的类12.6多态编程12.7类型转换12.8目的归纳12.9练习12第13章抽象类13.1抽象基类13.2抽象类与具体类13.3深度隔离的界面1
2023/11/12 12:58:06 24.32MB 钱能 C++教程 钱能C++ C++程序设计
1
面向对象的继承、多态、抽象类、虚方法的Demo
2023/11/3 0:57:49 23KB 多态 抽象类 c#
1
主要是c++的一些小练习,希望对初学者有一点作业。
2023/10/23 15:39:55 9.11MB C++
1
许多开发者对c/c++语言及其底层原理掌握不牢固,在面试过程中经常漏洞百出,无法取得好成绩。
而招聘单位为了得到高素质的员工往往采用各种形式的面试考察求职者,这让面试难度大大增加。
求职者要想成功应聘,不仅需要扎实的基本功,还需要经受情商和智商方面的考验。
  本书通过380余个面试题,对企业招聘c/c++程序员需要掌握的知识进行了系统、全面的总结,以帮助读者进行充分的面试准备,在激烈的竞争中成功应聘。
本书内容大多取材于各大it公司的面试题,详细分析了应聘c/c++程序员职位的常见考点。
本书主要内容包括面试流程及准备、英语面试、电话面试、c/c++语言基础、流程控制、输入输出、预处理、内存管理、指针、面向对象基础、类、多态、继承、函数、模板与stl、数据结构、软件工程、数据库、操作系统、计算机网络、经典算法题、数据库操作题、思维拓展、文字解答实战题、程序改错实战题、编写程序实战题、智力测试、逻辑测试等。
  本书附带1张光盘,内容为本书所有面试题的多媒体教学视频及其他学习资料。
  本书中的面试题不但以实例代码的形式对答案进行了详细解析,还对问题的相关知识点进行了扩展说明。
希望通过本书,读者可以成功应聘,并提升综合素质。
本书适合应聘c/c++职位的程序员阅读,也适合其他程序员作为拓展读物进行阅读。
目录:第1篇求职准备和技巧第1章了解面试——通过面试抓住机会第2章英文面试第3章电话面试第2篇c/c++基础知识第4章c/c++语言基础第5章流程控制第6章输入输出第7章预处理以及内存管理第8章指针第9章面向对象与类第10章继承第11章函数第12章模板与stl第3篇c/c++专业应用第13章数据结构第14章软件工程第15章数据库、操作系统、计算机网络第16章上机操作题第17章思维拓展.第4篇c/c++面试题实战解析第18章文字解答实战题第19章程序改错实战题第20章编写程序实战题第5篇智力测试与逻辑测试第21章智力测试第22章逻辑测试
2023/10/11 13:02:13 29.92MB c/c++ 程序员 面试
1
共 83 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡