课程设计报告(一元稀疏矩阵计算器).docxVIP

  • 32
  • 0
  • 约5.55千字
  • 约 13页
  • 2018-04-03 发布于河南
  • 举报

课程设计报告(一元稀疏矩阵计算器).docx

课程设计报告(一元稀疏矩阵计算器)

目录课程题目………………………………………………………3设计目的………………………………………………………3需求分析………………………………………………………3总体设计………………………………………………………3详细设计………………………………………………………2实现部分………………………………………………………3程序测试………………………………………………………3设计总结………………………………………………………12课程题目一元稀疏多项式计算器设计目的掌握稀疏矩阵的相关运算。 掌握广义表的操作。需求分析一元稀疏多项式简单计算器的基本功能是: 输入并建立多项式; 输出多项式,输出形式为整数序列:n,c1,e1,,c2,e2 …… cn,en,其中 n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列。 多项式a和b相加,建立多项式a+b 多项式a和b相减 ,建立多项式a-b 总体设计创建两个类,把一个作为另一个的友元类!两个类分别是listnode和polynomial!创建一个链表,包括指数,次数以及下一个结点信息,然后利用冒泡排序法进行排序,排完之后输出多项式!最后一个环节就是进行多项式的最原始运算,即加减运算!其中运用的内容包括链表知识,冒泡排序的知识!详细设计类listnode中包含friend class polynomial、double coef、int exp、listnode *next!类polynomial包含poly(); void printpoly();void bubblesort();polynomial operator+(polynomial p1); polynomial operator-(polynomial p1);在这个程序设计中,为了实现多项式的运算必须首先创建两个多项式,存储多项式的存储结构是链表,其结构如下:序数coef指数exp指针域next对输入的每个多项式进行指数由高到低的排序,核心代码为:else if(p-expq-exp){double m;int n;m=p-coef;p-coef=q-coef;q-coef=m;n=p-exp;p-exp=q-exp;q-exp=n;s=q;q=q-next; }再就是实现多项式的加减法运算,在加减法运算中为了实现处理,设p、q分别指向单链表的两个多项式,比较p、q结点的指数项,由此得到下列运算规则: ① 若p-expq-exp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。② 若p-exp=q-exp,则将两个结点中的系数相加,当和不为0时修改结点p的系数。③ 若p-expq-exp,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。实现部分#includeiostream.h#includemath.hclass polynomial; class listnode{friend class polynomial;private:double coef;int exp;listnode *next;};class polynomial{ private:listnode *s;int size;public:polynomial();void poly();void printpoly();void bubblesort();polynomial operator+(polynomial p1);polynomial operator-(polynomial p1);};polynomial::polynomial(){s=new listnode;s=NULL;size=0;}void polynomial::poly(){cout输入的元素个数为:;cinsize;double ncoef;int nexp; listnode *p,*q;p=new listnode;cout输入第1个数的系数:;cinncoef;cout输入第1个数的指数:;cinnexp;p-coef=ncoef;p-exp=nexp;p-next=NULL;s=p;int k=size;for(int i=2;i=size;i++){cout输入第i个数的系数:;cinncoef;cout输入第i个数的指数:;cinnexp;q=new listnode;q-coef=ncoef;q-exp=nexp;q-next=NULL;p-next=q;p=q; }}void polynomial::printpoly(){listnode *p=s;while(p){if(p==s){if(p-coef!=0p-exp!=0)coutp-coefx^p-exp;el

文档评论(0)

1亿VIP精品文档

相关文档