1、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-退出 主函数程序框架如下:其中定义了一个含三个多项式的对象数组:p3 void print_menu(); char get_command(); int set_current(); void test_assign(polynomial& tes
2、t); void test_add(polynomial &test); void test_clear(polynomial& test); void view(const polynomial& test); void view_all(const polynomial p); void test_eval(const polynomial& test); void main() polynomial p3; int current_index=0; char command; do print_menu(); command=get_command(); switch(command)
3、case s: current_index=set_current(); break; case l: test_assign(pcurrent_index); break; case t: test_add(pcurrent_index); break; case c: test_clear(pcurrent_index); break; case v: coutchar(current_index+a):; view(pcurrent_index); break; case a: view_all(p); break; case d: coutchar(current_index+a).d
4、erivative: ; view(pcurrent_index.derivative(); break; case e: test_eval(pcurrent_index); break; case +: view(p0.add(p1); break; case -: view(p0.sub(p1); break; case *: view(p0.mul(p1); break; case q: break; default: coutInvalid command.endl; while(command!=q); void print_menu() cout-The Commands-end
5、l; couts - 设置当前多项式endl; coutl - 调用assign_coef函数endl; coutt - 调用add_to_coef函数endl; coutc - 调用clear函数endl; coutv - 显示当前多项式endl; couta - 显示所有多项式endl; coutd - 对当前多项式求导并显示endl; coute - 计算当前多项式的值endl; cout+ - 显示A+B的和endl; /求p0和p1的和 cout- - 显示A-B的差endl; /求p0和p1的差 cout* - 显示A*B的积endl; /求p0和p1的积 coutq - quit
6、endl; cout-endl; 多项式类定义如下:class polynomial public: polynomial(); void assign_coef(double coefficient,unsigned intexponent); void add_to_coef(double amount,unsigned int exponent); void clear(); double coefficient(unsigned int exponent)constreturn coefexponent; unsigned int degree()constreturn current
7、_degree; polynomial derivative()const; polynomial add(const polynomial& p)const; polynomial sub(const polynomial& p)const; polynomial mul(const polynomial& p)const; double eval(double x)const; void view_coef() const; private: double coef30; unsigned int current_degree; ;参考程序运行结果:test.exe源程序/头文件#incl
8、ude#includeusing namespace std;/多项式类定义如下:class polynomial public: polynomial(); void assign_coef(double coefficient,unsigned intexponent); void add_to_coef(double amount,unsigned int exponent); void clear(); double coefficient(unsigned int exponent)constreturn coefexponent; unsigned int degree()cons
9、treturn current_degree; polynomial derivative(); polynomial add(polynomial& p); polynomial sub(polynomial& p); polynomial mul(polynomial& p); double eval(double x); void view_coef() const; private: double coef30; unsigned int current_degree; ;/类中成员函数定义如下:/1.构造函数=polynomial:polynomial() int i; for(i=
10、0;i30;i+) coefi=0; current_degree=0;/2.系数指数存储= void polynomial:assign_coef(double coefficient,unsigned int exponent) coefexponent=coefficient; /3.清空多项式系数=void polynomial:clear() int i; for(i=0;i30;i+) coefi=0; /4.求导=polynomial polynomial:derivative() int i,j; polynomial b; for(i=0,j=1;i29;i+,j+) b.c
11、oefi=coefj*(j); return b;/5.求和=polynomial polynomial:add(polynomial& p) polynomial text; int i; for(i=0;i30;i+) text.coefi=coefi+p.coefi; return text;/6.相减=polynomial polynomial:sub(polynomial& p) polynomial text; int i; for(i=0;i30;i+) text.coefi=coefi-p.coefi; return text;/7.相乘=polynomial polynomi
12、al:mul(polynomial& p) int i,j; polynomial text; for(i=0;i30;i+) for(j=0;j=i;j+) text.coefi=coefj*(p.coefi-j)+text.coefi; return text;/8.计算多项式的值=double polynomial:eval(double x) double a=0; int i; for(i=0;i30;i+) a=a+coefi*pow(x,i); return a;/9.显示多项式= void polynomial:view_coef() const int i=0; while(
13、coefi=0 & i30) i+; if(i=30) cout endl; else coutcoefixi; i+; for(;i30;i+) if(coefi!=0) if(coefi0) coutcoefixi; else cout+coefixi; coutendl; /各自定义函数的声明: void print_menu();/输出菜单 char get_command();/选择字符 int set_current();/得到所选的值 void test_assign(polynomial& test);/得到系数和指数并显示多项式 void test_add(polynomia
14、l &test);/将两个多项式相加 void test_clear(polynomial& test);/清空一个多项式 void view(const polynomial& test);/输出多项式 void view_all(const polynomial p);/输出多项式组 void test_eval(polynomial& test);/给x赋值并计算出多项式的结果 /主函数如下: void main() polynomial p3; int current_index=0; char command; do print_menu(); command=get_command
15、(); switch(command) case s: current_index=set_current(); break; case l: test_assign(pcurrent_index); break; case t: test_add(pcurrent_index); break; case c: test_clear(pcurrent_index); break; case v: coutchar(current_index+a):; view(pcurrent_index); break; case a: view_all(p); break; case d: coutcha
16、r(current_index+a).derivative: ; view(pcurrent_index.derivative(); break; case e: test_eval(pcurrent_index); break; case +: view(p0.add(p1); break; case -: view(p0.sub(p1); break; case *: view(p0.mul(p1); break; case q: break; default: coutInvalid command.endl; while(command!=q); /各自定义函数定义如下:/1.函数功能
17、:输出菜单=void print_menu() cout-The Commands-endl; couts - 设置当前多项式endl; coutl - 调用assign_coef函数endl; coutt - 调用add_to_coef函数endl; coutc - 调用clear函数endl; coutv - 显示当前多项式endl; couta - 显示所有多项式endl; coutd - 对当前多项式求导并显示endl; coute - 计算当前多项式的值endl; cout+ - 显示A+B的和endl; /求p0和p1的和 cout- - 显示A-B的差endl; /求p0和p1的
18、差 cout* - 显示A*B的积endl; /求p0和p1的积 coutq - quitendl; cout-endl; /2.函数功能:选择字符=char get_command() char command; cout; cincommand; return(command); /3.函数功能:得到所选的值=int set_current() char command; do coutEnter the polynomial you want to work on:(a,b,c); command=get_command(); while(command=char(a+3); retur
19、n command-a;/4.函数功能:得到系数和指数并显示多项式=void test_assign(polynomial &test) double coefficient; unsigned int exponent; coutexponent; coutcoefficient; test.assign_coef(coefficient,exponent); cout设置之后:; test.view_coef();/5.函数功能:增加某个项的系数= void test_add(polynomial &test) polynomial a; int i; double coefficient
20、; unsigned int exponent; coutexponent; coutcoefficient; a.assign_coef(coefficient,exponent); double b30; for(i=0;i30;i+) bi=test.coefficient(i)+a.coefficient(i); test.assign_coef(bi,i); cout累加之后:; test.view_coef(); coutendl; /6.函数功能:清空一个多项式= void test_clear(polynomial& test) test.clear(); cout清空之后:;
21、 coutendl; /7.函数功能:输出多项式=void view(const polynomial& test) test.view_coef();/8.函数功能:输出多项式组= void view_all(const polynomial p) int i; char m; for(i=0;i3;i+) m=a+i; cout式子m为:; pi.view_coef(); coutendl; /9.函数功能:给x赋值并计算出多项式的结果= void test_eval(polynomial& test) double x; double a; coutx; a=test.eval(x); cout计算出多项式的值为:aendl; 注意:由于exe文件没法上传,所以作者并没有上传这个exe文件。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1