版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I简单的一元多项式计算器程序朱琳摘要摘要.21. 绪论绪论.22. 系统设计系统设计.22.1 功能需求.22.2 数据需求.32.3 性能需求.33. 总体设计总体设计.33.1 功能模块设计.33.2 系统设计方案.44. 详细设计详细设计.44.1 输入并建立模块.44.2 输出模块.64.3 相加模块.64.4 相减模块.85. 调试与测试调试与测试.95.1 调试.95.2 测试.96. 结论结论.9结束语结束语.9参考文献参考文献.10附录附录 2源程序源程序.142 摘要摘要计算器是人们生活中必不可少的简单程序。在我们的学习生活中经常会用到计算器来进行简单的运算。因此如何编写一个
2、简单的一元多项式计算器程序也是我们所应该掌握的。本系统使用的 C 语言作为程序开发的语言,开发设计一个一元多项式的和差计算程序实现输入并建立多项式;输出多项式;两个多项式相加,建立并输出和多项式;两个多项式相减,建立并输出差多项式。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:计算器;系数;指数;一元多项式;关键词:计算器;系数;指数;一元多项式;1. 绪论绪论计算器是人们生活中必不可少的简单工具。在我们的学习生活中经常会用到计算器来进行简单的运算。因此如何编写一个简
3、单的一元多项式计算器也是我们所应该掌握的。本系统使用的 C 语言作为程序开发的语言,开发设计一个一元多项式的和差计算程序实现输入并建立多项式;输出多项式;两个多项式相加,建立并输出和多项式;两个多项式相减,建立并输出差多项式。根据课程设计任务书要求,本系统开发主要完成以下功能。 (1)能够实现输入并建立多项式;(2)能够实现输出多项式;(3)能够实现两个多项式相加,建立并输出和多项式;(4)能够实现两个多项式相减,建立并输出差多项式。2. 系统设计系统设计2.1 功能需求功能需求本系统主要是一个简单的一元多项式计算器程序系统。本程序需要设计一个一元多项式的和,差计算程序。多项式的每一项用数组表
4、示,每项包括一个系数和一个指数(一个数组存系数,一个数组存指数) 。32.2 数据需求数据需求需要向系统输入运算符,所需要运算的数据。2.3 性能需求性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3. 总体设计总体设计 简单一元多项式计算程序 输 入 并 建 立 模 块输 出 模 块相 减 模 块相 加 模 块图图 1 1 功能模块图功能模块图3.1 功能模块设计功能模块设计根据分析整个系统主要划分为 4 个功能模块,分别执行要求该系统中的功能。输入并建立模块,输出模块,相加模块,相减模块。需要有功能模块图如图 1 所示。(1)输入并建立模块能够
5、实现输入并建立多项式子模块。4(2)输出模块能够实现输出多项式子模块。(3) 相加模块能够实现两个多项式相加,建立并输出和多项式子模块。(4) 相减模块能够实现两个多项式相减,建立并输出差多项式子模块。3.2 系统设计方案系统设计方案根据分析整个系统设计一个总菜单,分别执行要求的功能.1 输入并建立多项式;2输出多项式;3 两个多项式相加,建立并输出和多项式;4 两个多项式相减,建立并输出差多项式。(1)建立结构体如下:typedef struct PNodeint coef; /系数 int expn; /指数 struct PNode *next; /指针域 (2)函数如下: void C
6、reatPoly() /一元多项式的创建操作,其中 n 为一元多项式的项数void OutputPoly() /一元多项式的输出操作void SubtractPoly() /一元多项式的相减操作,即实现 Hc=Ha-Hbvoid SubtractPoly2( ) /一元多项式的相减操作,即实现 Hc=Ha+Hb4. 详细设计详细设计 4.1 输入并建立模块输入并建立模块 输入所要求的一元多项式,首先输入项数,在依次输入第一个多项式的第一个系数,项数,回车输出一元多项式,程序流程图如图 25开始inti,coef,expn;i=1inext;printf(%+dX%d,p-coef,p-expn
7、);printf(%dX%d,p-coef,p-expn);结束YNYN图图 3 输出流程图输出流程图 4.3 相加模块相加模块输入两个多项式,相加运算并求和。按提示输入并建立第一个多项式,再输入并建立第二个多项式,进行加法运算并求和;。最后,输出运算结果。程序流程如图 4 所示;7开始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(stru
8、ct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=spa=pa-next; ; YNYN结束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-
9、next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode); Hc-next=NULL;pc=Hc;pa=Ha-next; pb=Hb-next; pa-expnpb-expnYx=pa-coef+pb-coefNx!=0 s=(POLY)malloc(sizeof(struct PNode);s-coef=x; s-expn=pa-expn; s-next=NULL;pc-next=s;pc=s; Y pa=pa-next; pb=pb-next;NNNY 图图 4 相加流程图相加流程图84.4 相减模块相减模块输
10、入两个多项式,相减运算并求差。按提示输入并建立第一个多项式,再输入并建立第二个多项式,进行减法运算并求差;。最后,输出运算结果。程序流程如图 5 所示开始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=
11、spa=pa-next; ; YNYN结束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode
12、); Hc-next=NULL;pc=Hc;pa=Ha-next; pb=Hb-next; pa-expnpb-expnYNx!=0 s=(POLY)malloc(sizeof(struct PNode);s-coef=x; s-expn=pa-expn; s-next=NULL;pc-next=s;pc=s; Y pa=pa-next; pb=pb-next;NNNYx=pa-coef-pb-coef 图图 5 相减流程图相减流程图95. 调试调试与测试与测试5.1 调试调试(1)运行完程序一次有错误提醒原因是上次运行程序后没有关闭操作界面当点击编译时会有一个错误提示,解决方法:将上一次运行
13、时的操作界面关闭。其原因是指针指向的位置出现错误导致程序传参错乱,无法运行,解决办法:使程序进入调试状态在传参,出现错误的位置一句句查找传递的参数是否是你所希望的,如若不是就加以修正。5.2 测试测试测试数据过程如下。一元多项式计算器设计本系统需要有(1)能够实现输入并建立多项式;(2)能够实现输出多项式;(3)能够实现两个多项式相加,建立并输出和多项式;(4)能够实现两个多项式相减,建立并输出差多项式的功能。本系统全部实现6. 结论结论课程设计顺利完成,任务书中所提出的要求全部实现,实现输入并建立多项式;输出多项式;两个多项式相加,建立并输出和多项式;两个多项式相减,建立并输出差多项式。不过
14、这个程序还有些不够完善。结束语结束语为期两个星期的计算机综合训练终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些 C 语言的编程思路,能够熟练的运用学到的函数,学会了在曾经编写过的函数上加以修改实现了我期望实现的功能,知道学习编程必须亲手将每一个字符敲入电脑中这样才能真正的学到课本或一些理论中学不到的知识,这才达到了实践的目的,当程序编写完成而且能够正常运行心里一种说不出的自豪感,虽然这对于一名程序员来说可能什么也不是,但这是我10编程的开始,如果希望在编程这方面能够有所发展我所要走过的路还很长,还需要不断的努力学习.参考文献参考文献 1 谭浩强. C 语言程序设计(第三版).北
15、京:清华大学出版社,2005.72 高涛,陆丽娜. C 语言计程序设计.西安交通大学出版社,2007.211附录附录 1 1用户手册用户手册1.点击运行,首先出现的是创建第一个多项式,按提示进行操作,如图 6 所示. 图图 6 输入第一个多项式界面输入第一个多项式界面2.创建完成第一个多项式,开始创建第二个多项式,如图 7 所示. 图图 7 输入第二个多项式界面输入第二个多项式界面3.创建完成第二个多项式,如图 8 所示.12 图图 8 创建完成界面创建完成界面4.两个多项式相减,输出差多项式,如图 9 所示. 图图 9 相减界面相减界面5.两个多项式相加,输出和多项式,如图 10 所示.13
16、 图图 10 相加界面相加界面14附录附录 2源程序源程序#include stdio.h#include string.h#include malloc.htypedef struct PNodeint coef; int expn; struct PNode *next; *POLY; /POLY 为一元多项式的类型 void CreatPoly(POLY &H,int n) /一元多项式的创建操作,其中 n 为一元多项式的项数 int i,coef,expn; H=(POLY)malloc(sizeof(PNode); POLY p,s; H-next=NULL; p=H; fo
17、r(i=1;icoef=coef;s-expn=expn; s-next=NULL;p-next=s;p=s; void OutputPoly(POLY H) /一元多项式的输出操作 int flag=1; /flag 用来是否为第一项的标识 POLY p; p=H-next;15 while(p) if(flag) printf(%dX%d,p-coef,p-expn); flag=0; else printf(%+dX%d,p-coef,p-expn); p=p-next; printf(n); void SubtractPoly2(POLY Ha, POLY Hb, POLY &
18、Hc) int x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode); Hc-next=NULL; pc=Hc; pa=Ha-next; pb=Hb-next; while(pa&pb) if(pa-expnexpn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; else if(pa-expnpb-expn) s=(POLY)malloc(sizeof
19、(struct PNode); s-coef=pa-coef;16 s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; else x=pa-coef+pb-coef; if(x!=0) s=(POLY)malloc(sizeof(struct PNode); s-coef=x; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; pb=pb-next; while(pa) s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-c
20、oef; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; while(pb) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL;17 pc-next=s; pc=s; pb=pb-next; void SubtractPoly(POLY Ha, POLY Hb, POLY &Hc) /一元多项式的相减操作,即实现Hc=Ha-Hb int x; POLY pa,pb,pc,s; Hc=(POLY)malloc(
21、sizeof(struct PNode); Hc-next=NULL; pc=Hc; pa=Ha-next; pb=Hb-next; while(pa&pb) if(pa-expnexpn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coef; s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; else if(pa-expnpb-expn) s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef; s-expn=pa-expn; s-next=NULL; pc-next=s; pc=s; pa=pa-next; else 18 x=pa-coef-pb-coef; if(x!=0) s=(POLY)malloc(sizeof(struct PNode); s-coef=x; s-expn=pa-expn; s-next=NUL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南长沙市望城区人力资源和社会保障局公益性岗位工作人员招聘笔试备考试题及答案解析
- 2026浙江大学基础医学院刘志勇团队招聘博士后2人考试参考题库及答案解析
- 2026年上海实业集团有限公司人员招聘考试模拟试题及答案
- 2026年崂山区区属国有企业公开招聘工作人员(90人)考试备考题库及答案解析
- 2027广西河池市中医医院人才招聘笔试备考题库及答案解析
- 2026广西河池市巴马瑶族自治县水利局面向社会招聘1人笔试模拟试题及答案解析
- 2027中国人民解放军第四军医大学第三附属医院招聘考试模拟试题及答案解析
- 2026北京大学前沿交叉学科研究院招聘1名劳动合同制工作人员考试备考题库及答案解析
- 2026云南曲靖市马龙区教育体育局招聘公益性岗位人员2人考试备考题库及答案解析
- 2026扬州市中医院公开招聘第四批备案制人员笔试备考试题及答案解析
- 麻纺厂工作制度及流程
- 超危大模板及支撑体系专项施工方案(专家论证修改后)2022
- 卫生间抽纸管理制度
- Unit3FamilymattersDevelopingideasJustabrother课件-高中英语外研版
- 贵州省公路占道作业安全技术指南(试行)
- 头发移植课件
- 《深度学习与神经网络》全套教学课件
- GB/T 9535.2-2025地面用光伏组件设计鉴定和定型第2部分:试验程序
- 煤矿安全生产风险分级管控和隐患排查治理双重预防体系建设培训课件
- 全国民用爆炸物品信息管理系统领用发放手持机用户手册
- 委托检测服务合同协议书
评论
0/150
提交评论