1 问题描述

将多个多项式输入并存储在内存中,然后对多项式进行加、减运算并输出结果。

2 数据结构描述一元多项式的表示方式:如 f=6x^5-7x^4+3 表示为 f=6,5 -7,4 3,0

每个多项式用单链表来存储:

typedefstructPolyNode

{

floatcoef;// 系数

intexpn;// 指数

structPolyNode*next;// 指向下个结点的指针

}Poly;

图示举例

3 主要算法描述主要功能:对输入的一元多项式进行加减运算并输出

程序主要模块:如下图所示

3.1 模块一:一元多项式的建立结点类型为:结构体Poly

数据流:系数、指数。

函数名为:

intCreatPoly(P_Poly*,int);

3.2 模块二:两个一元多项式的加法数据流:两个一元多项式相加后的结果

函数名为:

voidAddPoly(P_Poly*,P_Poly,P_Poly);

3.3 模块三:两个一元多项式的减法数据流:两个一元多项式相减后的结果;

函数名为:

voidDecPoly(P_Poly*,P_Poly,P_Poly);

程序中的主要函数及相应功能:

// 创建一元多项式

intCreatPoly(P_Poly*,int);

// 输出一元多项式

voidOutP_Poly(P_Poly);

// 两个多项式求和

voidAddPoly(P_Poly*,P_Poly,P_Poly);

// 两个多项式求差

voidDecPoly(P_Poly*,P_Poly,P_Poly);

4 程序的调试

4.1 问题一

由于程序运用了输入输出流的控制符,而没有包含文件,所以在连接时,出了错,后来看了下面窗口的错误提示,才知道自己忘了包含该文件进去。

4.2 问题二

因为输入多项式每一项时的格式为”系数,指数”,而用cin语句不知怎么解决,后来查找资料获悉用scanf函数可以实现输入的格式控制,因此运用了scanf这一函数。

4.3 问题三

输出多项式时,要输出正负号,这是一个比较麻烦的问题。开始想到了运用输出控制符setiosflags(ios::showpos)直接输出正号。可是却发现启用了该控制符后对后面的输出也起作用,导致x后面的指数在输出时也带上了正号。左思右想,得不到解决办法,只好另寻方法。最后多项式是可以输出来了,可是每次输出完后随即弹出出错框(如下图),这个问题本人至今还想不透。

5 程序测试

多项式名称不符合时的情况(本程序规定用单个小写字母命名多项式),如:命令输出一元多项式A

多项式不存在时的输出情况,如:命令输出一元多项式a

两多项式相加,如:a=6x^6-10x^5+4x^2 b=-x^6+5x^5+6x^4+2x^3

两多项式相减,如:a=-6x^7+10x^6+4x^4 b=5x^6-9x^5+5x^4+3x^3

6 程序特色本程序的力求简单明了,让使用者易于掌握。因此每一个指令都有相应的提示语句,分别按照这些提示语句进行选择,就会出现相应的菜单或实现相应的功能。

原本想加上乘法和除法的运算,可是每项互乘除要求两个链表的节点数据也相乘除,问题太多,又想不到好的解决办法,想不出具体实现的函数,因此,没有进行功能扩展。这也是本程序最大的不足之处。

每个函数对应解决一个问题,模块分明,系统出现错误时,易于限定哪个函数还不能完美实现某个功能,以便修改并改进。在完善程序的时候,这个特点帮了我很大的忙。例如调试减法运算功能时,系统有时会出现错误,因此便锁定在相减的函数上查找不足。又如,自己对输出这一功能不是很满意,要改进的话则只需在输出函数上做改进。

7 课程设计总结

这一次的课程设计,我再次感到了程序世界的美妙。

记得在分析完问题的要求后,对要写的程序进行了初步的模块划分。当时觉得问题看起来很简单,但是在具体实现的函数编写上遇到了很多的细节问题。在着手解决这些问题的过程中,虽然耗费了不少时间,困难重重,但付出了总会有收获,即使有一些问题自己还没有十分满意的解决掉,但在无形之中自己又增加了不少课外知识和一些以前忽略的知识点,拓宽了自己的视野,提升了自己的动手能力。

最主要的是对单向链表的使用有了更深刻的了解和掌握,因为多项式的计算要求用单向链表来实现,所以在做课程设计之前通过网上找资料,查参考书等对单向链表的使用比以前掌握的更加到位,并且能够灵活运用,通篇几乎用的都是单向链表,这是受益的一大重点。

参考资料

[1] 数据结构教程学习指导(第3版). 李春葆. 北京: 清华大学出版社, 2009

