《程序语言课程设计 - 一元多项式简单的计算器》..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安文理学院软件学院课程设计报告
设计名称:程序语言课程设计
设计题目:一元多项式简单的计算器
学生学号:**********
专业班级:软件学院一班
学生姓名:***
学生成绩:
指导教师(职称):袁溪(讲师)
课题工作时间:2013.12.9 至2013.12.23
软件学院课程设计任务书
指导教师:院长:
日期:2013年12月9日
软件学院课程设计进度安排表
学生姓名:张文东学号:1402120135 专业:软件工程班级:一班
指导教师签名:
2013年12月11日
成绩评定表
学生姓名:张文东学号:1402120135 专业:软件工程班级:一班
摘要
摘要:随着科技的不断发展,人们生活水平的不断提高,方便、高效、快捷成为了人们所追求的主要目标,面对一些复杂的技术总会花费大量时间进行计算,因此有一个多项式功能的计算器是很有必要的。
开发这样一个程序需要用到C结点、链表方面的知识,系统分为多项式的输入输出、多项式的加法、多项式的减法、多项式的乘法四个模块。
该报告主要是通过系统的程序段、程序设计的要求以及计算器的功能来介绍该计算器实现过程。
关键字:多项式;C语言;结点;链表
目录
目录 (1)
第一章课题背景 (2)
1.1绪论 (2)
1.2主要内容 (2)
第二章设计简介及设计方案论述 (3)
2.1系统分析 (3)
2.2总体设计 (3)
第三章详细设计 (5)
3.1建立多项式 (5)
3.2多项式相加 (7)
3.3多项式相减 (9)
3.4多项式相乘 (10)
主要代码如下: (12)
主要代码如下: (14)
第四章设计结果及分析 (17)
4.1调试与测试 (17)
4.2运行结果 (19)
4.3结果分析 (21)
总结 (22)
参考文献 (23)
附录 (24)
第一章课题背景
1.1 绪论
随着科技的进步,社会的不断发展,计算器已普遍应用于各行各业,为了帮助人们提高工作效率,节约运算时间,设计一个多功能的计算器是很有必要的,在此设计一个多项式计算器可以很方便的对多项式相加、相减、相乘,对提高人们的运算效率很有帮助。
一个计算器需要用到C多方面的知识,要实现多项式的建立和输入输出等功能,必须要熟练的掌握C,在此尤其是链表和结点。
1.2 主要内容
用C语言实现多项式的输入输出和多项式的加减乘等运算,其中主要用到链表和结点的相关知识,具体功能如下:
1)输入并建立多项式;
2)输出多项式;
3)两个多项式相加,输出和多项式;
4)两个多项式相减,输出差多项式。
第二章设计简介及设计方案论述
2.1 系统分析
2.1.1 功能需求
多项式的建立多项式的输入输出多项式的加减乘等运算
2.1.2 数据需求
在输入过程中,首先要给定输入的数据,数据只能是数字,不能是字母或其他,不能连续输入数据,必须要求以空格分开要输入的数据。
2.1.3 系统需求
系统必须安全可靠,不会出现无故死机状态,运算速度要快。
2.2 总体设计
2.2.1 系统设计方案
采用菜单设计,选择你需要的功能,用单链表储存你输入的数据。
(1) 菜单
菜单包括计算器加减乘等功能的选择
(2) 文件保存方式
运用带头节点的单链表储存多项式
(3) 抽象数据类型定义
主要定义多项式的系数和指数。系数项用浮点类型定义,指数项用整型定义
(4) 存储结构
采用链式结构,建立链表储存输入的多项式
(5) 算法设计
运用链表知识,建立链表,给链表分配一定量的存储空间,查找链表,插入链表和链表的连接
2.2.2 功能模块设计
一元多项式计算器
图 2-1 功能模块设计
第三章详细设计
一元多项式计算器主要分为4大部分,多项式建立,多项式加法,多项式减法和多项式乘法。多项式的建立主要需要建立新链表,并分配给这个新链表一定量的存储空间,分配的存储空间内进行运算;多项式加减乘等运算主要运用了链表的建立,链表存储空间分配,链表的查找,插入与连接进行计算。
3.1 建立多项式
此阶段是多项式的建立,可以对计算器进行输入输出等功能。主要运用链表方面的知识如图3-1所示:
图 3-1 多项式的建立
主要代码如下:
PLOY *creat(char ch) //建立多项式
{
PLOY *head,*inpt;
float x;
int y;
head=(PLOY *)malloc(sizeof(PLOY));
head->next=NULL;
printf("请输入一元多项式%c:(格式是:系数指数;以0 0 结束!)\n",ch);
scanf("%f %d",&x,&y);
while(x!=0)
{
inpt=(PLOY *)malloc(sizeof(PLOY));
inpt->coef=x;
inpt->expn=y;
inpt->next=NULL;
insert(head,inpt);
printf("请输入一元多项式%c:(以0 0 结束!)\n",ch);
scanf("%f %d",&x,&y);
}
return head;
}