C++一元多项式计算问题-课程设计说明书(2)
目录
1 设计内容与要求 ??????????????????????????????? 1 2.设计说明 ?????????????????????????????????? 1 2.1 问题描述与功能设计????????????????????????????1 2.2 数据结构与算法??????????????????????????????1 2.3 函数定义?????????????????????????????????3 2.4 界面设计?????????????????????????????????4 2.5 编码???????????????????????????????????5 2.6 测试???????????????????????????????????10 3 总结?????????????????????????????????????14
参考文献 ???????????????????????????????????15 附录A 源代码?????????????????????????????????16
V
⒈设计内容与要求
设计内容:
设计一个稀疏多项式简单计算器,能够进行简单的基本运算。如:多项式相加、多项式相减、多项式求值??等等。 基本要求:
(1)输入并分别建立多项式A和B
(2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2??,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列
(3)完成两个多项式的相加、相减,并将结果输出; 创新要求:
(1).多项式在x=1时的运算结果 (2)求多项式A和B的乘积
2.设计说明
2.1 问题描述与功能设计
本程序要求能够实现从键盘键入两个多项式的系数、指数相关数据后,能够进行多项式输出、多项式相加、多项式相减、多项式求值、多项式求积的运算。
2.2 数据结构与算法
数据结构
多项式的逻辑结构:视为线性表 p(x)=3x14-8x8+6x2+2
数据元素 (coef,exp)
表示多项式项 coef·Xexp ,coef是该项的系数,exp是变元X的指数。
为了实现任意多项式的运算,因此选择单链表的结构体,它有一个系数,指数,下一个指针3个成员。
- 1 -
算法
多项式的输入与建立
调用CreatePolyn()函数建立链表,将多项式每一项的系数与指数作为链表一个结点的数据,按照指示输入每一项的系数与指数时,将调用Insert()函数,将输入的结点信息按指数降序排列的方式插入到之前建立的链表中,并合并同类项。依次输入、建立一元多项式pa和pb。如下图。
多项式的输出
调用PrintPolyn()函数将多项式链表中的结点数据按照一元多项式的格式(如:6x^5+3x^3+7x+3)输出到屏幕上。
两个多项式的加法
调用AddPolyn()函数直接对两个多项式的链表的结点成员的系数与指数按照数学中多项式相加的原则进行操作。其中要调用compare()函数对两个多项式的指数或是项数进行比较。相加所得的多项式存放到新建的第三个多项式中。再对第三个多项式输出即可。
- 2 -
两个多项式的减法
调用SubtractPolyn()函数对两个多项式减法运算。首先对要减的多项式的系数求反,接着调用AddPolyn()函数对处理后的多项式相加即两个多项式的相减。所得的多项式存放到新建的第三个多项式中,再对第三个多项式输出即可。
多项式的求值
调用ValuePolyn()函数对多项式求值。在用户输入X的值后,对链表每个结点的数据进行求值,然后求和即多项式在X为某一值的值。其中用到C语言中的数学函数:pow。其功能为计算x的y次幂,
所在头文件:math.h 。
两个多项式的乘法
调用MultiplyPolyn()函数对两个多项式进行乘法运算。根据数学知识,依次用一个多项式的每一项乘以另一个多项式的每一项,再求和、合并同类项即两个多项式的乘积。当中用了多两个多项式的while循环,以确保两个多项式的每一项都得到相应的运算,每一次运算后调用Insert()函数把乘积插入到新建的链表中,以得到一个结点信息按指数降序排列的方式排列,并以合并同类项的链表。
2.3 函数定义
为了程序功能的顺利实现,在本程序中定义了如下函数: 函数名 功能
Insert() 链表结点数据的插入与排序 CreatePolyn() 链表头结点的创建 DestroyPolyn() 链表的销毁
PrintPolyn() 链表数据的多项式形象化输出 Compare() 两个多项式的指数或是项数进行比较 AddPolyn() 两个多项式的加法 SubtractPolyn() 两个多项式的减法 ValuePolyn() 多项式的求值 MultiplyPolyn() 两个多项式的乘法 desktop() 程序界面的实现
- 3 -
2.4 界面设计
程序数据初始界面:
程序操作主界面:
- 4 -
…… 此处隐藏:337字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




