课程设计报告

发布 2022-10-01 03:34:28 阅读 5094

多项式计算器。

1 多项式计算器描述。

1.1 项目的目的。

我们模拟一个逆序波兰计算器,起操作数(此处为多项式)在操作制定前输入,操作数将被压入栈中,操作在执行时,会从栈中弹出操作数,然后将操作结果又压回栈中。我们再次使用逆序波兰表达式的约定,?表示将操作数压入栈,+,表示算术运算,=表示打印出栈顶元素(不弹出).

例如指令?a?b+=以为这读两个操作数a和b,然后计算并打印他们的和。

1.2 主程序。

我们实现了一个用于计算器的类polynomial,这样可以简化设计计算器程序的任务。我们定制泛型栈实现使用多项式元素,然后主程序能够声明一个多项式栈,接受新的命令,并且只要希望就可以执行它们。

int main()

polynomial p;

cout<<"这是第一个测试:对输入的值赋给多项式得出结果:输入一个多项式:"<

float a;

cout<<"输入a的值:">a;

cout<< a)< cout<<"n这是第二个测试:对多项式实施四则运算::";

stack stored_polynomials;

introduction();

instructions();

while (do_command(get_command(),stored_polynomials));

return 0;

1.3 多项式方法。

p120 多项式方法。

1.4 执行命令。

在这个函数中,我们通过引用去传递stack的参数,因为它的值可能需要修改。例如,如果命令参数是+,那么通常是从栈中弹出两个多项式并且将它们的和入栈。函数do_command也允许附加的用户命令q用来退出程序。

2 多项式数据结构。

2.1 多项式的实质。

p1222.2 多项式的实现。

p1223 模块划分。

3.1 读写多项式。

标准的约定。

以链式去实现多项式时,写出多项式是一件简单的事,只要在队列的节点上循环并输出每个节点的数据。下面的print方法的复杂特性只是习惯的反映,是用于书写多项式的特殊约定,而不是对我们的数据结构进行处理所产生的任何概念上的困难。特别地,我们的方法取消了任何初始的’+’号、值为1 的系数和指数以及任何涉及x0的引用,因此我们会自习地输入3x2+x+5和-3x2+1而不是+3x2+1x1+5x0和-3x2+1x0

void polynomial::pread()

clear();

double coefficient;

int last_exponent,exponent;

bool first_term=true;

cout<<"为多项式输入指数和系数,"

<<"一次要按提示输入一个系数和一个指数,次数要以降次的顺序输入。"<输入0即结束。"

}while (coefficient!=0.0 &&exponent!=0);

3.2 多项式加法。

要求polynomial的项在相应extended_queue中以指数的降序出现大大简化了其加法操作。此时为了将两个多项式相加,只需要每次一个地横扫他们,如果发现两个多项式有同样指数的项,则将他们的系数相加;否则,只需将指数较大的项复制到和中,并移至多项式中的下一项。再次过程中,注意不要讲0系数的项放入和里。

void polynomial::padd(polynomial p,polynomial q)

clear();

while(!

term p_term,q_term;

if( (else if ( else

3.3 多项式减法。

要求polynomial的项在相应extended_queue中以指数的降序出现大大简化了其减法操作。此时为了将两个多项式相减,只需要每次一个地横扫他们,如果发现两个多项式有同样指数的项,则将他们的系数相减,系数为0项在节点中删除;否则,只需将指数较大的项复制到差中,并移至多项式中的下一项。再次过程中,注意不要讲0系数的项放入差里。

void polynomial::psub(polynomial p,polynomial q)

clear();

while(!

term p_term,q_term;

if( (else if ( else

3.4 多项式乘法。

要求polynomial的项在相应extended_queue中以指数的降序出现大大简化了其乘法操作。此时为了将两个多项式相乘,将原来的多项式保存,然后用于读入的多项式拆分为一项一项的,分别同原多项式相乘,这时只需系数乘系数,指数加指数,然后一直将所有输入的多项式分别相乘,加和。

乘法运算的单项乘。

void polynomial::mult_term(polynomial p,term t)

/多项式乘法运算。

void polynomial::pmult(polynomial p,polynomial q)

4 自定义数据类型及描述。

term struct结构体类型,用于保存一个多项式,含2个参数degree(int)指数,coefficient(double)系数。

node struct结构体类型,用户保存一个多项式,用于queue类中在,作为一个节点存在,含有2个参数entry(term)保存数据, next(*node)指向下一个节点。

queue 类,含有2个private数据front(*node),rear(*node)指向新的node,而加到非空的queue仅需改变rear;8个public函数,用链式结构存储多项式方程。

extended_queue类,继承自queue,扩展size(),full(),clear(),serve_and_retrieve(queue_entry &item)四个函数。

polynomian类,扩展自extended_queue,提供多项式之间的加减乘除功能。

stack类,用栈式结构存储多项式。函数类似于queue

term 别名node_entry,queue_entry

polynomial别名stack_entry

5 测试数据。

数据输入和保存,依次输入1 3 2 2 3 1 0 =

加法,在上个输入的基础上依次输入? 1 4 2 3 3 2 4 1 0 *

减法,在上一个的基础上依次输入1 3 2 2 3 1 0 -

乘法,依次输入1 4 2 3 3 2 4 1 0 ? 2 2 0 *

6 结果分析。

7 程序**。

#include""

bool do_command(char command,stack &stored_polynomials)

polynomial p,q,r;

switch (command){

case '?

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...