[2] C++程序设计. 谭浩强. 北京: 清华大学出版社, 2008

[3] C++程序设计题解与上机指导. 谭浩强. 北京: 清华大学出版社, 2007

[4] C++程序开发例题与习题. 张基温. 北京: 清华大学出版社, 2001

c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算相关推荐

  1. c语言文字冒险类游戏,课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

    1 需求分析 1.1 功能需求 游戏性:通过键盘方向键的←.→.↑.↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数.为提高可玩性,宝 ...

  2. c语言全民飞机游戏代码,课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

    摘要功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌方 ...

  3. java实现一元多项式减法,课内资源 - 基于C语言实现的一元多项式的计算

    一.概述 通过C语言使用链式存储结构实现一元多项式加法.减法和乘法的运算.按指数降序排列. 二.需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式 ...

  4. C语言编程求解圆盘的汉诺塔,课内资源 - 基于80x86汇编的汉诺塔

    一.软件背景介绍 我们今天要陈述的应用叫做汉诺塔,大家可能小时候都接触过类似于鲁班锁,九连环的益智玩具,我们要说的汉诺塔其实也可以说是益智玩具的一种. 下面我们具体介绍一下汉诺塔.汉诺塔有三根杆子A, ...

  5. c语言外卖程序,课内资源 - 基于C语言的外卖派单模拟系统

    一.课题任务概述 你运行一家外卖快递服务店,负责一个区域内的外卖订单接收和餐食快递.你有一笔启动资金,可以招募外卖骑手帮你送餐,来赚取快递费.但你也会面临风险,本区域的订单你都有义务接收,不能拒绝,若 ...

  6. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏

    1.任务概述 1.1 系统总体目标 本项目的目的在于开发一个扫雷软件,该软件面向游戏玩家用户,具有进行扫雷游戏的功能.游戏玩家将使用系统中的如下功能: 进行游戏 使用自定义游戏规格功能 使用计时器功能 ...

  7. 餐厅管理程序c语言源代码,课内资源 - 基于C++的餐厅管理程序的设计与实现

    摘 要 随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便.很多人都使用过传统的文字,纸张管理手段,与之不同的另外一种管理方式就是利用电脑程序管理 ...

  8. 数学金字塔C语言原函数,课内资源 - 基于C语言实现的金字塔问题(Pyramid Problem)...

    1 开发软件说明 Dev C++是一个 Windows 下的C 和C++程序的集成开发环境,是一款自由软件,遵守GPL 许可协议分发源代码.它使用MingW32/GCC 编译器,遵循 C/C++ 11 ...

  9. devccp中c语言输入二维数组,课内资源

    1 概述1.1 项目简介本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是MFC编程中的一些函数.链表思 ...

最新文章

  1. ImageMagick简单记录
  2. HTML Inspector – 帮助你编写高质量的 HTML 代码
  3. 别人总结的批处理技巧
  4. python使用matplotlib可视化3D柱状图(3D bar plot、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为y、改变3d图观察的角度
  5. python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块
  6. 奇异面试经历之张冠李戴
  7. 【报错笔记】关于tomcat启动不了,闪退问题。
  8. Vue3里的setup中使用vuex
  9. HttpServletRequest说明
  10. 2011年 7月6日の朝会文章 手塚 治虫
  11. spring boot项目发送邮件
  12. linux 常用脚本
  13. 大学计算机基础试题 百度网盘,【分享】《大学计算机基础》试题题库及答案 ~~~~~~~~~~~...
  14. onkeyup+onafterpaste 只能输入数字和小数点
  15. 计算机弹薛之谦的音乐,薛之谦最火的五首歌,除了《演员》,这三首歌却埋没3年无人知!...
  16. Office 365组命名策略 - 补充
  17. 汉字与拼音互转的工具类
  18. 完全使用gnu/linux工作
  19. GRE词汇意群法速记
  20. pygame 实现键盘鼠标映射

热门文章

  1. RTMPLive多流媒体协议转无插件直播协议(RTMP)解决方案
  2. 丝滑!CVPR 2021 视频插帧论文+开源代码汇总
  3. 9款好看又实用的手机APP UI模板
  4. 推箱子游戏 java源代码_java推箱子游戏源代码(含推箱子的判断)
  5. 一个人怎么写大型软件
  6. IP签名档PHP源码,简单几步,教你制作自己的显IP签名档
  7. 简易理解设计模式之:责任链模式——OA中请假流程示例
  8. 射频信号空间衰减计算
  9. 【 源代码 】 用Devc++编写的一个万年历小应用(附带音乐)
  10. CEF 、chromium源码下载前相关代理配置