1、C程序设计实训报告C程序设计实训报告系 部 信息工程系 班 级 电子121 学 号 6101121128 学生姓名 杨莹 指导教师 完成日期 2013 年 12 月 23日 至 27 日1系统功能需求分析1.1系统的基本要求1. 算术运算功能。能够实现+、-、*、/、mod、int运算。2. 函数运算功能。能够实现exp、ln、sin、xy、log、cos、x3、n!、tan、x2、1/x等运算。3. 进制之间的转换功能。能够实现十六、十、二、八进制数据之间的转换。4.通过键盘控制字符和数字的输入。1.2数据结构设计及用法说明此程序调用的函数主要有: /*数学函数的定义*/ /*字符串函数*/
2、 /*库函数*/。基本使用方法:1:先输入需要计算法则对应的代码。2:按照要求输入需要计算的数据(X代表只需一个数据,XY代表需要两个数据)。3:求几个数的和sum时需要先输入数据的个数,然后依次输入需要求和的数据,系统同时给出平均值、方差以及标准差。4:求进制转换时,先输入需要转换的数据,然后输入这个数的进制为多少,最后输入需要转换为多少进制。2 系统设计显示结果输入第二个数y+、-、*、/、xy、log、等输入计算代码i输入第一个数x开始3 系统实现本系统采用 C语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。并且使用Microsoft Visual C+
3、6.0生成的程序可移植性强、兼容性好代码:#include #include #includevoid dtox(double num,int jz) /*将输入的数转化为所需进制 */ char xnum100; int dnum=(int) num; int i=0,j=0,f; while(dnum=jz) f=dnum%jz; if(f=10) xnumj+=A; else if(f=11) xnumj+=B; else if(f=12) xnumj+=C; else if(f=13) xnumj+=D; else if(f=14) xnumj+=E; else if(f=15) xn
4、umj+=F; else xnumj+=f+48; dnum=dnum/jz; xnumj=dnum+48; printf(转换后为:); for(i=j;i=0;i-) printf(%c,xnumi); printf(n);double xtod(char num,int jz) /*将输入的字符串转化为数字 */ double dnum = 0; int i,j,b; for(i=0;i+) if(numi=0|numi=.)break; j=i; for(i=j-1;i=0;i-) if(numj-i-1=A) b=10; else if(numj-i-1=B) b=11; else
5、if(numj-i-1=C) b=12; else if(numj-i-1=D) b=13; else if(numj-i-1=E) b=14; else if(numj-i-1=F) b=15; else b=numj-i-1-0; dnum=dnum+b*pow(jz,i); return dnum;void main () int i=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.mo
6、d 16.x2 n); printf(6.and 17.x3 n); printf(7.or 18.xy n); printf(8.xor 19.n! n); printf(9.not 20. n); printf(10.int 21.sum,avg n); printf(11.exp 22.进制转换n);while(i!=0) printf(请输入计算代码i的值:n); scanf(%d,&i); switch(i) case 1:flag=1;break; case 2:flag=2;break; case 3:flag=3;break; case 4:flag=4;break; case
7、 5:flag=5;break; case 6:flag=6;break; case 7:flag=7;break; case 8:flag=8;break; case 9:flag=9;break; case 10:flag=10;break; case 11:flag=11;break; case 12:flag=12;break; case 13:flag=13;break; case 14:flag=14;break; case 15:flag=15;break; case 16:flag=16;break; case 17:flag=17;break; case 18:flag=18
8、;break; case 19:flag=19;break; case 20:flag=20;break; case 21:flag=21;break; case 22:flag=22;break; case 23:flag=23;break; case 24:flag=24;break; case 25:flag=25;break; default:printf(请输入有错误!n);break; if(flag=1) double x,y,d; printf(请输入x,y的值:n); scanf(%lf%lf,&x,&y); d=x+y; printf(%lfn,d); else if(fl
9、ag=2) double x,y,d; printf(请输入x,y的值:n); scanf(%lf%lf,&x,&y); d=x-y; printf(%lfn,d); else if(flag=3) double x,y,d; printf(请输入x,y的值:n); scanf(%lf%lf,&x,&y); d=x*y; printf(%lfn,d); else if(flag=4) double x,y,d; printf(请输入x,y的值:n); scanf(%lf%lf,&x,&y); d=x/y; printf(%lfn,d); else if(flag=5) int x,y,d; p
10、rintf(请输入x,y的值:n); scanf(%d%d,&x,&y); d=x%y; printf(%dn,d); else if(flag=6) long x,y,d; printf(请输入x,y的值:n); scanf(%ld%ld,&x,&y); d=x&y; printf(%ldn,d); else if(flag=7) long x,y,d; printf(请输入x,y的值:n); scanf(%ld%ld,&x,&y); d=x|y; printf(%ldn,d); else if(flag=8) long x,y,d; printf(请输入x,y的值:n); scanf(%l
11、d%ld,&x,&y); d=xy; printf(%ldn,d); else if(flag=9) long x,d; printf(请输入x,y的值:n); scanf(%ld%ld,&x); d=x; printf(%ldn,d); else if(flag=10) double x; int d; printf(请输入x的值:n); scanf(%lf,&x); d=(int)x; printf(%dn,d); else if(flag=11) double x,d; printf(请输入x的值:n); scanf(%lf,&x); d=exp(x); printf(%lfn,d);
12、else if(flag=12) double x,d; printf(请输入x的值:n); scanf(%lf,&x); d=log(x); printf(%lfn,d); else if(flag=13) double x,d; printf(请输入x的值:n); scanf(%lf,&x); x=x*3.14/180; d=sin(x); printf(%lfn,d); else if(flag=14) double x,d; printf(请输入x的值:n); scanf(%lf,&x); x=x*3.14/180; d=cos(x); printf(%lfn,d); else if(
13、flag=15) double x,d; printf(请输入x的值:n); scanf(%lf,&x); x=x*3.14/180; d=tan(x); printf(%lfn,d); else if(flag=16) double x,d; printf(请输入x的值:n); scanf(%lf,&x); d=x*x; printf(%lfn,d); else if(flag=17) double x,d; printf(请输入x的值:n); scanf(%lf,&x); d=x*x*x; printf(%lfn,d); else if(flag=18) double x,y,d; pri
14、ntf(请输入x,y的值:n); scanf(%lf%lf,&x,&y); d=pow(x,y); printf(%lfn,d); else if(flag=19) int n,d=1,i; printf(请输入n的值:n); scanf(%d,&n); for(i=1;i=n;i+) d=d*i; printf(%dn,d); else if(flag=20) double x,e; printf(请输入x的值:n); scanf(%lf,&x); e=sqrt(x); printf(%lfn,e); else if(flag=21) int j=0,i=0,n; double sum=0.
15、0,ave,w=0.0,m; double a1000; printf(请问要输入多少个数n); scanf(%d,&n); for(j=0;jn;j+) printf(请输入第%d个数据n,j+1); scanf(%lf,&aj); for(i=0;in;i+) sum=sum+ai; ave=(double)sum/n; printf(输出和!n:); printf(%lfn,sum); printf(输出平均值!n); printf(%lfn,ave); for(j=0;jn;j+) w=pow(aj-ave,2)+w; printf(请输出方差!n); printf(%lfn,w); m=sqrt(w); printf(请输出标准差!n); printf(%ln,m); else if(flag=22) char num100; int jz1,jz2; printf(请输入需要转换的数:); scanf(%s,num); printf(输入数据为几进制:); scanf(%d,&jz1); printf(转化为几进制:); scanf(%d,&jz2); dtox(xtod(num,jz1),jz2);程序运行结果如图所示4实训总结
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2