C语言课程设计报告_c语言课程设计报告
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语言课程设计报告班级:10电子本1学号:10303033122姓名:指导老师:方文森完成日期:温州大学城市学院课程设计目 录1、课程设计目的和要求 .......................................
目录 1前言 ..............................................................1 2正文 ..............................................................1 2.1设计目的 .........
C语言课程设计报告--学生成绩管理系 C语言课程设计报告: 学生成绩管理系统 系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计......
C语言课程设计报告1.实验题目:职员信息管理系统2.数据结构:整型int,字符型char,长整型long,结构体及结构体数组 3.源代码 :#include"stdio.h" #include"string.h" #define......
课 程 报 告 课 程 名 称: 专 业 班 级 : 学 生 姓 名 : 学 号 : 程序设计实践 ****** 20104683**** 任 课 教 师 : 学 2010期 :2010-2011 学年第二学期 课程报告任务书 课程报告......
