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

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

武汉理工大学华夏学院课程设计报告书

课程名称:数据结构

题目:用C语言实现多项式简单计算器的设计系名:信息工程系

专业班级:软件工程1121班

*名:***

****:***

2013 年6月28日

课程设计任务书

学生姓名:邓燕蓉专业班级:软件工程1121班

指导教师:王绪梅工作单位:华夏学院计算机教研室设计题目:用C语言实现多项式简单计算器的设计

设计目的

1.巩固和加深课堂所学知识、学会分析研究数据对象的特性及数据的组织方法;

2.选择合适的数据的逻辑结构和存储结构以及相应操作,实现简单的多项式计算;

3.提高程序设计能力、加强查阅、运用资料的能力、算法分析与程序设计素质培养;

设计任务(在规定的时间内完成下列任务)

〔问题描述〕输入并建立两个多项式并输出多项式

设计一个程序:对两个多项式进行加、减法及乘法运算,建立一个新多项式并输出.

或设计一个程序对其中一个多项式求导。

〔实现提示〕

选择带头结点的单链表或循环链表存储多项式,头结点中存放多项式的参数及单链表的数据具体要完成的任务是:

A.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。

B.写出规范的课程设计报告书;

时间安排:6月24日---28日

具体要求

1. 课程设计报告按统一通用格式书写,具体内容如下:

①设计任务与要求

②总体方案与说明

③软件主要模块的流程图

④源程序清单与注释

⑤问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法

及改进设想);

⑥小结与体会

附录:①源程序(必须有简单注释)②使用说明③参考资料

2.每位学生应独立完成各自的任务且每天至少在设计室工作半天;

指导教师签名:王绪梅2013 年6月22日

教研室主任(或责任教师)签名:2013年6月24日

目录

1.设计题目 (1)

2.需求分析 (1)

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)

数据结构课程设计报告书

1 设计题目

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

2 需求分析

2.1一元多项式的简单计算器的基本功能

(1)输入并建立多项式;

(2)输出多项式;

(3)多项式a和b相加,建立多项式a+b;

(4)多项式a和b相减,建立多项式a-b;

(5)多项式a和b相乘,建立多项式a*b。

2.2 设计思路

(1)定义线性表的动态分配顺序存储结构;

(2)建立多项式存储结构,定义指针*next;

(3)利用链表实现队列的构造,每次输入一项的系数和指数,可以构造一元多项式;

(4)演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的数据进行输入建立多项式以及多项式相加,减,乘的运行结果在屏幕上显示。

设计思路分析:

要解决多项式相加,相减,相乘,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为:

运用尾插法建立两个单链表,以单链表Polyn p和Polyn h分别表示一元多项式a和b,a+b的求和运算等同于单链表的插入问题(将Polyn p中的结点插入到单链表Polyn h中),因此“和多项式”的结点无须另生成。

为了实现处理,设p、q2分别指向单链表polya和polyb的当前项,比较p、q2结点的指数

由此得到下列运算规则:

① 若p->expnexpn,则结点q2所指的结点应是“和多项式”中的一项,令指针q2后移。

② 若p->expn=q2->expn,则将两个结点中的系数相加,当和不为0时修改结点q2的系数。

③ 若p->expn>q2->expn,则结点p所指的结点应是“和多项式”中的一项,将结点p插入在结点

q2之前,且令指针p在原来的链表上后移。

3 系统设计

3.1 概要设计

系统的主功能模块结构如图3—1所示。

图3—1 系统的主功能模块结构

3.2 详细设计

1、元素类型、结点类型和指针类型:

typedef struct Polynomial

{

float coef; //系数

int expn; //指数

struct Polynomial *next;

}*Polyn,Polynomial;

2、建立一个头指针为head、项数为m的一元多项式, 建立新结点以接收数据, 调用Insert函数插入结点:

Polyn CreatePolyn(Polyn head,int m){

int i;

相关文档
最新文档