C程序设计实训报告.docx
- 文档编号:3940672
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:16
- 大小:69.66KB
C程序设计实训报告.docx
《C程序设计实训报告.docx》由会员分享,可在线阅读,更多相关《C程序设计实训报告.docx(16页珍藏版)》请在冰点文库上搜索。
C程序设计实训报告
C程序设计实训报告
系部信息工程系
班级电子121
学号6101121128
学生姓名杨莹
指导教师
完成日期2013年12月23日至27日
1系统功能需求分析
1.1系统的基本要求
1.算术运算功能。
能够实现+、-、*、/、mod、int运算。
2.函数运算功能。
能够实现exp、ln、sin、x^y、log、cos、x^3、n!
、tan、x^2、1/x等运算。
3.进制之间的转换功能。
能够实现十六、十、二、八进制数据之间的转换。
4.通过键盘控制字符和数字的输入。
1.2数据结构设计及用法说明
此程序调用的函数主要有:
基本使用方法:
1:
先输入需要计算法则对应的代码。
2:
按照要求输入需要计算的数据(X代表只需一个数据,XY代表需要两个数据)。
3:
求几个数的和sum时需要先输入数据的个数,然后依次输入需要求和的数据,系统同时给出平均值、方差以及标准差。
4:
求进制转换时,先输入需要转换的数据,然后输入这个数的进制为多少,最后输入需要转换为多少进制。
2系统设计
显示结果
输入第二个数y
+、-、*、/、x^y、log、等
输入计算代码i
输入第一个数x
开始
3系统实现
本系统采用C语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。
并且使用MicrosoftVisualC++6.0生成的程序可移植性强、兼容性好
代码:
#include
#include
#include
voiddtox(doublenum,intjz)/*将输入的数转化为所需进制*/
{
charxnum[100];
intdnum=(int)num;
inti=0,j=0,f;
while(dnum>=jz)
{
f=dnum%jz;
if(f==10)xnum[j++]='A';
elseif(f==11)xnum[j++]='B';
elseif(f==12)xnum[j++]='C';
elseif(f==13)xnum[j++]='D';
elseif(f==14)xnum[j++]='E';
elseif(f==15)xnum[j++]='F';
elsexnum[j++]=f+48;
dnum=dnum/jz;
}
xnum[j]=dnum+48;
printf("转换后为:
");
for(i=j;i>=0;i--)
{
printf("%c",xnum[i]);
}
printf("\n");
}
doublextod(charnum[],intjz)/*将输入的字符串转化为数字*/
{
doublednum=0;
inti,j,b;
for(i=0;;i++)
{
if(num[i]=='\0'||num[i]=='.')break;
}
j=i;
for(i=j-1;i>=0;i--)
{
if(num[j-i-1]=='A')b=10;
elseif(num[j-i-1]=='B')b=11;
elseif(num[j-i-1]=='C')b=12;
elseif(num[j-i-1]=='D')b=13;
elseif(num[j-i-1]=='E')b=14;
elseif(num[j-i-1]=='F')b=15;
elseb=num[j-i-1]-'0';
dnum=dnum+b*pow(jz,i);
}
returndnum;
}
voidmain()
{
inti=1,flag;
printf("*****欢迎使用简单计算器*******\n");
printf("1.+12.ln\n");
printf("2.-13.sin\n");
printf("3.*14.cos\n");
printf("4./15.tan\n");
printf("5.mod16.x^2\n");
printf("6.and17.x^3\n");
printf("7.or18.x^y\n");
printf("8.xor19.n!
\n");
printf("9.not20.√\n");
printf("10.int21.sum,avg\n");
printf("11.exp22.进制转换\n");
while(i!
=0)
{
printf("请输入计算代码i的值:
\n");
scanf("%d",&i);
switch(i)
{
case1:
flag=1;break;
case2:
flag=2;break;
case3:
flag=3;break;
case4:
flag=4;break;
case5:
flag=5;break;
case6:
flag=6;break;
case7:
flag=7;break;
case8:
flag=8;break;
case9:
flag=9;break;
case10:
flag=10;break;
case11:
flag=11;break;
case12:
flag=12;break;
case13:
flag=13;break;
case14:
flag=14;break;
case15:
flag=15;break;
case16:
flag=16;break;
case17:
flag=17;break;
case18:
flag=18;break;
case19:
flag=19;break;
case20:
flag=20;break;
case21:
flag=21;break;
case22:
flag=22;break;
case23:
flag=23;break;
case24:
flag=24;break;
case25:
flag=25;break;
default:
printf("请输入有错误!
\n");break;
}
if(flag==1)
{
doublex,y,d;
printf("请输入x,y的值:
\n");
scanf("%lf%lf",&x,&y);
d=x+y;
printf("%lf\n",d);
}
elseif(flag==2)
{
doublex,y,d;
printf("请输入x,y的值:
\n");
scanf("%lf%lf",&x,&y);
d=x-y;
printf("%lf\n",d);
}
elseif(flag==3)
{
doublex,y,d;
printf("请输入x,y的值:
\n");
scanf("%lf%lf",&x,&y);
d=x*y;
printf("%lf\n",d);
}
elseif(flag==4)
{
doublex,y,d;
printf("请输入x,y的值:
\n");
scanf("%lf%lf",&x,&y);
d=x/y;
printf("%lf\n",d);
}
elseif(flag==5)
{
intx,y,d;
printf("请输入x,y的值:
\n");
scanf("%d%d",&x,&y);
d=x%y;
printf("%d\n",d);
}
elseif(flag==6)
{
longx,y,d;
printf("请输入x,y的值:
\n");
scanf("%ld%ld",&x,&y);
d=x&y;
printf("%ld\n",d);
}
elseif(flag==7)
{
longx,y,d;
printf("请输入x,y的值:
\n");
scanf("%ld%ld",&x,&y);
d=x|y;
printf("%ld\n",d);
}
elseif(flag==8)
{
longx,y,d;
printf("请输入x,y的值:
\n");
scanf("%ld%ld",&x,&y);
d=x^y;
printf("%ld\n",d);
}
elseif(flag==9)
{
longx,d;
printf("请输入x,y的值:
\n");
scanf("%ld%ld",&x);
d=~x;
printf("%ld\n",d);
}
elseif(flag==10)
{
doublex;
intd;
printf("请输入x的值:
\n");
scanf("%lf",&x);
d=(int)x;
printf("%d\n",d);
}
elseif(flag==11)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
d=exp(x);
printf("%lf\n",d);
}
elseif(flag==12)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
d=log(x);
printf("%lf\n",d);
}
elseif(flag==13)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
x=x*3.14/180;
d=sin(x);
printf("%lf\n",d);
}
elseif(flag==14)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
x=x*3.14/180;
d=cos(x);
printf("%lf\n",d);
}
elseif(flag==15)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
x=x*3.14/180;
d=tan(x);
printf("%lf\n",d);
}
elseif(flag==16)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
d=x*x;
printf("%lf\n",d);
}
elseif(flag==17)
{
doublex,d;
printf("请输入x的值:
\n");
scanf("%lf",&x);
d=x*x*x;
printf("%lf\n",d);
}
elseif(flag==18)
{
doublex,y,d;
printf("请输入x,y的值:
\n");
scanf("%lf%lf",&x,&y);
d=pow(x,y);
printf("%lf\n",d);
}
elseif(flag==19)
{
intn,d=1,i;
printf("请输入n的值:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
d=d*i;
}
printf("%d\n",d);
}
elseif(flag==20)
{
doublex,e;
printf("请输入x的值:
\n");
scanf("%lf",&x);
e=sqrt(x);
printf("%lf\n",e);
}
elseif(flag==21)
{
intj=0,i=0,n;
doublesum=0.0,ave,w=0.0,m;
doublea[1000];
printf("请问要输入多少个数\n");
scanf("%d",&n);
for(j=0;j { printf("请输入第%d个数据\n",j+1); scanf("%lf",&a[j]); } for(i=0;i { sum=sum+a[i]; } ave=(double)sum/n; printf("输出和! \n: "); printf("%lf\n",sum); printf("输出平均值! \n"); printf("%lf\n",ave); for(j=0;j { w=pow(a[j]-ave,2)+w; } printf("请输出方差! \n"); printf("%lf\n",w); m=sqrt(w); printf("请输出标准差! \n"); printf("%l\n",m); } elseif(flag==22) { charnum[100]; intjz1,jz2; printf("请输入需要转换的数: "); scanf("%s",num); printf("输入数据为几进制: "); scanf("%d",&jz1); printf("转化为几进制: "); scanf("%d",&jz2); dtox(xtod(num,jz1),jz2); } } } 程序运行结果如图所示 4实训总结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 报告