C语言课程设计报告_c语言课程设计报告

2020-02-27 其他范文 下载本文

C语言课程设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课程设计报告”。

C语言课程设计报告

Experiment Designing reporter

课程名称 : C语言课程设计

英文名称 : C Program Experiment Designing

专 业 :

学 号 :

姓 名 :

指导教师 :

日 期: 2011年7月18日 至2011年7月22日

《C语言课程设计》报告

C Program Experiment Designing

课程编号:01200308005

学时: 40学时 适用专业:软件工程专业 授课单位:软件学院

一、C语言课程设计目的及要求

目的:

根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。

要求:

1. 熟悉Turbo C 的编程环境、主要菜单功能。

2. 通过上机验证运算符、表达式、运算规则、函数使用。3. 熟练使用C语言的典型语句编写简单程序。4. 调试典型例题或习题。5. 提高上机编程能力

二、实验类型

设计类型

三、实验学时

40学时

四、实验设备

微型计算机、WINDOWS98以上版本的操作系统、Turbo C2.0 软件一套

五、C语言课程参考教材:

1.李瑞 C语言程序基础(第二版)清华大学出版社 2.梁旭 C语言课程设计.电子工业出版社

课程设计(报告)任务书

任务及要求:

1.设计(研究)内容和要求

研究内容:C语言课程设计题目相关内容 任务和要求:

(1).学习C语言基础知识,掌握C语言编程和程序调试的基本技能。(2).对指导教师下达的题目进行系统分析。(3).根据分析结果完成系统设计。

(4).编程:在计算机上实现题目的代码实现。(5).完成对该系统的测试和调试。(6).提交课程设计报告。(7).指标: 要求完成课程设计报告3千字以上(约二、三十页).完成若干综合性程序设计题目,每个综合设计题目的语句行数的和在300行语句以上.2.原始依据

了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。通过用C语言完成的题目,提高用C语言解决实际问题的能力。3.参考文献

[1] 黄明等.C语言程序设计辅导教材.大连理工大学出版社,2006 [2] 马靖善等.C语言程序设计.清华大学出版社,2005 [3] 谭浩强.C语言程序设计(第二版).北京:高等教育出版社,2002

目录

C语言课程设计报告................................................................................错误!未定义书签。

1. 输出杨辉三角.............................................................................................................1 1.1 系统分析..............................................................................................................1 1.2 设计说明..............................................................................................................1 1.3 程序运行截图......................................................................................................2 1.4 源程序代码..........................................................................................................2 2 汉诺塔求解方法.............................................................................................................3 2.1 系统分析..............................................................................................................3 2.2 设计说明..............................................................................................................3 2.3 程序运行截图......................................................................................................4 2.4 源程序代码..........................................................................................................4 3 输出200以内的素数.....................................................................................................5 3.1功能说明...............................................................................................................5 3.2 设计说明..............................................................................................................5 3.3 程序运行截图......................................................................................................5 3.4 源程序代码..........................................................................................................6 4 进制转换计算器.............................................................................................................6 4.1功能说明...............................................................................................................6 4.2 设计说明..............................................................................................................6 4.3程序运行截图.......................................................................................................7 4.4 源程序代码..........................................................................................................7 5 一元稀疏多项式.............................................................................................................8 5.1 功能说明..............................................................................................................8 5.2 设计说明..............................................................................................................8 5.3 程序运行截图....................................................................................................10 5.4 源程序代码........................................................................................................11

1. 输出杨辉三角

1.1 系统分析

以等腰直角三角形输出杨辉三角

1.2 设计说明

1、包含头文件

#include

#include

其中,头文件为使用clrscr()。

2、子函数

函数名:int num(i,j)

函数功能:以递归的方式进行计算,用函数代替二维数组

函数参数:int i;int j;

含义:相当于二维数组的a[i][j] 函数流程

Step1:输出最外行,即三角形两直角边的结果都为 1 ;

Step2:讨论其余情况,相当于数组中的a[i][j] = a[i-1][j-1] + a[i-1][j]。

3、main()函数

1为保证结果完整输出,先进行清屏; ○2输入要打印的行数,由于一行只能显示80个字符,建议不要超过13行; ○3用循环调用函数int num(int i , int j)○

