VC课程实践正确答案

合集下载

应用实践VC++编程题及答案

应用实践VC++编程题及答案

类编程题1.【题目】试定义一个类NUM,验证下列命题就是否成立:任意一个正整数与其反序数相加,得到一个新的正整数,再对这个新正整数重复上述步骤,最终一定可以得到一个回文数。

例如,正整数350的反序数为053(即53),350+53=403, 403+304=707,707就是回文数,命题成立。

又如,正整数2015的反序数为5102,2015+5102 =7117,7117就是回文数,命题成立。

具体要求如下:私有数据成员int num:存放用于验证命题的正整数。

公有成员函数NUM(int x):构造函数,用x初始化数据成员num。

void set(int a):将num的值设置为a。

int yn(int n):判断n就是否回文数,若就是,返回1;否则返回0。

void fun():使用num验证命题就是否成立,并显示验证过程。

在主函数中对该类进行测试。

输出示例:num=350的验证过程如下:350+53=403403+304=707命题成立!num=2015的验证过程如下:2015+5102=7117命题成立!#include <iostream、h> class NUM{private:int num;public:NUM(int x);void set(int a);int yn(int n);void fun();};NUM::NUM(int x){num=x;}void NUM::set(int a){num=a;}int NUM::yn(int n){int t=n,s=0;while(t){s=s*10+t%10;t/=10;}if(s==n) return 1;else return 0;}void NUM::fun(){int m;cout<<"num="<<num<<"的验证过程如下:"<<endl;while(1){int n=num,s=0; //350do{s=s*10+n%10;// 053n/=10;}while(n);m=s+num; //403if(yn(m)==1) {cout<<num<<'+'<<s<<'='<<m<<"\n命题成立!"<<endl;break;}else {cout<<num<<'+'<<s<<'='<<m<<endl;num=m;}}}void main(){NUM arr(350);arr、fun();arr、set(2015);arr、fun ();}2.【题目】试定义一个实现计算学生课程成绩的类STU,对学生学期总评成绩进行计算并排序。

VC 课后答案解读

VC  课后答案解读

第3章MFC基本应用程序的建立1. Windows的应用程序特点有哪些?参考书(p143~145)2. MFC的AppWizard(exe)提供了哪几种类型的应用程序?使用MFC的AppWizard可以创建下面三种类型的应用程序:(1)单文档界面的应用程序(SDI,single document interface);(2)多文档界面的应用程序(MDI,multiple documents interface);(3)基于对话框的应用程序(dialog based)。

3.MFC有哪些机制?这些机制有什么用?4.用AppWizard创建一个多文档应用程序项目(MDI)Ex_MDIHello,比较MDI与SDI 有哪些区别?SDI应用程序由应用程序类(CWinApp)、框架窗口类(CFrameWnd)、文档类(CDocument)、视图类(CView)和文档模板类(CSinSleDocTemplate)共同作用。

MDI应用程序与SDI应用程序的主要差别在于:MDI有CMDIFrameWnd和CMDIChildWnd两个框架窗口类,前一个派生CMainFrame类,负责菜单等界面元素的主框架窗口管理;后一个派生CChildFrame类,负责相应的文档及其视图的子框架窗口维护。

而SDI由框架窗口类CFrameWnd派生CMainFrame类。

5.消息的类别有哪些?用ClassWizard如何映射消息?⑴窗口消息:窗口消息一般与创建窗口、绘制窗口、移动窗口和销毁窗口等操作相关。

窗口消息的形式为WM_***,其中*的内容与每个窗口消息的内容有关。

窗口消息只能被窗口或窗口对象处理,在MFC应用程序中,CView和CFrame及它们的派生类,以及自定义窗口类型都能处理窗口消息。

⑵命令消息:命令消息一般与处理用户的某个请求或执行用户的某个命令相关。

在MFC应用中,凡是从基类CCmdTarget派生的类都能处理命令消息,不仅窗口类CView、CFrame,而且文档类、应用程序类都可处理命令消息。

VC教科书课后习题答案

VC教科书课后习题答案

第一章练习题P.91_1答:(1)正确性(2)可读性和可理解性好(3)可维护性好(4)构思好、简短、执行速度快。

