c++复习知识点总结.doc
《c++复习知识点总结.doc》由会员分享,可在线阅读,更多相关《c++复习知识点总结.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*挑战题把这个程序彻底变成c版的。恢复早期的c头文件把函数全部放在主函数前面颜色的设置和相关头文件保留,但是请加上注释取消对象输入和输出全部恢复到c将公布前三名修改成功者,之后本任务结束时间大约在一周内2014-03-21到2014-03-28*/功能:用菜单方式管理C+语言中大部分基础程序构造知识点,为数据结构的程序设计做好准备。/程序名:C+语言常见知识点复习系统#include #include #include enum returninfosuccess,fail; /用枚举类型保存各种返回信息的英语单词,以便分类处理const int ENDMARK = 9999; /定义输入数
2、据结束标志const int ARRAYMAXLENTH = 21; /定义数组大小, /技巧:故意不用0单元,第几个逻辑数据就在第几个单元中const int CUTTINGLINESTART = 1; /定义切分线开始位置const int CUTTINGLINELENGTH = 25; /定义切分线长度/定义一个结点类对象nodeclass nodepublic:node();/构造函数node(int initdata,node *initnext = NULL); /构造函数重载/由于本处已经考虑新结点的链域为空,后面将全部不考虑这个问题node();/析构函数int data;/数
3、据域node *next;/结点指针 /此处调用的对象本身,属于递归;node:node(int initdata,node *initnext)/* *构造函数重载,用于非默认情况下的一种自定义node对象的生成方法。 */data = initdata;next = initnext;/定义C+语言中知识点复习类对象class Cskillstudy/定义一个功能类Cskillstudyprivate:node *headp; /链表的头结点指针public:Cskillstudy(); /构造函数Cskillstudy(); /析构函数void exchange2nums(int &nu
4、m1,int &num2); /数据交换函数int addinteger(int num1,int num2); /两个整数相加并返回结果void countnums(int array,int arraylenthnow,int &countpos,int &countneg,int &countzero); /统计正、负以及零的数据个数 void getarraynums(int array,int &arrayposnow); /从键盘读取数组的数据int accumulator(int array,int arraylenthnow); /整型数组中的数据累加int factorial
5、(int num); /阶乘运算,即累乘器multiplierint combinationnum(int m,int n); /组合数的计算returninfo getmaxmin(int array,int arraylenthnow,int &max,int &min); /求多个整型数据的最大值和最小值returninfo sort3nums(int &num1,int &num2,int &num3);/三个整型数据的排序returninfo processlinklist(int num1,int num2,int num3);/用三个结点构成一个链表void displaylin
6、klist(); /显示链表中的数据信息void releaselinklist(); /清空链表数据并且回收空间returninfo fileprocess();/文件操作;Cskillstudy:Cskillstudy()headp = new node; /申请新结点,作为头结点headp-next = NULL; /头结点的地址域预设为空地址,本构造函数结束后headp已经存在int Cskillstudy:addinteger(int num1,int num2)/* * 两个整数加法运算:除了学习最简单的加法器S=X+Y外,主要学习函数中多个数据作为参数 * 传进来,利用函数名把一
7、个值的计算结果传回去的方法。 */int result;result = num1 + num2;/加法器return result;void Cskillstudy:countnums(int array,int arraylenthnow,int &countpos, int &countneg,int &countzero)/* * 分别统计出正数、负数、零的个数,学习计数器C=C+1的使用,通过把数组中的一批数据 * 传入函数中,然后传回去统计结果在调用处显示。学习把数组存储的多个数据作为参数 * 传入,处理后把多个数据作为参数传出的函数关系,而文件名处可以用无参数返回类型。 */co
8、untpos = 0;countneg = 0;countzero = 0;/所有数据种类计数器初始值清零for(int arrayposnow = 1;arrayposnow 0)countpos=countpos+1;/计数器,可以简写为countpos+;else if(arrayarrayposnow 0)countneg=countneg+1;elsecountzero=countzero+1;int Cskillstudy:accumulator(int array,int arraylenthnow)/* * 数组数据的累加:学习用循环结构控制数组数据的读取,学习累加器S=S+N
9、, * 学习把数组名作为参数传进去,通过函数名返回一个计算结果。 */int addresult = 0;for(int arrayposnow = 1;arrayposnow = arraylenthnow;arrayposnow+)addresult = addresult+arrayarrayposnow;/累加器return addresult;int Cskillstudy:factorial(int num)/* *本函数学习C语言的阶乘运算,也是累乘器M=M*N */int result = 1;for(int i = 1;i = num; i+)result =result *
10、 i;/累乘器return result;int Cskillstudy:combinationnum(int n,int m)/* * 组合数的计算:从n个不同元素中,任取m(mn)个元素并成一组,叫做从n个不同元素中 * 取出m个元素的一个组合;其所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。 * 用符号c(n,m) 表示。学习多次调用同一个函数。 */int cnm;if(nm | m 0 | n 0)return -1;/此处约定用-1代表失败,因为使用了函数名来返回计算结果,故不能用fail返回elsecnm = factorial(n)/(factorial(m)*fa
11、ctorial(n-m);return cnm;returninfo Cskillstudy:getmaxmin(int array,int arraylenthnow,int &max,int &min)/* * 求多个数据的最大值和最小值:可以学习线性结构扫描式处理算法和循环结构的使用, * 熟练掌握求最大值和最小值的方法。多个数据返回时,文件名依然可以返回其他信息,如成功。 */min = max = array1;/约定第一个数据为最初的最大值和最小值for(int arrayposnow = 2;arrayposnow = arraylenthnow;arrayposnow+) /技
12、巧:初始值已经是1号单元的,所以从2号单元开始扫描if(max arrayarrayposnow)min = arrayarrayposnow;/扫描完毕时,最小值已存入minreturn success;returninfo Cskillstudy:sort3nums(int &num1,int &num2,int &num3)/* * 三个数据的排序:学习利用两个数据交换,掌握简单的排序思路。同时学习多个数据 * 传入和同样的数据量传出的函数程序设计技巧。 */if(num1 num2)exchange2nums(num1, num2);/if语句只有一句可以写在一行if(num1 num
13、3)exchange2nums(num1, num3);/数据量少的情况下的排序算法if(num2 num3)exchange2nums(num2, num3);/虽然非通用,但是抽象后可以通用return success;returninfo Cskillstudy:processlinklist(int num1,int num2,int num3)/* * 链表的三个结点的挂链和数据显示:学习结点的定义,用最原始的方式逐个挂上结点 * 来构造链表,然后启动通用的链表显示数据函数显示所有数据。 */int num;node *newnodep;/*使用尾插法向链表插入数据,此段程序故意分步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 复习 知识点 总结
限制150内