C/C++
文章平均质量分 61
文斗士
喜欢收集整理C++、python、Linux优质资源,热心于分享各类代码资源!希望大家能一起学习、进步。
展开
-
【C++进阶知识】C++多态性
虚函数是指在基类中声明为虚函数的函数,在派生类中可以被重写,派生类对象调用该函数时,将会调用派生类中的函数,而不是基类中的函数。C++是一种基于对象的编程语言,具有许多强大的特性,包括多态性。在C++中,有两种类型的多态性:编译时多态性和运行时多态性。总之,C++的多态性是一种非常有用的编程机制,可以提高代码的重用性和灵活性。多态性可以应用于很多场景,例如图形界面编程中的控件、游戏开发中的角色和NPC等等。模板是一种通用的编程机制,可以用来创建具有相同代码结构但不同数据类型的函数或类。原创 2023-05-06 20:47:05 · 374 阅读 · 0 评论 -
【C++进阶知识】C++纯虚函数和抽象类
总之,抽象类和纯虚函数是C++中重要的概念,它们为代码提供了更好的结构和可读性,同时也允许我们定义通用的接口并在派生类中实现。抽象类和纯虚函数的使用可以提高代码的可重用性和可读性,并且可以避免在派生类中出现重复的代码。纯虚函数是一种没有实现体的虚函数,需要在派生类中实现。在C++中,抽象类和纯虚函数是一种常用的设计模式,它们可以帮助程序员更好地组织自己的代码,并且为其他程序员提供清晰的代码使用方式。抽象类和纯虚函数的使用可以提高代码的可重用性和可读性,同时也可以避免在派生类中出现重复的代码。原创 2023-05-06 20:44:37 · 740 阅读 · 0 评论 -
【C++进阶知识】C++虚函数和虚函数表
在C++中,我们可以使用关键字virtual来定义一个虚函数。例如,我们有一个基类Shape,其中定义了一个虚函数area(),用于计算图形的面积。派生类Rectangle和Triangle继承自Shape类,并重载了area()函数以实现不同的计算方法。public:cout原创 2023-04-28 22:27:23 · 1020 阅读 · 0 评论 -
【C++进阶知识】C++类的继承和派生
在C++中,类可以从另一个类继承属性和方法,被继承的类称为父类或基类,继承的类称为子类或派生类。通过继承,子类可以获得父类的所有公有成员,包括属性和方法,并且可以在此基础上添加自己的属性和方法。在C++中,虚函数是一种特殊的成员函数,它可以被子类覆盖。纯虚函数是一种没有实现的虚函数,它在父类中声明,但是没有函数体。子类的构造函数可以调用父类的构造函数来初始化父类的成员变量。在子类中,可以覆盖父类的方法,以实现自己的功能。如果子类没有覆盖父类的方法,子类会继承父类的方法。类的属性和方法,并添加了自己的方法。原创 2023-04-28 22:22:51 · 830 阅读 · 0 评论 -
C++中容器的分类介绍
C++中的容器是一种非常有用的数据结构,可以帮助我们管理和组织数据。通过学习序列容器、关联容器和无序关联容器,我们可以更好地理解和应用这些数据结构,从而提高我们的编程技能。原创 2023-04-25 22:17:13 · 339 阅读 · 0 评论 -
程序员如何提高代码能力
在这些平台上,你可以阅读其他程序员的代码,了解他们的解决方案和思考过程,从中学习到更多的技巧和方法。同时,可以参考其他程序员的优秀代码,了解其实现方式和思路,并将其应用到自己的项目中。通过实践,可以更深入地理解 C++ 语言的细节和特性,提高代码的质量和效率。而要成为一名优秀的 C++ 程序员,不仅需要掌握 C++ 的基本语法和特性,还需要不断提高自己的代码能力。总之,通过阅读优秀的代码、不断练习、学习新技术、与他人合作和不断反思和改进,可以提高自己的 C++ 代码能力,成为一名优秀的 C++ 程序员。原创 2023-04-24 21:39:41 · 626 阅读 · 0 评论 -
【C++例程】:宾馆客房管理系统
这个功能是在函数check_in中实现的,程序首先判断顾客是否订房了,如果预定了房间,则要求输入顾客姓名和身份证号码,然后在所有的顾客中去查找此姓名和身份证号码的顾客,如果匹配了就取得其住房编号,然后根据住房编号计算出该住房的标准,再根据该顾客要求预定住房的天数和该住房标准的价格计算出该顾客要缴纳的房费,同时显示到界面上,这时操作员对顾客进行收费,同时设置顾客的住房费用属性,将该住房的状态修改为以入住状态(state=2);在这个系统中,这个功能是在book_room函数中实现的,其流程图如下所示。原创 2023-04-01 22:14:10 · 1165 阅读 · 0 评论 -
C语言例程:快速排序
第 2 步,令 j 自 high 起向左扫描,直到找到第 1 个关键字小于 pivot.key 的记录 R[j],将 R[j]移至 i 所指的位置上,这相当于 R[j]和基准 R[i](即 pivot)进行了交换,使关键字小于基准关键字 pivot.key 的记录移到了基准的左边,交换后 R[j]中相当于是 pivot;随机的快速排序与一般的快速排序算法差别很小。最好时间复杂度:在最好情况下,每次划分所取的基准都是当前无序区的“中值”记录,划分的结果与基准的左、右两个无序子区间的长度大致相等。原创 2023-03-19 23:54:05 · 109 阅读 · 0 评论 -
C语言例程:冒泡排序
能一趟扫描完成排序的情况,只有最轻的气泡位于 R[n]的位置,其余的气泡均已排好序,那么也只需一趟扫描就可以完成排序。比如对初始关键字序列:94,10,12,18,42,44,45,67 就需 7 趟扫描。即依次比较(R[n],R[n-1]),(R[n−1],R[n-2]),…对于每对气泡(R[j+1],R[j]),若 R[j+1].key原创 2023-03-19 23:40:07 · 231 阅读 · 0 评论 -
C语言例程:希尔排序
②当 n 值较小时,n 和 n2的差别也较小,即直接插入排序的最好时间复杂度 O(n)和最坏时间复杂度 O(n2)差别不大。③在希尔排序开始时增量较大,分组较多,每组的记录数目少,故各组内直接插入较快,后来增量 di 逐渐缩小,分组数逐渐减少,而各组的记录数目逐渐增多,但由于已经按 di-1 作为距离排过序,使文件较接近于有序状态,所以新的一趟排序过程也较快。有人通过大量的实验,给出了目前较好的结果:当 n 较大时,比较和移动的次数约在 nl.25~1.6n1.25之间。稳定性:希尔排序是不稳定的。原创 2023-03-18 21:57:02 · 167 阅读 · 0 评论 -
C语言例程:插入排序
将一个整数数组按从小到大的顺序进行排序,主要学习基本的插入排序和改进的冒泡排序的算法和应用。原创 2023-03-17 23:02:15 · 872 阅读 · 0 评论 -
C语言例程:学生成绩管理程序
编制一个统计存储在文件中的学生考试分数的管理程序。设学生成绩以一个学生一条记录的形式存储在文件中,每个学生记录包含的信息有姓名、学号和各门功课的成绩。要求编制具有以下几项功能的程序:求出各门课程的总分,平均分、按姓名,按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等。程序运行结果输入 l 命令后的结果输入 s 命令后的结果按姓名和学号查找记录的结果计算平均分和总分。原创 2023-03-16 22:28:40 · 2729 阅读 · 0 评论 -
C语言例程:文件的字数统计程序
编程实现统计一个或多个文件的行数、字数和字符数。程序运行结果如图 所示(设该程序文件名为 program.exe)。原创 2023-03-15 23:07:04 · 1257 阅读 · 0 评论 -
C语言例程:用“结构”统计学生成绩
时,函数返回 1,不能正常输入时,函数返回 0,并采用交互方式输入学生信息的每一项数据。输出学生信息的函数的参数也是指向存储学生信息的变量的指针,一个学生信息的 3 项数据分别。存储学生信息的变量的数据类。设学生信息包括学号、姓名和五门功课的成绩,要求编写输入输出学生信息的函数。设输入学生信息的函数以存储学生信息的结构变量的指针为参数,当正确输入一个学生信息。程序引入一个结构数组依次存储输入的学生信息,为了在一组学生信息排序时避免交换整个。一组学生信息后,以学生成绩的总分从高到低顺序输出学生信息。原创 2023-03-14 22:33:19 · 1250 阅读 · 0 评论 -
C语言例程:字符排列
用已知字符串 s 中的字符,生成由其中 n 个字符组成的所有字符排列。设 n 小于字符串 s 的字符个数,其中 s 中的字符在每个排列中最多出现一次。例如,对于 s[ ]=“abc”,n=2,则所有字符排列有:ba,ca,ab,cb,ac,bc。原创 2023-03-13 22:42:38 · 174 阅读 · 0 评论 -
C语言例程:字符替换
编制一个字符替换函数 rep(char *s,char *s1,char *s2),实现将已知字符串 s 中所有属于字符串。s1 中出现,若不在字符串 s1 中出现,则略过该字符;若在字符串 s1 中出现,则用字符串 s2 中的。为了实现上述要求,可用一个循环顺序访问字符串 s 中的字符,并检查该字符是否在字符串。则调用函数 rep(s,s1,s2)将使字符串 s 的内容变为"xByxBy"。s1 中的字符都用字符串 s2 中的对应字符代替。对应字符代替 s 中的字符。换功能,其基本原理是相同的。原创 2023-03-12 20:33:41 · 989 阅读 · 0 评论 -
C语言例程:阿拉伯数字转换为罗马数字
程序使用带命令行参数的 main 函数,将 1~n 的所有数都转换为罗马数字并输出。1 三次仅大于等于 0,所以其罗马数字有两个字符 x 和 3 个字符 i,即 xxiii。能大的数开始考察,要转换的罗马字符能被当前考察的数相减后仅大于等于 0 的次数,就是该考。另外,程序将要转换的整数作为程序的参数。程序还能检查参数的合理性,并将完成转换的工作和检查的工作分别由两个函数完成。转换成罗马数字,如有两个参数,表示该两数范围内的整数转换成罗马数字。1~22 的数字都转换为罗马数字,并显示出来。原创 2023-03-12 20:27:03 · 752 阅读 · 0 评论 -
C语言例程:寻找相同元素的指针
由于两个数表从小到大有序,可让 ca 和 cb 同时顺序访问两数表实现寻找,不必对一个数表的每个元素与另一数表的所有元素都要比较。当一个数表的当前元素小于另一个数表的当前元素时,就调整那个当前元素值小的元素的指针,使它指向下一个元素(如果下一个元素存在)如此比较直至当两个数表的当前元素相等,该元素就是在两个数表中都出现的第一个元素,或者其中某个数表已查找完,则判断在两数表中不存在值相等的元素。在已知两个从小到大的有序的数表中寻找出现的相同元素在第一个数表中的指针。该元素在第一个数组中的地址。原创 2023-03-11 21:25:16 · 286 阅读 · 0 评论 -
C语言例程:寻找指定元素的指针
设要编制的函数为“int *find(int *apt,int n,int key)”,其参数的意义与上述函数 search()的参数。设要编制的函数为“int search(int *apt,int n,int key)”,其中 apt 为给定的数表的首元素的指针;key 为要寻找的元素的值。函数返回的整型值为找到的元素在已知数表中。的下标,如数表中没有值为 key 的元素,则函数返回−1 值。在已知数表中找出第一个与指定值相等的元素的下标和指针。的意义相同,但函数 find()返回找到的元素的指针。原创 2023-03-11 21:18:13 · 322 阅读 · 0 评论 -
C语言例程:指向数组的指针
让指针顺序指向数组的各元素,实现遍历数组;指针与游标变量结合,让指针指向数组中的某元。程序可预定义一个初始化的数组,然后用数组名和下标遍历数组。程序另定义一个指针变量,本实例实现通过指向数组的指针引用数组、利用数组名及下标引用数组等。程序先输出提示说明信息,接着依次输出各个类型变量所占的字节数。素,不改动指针,顺序改变游标变量也能遍历数组。原创 2023-03-10 22:45:04 · 98 阅读 · 0 评论 -
C语言例程:通过指针比较整数大小
两变量 x 和 y 之间的比较“x>y”,利用指向它们的指针 xp 和 yp 可以写成“*xp>*yp”。针变量,设 pf1 的值为 2010H,pf2 的值为 2000H,而浮点数组每个元素占 4 个字节,所以 pf1-pf2 的。”表示 p1 是一个指针变量,它的值是某个整型变量的地址。另定义 3 个指向整型变量的指针变量,并利用它们实现将 3 个整型变量中的 3 个整数按值从小到。在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。对于指向数组的指针变量,可以加上或减去一个整数 n。原创 2023-03-10 22:39:01 · 3056 阅读 · 0 评论 -
C语言例程:任意进制数的转换
将一个无符号整数转换为任意 d 进制数(2≤d≤16)。原创 2023-03-09 22:45:10 · 324 阅读 · 0 评论 -
C语言例程:对数组元素排序
函数 rest(int a[], int n)可以实现对具有 n 个元素的数表 a 的排序。其实现思路为,对 a[]的元素。依次访问,如果 a[i]大于 0,则将 a[i]与最后一个元素交换,同时,最后一个元素指向最后第二个;如果 a[i]为 0,则访问下一个元素;如果 a[i]小于 0,则与第一个元素交换,并将第一个元素指向。本实例对一个一维整型数组进行排序,使其元素的顺序按从小到大排列,即 0 在中间,负数。本实例主函数中的 s 数组也可以由用户输入,此时应当先提示输入数组中元素个数,再通过。原创 2023-03-09 22:35:49 · 655 阅读 · 0 评论 -
C语言例程:编制万年历
编制输入年份,则输出该年年历的程序,通过程序学习和掌握三维数组的用法。原创 2023-03-08 22:29:20 · 356 阅读 · 0 评论 -
C语言例程:利用数组求前 n 个质数
要求确定一个数 m 是否是质数,可以用已求出的质数对 m 的整除性来确定。原创 2023-03-08 22:21:59 · 625 阅读 · 0 评论 -
C语言例程:求解二维数组的最大/最小元素
在 n 行 n 列的二维整数数组中,按以下要求选出两个数。首先从每行选出最大数,再从选出的 n 个大数中选出最小数;其次,从每行选出最小数,再从选出的 n 个小数中选出最大数。原创 2023-03-07 23:06:56 · 3739 阅读 · 0 评论 -
C语言例程:用二维数组实现矩阵转置
二维数组定义的一般形式为:第一部分 基础篇 X2277类型说明符 数组名[常量表达式][常量表达式]原创 2023-03-07 22:55:27 · 4662 阅读 · 0 评论 -
C语言例程:猜数字游戏
实现一个简单的猜数字游戏,学习 while 循环语句的用法。原创 2023-03-06 23:00:29 · 371 阅读 · 0 评论 -
C语言例程:乘法口诀表
输出乘法口诀表,目的是加深对 for 循环以及光标位置控制等内容的理解本程序设计主要思路是:先清屏,并在屏幕上显示提示信息,说明本程序显示的是乘法口诀表。接着,显示横轴 1~9 的数字和纵轴 1~9 的数字。最后,计算 1×1~9×9,并在屏幕上显示。原创 2023-03-06 22:46:04 · 743 阅读 · 0 评论 -
C语言例程:数列求和
计算 1+1+2+1+2+3+1+2+3+4+…通过该实例,可以学习 if 条件判断语句和。for 循环语句的应用。程序运行结果如图 所示。原创 2023-03-05 22:50:31 · 1289 阅读 · 0 评论 -
C语言例程:长方体的体积
【代码】C语言例程:长方体的体积。原创 2023-03-05 20:49:05 · 1540 阅读 · 0 评论 -
经典C程序例程:通过进程ID得到文件名
【代码】经典C程序例程:通过进程ID得到文件名。原创 2023-03-04 23:00:47 · 367 阅读 · 0 评论 -
C语言:IP抓取所有数据包
IP抓取所有数据包原创 2023-03-03 23:45:50 · 451 阅读 · 0 评论 -
C++容器介绍:list
通过front()可以获得list容器中的头部元素,通过back()可以获得list容器的最后一个元素。通过调用list容器的成员函数begin()得到一个指向容器起始位置的iterator,可以调用list容器的end()函数来得到list末端下一位置。a.swap(b)和swap(a, b),都可以完成a链表和b链表的交换。删除了a中所有值为7的元素,此时a中元素为6,8,9,10。a中元素变为:6,7,8,9,2,1,3,6,5。a中元素变为:2,1,3,6,5,6,7,8,9。原创 2023-03-03 14:07:47 · 418 阅读 · 0 评论 -
C++容器介绍:vector
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。原创 2023-03-02 22:56:27 · 274 阅读 · 0 评论 -
经典C程序例程:输入某年某月某日,判断这一天是这一年的第几天
输入某年某月某日,判断这一天是这一年的第几天?原创 2023-03-01 21:11:47 · 567 阅读 · 0 评论 -
C语言学习及复习笔记-【19】ASCII 定义的128 个字符
ASCII 定义的128 个字符原创 2023-03-01 21:02:46 · 619 阅读 · 0 评论 -
C语言学习及复习笔记-【18】C内存管理
*注意:**void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。C 语言为内存的分配和管理提供了几个函数。原创 2023-02-28 22:34:09 · 204 阅读 · 0 评论 -
C语言学习及复习笔记-【17】C错误处理
C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。原创 2023-02-28 22:31:18 · 67 阅读 · 0 评论 -
C语言学习及复习笔记-【16】强制类型转换
在这里,c 首先被转换为整数,但是由于最后的值是 float 型的,所以会应用常用的算术转换,编译器会把 i 和 c 转换为浮点型,并把它们相加得到一个浮点数。常用的算术转换不适用于赋值运算符、逻辑运算符 && 和 ||。是隐式地把值强制转换为相同的类型。原创 2023-02-27 22:50:28 · 81 阅读 · 0 评论