1_2答:(1)封装性(2)继承和派生性(3)重载性(4)多态性。

1_3答:(1)输入源程序,得到.cpp文件(2)编译,得到.obj文件(3)构件(连接),得到.exe 文件(4)执行,运行.exe文件1_4略1_5答:(1)/*注解信息*/,运用于程序的任何地方;(2)//注解信息,运用于行尾。

1_6答:(1)分析问题,描述算法(2)编写程序,得到源程序(3)编译源程序,产生目标文件(4)构件(连接),得到可执行文件(5)调试程序。

[返回]第二章练习题P.302_1不合法的有:1.25e3.4(指数必须为整数)、‟\96\45‟(‟ ‟内只能有一个字符)合法的有:32767(整型)、35u(无符号整型)、3L(长整型)、0.0086 e-32(实型)、 (87)(字符型)、”Computer System”(字符串)、”a” (字符串)、‟a‟ (字符型)、-0(整型)、+0(整型)、.5(实型)、-.567(实型)2_2定义:以英文字母、下划线开始的,由字母、下划线和数字组成的字符序列。

合法的有:abc、English、Else(C++区分大小写,else非法)、China_bb、b3y、AbsFloat 不合法的有:2xy(不能以数字开头)、x-y(含非法字符“-”)、if(关键字不能做标识符)、b(3) (含非法字符“(”和“)”)、‟def‟(含非法字符“‟”)、float(关键字不能做标识符)。

2_3(1)b=1 (2)1 (3)c=102 (4)b=8 (5)d=40 (6)c=62_4-12E-5=-0.00012 1.25E-5=0.0000125 .01E+3=1050E-6=0.00005 12.345E4=1234502_5字符:‟a‟、‟\0x33‟、‟\r‟、‟\\‟字符串:”a”、”中国”、”8.24”、”\n\t\0x34”、”\0x33”其它:‟0x66‟、China、56.34、‟8.34‟2_6(1)x不正确,在同一个作用域内(相同的范围内)变量不能重复定义;(2)c1不正确,在同一个作用域内(相同的范围内)变量不能重复定义。