其中循环为三重循环:i 循环控制行打印

j 循环控制列打印

k 循环控制空格打印

每执行一次i 循环输出一个换行符,直角三角形定点放在第36个字符的位置上。

每个数字占6个字符的格。

1.3 程序运行截图

1.4 源程序代码

#include #include

int num(i,j){

int i,j;

if(I == j ||j == 0)return(1);

else return(num(i-1 , j-1)+num(i-1 , j));}

int main(void){

int n,k,i,j;

clrscr();

puts(“input row n:”);

scanf(“%d”,&n);

for(i = 0;i

{

{

for(k = 0;k

putchar(' ');

}

{

for(j = 0;j

printf(“%6d”,num(i , j));

}

puts(“”);

}

getch();

return 0; }汉诺塔求解方法

2.1 系统分析

汉诺塔求解方法

2.2 设计说明

1、包含头文件:

#include #include

其中,#include 为了应用函数toupper2、子函数

函数名:void move(int n , char a , char b)

函数功能:打印移动的主子编号

函数参数:int n , char a , char b;

含义:n为移动的序数,a为源柱号,b目的柱号 函数流程

Step1:输出盘子移动情况;

Step2:打印换行。

函数名:void hanoi(int n,char a,char b,char c)

函数功能:以游戏规则求解移动盘子的方法

函数参数:int n,char a,char b,char c;

含义:n移动的序数,a为源柱号,b为目的柱号,c为中间柱号

函数流程

Step1:递归调用函数 hanoi(n-1,a,c,b);

Step2:调用函数move(n-1,a,b);

Step3:继续递归调用函数hanoi(n-1,c,b,a);

3、主函数main()1为了使程序可以重复运行,定义了变量ch,当ch == N 时,退出游戏; ○2使用while()循环使游戏重复运行; ○3输入盘子的数目以调整游戏的难度; ○3调用函数hanoi()○

2.3 程序运行截图

2.4 源程序代码

#include “stdio.h” #include “ctype.h”

//应用函数toupper void move(int n,char a,char b)

//n为移动的序数,a为源柱号,b目的柱号*/ {

printf(“Disc%d move from %c to %c;”,(n+1),a,b);

printf(“n”);}

void hanoi(int n,char a,char b,char c){

//n移动的序数,a为源柱号,b为目的柱号,c为中间柱号

if(n>0)

{

hanoi(n-1,a,c,b);

//递归调用

move(n-1,a,b);

hanoi(n-1,c,b,a);

} } main(){

int n;

char ch ='Y';

printf(“Now let us play the game of hanoitowern”);

while(ch == 'Y')

//通用性设计

{

printf(“n Input the number of disc[2-15]:”);

scanf(“%d”,&n);getchar();

printf(“n The orders of moving %d discs from A to B are:n”,n);

hanoi(n,'A','B','C');

//调用函数

printf(“n Continue(Y/N):”);

ch=getchar();

getchar();

ch=toupper(ch);}

return 0;} 3 输出200以内的素数

3.1功能说明

输出200以内的素数

3.2 设计说明

1、宏定义

#define M 200

//范围,表示输出200以内的素数 #define N((M+1)/2)

//奇数的个数

处理流程:

Step1:第一步筛选掉所有的偶数,将剩余的奇数存放在a[N]中; Step2:第二部筛选掉多有可以被整除的数 Step3:将得到的素数10个一行打印。

3.3 程序运行截图

3.4 源程序代码

#include “stdio.h” #define M 200

//范围

#define N((M+1)/2)

//奇数的个数 main(){

int i,j,a[N];

a[0]=2;

for(i=1;i

//初始数组实现第一步筛选

a[i]=2*i+1;

for(i=1;i

//第二步筛选

if(a[i]!=0)

for(j=i+1;j

if((a[j]%a[i]==0))

//倍数时置零筛去

a[j]=0;

printf(“n The primer are[2-%d]:n”,M);

for(i=0,j=0;i

//显示得到素数

{

if(a[i]!=0)

{

printf(“%5d”,a[i]);

if((++j)%10==0)

//十个数换行

printf(“n”);

} }

return 0;}进制转换计算器

4.1功能说明

进行进制转换。

4.2 设计说明

1、处理流程:

Step1:输入原始数值xa,原始权a,已经希望转换的进制b;Step2:逐位取值,将原始数值转换成10进制 Step3:逐位取值,将原始数值转换成b 进制

4.3程序运行截图

4.4 源程序代码

void main()#include “stdio.h” main()

{

int a=0,/*原始进制*/ b=8,/*转换进制,默认为八*/

k=1;

/*位权*/

long xa=0,/*原始数值*/

xb=0,/*转换数值*/

x1=0,x2=0;

/*十进制数值*/

printf(“n Input the number and weight a->b:”);

scanf(“%ld%d%d”,&xa,&a,&b);

x1=xa;

while(x1!=0)

/*转换为十进制数*/

{ x2+=(x1%10)*k;

/*逐位取值*/ x1/=10;k*=a;

}

k=1;

x1=x2;

while(x1!=0)

/*转换为b进制数*/

{ xb+=(x1%b)*k;x1/=b;k*=10;

}

printf(“n %ld(%d)=%ld(%d)=%ld(%d)”,xa,a,x2,10,xb,b);

return;}一元稀疏多项式

5.1 功能说明

求一元稀疏多项式的运算:

1、求两多项式加法;

2、求两多项式减法;

3、求两多项式乘法;

4、求两多项式导数;

5、求两多项式在x=m处的值。

5.2 设计说明

1、链表结点的定义:

typedef struct polyn {

float coef;

//多项式系数

int expn;

//多项式指数

struct polyn * prior,* next;} polyn, *linkpolyn;

2、子函数,多项式的基本运算。函数名:linkpolyn CREATEPOLYN()函数功能:创建多项式链表,在输入的时候进行升序排列 返回值:return head,即建立的多项式头结点 参数:linkpolyn head,含义:链表头结点 处理流程:

Step1:输入第一个结点,且第一个结点自然有序;

Step2:循环输入其余结点,当输入0 0是表示输入结束;

Step3:输入过程中进行升幂排序,用二分法,找到新结点插入点;

Step4:插入新结点;继续循环,直到输入0 0,循环结束,链表建立成功。Step5:返回建立链表头结点,函数结束。

函数名:linkpolyn DERIVATIONPOLYN(linkpolyn L)函数功能:多项式求导

返回值:return(head),即求导多项式的链表头结点

参数:linkpolyn L,含义:把建立好的链表A和B传递给L 处理流程:

Step1:分别用指针指向L的头结点和求导多项式的头结点head;

Step2:用循环逐个对L链表中的结点求导,一次存放在求导多项式中的新结点中; Step3:循环中考虑,当L链表中的结点仅存放一个常数,则跳过该结点,继续遍历下一结点;

Step4:当循环结束,即L中的各项以被求导,返回求导多项式头结点head。

函数名:linkpolyn INITPOLYN()函数功能:链表初始化

返回值:return(head),即求导多项式生成的链表头结点 参数:无参数 处理流程:

Step1:生成一个新的空间作为新结点;

Step2:将新节点的coef域赋0,expn域赋-1,以区分其他节点; Step3:将头结点的前去指针和后即指针置空,并返回头结点。

函数名:void PRINTLIST(linkpolyn head)函数功能:以类数学表达式的形式打印 返回值:无返回值

参数:linkpolyn head,含义:处理过的链表头结点 处理流程:

Step1:讨论是否链表为空,若为空,则输出0;

Step2:若链表不为空,则输出第一个值,第一个值不用输出符号; Step3:用循环依次输出其余各项,附加符号输出;

函数名:linkpolyn ADDPOLYN(linkpolyn A , linkpolyn B)函数功能:加法运算

返回值:return ptr,即和多项式的头结点

参数:linkpolyn A , linkpolyn B,含义:创建的链表A和B 处理流程:

Step1:分别以两个指针pa和pb遍历链表A和B;

Step2:当A和B两链表都为遍历完毕时,进行加法运算,分配新的空间存放和多项式,并用二分法进行升幂排序; Step3:当A遍历完毕而B未遍历完毕,将B其余各项拷贝到

和多项式链表中;

Step4:当B遍历完毕而A未遍历完毕,将A其余各项拷贝到

和多项式链表中;

函数名:linkpolyn SUBTRACTPOLYN(linkpolyn A , linkpolyn B)函数功能:计算A-B的值

返回值:return ptr,即差多项式的头结点

参数:linkpolyn A , linkpolyn B,含义:创建的链表A和B 处理流程:

Step1:分别以两个指针pa和pb遍历链表A和B;

Step2:当A和B两链表都为遍历完毕时,进行减法运算,分配新的空间存放和多项式,并用二分法进行升幂排序;

Step3:当A遍历完毕而B未遍历完毕,将B其余各项拷贝到

和多项式链表中;

Step4:当B遍历完毕而A未遍历完毕,将A其余各项拷贝到

差多项式链表中; Step5:返回多项式头结点

函数名:float WORK(float x,int e)函数功能:求x的幂

返回值:return t,即计算幂结果

参数:float x,int e,含义:x为输入的x的值,e为x的指数 处理流程:

Step1:分别讨论正指数与负指数的的情况; Step2:若e>0,则累乘e次x; Step3:若e

3、主函数main()Step1:依次调用函数进行运算操作; Step2:调用函数创建链表; Step3:调用函数进行运算;

5.3 程序运行截图

5.4 源程序代码

#include “stdio.h” #include #include “math.h” #define FZ 1e-6

typedef struct polyn { float coef;//多项式系数 int expn;//多项式指数 struct polyn * prior,* next;} polyn, *linkpolyn;

void DESTROYPOLYN(linkpolyn head){ //销毁链表 linkpolyn s,p;p=head;

while(p->next!= NULL){ s = p;

p = p->next;

free(s);} } //DESTROYPOLYN

linkpolyn INITPOLYN(){ //链表初始化

struct polyn * head;head=(linkpolyn)malloc(sizeof(polyn));head->coef=0.0;//假设头结点系数为0 head->expn=-1;//假设头结点指数为-1 head->next=NULL;head->prior=NULL;return head;} //INITPOLYN

void INSERTPOLYN(linkpolyn p,linkpolyn s){ //将结点s插入到p之后

if(NULL!= p->next){

s->next = p->next;

s->next->prior = s;} s->prior = p;p->next = s;

} //INSERPOLYN

linkpolyn CREATEPOLYN(){ //创建多项式链表,在输入的时候进行升序排列 linkpolyn head,s,p,m,r;

int num = 1;//计数器

head = INITPOLYN();//初始化链表 head r = head;//设置为指针

s=(linkpolyn)malloc(sizeof(polyn));

/******************************************/ printf(“请输入第%d项系数和指数:”,num);/**输入第一个结点,并且第一个结点自然有序**/ scanf(“%f%d”,&s->coef,&s->expn);/******************************************/ r->next = s;s->prior = r;r = r->next;//r指向尾结点

r->next = NULL;p = r;//p为s的插入点前一个结点

m = r;//m为拍完结点中间的节点,二分法排序

while(++num)//while # 当将 s->coef 与 s->expn 都赋值为0的时候,认为输入结束

{ s =(linkpolyn)malloc(sizeof(polyn));printf(“请输入第%d项系数和指数:”,num);scanf(“%f%d”,&s->coef,&s->expn);

if((fabs(s->coef)expn == 0))//if @

{ free(s);

break;

} //else @ else //else @

{ if(s->expn expn)//if #

{ while(p->prior!= NULL && p->expn > s->expn)

p = p->prior;//p向前遍历链表,找到插入点

if(s->expn == p->expn)

{

p->coef += s->coef;

free(s);

r=r;

}

else

{

INSERTPOLYN(p,s);//在p后面插入结点s

m = m->prior;

p = m;

}

} // if #

else //else #

{

while(p->next!= NULL && p->next->expn expn)

p = p->next;//p向后遍历链表,找到插入点

if(s->expn == p->expn)

{

p->coef += s->coef;

free(s);

}

else

{

INSERTPOLYN(p,s);

if(s->expn > r->expn)

{ r = r->next;

r->next = NULL;

}

}

} //else #

} //else @ } //while # return head;} //CREATEPOLYN

void PRINTPOLYN(linkpolyn head){ //以类数学表达式的形式打印 linkpolyn p;

p = head->next;if(p == NULL)//链表为空

puts(“0”);else //else @ { //链表不为空,输出第一个结点的值

if(p->expn == 0)printf(“%f”,p->coef);//指数为0时不输出x else

{ if(p->coef==1)printf(“x^%d”,p->expn);/**************************/ else if(p->coef ==-1)printf(“-x^%d”,p->expn);/**第一项前不需要输出符号**/ else printf(“%gx^%d”,p->coef,p->expn);/**************************/

} p = p->next;while(p!= NULL)

{ //依次输出以后各节点 if(p->coef>0)

{ //当系数为正时,讨论输出符号问题

if(p->expn == 0)printf(“+%g”,p->coef);else if(p->coef == 1)printf(“+x^%d”,p->expn);else printf(“+%gx^%d”,p->coef,p->expn);

} else

{ //当系数为负时,讨论输出符号问题

if(p->expn == 0)printf(“%g”,p->coef);else if(p->coef ==-1)printf(“-x^%d”,p->expn);else printf(“%gx^%d”,p->coef,p->expn);

} p = p->next;

} } //else @ } //PRINTPOLYN

linkpolyn ADDPOLYN(linkpolyn A , linkpolyn B){ //加法

linkpolyn qa,qb,q,ptr;float x;qa = A->next;qb = B->next;q = INITPOLYN();//和多项式头结点初始化

ptr = q;//ptr指向和多项式头结点

while((qa!= NULL)&&(qb!= NULL)){ //升幂求和

if(qa->expn == qb->expn)//指数相同的项

{ x = qa->coef + qb->coef;//系数相加

if(x!= 0)//求得系数非0

{ q->next =(linkpolyn)malloc(sizeof(polyn));//

q = q->next;

q->coef = x;

q->expn = qa->expn;

}

生成和多项式的节结点

qa = qa->next;

qb = qb->next;

}

else //指数不同

{

q->next =(linkpolyn)malloc(sizeof(polyn));

q = q->next;

if(qa->expn > qb->expn)//A多项式当前指数大于B

{ q->coef = qb->coef;//B多项式当前的值复制到和多项式中

q->expn = qb->expn;

qb = qb->next;

}

else //B多项式当前指数大于A

{ q->coef = qa->coef;//A多项式当前的值复制到和多项式中

q->expn = qa->expn;

qa = qa->next;

}

} } //A或B中有一个多项式已经处理完毕

while(qa!= NULL)//A未处理完毕,将其余各项复制到和多项式中

{ q->next =(linkpolyn)malloc(sizeof(polyn));q = q->next;

q->coef = qa->coef;

q->expn = qa->expn;

qa = qa->next;} while(qb!= NULL)//B未处理完毕,将其余各项复制到和多项式中

{ q->next =(linkpolyn)malloc(sizeof(polyn));q = q->next;

q->coef = qb->coef;

q->expn = qb->expn;

qb = qb->next;} q->next = NULL;//令和多项式最末的节点指向头结点

return ptr;//返回多项式头指针 } //LINKPOLYN

linkpolyn SUBTRACTPOLYN(linkpolyn A , linkpolyn B){ //减法

linkpolyn qa,qb,q,ptr;float x;qa = A->next;qb = B->next;q = INITPOLYN();//和多项式头结点初始化

ptr = q;//ptr指向和多项式头结点

while((qa!= NULL)&&(qb!= NULL)){ //升幂求差

if(qa->expn == qb->expn)//指数相同的项

{ x = qa->coef-qb->coef;//多项式A的系数减去B的系数

if(x!= 0)//求得系数非0

{ q->next =(linkpolyn)malloc(sizeof(polyn));//生成和多项式的节结点

q = q->next;

q->coef = x;

q->expn = qa->expn;

}

qa = qa->next;

qb = qb->next;

}

else //指数不同

{

q->next =(linkpolyn)malloc(sizeof(polyn));

q=q->next;

if(qa->expn > qb->expn)//A多项式当前指数大于B

{ q->coef =-(qb->coef);//B多项式当前的值复制到和多项式中

q->expn = qb->expn;

qb = qb->next;

}

else //B多项式当前指数大于A

{ q->coef = qa->coef;//A多项式当前的值复制到和多项式中

q->expn = qa->expn;

qa = qa->next;

}

} } //A或B中有一个多项式已经处理完毕

while(qa!= NULL)//A未处理完毕,将其余各项复制到和多项式中

{ q->next =(linkpolyn)malloc(sizeof(polyn));q = q->next;

q->coef = qa->coef;

q->expn = qa->expn;

qa = qa->next;} while(qb!= NULL)//B未处理完毕,将其余各项复制到和多项式中

{ q->next =(linkpolyn)malloc(sizeof(polyn));q = q->next;

q->coef =-(qb->coef);

q->expn = qb->expn;

qb = qb->next;} q->next = NULL;//令和多项式最末的节点指向头结点

return ptr;//返回多项式头指针 } //SUBTRACTPOLYN

linkpolyn MULTIPLYPOLYN(linkpolyn A,linkpolyn B){ //乘法

linkpolyn pa,pb,s,head,m,r,p;pa = A->next;pb = B->next;head = INITPOLYN();r = head;

s=(linkpolyn)malloc(sizeof(polyn));s->coef = pa->coef * pb->coef;//计算第一个结点,并且第一个结点自然有序

s->expn = pa->expn + pb->expn;r->next = s;s->prior = r;r =r->next;r->next = NULL;p=r;//p为插入点前一结点

m=r;//m指向排完结点中间节点

pb=pb->next;// 第一个乘积处理完毕

for(pa= A->next;pa!= NULL;pa=pa->next)//for pa 处理其余乘积

{ //用A的第一个结点分别与B的其余结点相乘

if(pa == A->next)

pb = B->next->next;

else

pb = B->next;

for(;pb!= NULL;pb = pb->next)//for pb

{

s =(linkpolyn)malloc(sizeof(polyn));s->coef = pa->coef * pb->coef;

s->expn = pa->expn + pb->expn;if(s->expn expn)//if #

{ while(p->prior!=NULL && p->expn > s->expn)p=p->prior;//p向前遍历链表,找到插入点

if(s->expn==p->expn)

{

p->coef+=s->coef;

free(s);

}

else

{

INSERTPOLYN(p,s);//在p后面插入结点s

m=m->prior;

p=m;

}

} // if #

else //else #

{ while(p->next!=NULL && p->next->expn expn)

p=p->next;//p向前遍历链表,找到插入点

if(s->expn==p->expn)

{

p->coef+=s->coef;

free(s);

}

else

{

INSERTPOLYN(p,s);

if(s->expn > r->expn)

{ r=r->next;

r->next=NULL;

}

}

} //else #

} //for pb } //for pa return head;} //MULTIPLYPOLYN

linkpolyn DERIVATIONPOLYN(linkpolyn L){ //多项式求导

linkpolyn head,p,s,r;head = INITPOLYN();//head为求导多项式头结点 r = head;p = L->next;while(p!= NULL){ if(p->expn == 0)

{ p = p->next;continue;} s =(linkpolyn)malloc(sizeof(polyn));s->coef = p->coef * p->expn;s->expn = p->expn-1;s->prior = r;

r->next = s;

r = r->next;

r->next = NULL;

p = p->next;} return(head);} //DERIVATIONPOLYN

float WORK(float x,int e){ //求x的幂 float t = 1;if(e>0){ while(e)

{ t *= x;e--;} } if(e

{ t *= 1/x;e++;} }

return(t);} //WORK

float CALCULATEPOLYN(linkpolyn head,float x){ //计算多项式在x处的值 float t = 0;linkpolyn p;p = head->next;while(p){ t = t +((p->coef)*(WORK(x,p->expn)));p = p->next;} return(t);} //CALCULATEPOLYN

int main(void){ linkpolyn A, B,addp,decp,mulp,derp1,derp2;int i;float x;start: system(“cls”);printf(“一元稀疏多项式计算nn”);printf(“1.建立多项式n”);printf(“2.多项式加法n”);printf(“3.多项式减法n”);printf(“4.多项式乘法n”);printf(“5.计算多项式在x处的值n”);printf(“6.对多项式求导n”);printf(“7.清空数据n”);printf(“8.关闭计算器n”);printf(“请输入选项(1~7):”);scanf(“%d”,&i);switch(i){ case(1): system(“cls”);printf(“建立多项式nn”);printf(“建立多项式A,当输入0 0 时表示出入完毕n”);A = CREATEPOLYN();printf(“建立多项式成功n”);printf(“建立多项式B,当输入0 0 时表示出入完毕n”);B = CREATEPOLYN();printf(“建立多项式成功n”);printf(“多项式A:”);PRINTPOLYN(A);printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);

printf(“nn输入回车返回上一级”);getchar();getchar();goto start;case(2): system(“cls”);printf(“多项式加法nn”);printf(“多项式A:”);PRINTPOLYN(A);printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);printf(“n”);addp = ADDPOLYN(A,B);printf(“多项式A+B:”);PRINTPOLYN(addp);printf(“n”);printf(“nn输入回车返回上一级”);getchar();getchar();goto start;case(3): system(“cls”);printf(“多项式减法nn”);printf(“多项式B:”);PRINTPOLYN(A);printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);printf(“n”);decp = SUBTRACTPOLYN(A,B);printf(“多项式A-B:”);PRINTPOLYN(decp);printf(“n”);printf(“nn输入回车返回上一级”);getchar();getchar();goto start;case(4): system(“cls”);printf(“多项式乘法nn”);printf(“多项式A:”);PRINTPOLYN(A);printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);printf(“n”);mulp = MULTIPLYPOLYN(A,B);printf(“多项式AB:”);PRINTPOLYN(mulp);printf(“n”);printf(“nn输入回车返回上一级”);

getchar();getchar();goto start;case(5): system(“cls”);printf(“计算多项式在x处的值n”);printf(“请输入x的值:”);scanf(“%f”,&x);printf(“n多项式A:”);PRINTPOLYN(A);printf(“n值为:%f”,CALCULATEPOLYN(A,x));printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);printf(“n值为:%f”,CALCULATEPOLYN(B,x));printf(“nn输入回车返回上一级”);getchar();getchar();goto start;case(6): system(“cls”);printf(“多项式求导n”);printf(“多项式A:”);PRINTPOLYN(A);printf(“n”);printf(“多项式B:”);PRINTPOLYN(B);printf(“n”);derp1 = DERIVATIONPOLYN(A);printf(“求导后A':”);PRINTPOLYN(derp1);printf(“n”);derp2 = DERIVATIONPOLYN(B);puts(“求导后B':”);PRINTPOLYN(derp2);printf(“nn输入回车返回上一级”);getchar();getchar();goto start;case(7): system(“cls”);DESTROYPOLYN(A);DESTROYPOLYN(B);DESTROYPOLYN(addp);DESTROYPOLYN(decp);DESTROYPOLYN(mulp);DESTROYPOLYN(derp1);DESTROYPOLYN(derp2);printf(“已清空所有数据n”);printf(“nn输入回车返回上一级”);getchar();getchar();

goto start;case(8): printf(“退出”);} return(0);}

C语言课程设计报告

C语言课程设计报告班级:10电子本1学号:10303033122姓名:指导老师:方文森完成日期:温州大学城市学院课程设计目 录1、课程设计目的和要求 .......................................

C语言课程设计报告

目录 1前言 ..............................................................1 2正文 ..............................................................1 2.1设计目的 .........

C语言课程设计报告

C语言课程设计报告--学生成绩管理系 C语言课程设计报告: 学生成绩管理系统 系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计......

C语言课程设计报告

C语言课程设计报告1.实验题目:职员信息管理系统2.数据结构:整型int,字符型char,长整型long,结构体及结构体数组 3.源代码 :#include"stdio.h" #include"string.h" #define......

课程设计报告 C语言

课 程 报 告 课 程 名 称: 专 业 班 级 : 学 生 姓 名 : 学 号 : 程序设计实践 ****** 20104683**** 任 课 教 师 : 学 2010期 :2010-2011 学年第二学期 课程报告任务书 课程报告......

《C语言课程设计报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言课程设计报告
点击下载文档
相关专题 c语言课程设计报告 报告 课程设计 语言 c语言课程设计报告 报告 课程设计 语言
[其他范文]相关推荐
[其他范文]热门文章
下载全文