2022年用C语言实现多项式简单计算器的设计 .pdf
《2022年用C语言实现多项式简单计算器的设计 .pdf》由会员分享,可在线阅读,更多相关《2022年用C语言实现多项式简单计算器的设计 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学号10212812141 武 汉 理 工 大 学 华 夏 学 院课 程 设 计 报 告 书课程名称:数据结构题目:用 C 语言实现多项式简单计算器的设计系名:信息工程系专业班级:软件工程 1121 班姓名:邓 燕 蓉指导教师 :王 绪 梅 2013 年 6月 28日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 课程设计任务书学生姓名:邓燕蓉专业班级:软件工程 1121 班指导教师:王绪梅工作单位:华夏学院计算机教研室设计题
2、目 :用 C 语言实现多项式简单计算器的设计设计目的1. 巩固和加深课堂所学知识、学会分析研究数据对象的特性及数据的组织方法;2. 选择合适的数据的逻辑结构和存储结构以及相应操作,实现简单的多项式计算;3. 提高程序设计能力、加强查阅、运用资料的能力、算法分析与程序设计素质培养;设计任务(在规定的时间内完成下列任务)问 题描述输入并 建立两个多项式 并输出多项式设计一个 程序:对两个多 项式进行加、 减法及乘法运算 , 建立一个新多项式并输出.或设计一个程序对其中一个多项式求导。实 现提示选择带头结点的单链表或循环链表存储多项式,头结点中存放多项式的参数及单链表的数据具体要完成的任务是:A.编
3、制完成上述问 题的C 语 言程序、进行 程序调试并能得出正确的运行结果。B. 写出 规范的课程设计 报告书;时间安排:6 月 24 日-28 日第一天布置题目,确定任务、查找相关资料第二天第四天功能分析,编写程序,调试程序、运行系统;第五天程序验收、答辩;撰写设计报告。具体要求1. 课程设计报告按统一通用格式书写,具体内容如下: 设计任务与要求 总体方案与说明 软件主要模块的流程图 源程序清单与注释 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想) ; 小结与体会附录:源程序(必须有简单注释) 使用说明 参考资料2.每位学生应独立完成各自的任务且每
4、天至少在设计室工作半天;指导教师签名: 王绪梅2013 年6 月 22日教研室主任(或责任教师)签名:2013 年6 月 24 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 目录1. 设计题目 .12. 需求分析.12.1一元多项式的简单计算器的基本功能.1 2.2 设计思路 .1 3. 系统过程 .2 3.1 概要设计 .2 3.2 详细设计 .3 4. 调用关系图.3 4.1 总流程图 .4 4.2 加法流程图.5 4
5、.3 减法流程图.6 5. 测试.7 5.1 测试数据 .7 5.2 打开程序时的主界面.7 5.3 输入并建立多项式.8 5.4 选择执行的操作及执行的结果 .9 6. 心得体会及总结 .10 7. 参考文献 .10 附录 . 11 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - - 1 - 数据结构课程设计报告书1 设计题目用 C语言实现 多项式简 单计算器的设计2 需求分析2. 1一元多项式的简单计算器的基本功能(1)输
6、入并建立多项式;(2)输出多项式;(3)多项式a 和 b 相加,建立多项式a+b;(4)多 项式 a和 b 相减,建立多项式a-b;( 5)多项式a 和 b 相乘,建立多项式a*b。2.2 设计思路(1)定义线性表的动态分配顺序存储结构;(2)建立多项式存储结构,定义指针*next;(3)利用链表实现队列的构造,每次输入一项的系数和指数,可以构造一元多项式;(4)演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的数据进行输入建立多项式以及多项式相加,减,乘的运行结果在屏幕上显示。设计思路分析:要解决多项式相加,
7、相减,相乘,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为:系数 coef指数 expn指针域 next运用尾插法建立两个单链表,以单链表Polyn p 和 Polyn h 分别表示一元多项式a和 b,a+b 的求和运算等同于单链表的插入问题(将Polyn p 中的结点插入到单链表Polyn h 中) ,因此“和多项式”的结点无须另生成。为了实现处理,设p、q2 分别指向单链表polya 和 polyb 的当前项,比较p、q2 结点的指数由此得到下列运算规则: 若 p-expnexpn ,则结点 q2 所指的结点应是“和多项式”中的一项,令指
8、针q2 后移。 若 p-expn=q2-expn ,则将两个结点中的系数相加,当和不为0时修改结点q2 的系数。 若 p-expnq2-expn ,则结点 p 所指的结点应是“和多项式”中的一项,将结点p 插入在结点q2 之前,且令指针p 在原来的链表上后移。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - - 2 - 3 系统设计 3.1 概要设计系统的主功能模块结构如图31 所示。3.2 详细设计1、元素类型、结点类型和指针
9、类型:typedef struct Polynomial float coef; /系数int expn; /指数struct Polynomial *next; *Polyn,Polynomial; 2、建立一个头指针为head、项数为m的一元多项式, 建立新结点以接收数据, 调用 Insert函数插入结点 : Polyn CreatePolyn(Polyn head,int m) int i; 5 4 3 2 1 一元多项式简单计算器菜单Choice=?Printpoly ()输出多项式Addpoly ()多项式相加SubtractPolyn()多项式相减*退 出* MultiplyPol
10、yn ()多项式相乘图 31 系统的主功能模块结构结束开始名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - - 3 - Polyn p; p=head=(Polyn)malloc(sizeof(struct Polynomial); head-next=NULL; for(i=0;icoef,&p-expn); Insert(p,head); /调用 Insert 函数插入结点 return head; 3、主函数和其他函数:i
11、nt main() int m,n,flag=0; float x; Polyn pa=0,pb=0,pc,pd,pe,pf; void PrintPolyn(Polyn P) /输出多项式a和 bPolyn AddPolyn(Polyn pa,Polyn pb) /求解并建立多项式a+b,返回其头指针Polyn SubtractPolyn(Polyn pa,Polyn pb) /求解并建立多项式a-b,返回其头指针Polyn MultiplyPolyn(Polyn pa,Polyn pb) /求解并建立多项式a*b,返回其头指针名师资料总结 - - -精品资料欢迎下载 - - - - - -
12、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - - 4 - 4 调用关系图4.1 总流程图总流程图如图41 所示。否是开 始系数存入coef,指数存入expn 输入数据选择 1 输出多项式选择执行的操作结 束输出结果图 41 总流程图选择 5 退出选择 4 多项式相乘选择 2 多项式相加选择 3 多项式相减是否继续?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20
13、 页 - - - - - - - - - - 5 - 4.2执行加法流程图执行加法流程图如图42 所示。N Y Y case 0case -1N case 1开 始Polyn*pa,*pb,headc,hc,qc qa=pa-next ;qb=pb-next; hc-next=NULL; headc=hc; switch(compare(qa,qb)qc-coef=qa-coef; qc-expn=qa-expn; qa=qa-next; qc-coef!=0breakfree(qc)结 束qc-coef=qb-coef; qc-expn=qb-expn; qb=qb-next; qc-coe
14、f=qa-coef+qb-coef;qc-expn=qa-expn;qa=qa-next;qb=qb-next; qc-next=hc-next; hc-next=qc; hc=qc;qa,qb!=0 return headc图 42 执行加法流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - - 6 - 4.3执行减法流程图执行减法流程图如图43 所示。Y 开 始Polyn*pa,*pb ,Polyn h=pb; p=pb
15、-next; pd pd=AddPolyn(pa,h) 结 束p-coef*=-1; p=p-next; P!=0 return pd 图 43 执行减法流程图p!=0 p=h-next p-coef*=-1Y p=p-next Y N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - - 7 - 5测试5.1 测试数据1、 (-3x11+5x8 +4x)+( 11x9-5x8+7)=(-3x11+11x9+4x+7); 2、
16、(7x-3 +4.4x2-1.2x9-x)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9+13x-3-x); 3、 (9x8+4x6-5x4+8x)*( x14+2x4)=(9x22+4x20-5x18+8x15+18x12+8x10-10 x8+16x5); 4、 (x+x3)+(-x-x3)=0; 5、 (1-x+x2+x3-x4)*(-x3-x4)=(x8-2x6-x3)。5.2. 打开程序时的主界面打开程序时的主界面如图51 所示。图 5 1 打开程序时的主界面5.3 . 输入并建立多项式输入并建立多项式如图52 所示。名师资料总结 - - -精品资料欢
17、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - - 8 - 图 52 输入并建立多项式5.4 选择执行的操作及执行操作的结果选择执行的操作及执行操作的结果如图53、54、55 所示。图 5 3 选择执行的操作及执行操作的结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - - 9 - 图 5
18、 4 选择执行的操作及执行操作的结果图 5 5 选择执行的操作及执行操作的结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - - 10 - 6 心得体会及总结通过这次课程设计,我感觉到要自己动手真正做出一个程序并不很容易, 但只要用心去做,总会有收获 ,特别是当我遇到问题, 问老师, 问同学, 想尽办法去解决, 最后终于找到方法时,心里的那份喜悦之情真是难以形容. 编写程序中遇到问题再所难免, 应耐心探究其中的原因, 从出现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用C语言实现多项式简单计算器的设计 2022 年用 语言 实现 多项式 简单 计算器 设计
限制150内