C++系列实验6.docx

上传人:b****6 文档编号:7946422 上传时间:2023-01-27 格式:DOCX 页数:15 大小:17.14KB
下载 相关 举报
C++系列实验6.docx_第1页
第1页 / 共15页
C++系列实验6.docx_第2页
第2页 / 共15页
C++系列实验6.docx_第3页
第3页 / 共15页
C++系列实验6.docx_第4页
第4页 / 共15页
C++系列实验6.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++系列实验6.docx

《C++系列实验6.docx》由会员分享,可在线阅读,更多相关《C++系列实验6.docx(15页珍藏版)》请在冰豆网上搜索。

C++系列实验6.docx

C++系列实验6

注意,编程软件为VC++6.0

题目

扩展前一个多项式程序:

主函数功能:

显示如下菜单:

s-设置当前多项式

l-调用assign_coef函数

t-调用add_to_coef函数

c-调用clear函数

v-显示当前多项式

a-显示所有多项式

d-对当前多项式求导并显示

e-计算当前多项式的值

+-显示A+B的和

--显示A-B的差

*-显示A*B的积

q-退出

主函数程序框架如下:

其中定义了一个含三个多项式的对象数组:

p[3]

voidprint_menu();

charget_command();

intset_current();

voidtest_assign(polynomial&test);

voidtest_add(polynomial&test);

voidtest_clear(polynomial&test);

voidview(constpolynomial&test);

voidview_all(constpolynomialp[]);

voidtest_eval(constpolynomial&test);

voidmain(){

polynomialp[3];

intcurrent_index=0;

charcommand;

do{

print_menu();

command=get_command();

switch(command){

case’s’:

current_index=set_current();

break;

case’l’:

test_assign(p[current_index]);

break;

case’t’:

test_add(p[current_index]);

break;

case’c’:

test_clear(p[current_index]);

break;

case’v’:

cout<

";

view(p[current_index]);

break;

case’a’:

view_all(p);

break;

case’d’:

cout<

<<".derivative:

";

view(p[current_index].derivative());

break;

case’e’:

test_eval(p[current_index]);

break;

case’+’:

view(p[0].add(p[1]));

break;

case’-’:

view(p[0].sub(p[1]));

break;

case’*’:

view(p[0].mul(p[1]));

break;

case’q’:

break;

default:

cout<<"Invalidcommand."<

}

}while(command!

=’q’);

}

voidprint_menu(){

cout<<"---------------TheCommands---------------"<

cout<<"s-设置当前多项式"<

cout<<"l-调用assign_coef函数"<

cout<<"t-调用add_to_coef函数"<

cout<<"c-调用clear函数"<

cout<<"v-显示当前多项式"<

cout<<"a-显示所有多项式"<

cout<<"d-对当前多项式求导并显示"<

cout<<"e-计算当前多项式的值"<

cout<<"+-显示A+B的和"<

cout<<"--显示A-B的差"<

cout<<"*-显示A*B的积"<

cout<<"q-quit"<

cout<<"------------------------------------------"<

}

多项式类定义如下:

classpolynomial

{

public:

polynomial();

voidassign_coef(doublecoefficient,unsignedint

exponent);

voidadd_to_coef(doubleamount,unsignedintexponent);

voidclear();

doublecoefficient(unsignedintexponent)const{returncoef

[exponent];}

unsignedintdegree()const{returncurrent_degree;}

polynomialderivative()const;

polynomialadd(constpolynomial&p)const;

polynomialsub(constpolynomial&p)const;

polynomialmul(constpolynomial&p)const;

doubleeval(doublex)const;

voidview_coef()const;

private:

doublecoef[30];

unsignedintcurrent_degree;

};

参考程序运行结果:

test.exe

源程序

//头文件

#include

#include

usingnamespacestd;

//多项式类定义如下:

classpolynomial

{

public:

polynomial();

voidassign_coef(doublecoefficient,unsignedintexponent);

voidadd_to_coef(doubleamount,unsignedintexponent);

voidclear();

doublecoefficient(unsignedintexponent)const{returncoef[exponent];}

unsignedintdegree()const{returncurrent_degree;}

polynomialderivative();

polynomialadd(polynomial&p);

polynomialsub(polynomial&p);

polynomialmul(polynomial&p);

doubleeval(doublex);

voidview_coef()const;

private:

doublecoef[30];

unsignedintcurrent_degree;

};

//类中成员函数定义如下:

//1.构造函数========================================================================

polynomial:

:

polynomial()

{

inti;

for(i=0;i<30;i++)

{

coef[i]=0;

}

current_degree=0;

}

//2.系数指数存储====================================================================

voidpolynomial:

:

assign_coef(doublecoefficient,unsignedintexponent)

{

coef[exponent]=coefficient;

}

//3.清空多项式系数=====================================================================

voidpolynomial:

:

clear()

{

inti;

for(i=0;i<30;i++)

{

coef[i]=0;

}

}

//4.求导==============================================================================

polynomialpolynomial:

:

derivative()

{

inti,j;

polynomialb;

for(i=0,j=1;i<29;i++,j++)

{

b.coef[i]=coef[j]*(j);

}

returnb;

}

//5.求和==============================================================================

polynomialpolynomial:

:

add(polynomial&p)

{

polynomialtext;

inti;

for(i=0;i<30;i++)

{

text.coef[i]=coef[i]+p.coef[i];

}

returntext;

}

//6.相减==============================================================================

polynomialpolynomial:

:

