用C语言实现多项式简单计算器的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

结束
图 3—1 系统的主功能模块结构
3.2 详细设计
1、元素类型、结点类型和指针类型:
typedef struct Polynomial
{
float
coef;Байду номын сангаас//系数
int
expn; //指数
struct Polynomial *next;
}*Polyn,Polynomial;
2、建立一个头指针为 head、项数为 m 的一元多项式, 建立新结点以接收数据, 调用 Insert 函数
2.1 一元多项式的简单计算器的基本功能.................................................1 2.2 设计思路.................................................................................................................1 3.系统过程.............................................................................................................................. 2 3.1 概要设计.................................................................................................................2 3.2 详细设计.................................................................................................................3 4.调用关系图...........................................................................................................................3 4.1 总流程图.................................................................................................................4 4.2 加法流程图........................................................................................................... 5 4.3 减法流程图........................................................................................................... 6 5.测试........................................................................................................................................... 7 5.1 测试数据.................................................................................................................7 5.2 打开程序时的主界面...................................................................................... 7 5.3 输入并建立多项式........................................................................................... 8 5.4 选择执行的操作及执行的结果................................................................ 9 6.心得体会及总结.............................................................................................................. 10 7.参考文献.............................................................................................................................. 10 附录...........................................................................................................................................11
要解决多项式相加,相减,相乘,必须要有多项式,所以必须首先建立两个多项式,在这里采用 链表的方式存储链表,所以我将结点结构体定义为:
系数 coef
指数 expn
指针域 next
运用尾插法建立两个单链表,以单链表 Polyn p 和 Polyn h 分别表示一元多项式 a 和 b,a+b 的求 和运算等同于单链表的插入问题(将 Polyn p 中的结点插入到单链表 Polyn h 中),因此“和多项式”的 结点无须另生成。
⑤ 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法
及改进设想);
⑥ 小结与体会
附录:① 源程序(必须有简单注释) ② 使用说明 ③ 参考资料
2. 每位学生应独立完成各自的任务且每天至少在设计室工作半天;
指 导 教 师 签 名: 王绪梅
2013 年 6 月 22 日
数据结构课程设计报告书
1 设计题目
用 C 语言实现多项式简单计算器的设计
2 需求分析
2.1 一元多项式的简单计算器的基本功能
(1)输入并建立多项式; (2)输出多项式; (3)多项式 a 和 b 相加,建立多项式 a+b; (4)多项式 a 和 b 相减,建立多项式 a-b; (5)多项式 a 和 b 相乘,建立多项式 a*b。
设计题目:用 C 语言实现多项式简单计算器的设计
设计目的
1.巩固和加深课堂所学知识、学会分析研究数据对象的特性及数据的组织方法; 2.选择合适的数据的逻辑结构和存储结构以及相应操作,实现简单的多项式计算; 3.提高程序设计能力、加强查阅、运用资料的能力、算法分析与程序设计素质培养 ;
设计任务 (在规定的时间内完成下列任务)
为了实现处理,设 p、q2 分别指向单链表 polya 和 polyb 的当前项,比较 p、q2 结点的指数 由此得到下列运算规则:
① 若 p->expn<q2->expn,则结点 q2 所指的结点应是“和多项式”中的一项,令指针 q2 后移。 ② 若 p->expn=q2->expn,则将两个结点中的系数相加,当和不为 0 时修改结点 q2 的系数。 ③ 若 p->expn>q2->expn,则结点 p 所指的结点应是“和多项式”中的一项,将结点 p 插入在结点 q2 之前,且令指针 p 在原来的链表上后移。
学号 10212812141
武汉理工大学华夏学院 课程设计报告书
课程名称: 数据结构
题 目:用 C 语言实现多项式简单计算器的设计
系 名:
信息工程系
专业班级:
软件工程 1121 班
姓 名:
邓燕蓉
指导教师:
王绪梅
2013 年 6 月 28 日
课程设计任务书
学生姓名: 邓燕蓉 指导教师: 王绪梅
专业班级: 软件工程 1121 班 工作单位:华夏学院计算机教研室
-1-
3 系统设计
3.1 概要设计
系统的主功能模块结构如图 3—1 所示。
开始 一元多项式简单计算器菜单
Choice=?
1
2
3
4
5
Printpoly() 输出多项式
Addpoly() 多项式相加
SubtractPolyn() 多项式相减
MultiplyPolyn() 多项式相乘
****** 退 出 ******
-3-
4 调用关系图
4.1 总流程图
总流程图如图 4—1 所示。
时间安排:6 月 24 日---28 日
第一天 第二天~第四天 第五天
布置题目,确定任务、查找相关资料 功能分析,编写程序,调试程序、运行系统; 程序验收、答辩;撰写设计报告。
具体要求
1. 课程设计报告按统一通用格式书写,具体内容如下:
① 设计任务与要求
② 总体方案与说明
③ 软件主要模块的流程图
④ 源程序清单与注释
插入结点:
Polyn CreatePolyn(Polyn head,int m){
int i;
-2-
Polyn p; p=head=(Polyn)malloc(sizeof(struct Polynomial)); head->next=NULL; for(i=0;i<m;i++) {
p=(Polyn)malloc(sizeof(struct Polynomial)); printf("请输入第%d 项的系数与指数:",i+1); scanf("%f %d",&p->coef,&p->expn); Insert(p,head); //调用 Insert 函数插入结点 } return head; } 3、主函数和其他函数: int main() { int m,n,flag=0; float x; Polyn pa=0,pb=0,pc,pd,pe,pf; } void PrintPolyn(Polyn P) //输出多项式 a 和 b Polyn AddPolyn(Polyn pa,Polyn pb) //求解并建立多项式 a+b,返回其头指针 Polyn SubtractPolyn(Polyn pa,Polyn pb) //求解并建立多项式 a-b,返回其头指针 Polyn MultiplyPolyn(Polyn pa,Polyn pb) //求解并建立多项式 a*b,返回其头指针
教研室主任(或责任教师)签名:
2013 年 6 月 24 日
目录
1.设计题目............................................................................................................................... 1 2.需求分析.............................................................................................................................. 1
〔问题描述〕输入并建立两个多项式并输出多项式 设计一个程序:对两个多项式进行加、减法及乘法运算,建立一个新多项式并输出.
或设计一个程序对其中一个多项式求导。 〔实现提示〕
选择带头结点的单链表或循环链表存储多项式,头结点中存放多项式的参数及单链表的数据 具体要完成的任务是:
A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书;
2.2 设计思路
(1)定义线性表的动态分配顺序存储结构; (2)建立多项式存储结构,定义指针*next; (3)利用链表实现队列的构造,每次输入一项的系数和指数,可以构造一元多项式; (4)演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在 键盘上输入演示程序中规定的运行命令;最后根据相应的数据进行输入建立多项式以及多项式相加,减, 乘的运行结果在屏幕上显示。 设计思路分析:
相关文档
最新文档