《面向对象程序设计与VC实践》习题答案[

《面向对象程序设计与VC实践》习题答案[
面向对象程序设计与vc实践习题答案

题2
2-1-4:比较值调用和引用调用? • 值调用是指发生函数调用时,给形参分配内存空间,并直 接将实参的值传递给形参。这一过程是参数的单向传递过 程,一旦形参获得了值便与实参脱离关系,此后无论形参 发生了怎样的改变,都不会影响到实参。
• 引用调用不为形参分配内存,在执行主调函数中的调用语 句时,系统自动用实参来初始化形参。形参是实参的一个 别名,对形参的任何操作也就直接作用于实参。
(3) 静态成员属于 类 ,而不属于 对象 ,它由同一个类的所有对象共 同维护,为这些对象所共享。静态函数成员可以直接引用该类的 静态 数据 和函数成员,而不能直接引用 非静态数据成员 。对于公有的静 态函数成员,可以通过 类名 或 对象名 来调用;而一般的非静态函 数成员只能通过对象名来调用。 (4) 在实际程序设计中,一个源程序可划分为三个文件: 类声明文件 、类 实现文件 、 和 类的使用文件 。
方法一变形
#include <iostream.h> #include <iomanip.h> //#include <stdio.h> void main() { int i,j,a[5][5]; for(i=0;i<5;i++) { a[i][0]=1; a[i][i]=1; //第一列、对角全置为1 for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; //每个数是上面两数之和 } for(i=0;i<5;i++) //输出杨辉三角 { cout<<setw(5-i)<<" ";//for(j=0;j<5-i;j++) printf(" "); for(j=0;j<=i;j++) //只输出a[5][5]的下三角 cout<<setw(2)<<a[i][j]; //printf("%2d", a[i][j]); cout<<endl; } }

VC 课程实践正确答案 (1)

VC  课程实践正确答案 (1)

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间: 至学院:专业班级:学生姓名: 学号指导老师:1.试建立一个类PP,求出下列多项式的前n项的值。

具体要求如下:(1)私有数据成员int n:前若干项的项数。

double x:存放x的值。

double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。

(2)公有成员函数PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。

~PP():析构函数,释放p指向的动态内存空间。

double fun(int n1,double x):递归函数,用于求多项式的第n1项。

注意:将递归公式中的n用作函数参数。

本函数供process函数调用。

void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。

void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。

(3)在主函数中完成对该类的测试。

先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num 项的值。

程序源代码#include<iostream.h>class pp{int n;double x;double *p;public:pp(int num,double x1);~pp();double fun(int n1,double x);void process();void show();};pp::pp(int num,double x1){n=num;x=x1;p=new double[num+1];}pp::~pp(){delete []p;}double pp::fun(int n1,double x){if(n1==0)return 1;if(n1==1)return x;if(n1>1)return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1; }void pp::process(){int i;for(i=0;i<=n;i++){*(p+i)=fun(i,x);}}void pp::show(){cout<<"n="<<n<<'\t'<<"x="<<x<<endl;for(int i=0,m=1;i<n;i++,m++){cout<<*(p+i)<<'\t';if(m%4==0)cout<<'\n';}}void main(){int num;double x1;cout<<"put in num and x1"<<endl;cin>>num>>x1;pp items(num,x1);items.process();items.show();}运行结果2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。

VisualC++程序设计与应用教程课后答案

VisualC++程序设计与应用教程课后答案

1.6 习题1.填空题(1) 项目工作区一般在集成开发环境的左侧。

它展示一个项目的几个方面, 它们分别是ClassView、ResourceView和FileView。

(2) 编译程序的快捷键是Ctrl+F7, 链接程序的快捷键是F7, 运营程序的快捷键是Ctrl+F5。

(3) 项目工作区文献的扩展名为.dsw 。

(4) 应用程序向导AppWizard的作用是帮助用户一步步生成一个新的应用程序, 并且自动生成应用程序所需的基本代码。

通过ClassWizard 可以增长消息映射和成员变量。

(5) 菜单选择可以通过两种方法来进行: 一种是鼠标操作;另一种是键盘操作。

(6) 编译微型条工具栏最右边按钮的功能是Insert/Remove Breakpoint 。

(7) 快捷键或菜单及相关资源的资源符号的前缀是IDR_。

(8) 用户可以通过项目工作区窗口的ResourceView视图来查看资源。

2.选择题(1) 项目文献的扩展名是( )。

A..ex. .B..ds. ..C..ds......D..cpp(2) 设立断点的默认方式是( )。

(第2章)A.Locatio.B.Dat...C.Messag...D.Breakpoints(3) 用应用程序向导AppWizard创建C++源文献, 应选择( )选项卡。

A.Files...B.Project.C.Workspaces.D.Othe.Document.(4)Standard工具栏中最左边按钮与( )菜单命令的功能同样。

A.NewB.Ne.File.C.Ne.Tex.File.D.Ne.Workspace(5) Windows资源提供的资源编辑器不能编辑( )。

A.菜. ..B.工具.C.状态. ..D.位图3.判断题(1) 打开一个项目, 只需打开相应的项目工作区文献。

( T )(2) 用户可以通过Tools | Customize菜单命令设立集成开发环境的工具栏。

VC课程实践正确答案

VC课程实践正确答案

江苏科技大学课程实践报告设计题目 :程序设计(VC++)实践设计时间 :至学院:专业班级 :学生姓名 :学号指导老师 :1.试建立一个类PP,求出以下多项式的前n 项的值。

具体要求如下:〔1〕私有数据成员int n :前假设干项的项数。

double x:存放 x 的值。

double *p :根据 n 的大小动态申请存放Pn(x) 前 n 项的数组空间。

〔2〕公有成员函数PP(int num,double x1) :构造函数,初始化数据成员n 和x,使p 指向动态申请的数组空间。

~ PP〔〕:析构函数,释放double fun(int n1,double x) 的 n 用作函数参数。

本函数供p 指向的动态内存空间。

:递归函数,用于求多项式process函数调用。

的第n1 项。

注意:将递归公式中void process( ) :完成求前n 项的工作,并将它们存放到p 指向的动态数组中。

void show( ) :输出 n 和 x,并将前n 项以每行 4 个数的形式输出到屏幕上。

〔3〕在主函数中完成对该类的测试。

先输入num 和 x1,并定义一个PP 类的对象items,用 num 和 x1 初始化 items 的成员 n 和 x,调用 items 的成员函数,求出并输出多项式前 num 项的值。

程序源代码#include<iostream.h>class pp{int n;double x;double *p;public:pp(int num,double x1);~pp();double fun(int n1,double x);void process();void show();};pp::pp(int num,double x1){n=num;x=x1;p=new double[num+1];}pp::~pp(){delete []p;}double pp::fun(int n1,double x){if(n1==0)return 1;if(n1==1)return x;if(n1>1)return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1; }void pp::process(){int i;for(i=0;i<=n;i++){*(p+i)=fun(i,x);}}void pp::show(){cout<<"n="<<n<<'\t'<<"x="<<x<<endl;for(int i=0,m=1;i<n;i++,m++){cout<<*(p+i)<<'\t';if(m%4==0)cout<<'\n';}}void main(){int num;double x1;cout<<"put in num and x1"<<endl;cin>>num>>x1;pp items(num,x1);items.process();items.show();}运行结果2.试建立一个类SP,求,另有辅助函power(m,n) 用于求。

应用实践VC++编程题及答案-26页

应用实践VC++编程题及答案-26页

类编程题1.【题目】试定义一个类NUM,验证下列命题是否成立:任意一个正整数与其反序数相加,得到一个新的正整数,再对这个新正整数重复上述步骤,最终一定可以得到一个回文数。

例如,正整数350的反序数为053(即53),350+53=403,403+304=707,707是回文数,命题成立。

又如,正整数2015的反序数为5102,2015+5102 =7117,7117是回文数,命题成立。

具体要求如下:私有数据成员int num:存放用于验证命题的正整数。

公有成员函数NUM(int x):构造函数,用x初始化数据成员num。

void set(int a):将num的值设置为a。

int yn(int n):判断n是否回文数,若是,返回1;否则返回0。

void fun():使用num验证命题是否成立,并显示验证过程。

在主函数中对该类进行测试。

输出示例:num=350的验证过程如下:350+53=403403+304=707命题成立!num=2015的验证过程如下:2015+5102=7117命题成立!#include <>class NUM{private:int num;public:NUM(int x);void set(int a);int yn(int n);void fun();};NUM::NUM(int x){num=x;}void NUM::set(int a){num=a;}int NUM::yn(int n){int t=n,s=0;while(t){s=s*10+t%10;t/=10;}if(s==n) return 1;else return 0; }void NUM::fun(){int m;cout<<"num="<<num<<"的验证过程如下:"<<endl;while(1){int n=num,s=0; verall<st[j].overall) {int t; t=st[i].overall;st[i].overall=st[j].overall;st[j].overall=t;}}void STU::print(){cout<<name<<'\t'<<norm<<'\t'<<ex<<'\t'<<final<<'\t'<<overall<<endl;}void main(){STU s[3];char name[100];int norm,ex,fin;for(int i=0;i<3;i++) {cout<<"请输入姓名、平时成绩、实验成绩、期末成绩:"<<endl;cin>>name>>norm>>ex>>fin;s[i].init(name,norm,ex,fin);s[i].fun();}cout<<"按总评成绩排序后:\n姓名平时成绩实验成绩期末成绩总评成绩"<<endl;sort(s,3);for(i=0;i<3;i++) {s[i].print();}}3.【题目】试定义一个类Array,首先求各列元素中的合数(非素数)之和,再将数组各列以其合数之和的大小从大到小排序,具体要求如下:(1) 私有数据成员int a[4][5]:需要排序的二维数组。

《VC实验教程答案》word版

《VC实验教程答案》word版

实验一熟悉Microsft Visual C++ 6.0开发环境四思考题#include <iostream.h>void main(){int a,b,c;cout<<"Please input a,b= "; // 输出字符串cin>>a>>b; //输入两个数据到变量a、b中c=a*b; //求乘积存入ccout<<a<<"*"<<b<<’=’<<c<<endl; //输出结果}实验二输入/输出与顺序结构三实验内容1. 阅读程序,写出运行结果。

⑴i+j=15i*j=50⑵a=9 b=52. 程序填空⑴①k=i+j②i<<'+'<<j<<'='⑵①a=c②"char"<<c<<"\tASCII="<<a3. 程序改错#include <iostream.h>void main(){double r,s,l;cout<<"Please input R";cin>>r;s=3.1416*r*r;l=2.0*3.1416*r;cout<<"S="<<s<<endl;cout<<"L="<<l<<endl;}4. 编程题⑴输入华氏温度F,计算输出对应的摄氏温度。

由华氏温度F求摄氏温度c的公式为:#include <iostream.h>void main(){double f,c;cout<<"please input F=:";cin>>f;c=(f-32)*5/9; //或c=5.0/9*(f-32);cout<<"C="<<c<<endl;}⑵输入学生的语文、数学、英语、物理4门课程的成绩,计算该学生的总成绩和平均成绩并输出。

实践报告答案江苏科技大学c++

实践报告答案江苏科技大学c++

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间至学院(系): 专业班级: 学生姓名: 学号指导老师:2013年12月任务一一、实践任务2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。

二、详细设计1、类的描述与定义(1)私有数据成员int n,k:存放公式中n和k的值;(2)公有成员函数SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m, int n):求m n。

int fun( ):求公式的累加和。

void show( ):输出求得的结果。

2、主要函数设计在主程序中定义对象s,对该类进行测试。

三、源程序清单#include <>class SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n){int p=1;for (int i=1;i<n+1;i++)p*=m;return p;}int fun(){int s=0;for (int i=1;i<n+1;i++)s+=power(i,k);return s;}void A(){cout<<"n="<<n<<",k="<<k<<",f(n,k)="<<fun()<<endl;}};void main(){SP a(3,3);(3,3);();();}四、实践小结掌握用循环语句求m^n,和m!,熟练掌握函数的调用。

五、运行结果任务二一、实践任务3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

二、详细设计1、类的描述与定义(1)私有数据成员float array[20]:一维整型数组。

《程序设计基础(C++)》实验教程及完整答案

《程序设计基础(C++)》实验教程及完整答案

《程序设计基础》实验教程对于从事计算机行业的人员来说,设计能力是最主要的基本功之一。

入门课程《程序设计基础》的学习效果将直接关系到编程能力的掌握和提高以及后续课程的学习。

然而,实践证明,许多初学者在学习这门课程时的效果并不理想。

对初学者来说,如何学好本课程?首先,要理解教材中所给出的语法描述,并学会按语法规定去编写指定问题的求解程序。

经过这样的多次反复,初学者就可以找到编程的感觉。

除了要学好理论知识外,更重要的一点是要到计算机上去验证,因为只有实践才是检验真理的标准。

只有通过到计算机上去实践,才能发现学习中存在的问题,巩固所学知识,加强解决实际问题的能力,增强信心。

因此,《程序设计基础》课程的上机实验是本课程必不可少的实践环节,必须加以重视。

本课程上机实验的目的是使学生熟悉用高级语言解决实际问题的全过程,加深对语言的理解,得到程序设计基本方法和能力的训练。

在独立编写程序、独立上机调试程序的同时,真正能用高级语言这个工具去解决实际问题,对计算机学科的相关知识有所了解,从而为后续课程的学习奠定良好的基础。

本实验指导所用环境是Visual C++ 6.0及以上版本。

考虑到本课程的内容和特点,设置了十四个实验,每次实验需要两至三小时,分别侧重于教材中的一个方面,其中标有“*”号的习题的综合性较强,可供学有余力的学生选择。

实验时也可根据具体情况做适当调整。

虽然可能由于课时和机时限制等原因而不能在实验课时内全部得到安排,但还是建议学生能将其中的每个实验都能认真做一遍,因为这些实验都是学习本课程所必需的。

学生在做实验之前应仔细阅读本实验指导书,初步掌握实验的基本要求和实验方法。

在实验过程中,学生应该有意识的培养自己调试程序的能力,积累发现问题、解决问题的经验,灵活主动的学习。

对于分析运行结果的实验习题,上机前先进行用人工分析,写出运行结果,与上机调试得到的结果进行对照,如有差异,分析其原因。

对于程序编制的实验习题,上机前应考虑出较成熟的编程思路,有意识提供出多种方案,以灵活运用所学知识和技巧。

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案江苏科技大学VC++实践报告一、实践任务任务一(第2题):试建立一个类SP,求f(n,k)=1^k+2^k+3^k+…+n^K,另有辅助函数power(m,n),用于求m^n。

具体要求如下:(1)私有成员数据:int n,k:存放公式中n和k得值。

(2)公有成员函数:SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m,int n):求m^n。