sub(polynomial&p)

{

polynomialtext;

inti;

for(i=0;i<30;i++)

{

text.coef[i]=coef[i]-p.coef[i];

}

returntext;

}

//7.相乘==============================================================================

polynomialpolynomial:

:

mul(polynomial&p)

{

inti,j;

polynomialtext;

for(i=0;i<30;i++)

{

for(j=0;j<=i;j++)

{

text.coef[i]=coef[j]*(p.coef[i-j])+text.coef[i];

}

}

returntext;

}

//8.计算多项式的值====================================================================

doublepolynomial:

:

eval(doublex)

{

doublea=0;

inti;

for(i=0;i<30;i++)

{

a=a+coef[i]*pow(x,i);

}

returna;

}

//9.显示多项式========================================================================

voidpolynomial:

:

view_coef()const

{

inti=0;

while(coef[i]==0&&i<30)

{

i++;

}

if(i==30)cout<<""<

elsecout<

i++;

for(;i<30;i++)

{

if(coef[i]!

=0)

{

if(coef[i]<0)cout<

elsecout<<"+"<

}

}

cout<

}

//各自定义函数的声明:

voidprint_menu();//输出菜单

charget_command();//选择字符

intset_current();//得到所选的值

voidtest_assign(polynomial&test);//得到系数和指数并显示多项式

voidtest_add(polynomial&test);//将两个多项式相加

voidtest_clear(polynomial&test);//清空一个多项式

voidview(constpolynomial&test);//输出多项式

voidview_all(constpolynomialp[]);//输出多项式组

voidtest_eval(polynomial&test);//给x赋值并计算出多项式的结果

//主函数如下:

voidmain()

{

polynomialp[3];

intcurrent_index=0;

charcommand;

do{

print_menu();

command=get_command();

switch(command)

{

case's':

current_index=set_current();

break;

case'l':

test_assign(p[current_index]);

break;

case't':

test_add(p[current_index]);

break;

case'c':

test_clear(p[current_index]);

break;

case'v':

cout<

";

view(p[current_index]);

break;

case'a':

view_all(p);

break;

case'd':

cout<

";

view(p[current_index].derivative());

break;

case'e':

test_eval(p[current_index]);

break;

case'+':

view(p[0].add(p[1]));

break;

case'-':

view(p[0].sub(p[1]));

break;

case'*':

view(p[0].mul(p[1]));

break;

case'q':

break;

default:

cout<<"Invalidcommand."<

}

}while(command!

='q');

}

//各自定义函数定义如下:

//1.函数功能:

输出菜单========================================================

voidprint_menu(){

cout<<"---------------TheCommands---------------"<

cout<<"s-设置当前多项式"<

cout<<"l-调用assign_coef函数"<

cout<<"t-调用add_to_coef函数"<

cout<<"c-调用clear函数"<

cout<<"v-显示当前多项式"<

cout<<"a-显示所有多项式"<

cout<<"d-对当前多项式求导并显示"<

cout<<"e-计算当前多项式的值"<

cout<<"+-显示A+B的和"<

cout<<"--显示A-B的差"<

cout<<"*-显示A*B的积"<

cout<<"q-quit"<

cout<<"------------------------------------------"<

}

//2.函数功能:

选择字符============================================================

charget_command()

{

charcommand;

cout<<">";

cin>>command;

return(command);

}

//3.函数功能:

得到所选的值==========================================================

intset_current()

{

charcommand;

do{

cout<<"Enterthepolynomialyouwanttoworkon:

(a,b,c)";

command=get_command();

}while((command<'a')||(command>=char('a'+3)));

returncommand-'a';

}

//4.函数功能:

得到系数和指数并显示多项式=============================================

voidtest_assign(polynomial&test)

{

doublecoefficient;

unsignedintexponent;

cout<<"Enterexponent:

";

cin>>exponent;

cout<<"Entercoefficient:

";

cin>>coefficient;

test.assign_coef(coefficient,exponent);

cout<<"设置之后:

";

test.view_coef();

}

//5.函数功能:

增加某个项的系数==========================================================

voidtest_add(polynomial&test)

{

polynomiala;

inti;

doublecoefficient;

unsignedintexponent;

cout<<"Enterexponent:

";

cin>>exponent;

cout<<"Entercoefficient:

";

cin>>coefficient;

a.assign_coef(coefficient,exponent);

doubleb[30];

for(i=0;i<30;i++)

{

b[i]=test.coefficient(i)+a.coefficient(i);

test.assign_coef(b[i],i);

}

cout<<"累加之后:

";

test.view_coef();

cout<

}

//6.函数功能:

清空一个多项式=============================================================

voidtest_clear(polynomial&test)

{

test.clear();

cout<<"清空之后:

";

cout<

}

//7.函数功能:

输出多项式=================================================================

voidview(constpolynomial&test)

{

test.view_coef();

}

//8.函数功能:

输出多项式组===============================================================

voidview_all(constpolynomialp[])

{

inti;

charm;

for(i=0;i<3;i++)

{

m='a'+i;

cout<<"式子"<

";

p[i].view_coef();

cout<

}

}

//9.函数功能:

给x赋值并计算出多项式的结果================================================

voidtest_eval(polynomial&test)

{

doublex;

doublea;

cout<<"请输入x的值";

cin>>x;

a=test.eval(x);

cout<<"计算出多项式的值为:

"<

}

注意:

由于exe文件没法上传,所以作者并没有上传这个exe文件。

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1