收藏 分享(赏)

编程题复习要点.docx

上传人:精品资料 文档编号:10730190 上传时间:2020-01-03 格式:DOCX 页数:26 大小:64.78KB
下载 相关 举报
编程题复习要点.docx_第1页
第1页 / 共26页
编程题复习要点.docx_第2页
第2页 / 共26页
编程题复习要点.docx_第3页
第3页 / 共26页
编程题复习要点.docx_第4页
第4页 / 共26页
编程题复习要点.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、编程题复习方法:做编程题时,先别着急动手,一定认真把题意理解清楚,在纸上写出解题方法和关键语句(用到什么算法) ,最后按照输入数据-处理数据-输出数据的流程实现主程序和相关函数。 (按步骤给分,人工阅卷)编写程序时一定要注意格式,要有缩进或退格。1、 定义类的框架2、 成员函数的实现3、 在主函数中测试类具体实现的公式:class 类名private: 私有数据成员;public: 数据成员;成员函数;(构造函数和析构函数); 类名:类名() /构造函数成员函数的个数与类中的个数相同,函数名前加类名:void main()类名 对象名( 参数 );/是否带参数取决于构造函数构造函数的定义方法

2、数据成员是内置类型变量,直接用该类型的形参变量初始化数据成员。class A int i;public: A(int x) i=x;数据成员是一维数组,通过一个 for 循环将形参数组元素初始化一维数组成员。class A int t5;public: A(int b,int n) for(int i=0;i#include class A char t100;public: A(char b ) strcpy(t,b); ;数据成员是字符类型指针变量,先用 new 动态申请长度为形参指针指向的字符串长度+1的内存空间,把返回的首地址赋给指针成员,再把形参指向字符串拷贝到动态数组中。#incl

3、ude #include class A char *s;public: A(char *b)if(b) s=new charstrlen(b)+1;strcpy(s,b);数据成员是数值类型指针变量,先用 new 动态申请长度为形参数组长度的内存空间,把返回的首地址初始化指针成员,再把形参数组元素循环赋给动态数组元素。#include class A int *s;public: A(int b 10) s=new int10;int i;for(i=0;i#include class STUprivate:int norm,ex,final,overall;char name15;publ

4、ic:void init(char *name1,int norm1,int ex1,int fin1);void fun();friend void sort(STU st,int n);void print();void STU:init(char *name1,int norm1,int ex1,int fin1)strcpy(name,name1);norm=norm1;ex=ex1;final=fin1;overall=0;void STU:fun()if(final=50) overall=int(norm*0.2+ex*0.25+final*0.55+0.5); else ove

5、rall=int(final+0.5);void sort(STU st,int n)for(int i=0;inamenormexfin;si.init(name,norm,ex,fin);si.fun();coutusing namespace std;class Arrayprivate:int a313;public:Array(float t13,int n);int sum(int k);void fun();void print();Array:Array(float t13,int n)for(int i=0;iclass Arrayprivate:int a45;public

6、:Array(int t5,int n);int comp(int n);int sum_comp(int j);void exch(int j1,int j2);void fun();void print();Array:Array(int t5,int n)for(int i=0;iclass Arrayprivate:int a54;public:Array(int t4,int n);int prime(int n);int sum_prime(int i);void exch(int i1,int i2);void fun();void print();Array:Array(int

7、 t4,int n)for(int i=0;iclass Arrayprivate:int a54;public:Array(int t4,int n);int max(int *p,int n);void exch(int i1,int i2);void fun();void print();Array:Array(int t4,int n)for(int i=0;iclass Arrayprivate:int a45;public:Array(int t5,int n);void sort(int *p,int n,int f);void fun();void print();Array:

8、Array(int t5,int n)for(int i=0;ipj)int t=pi;pi=pj;pj=t;void Array:fun()for(int i=0;i0,则方程在区间x1, x2上无解;(2)令x=(x1+x2)/2;(3)如果f(x)*f(x1)0,方程的解在区间x, x2上,则令x1=x;否则,解在区间x1, x,令x2=x;(4)重复步聚(2)、(3)直到f(x)满足精度要求。试定义一个类EQU,实现利用二分法求方程ax 2+bx+c=0在区间x1, x2内的一个解。具体要求如下:(1) 私有数据成员 float a,b,c:存储方程的系数a,b和c。 double x

9、1, x2, x:x为方程在区间x1, x2上的解。 int k:如果在区间x1, x2内方程有解,则k值为1,否则k值为0;(2) 公有成员函数 EQU(float a1, float b1, float c1):用参数a1,b1,c1分别初始化成员a,b,c。 void fun(double xx1, double xx2, double e):求方程ax 2+bx+c=0在区间xx1, xx2内的一个解x,要求最终误差|f(x)|#include class EQUprivate:float a,b,c;double x1,x2,x;int k;public:EQU(float a1,f

10、loat b1,float c1);void fun(double xx1,double xx2,double e);void print();EQU:EQU(float a1,float b1,float c1)a=a1,b=b1;c=c1;void EQU:fun(double xx1,double xx2,double e)x1=xx1;x2=xx2; double f;double f1=a*x1*x1+b*x1+c;double f2=a*x2*x2+b*x2+c;if(f1*f20) k=0;else dox=(x1+x2)/2;f=a*x*x+b*x+c;if(f*f10) x1

11、=x;else x2=x;while(fabs(f)e);k=1;void EQU:print()if(k=1)coutabc;coutx1x2;coute;EQU t(a,b,c);t.fun (x1,x2,e);coutclass EQUprivate:float a,b,c;double x;public:EQU(float a1,float b1,float c1);void fun(double x0,double e);void print();EQU:EQU(float a1,float b1,float c1)a=a1;b=b1;c=c1;x=0.0;void EQU:fun

12、(double x0,double e)double f;dodouble f0=a*x0*x0+b*x0+c;double ff=2*a*x0+b;x=x0-f0/ff;f=a*x*x+b*x+c;double f1=2*a*x+b;x0=x-f/f1;while(fe);void EQU:print ()coutabc;coutx0;coute;coutusing namespace std;class NUMprivate:int a5,m,n;public:NUM(int t,int n);int fm(int k);int fn(int k);void fun();void prin

13、t();NUM:NUM(int t,int n)for(int i=0;iai) min=ai;for(int k=max;k0;k-)if(fm(k)=1)m=k;break;for(k=min;k+)if(fn(k)=1)n=k;break;void NUM:print()cout#include class STRprivate:char *s;public:STR(char *p);void fun();void print();STR();STR:STR(char *p)s=new charstrlen(p)+1;strcpy(s,p);void STR:fun()char *p=s

14、,*q;while(*p)if(*p= )q=p+1;while(*q)if(*q=apublic:String(char c,char d);void fun();void insert(int m);void show();String:String(char c,char d)strcpy(a,c);strcpy(b,d);void String:fun()char *p=a;while(*p) p+;char *q=b;while(*q)*p+=*q+;*p=0;void String:insert(int m)char *p=a+strlen(a);char *q=a+m-1;while(p=q)*(p+strlen(b)=*p;p-;char *t=b;while(*t)*q+=*t+;void String:show()coutm;str.insert(m);cout“ 插入字符串后的数组a:n“;str.show();str.fun();cout“ 拼接后的数组a:n“;str.show();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报