int fun( ):求公式的累加和。

void show( ):输出求的结果。

(3)在主程序中定义对象s,对该类进行测试。

任务一分析1、任务分析通过SP的成员函数power( )可求出m^n的值,再通过累加函数fun(),可求出累加和。

类的定义如下:#includeclass SP{int n,k;public:SP()int power()int fun()void show()};2、算法设计求m^n:定义变量P=1,循环n次,每次循环P乘以m求累加和:定义变量S=0,通过for循环,将power()函数计算的结果累加。

3、系统测试在主函数中用整数初始化SP的对象,并调用成员函数show()输出结果。

主函数定义如下:void main(){SP a(2,3);a.power(2,3);a.fun();a.show();}用以测试的数据为:n=2,k=3;预期的输出结果为:当n=2,k=3时,f(n,k)=9任务一程序#includeclass SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n){int p=1;for (int i=1;i<=n;i++)p*=m;return p;}int fun(){int s=0;for (int i=1;i<=n;i++)s+=power(i,k);return s;}void show(){cout<<"当n="<<n<<",k="<<k<<"时,f(n,k)="<<fun()<<endl;< p="">}};{SP a(2,3);a.power(2,3);a.fun();a.show();}任务二(第24题):建立一个NUM,并统计特定序列中相同的字符的个数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间: 至学院:专业班级:学生姓名: 学号指导老师:1.试建立一个类PP,求出下列多项式的前n项的值。

