最新数据结构课程设计题目
文件夹
在日常的学习、工作、生活中,肯定对各类范文都很熟悉吧。写范文的时候需要注意什么呢?有哪些格式需要注意呢?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。
课程设计报告
题 目: 一元多项式计算 专 业: 信息管理与信息系统 班 级: 2012级普本班 学 号: 201201011367 姓 名: 左帅帅 指导老师: 郝慎学 时 间:
一、课程设计题目分析
本课程设计要求利用c语言或c++编写,本程序实现了一元多项式的加法、减法、乘法、除法运算等功能。
二、设计思路
本程序采用c语言来完成课程设计。
1、首先,利用顺序存储结构来构造两个存储多项式a(x)和 b(x)的结构。
2、然后把输入,加,减,乘,除运算分成五个主要的模块:实现多项式输入模块、实现加法的模块、实现减法的模块、实现乘法的模块、实现除法的模块。
3、然后各个模块里面还要分成若干种情况来考虑并通过函数的嵌套调用来实现其功能,尽量减少程序运行时错误的出现。
4、最后编写main()主函数以实现对多项式输入输出以及加、减、乘、除,调试程序并将不足的地方加以修改。
三、设计算法分析
1、相关函数说明:
(1)定义数据结构类型为线性表的链式存储结构类型变量
typedef struct polynomial{}
(2)其他功能函数
插入函数void insert(polyn p,polyn h)
比较函数int compare(polyn a,polyn b)
建立一元多项式函数polyn create(polyn head,int m)
求解并建立多项式a+b,polyn add(polyn pa,polyn pb)
求解并建立多项式a-b,polyn subtract(polyn pa,polyn pb)2
求解并建立多项式a*b,polyn multiply(polyn pa,polyn pb)
求解并建立多项式a/b,void device(polyn pa,polyn pb)
输出函数输出多项式,void print(polyn p)
销毁多项式函数释放内存,void destroy(polyn p)
主函数,void main()
2、主程序的流程基函数调用说明(1)typedef struct polynomial {
float coef;
int expn;
struct polynomial *next;} *polyn,polynomial;
在这个结构体变量中coef表示每一项前的系数,expn表示每一项的指数,polyn为结点指针类型,属于抽象数据类型通常由用户自行定义,polynomial表示的是结构体中的数据对象名。
(2)当用户输入两个一元多项式的系数和指数后,建立链表,存储这两个多项式,主要说明如下:
polyn createpolyn(polyn head,int m)建立一个头指针为head、项数为m的一元多项式
p=head=(polyn)malloc(sizeof(struct polynomial));为输入的多项式申请足够的存储空间
p=(polyn)malloc(sizeof(struct polynomial));建立新结点以接收数据
insert(p,head);调用insert函数插入结点
这就建立一元多项式的关键步骤
(3)由于多项式的系数和指数都是随即输入的,所以根据要求需要对多项式按指数进行降幂排序。在这个程序模块中,使用链表,根据对指数大小的比较,对各种情况进行处理,此处由于反复使用指针对各个结点进行定位,找到合适的位置再利用void insert(polyn p,polyn h)进行插入操作。(4)加、减、乘、除、的算法实现:
在该程序中,最关键的一步是实现四则运算和输出,由于加减算法原则是一样,减法可通过系数为负的加法实现;对于乘除算法的大致流程都是:首先建立多项式a*b,a/b,然后使用链表存储所求出的乘积,商和余数。这就实现了多项式计算模块的主要功能。
(5)另一个子函数是输出函数 printpolyn();
输出最终的结果,算法是将最后计算合并的链表逐个结点依次输出,便得到整链表,也就是最后的计算式计算结果。由于考虑各个结点的指数情况不同,分别进行了判断处理。
四、程序新点
通过多次写程序,发现在程序在控制台运行时总是黑色的,本次写程序就想着改变一下,于是经过查资料利用system(“color e0”);可以函数解决,这里“e0,”e是控制台背景颜色,0是控制台输出字体颜色。
五、设计中遇到的问题及解决办法
首先是,由于此次课程设计里使用指针使用比较多,自己在指针多的时候易脑子混乱出错,对于此问题我是采取比较笨的办法在稿纸上写明白后开始进行 4
代码编写。
其次是,在写除法模块时比较复杂,自己通过查资料最后成功写出除法模块功能。
最后是,前期分析不足开始急于写代码,中途出现各种问题,算是给自己以后设计时的一个经验吧。
六、测试(程序截图)
1.数据输入及主菜单
2.加法和减法模块
3.乘法和除法模块
七、总结
通过本次应用c语言设计一元多项式基本计算程序,使我更加巩固了c语言程序设计的知识,以前对指针这一点使用是比较模糊,现在通过此次课程设计对指针理解的比较深刻了。而且对于数据结构的相关算法和函数的调用方面知识的加深。本次的课程设计,一方面提高了自己独立思考处理问题的能力;另一方面使自己再设计开发程序方面有了一定的小经验和想法,对自己以后学习其他语言程序设计奠定了一定的基础。
八、指导老师评语及成绩
附录:(课程设计代码)
#include
int expn;
struct polynomial *next;} *polyn,polynomial;
//polyn为结点指针类型 void insert(polyn p,polyn h){
if(p->coef==0)free(p);
//系数为0的话释放结点
else
{
polyn q1,q2;
q1=h;q2=h->next;
while(q2&&p->expn
最新数据结构课程设计题目(五篇)
文件夹