具体要求如下:(1)私有数据成员int n:前若干项的项数。

double x:存放x的值。

double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。

(2)公有成员函数PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。

~PP():析构函数,释放p指向的动态内存空间。

double fun(int n1,double x):递归函数,用于求多项式的第n1项。

注意:将递归公式中的n用作函数参数。

本函数供process函数调用。

void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。

void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。

(3)在主函数中完成对该类的测试。

先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num 项的值。

程序源代码#include<iostream.h>class pp{int n;double x;double *p;public:pp(int num,double x1);~pp();double fun(int n1,double x);void process();void show();};pp::pp(int num,double x1){n=num;x=x1;p=new double[num+1];}pp::~pp(){delete []p;}double pp::fun(int n1,double x){if(n1==0)return 1;if(n1==1)return x;if(n1>1)return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1; }void pp::process(){int i;for(i=0;i<=n;i++){*(p+i)=fun(i,x);}}void pp::show(){cout<<"n="<<n<<'\t'<<"x="<<x<<endl;for(int i=0,m=1;i<n;i++,m++){cout<<*(p+i)<<'\t';if(m%4==0)cout<<'\n';}}void main(){int num;double x1;cout<<"put in num and x1"<<endl;cin>>num>>x1;pp items(num,x1);items.process();items.show();}运行结果2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。

具体要求如下:(1)私有成员数据。

int n,k:存放公式中n和k的值;(2)公有成员函数。

SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m, int n):求mn。

int fun( ):求公式的累加和。

void show( ):输出求得的结果。

(3)在主程序中定义对象s,对该类进行测试。

程序源代码#include<iostream.h>class SP{int n,k;public:SP(int n1,int k1);int power(int m,int n);int fun();void show();};SP::SP(int n1,int k1){n=n1;k=k1;}int SP::power(int m,int n) {int i;if(n==0)return 1;elsefor(i=1;i<n;i++)m*=m;return m;}int SP::fun(){int y=0,x;for(x=1;x<=n;x++)y+=power(x,k);return y;}void SP::show(){cout<<"前n项的和为:"<<fun()<<endl;}void main(){int n1,k1;cout<<"输入n1和k1的值"<<endl;cin>>n1>>k1;SP s(n1,k1);s.fun();s.show();}运行结果:3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

具体要求如下:(1)私有数据成员float array[20]:一维整型数组。

int n:数组中元素的个数。

(2)公有成员函数MOVE(float b[],int m):构造函数,初始化成员数据。

void average():输出平均值,并将数组中的元素按要求重新放置。

void print():输出一维数组。

(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

程序源代码#include<iostream.h>class MOVE{float array[20];int n;public:MOVE(float b[],int m);void average();void print();};MOVE::MOVE(float b[],int m){int i;n=m;for(i=0;i<m;i++)array[i]=b[i];}void MOVE::average(){int i,x;float a=0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值为"<<a<<endl;float ff[20];for(i=0,x=0;i<n;i++)if(array[i]<a){ff[x]=array[i];x++;}for(i=0;i<n;i++)if(array[i]>a){ff[x]=array[i];x++;}for(i=0;i<n;i++)array[i]=ff[i];}void MOVE::print(){int q,p=1;for(q=0;q<n;q++){cout<<array[q]<<'\t';if(p%5==0)cout<<'\n';p++;}}void main(){float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};int m=9;MOVE aa(b,m);aa.average();aa.print();}运行结果4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

具体要求如下:(1)私有数据成员int *array:一维整型数组。

int n:数组中元素的个数。

(2)公有成员函数MOVE(int b[],int m):构造函数,初始化成员数据。

void exchange():输出平均值,并将数组中的元素按要求重新放置。

void print():输出一维数组。

~MOVE():析构函数。

(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

程序源代码#include<iostream.h>class MOVE{int *array;int n;public:MOVE(int b[],int m);void exchange();void print();~MOVE();};MOVE::MOVE(int b[],int m){n=m;array=new int[n];for(int x=0;x<n;x++)array[x]=b[x];}void MOVE::exchange(){float a=0;int i,*p1,*p2;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"The average of the number is:"<<a<<endl;p1=p2=&array[0];for(i=0;i<n;i++){if(array[i]<*p1)p1=&array[i];if(array[i]>*p2)p2=&array[i];}i=*p1;*p1=*p2;*p2=i;}void MOVE::print(){int i,num=1;for(i=0;i<n;i++){cout<<array[i]<<'\t';if(num%5==0)cout<<'\n';num++;}}MOVE::~MOVE(){delete []array;}void main(){int b[]={21,65,43,87,12,84,44,97,32,55},n=10;MOVE ff(b,n);ff.exchange();ff.print();}运行结果5.定义一个类Palindrome,实现绝对回文数。

设计一个算法实现对任意整型数字判断是否为绝对回文数。

所谓绝对回文数,是指十进制数和二进制数均对称的数。

具体要求如下:(1)私有数据成员int n:整型数字。

int y:标记是否为回文数。

(2)公有成员函数Palindrome (int x) :构造函数,根据x参数初始化数据成员n,y初始化为0。

void huiwen () :判断数n是否为绝对回文数。

void show( ) :若该数为回文数,则在屏幕显示。

(3)在主程序中定义int a,由键盘输入数字。

定义一个Palindrome类对象p,用a初始化p,完成对该类的测试。

程序源代码#include<iostream.h>class palindrome{int n;int y;public:palindrome(int x);void huiwen();void show();};palindrome::palindrome(int x){n=x;y=0;}void palindrome::huiwen(){int b[20],c[50],m,i,p=0,t1=1,t2=1;m=n;for(i=0;m>0;m/=10){p++;b[i]=m%10;i++;}for(i=0;i<p;i++)if(b[i]!=b[p-i-1]){t1=0;break;}for(i=0,m=n,p=0;m>0;m/=2) {p++;c[i]=m%2;i++;}for(i=0;i<p;i++)if(c[i]!=c[p-i-1]){t2=0;break;}if(t1&&t2)y=1;}void palindrome::show(){if(y==0)cout<<"该数不是回文数!"<<endl;else cout<<"该回文数是:"<<n<<endl;}void main(){int a;cout<<"输入a的值"<<endl;cin>>a;palindrome p(a);p.huiwen();p.show();}运行结果:6.定义一个字符串类String,实现判断该字符串是否为回文字符串。

相关文档
最新文档