小学数学四则运算C++程序开发

合集下载

C语言课程设计小学生四则运算

C语言课程设计小学生四则运算

#include"stdio.h"#include"stdlib.h"void main(){int a,b,c,d,e,f,g,t;printf("****************************欢迎使用!************************\n");printf("\n");printf("1.加法运算\n");printf("2.减法运算\n");printf("3.乘法运算\n");printf("4.除法运算\n");printf("*****************************请选择运算类型:");scanf("%d",&a);while(a<1||a>4){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==1){printf("5,一位数加一位数\n");printf("6,一位数加两位数\n");printf("7,两位数加两位数\n");printf("*********************************请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){loop:b=rand()%10;c=rand()%10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loop;if(f==1)printf("欢迎再次使用!");}if(a==6){loo: b=rand()%10;c=rand()%100;if (c<10) c=c+10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loo;if(f==1)printf("欢迎再次使用!");}if(a==7){loog:b=rand()%100;c=rand()%100;if(c<10) c=c+10;if(b<10) b=b+10;d=b+c;printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d+%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto loog;if(f==1)printf("欢迎再次使用!");}}if(a==2){printf("5,一位数减一位数\n");printf("6,两位数减一位数\n");printf("7,两位数减两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){car: b=rand()%10;c=rand()%10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto car;if(f==1)printf("欢迎再次使用!");}if(a==6){truck:b=rand()%100;if(b<10) b=b+10;c=rand()%10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto truck;if(f==1)printf("欢迎再次使用!");}if(a==7){boat:b=rand()%100;if(b<10) b=b+10;c=rand()%100;if(c<10) c=c+10;d=b-c;printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d-%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto boat;if(f==1)printf("欢迎再次使用!");}}if(a==3){printf("5,一位数乘一位数\n");printf("6,一位数乘两位数\n");printf("7,两位数乘两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){life:b=rand()%10;c=rand()%10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto life;if(f==1)printf("欢迎再次使用!");}if(a==6){shame:b=rand()%100;if(b<10) b=b+10;c=rand()%10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto shame;if(f==1)printf("欢迎再次使用!");}if(a==7){yeah:b=rand()%100;c=rand()%100;if(b<10) b=b+10;if(c<10) c=c+10;d=b*c;printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d*%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto yeah;if(f==1)printf("欢迎再次使用!");}}if(a==4){printf("5,一位数除一位数\n");printf("6,两位数除一位数\n");printf("7,两位数除两位数\n");printf("请输入题型:");scanf("%d",&a);while(a<5||a>7){printf("输入错误,请重新输入");scanf("%d",&a);}if(a==5){hit: b=rand()%10;c=rand()%10;{if (b>c){g=b%c;if (g!=0){b=b-g;d=b/c;printf("%d/%d=?\n",b,c);}else d=b/c;printf("%d/%d=?\n",b,c);}if (c>b){g=c%b;if (g!=0){c=c-g;t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}elset=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}printf("请输入答案:");scanf("%d",&e);}while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto hit;if(f==1)printf("欢迎再次使用!");}if(a==6){haha:b=rand()%100;c=rand()%10;if(b<10)b=b+10;g=b%c;if (g!=0)b=b-g;d=b/c;printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto haha;if(f==1)printf("欢迎再次使用!");}if(a==7){over:b=rand()%100;c=rand()%100;if(b<10) b=b+10;if(c<10) c=c+10;if (b>c){g=b%c;if (g!=0){b=b-g;d=b/c;printf("%d/%d=?\n",b,c);}else{d=b/c;printf("%d/%d=?\n",b,c);}}if (c>b){g=c%b;if (g!=0){c=c-g;t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}else{t=c;c=b;b=t;d=b/c;printf("%d/%d=?\n",b,c);}}scanf("%d",&e);while(e!=d){printf("回答错误,请重做");printf("%d/%d=?\n",b,c);printf("请输入答案:");scanf("%d",&e);}printf("回答正确!是否做下一题?\n");printf("输入0表示是,输入1表示否\n");scanf("%d",&f);if(f==0)goto over;if(f==1)printf("欢迎再次使用!");}}}。

C语言-四则运算

C语言-四则运算

四则运算姓名:学号:班级:1.功能结构图2.程序功能进行整数的加减乘除和求模运算。

程序采用随机产生1~100的两个数进行运算每种运算有10个题目用户输入对应的答案程序提示答案的对错最后统计正确率。

每次给出两次答题机会。

3.程序流程图4.函数列表及功能5.源程序代码#include<stdio.h>#include<stdlib.h>#include<time.h>#define N 10int f(int a,int b){ //自定义函数int result;result=a+b;return result;}int f1(int a,int b){int result;result=a-b;return result;}int f2(int a,int b){int result;result=a*b;return result;}int f3(int a,int b){int result;result=a*b/b;return result;}int mod(int a,int b){int result;result=a%b;return result;}int main(){int a,b,res,ans;int i,count;int op,c;srand((unsigned)time(NULL)); while(1){printf("\n---加减乘除运算练习系统---\n");printf("1.加法运算\n");printf("2.减法运算\n");printf("3.乘法运算\n");printf("4.除法运算\n");printf("5.求模运算\n");printf("6.混合运算\n");printf("0.退出练习\n");printf(" 请输入数字0~6:");scanf("%d",&op); //输入相应数字进行练习switch(op){case 1:printf("--请进行加法运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%100+1;b=rand()%100+1;res=f(a,b); //调用加法函数printf("%d+%d=",a,b);scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 2:printf("--请进行减法运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%100+1;b=rand()%100+1;res=f1(a,b); //调用减法函数printf("%d-%d=",a,b);scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 3:printf("--请进行乘法运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%100+1;b=rand()%100+1;res=f2(a,b); //调用乘法函数printf("%d*%d=",a,b);scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 4:printf("--请进行除法运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%10+1;b=rand()%10+1;res=f3(a,b); //调用除法函数printf("%d/%d=",a*b,b);scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 6:printf("--请进行混合运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%100+1;b=rand()%100+1;c=rand()%5; //产生0~4的随机数{switch(c) //随机出现进行混合运算{case 0:printf("%d+%d=",a,b);res=f(a,b);break;case 1:printf("%d-%d=",a,b);res=f1(a,b);break;case 2:printf("%d*%d=",a,b);res=f2(a,b);break;case 3:a=a%10+1;b=b%10+1;printf("%d/%d=",a*b,b);res=f3(a,b);break;case 4:printf("%d%%%d=",a,b);res=mod(a,b);break;}}scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 5:printf("--请进行求模运算--\n");count=0;for(i=1;i<=N;i++){a=rand()%100+1;b=rand()%100+1;res=mod(a,b); //调用求模函数printf("%d%%%d=",a,b);scanf("%d",&ans); //输入数值if(ans==res){printf("Very Good!\n");count++;}else{printf("wrong! 请重新输入\n");scanf("%d",&ans);if(ans==res)printf("Very Good!\n");elseprintf("Wrong Answer!\n");}}printf("***正确率为%.0f%%***\n",100.0*count/N); break;case 0:goto END; //转到结束}}END:printf("---练习结束---\n");return 0;}6程序运行图选取起始和加法混合运算程序开始显示6种练习方式输入0为退出。

c语言实现简单四则运算

c语言实现简单四则运算

c语⾔实现简单四则运算c语⾔实现简单四则运算⼀、项⽬开始⼆、阅读代码1、参考代码使⽤了随机函数:srand(unsigned( time(NULL)));通过调⽤随机函数,将⽣成的100以内的随机整数赋给不同的变量,⼀部分⽤于四则运算式数据的来源,⽽赋给变量c的随机数则⽤于结合switch语句控制程序跳转执⾏不同的分⽀,即不同的四则运算,如下:c = rand() % 5; //随机产⽣⼩于5的⾮负整数switch (c)case 0:case 1:...........case 5:2、使⽤while语句控制除数不为0while (b == 0){b = rand() % 1; //若b=0则重新⽣成b,直到b不为0}3、使⽤if语句判断减数与被减数的⼤⼩if (a > b) //使a<b{d = a;a = b;b = d;}if (m > n) //使m<n{d = m;m = n;n = d;}通过if判断并赋值的⼿段保证结果不出现负数4、原代码仅能⼀次性⽣成20个随机的四则运算式,⽽⽆法从键盘输⼊结果并判断答案正确与否。

三、修改代码由于原代码⽆法从键盘读⼊数据,所以对其进⾏了改进。

1、增加键盘读⼊功能scanf("%d",&x);从键盘读⼊输⼊的答案2、对答案进⾏正确与否的判断if(x == (a+b))printf("You are right!\n");elseprintf("You are wrong!\n");通过⽐较输⼊答案与运算得出的答案告知⽤户计算是否正确。

四、代码托管路劲五、个⼈总结通过阅读与修改代码,实现了⾃⼰想要的功能,同时也增强了⾃⼰的动⼿能⼒。

在这个过程中,体会到程序编写的乐趣,当然也伴随有挫败感,但是,当看到程序输出了⾃⼰想要的结果的时候,却也有⼀种由衷的成就感。

同时也认识到,程序的规则是死的,是严格定义的,只要花时间总是能掌握的,因此不必有太多的畏惧之⼼。

四则运算c语言编程

四则运算c语言编程

四则运算c语言编程四则运算是数学中常见的基本运算,也是编程语言中必须掌握的基本知识。

在C语言中,四则运算包括加、减、乘、除四个基本运算。

本文将介绍C语言中四则运算的使用方法和注意事项。

加法运算加法运算是最基本的运算之一,C语言中使用“+”符号进行加法运算。

例如,计算两个整数a和b的和,可以使用以下代码:int a = 5;int b = 3;int sum = a + b;printf("sum = %d\n", sum);在这个例子中,首先定义了两个整数a和b,并将它们相加得到sum变量的值。

最后使用printf函数将sum的值输出到屏幕上。

减法运算减法运算也是常见的运算之一,C语言中使用“-”符号进行减法运算。

例如,计算两个整数a和b的差,可以使用以下代码:int a = 5;int b = 3;int diff = a - b;printf("diff = %d\n", diff);在这个例子中,首先定义了两个整数a和b,并将它们相减得到diff变量的值。

最后使用printf函数将diff的值输出到屏幕上。

乘法运算乘法运算也是常见的运算之一,C语言中使用“*”符号进行乘法运算。

例如,计算两个整数a和b的积,可以使用以下代码:int a = 5;int b = 3;int product = a * b;printf("product = %d\n", product);在这个例子中,首先定义了两个整数a和b,并将它们相乘得到product变量的值。

最后使用printf函数将product的值输出到屏幕上。

除法运算除法运算也是常见的运算之一,C语言中使用“/”符号进行除法运算。

例如,计算两个整数a和b的商,可以使用以下代码:int a = 5;int b = 3;int quotient = a / b;printf("quotient = %d\n", quotient);在这个例子中,首先定义了两个整数a和b,并将它们相除得到quotient变量的值。

C四则运算程序代码

C四则运算程序代码

四则表达式计算一、程序分析和设计把整个表达式存为字符数组,按照四则运算规则寻找其中的运算符号,然后提取左右两侧操作数计算,用计算结果替换掉计算的表达式,这样整体表达式会被简化,继续重复这个过程,直到找不到运算符为止。

1)运算表达式的存储定义字符数组来存储即可,注意由于运算过程中可能会出现小数,而小数会导致表达式长度增加,所以定义时字符数组长度应该足够(比如1000)并且计算结果应该减少精度,比如保留小数点后面三位。

2)数和字符数组之间的转化提取出来的操作数实际为字符序列,计算前我使用 atof(定义在stdlib.h)转化为浮点数运算,同样的,运算结果要替换表达式中的字符序列也需要先转化为字符串才行,我使用 sprintf 函数,该函数定义在 stdio.h 中字符串的连接使用了 strcat(string.h) 等函数。

3)计算逻辑设pstr 为计算表达式//先算乘除for(int i=1;i<strlen(pstr);i++){If(如果当前位置字符为*或者/){把运算符保存在ysf中从该位置左边找前边的操作符获取左边要计算的数据coml和该数据前的字符串strleft从该位置右边找后边的操作符获取右边要计算的数据comr和该数据后的字符串 strright将数据变换成浮点型运算再转换为字符型的结果连接 strleft + 结果 + stright 组成新字符串替换掉 pstr }}//再找加减//代码与找乘除的过程类似为了代码简单,中途设计了几个计算函数double jia(char x[],char y[]);//字符加法返回double的值double jian(char x[],char y[]);//字符减法返回double的值double cheng(char x[],char y[]);//字符乘法返回double的值double chu(char x[],char y[]);//字符除法返回double的值double xsd(char x[]);//字符检测是否有小数,返回double的值为了可以重复输入,开头使用了个do while ,为了可以输入-1+2这种表达式,我设计了个判断,如果第一字符是+或-我给整体表达式前加了个0字符这样就转化为一般的字符了!如果是* /则提示出错,别重新输入!二、程序主要代码#include<iostream.h>#include<stdlib.h>//atof函数的头文件#include<stdio.h>//sprintf函数的头文件#define MAX 255//宏定义常量#include<string.h>double cmjia(char x[],char y[]);//声明函数double cmjian(char x[],char y[]);double cmcheng(char x[],char y[]);double cmchu(char x[],char y[]);double compute(char pstr[]);double xsd(char x[]);//主函数void main(){do{double t;//存储运算结果char a[]="0";char linshi[MAX];//计算临时用的char biaodashi[MAX];//用来存放表达式for(;;)//输入表达式{cout<<"请输入一个正确的数学表达式,形如7+8*6,按回车结束"<<endl;//输入表达式cin>>biaodashi;if(biaodashi[0]=='*'||biaodashi[0]=='/')cout<<"您输入的表达式有误,请重新输入"<<endl;//判断首字符是否为*/,如果是提示错误别返回重新输入else break;}if(biaodashi[0]=='-'||biaodashi[0]=='+')//判断首字符是否为+-,如果是给字符前加字符0 {strcat(a,biaodashi);strcpy(biaodashi,a);}strcpy(linshi,biaodashi);t=compute(linshi);//计算cout<<"运算结果是:"<<biaodashi<<'='<<t<<endl;//输出结果}while(1);//计算完返回,接着输入}//自定义函数double xsd(char x[])//判断是否有小数点,并把字符型转化为浮点型{for(int i=0;i<strlen(x);i++)if(x[i]=='.'){double num = 0.0;sscanf(x, "%f", &num);//return num;}elsereturn atof(x);}double cmjia(char x[],char y[])//计算两字符加法,并返回double型值{double a,b;a=xsd(x);b=xsd(y);double c=a+b;return c;}double cmjian(char x[],char y[])//计算两字符减法,并返回double型值{double a,b;a=xsd(x);b=xsd(y);double c=a-b;return c;}double cmcheng(char x[],char y[])//计算两字符乘法,并返回double型值{double a,b;a=xsd(x);b=xsd(y);double c=a*b;return c;}double cmchu(char x[],char y[])//计算两字符除法,并返回double型值{double a,b;a=xsd(x);b=xsd(y);double c=a/b;return c;}double compute(char pstr[])//{char strleft[MAX],strright[MAX],coml[MAX],comr[MAX],com[MAX],ysf;//ysf代表运算符double comzhi,zhi;//comzhi代表中途计算的值,com代表comzhi所对应的字符型int n=0;//先算乘除for(int i=0;i<strlen(pstr);i++){if(pstr[i]=='*'||pstr[i]=='/'){ysf=pstr[i];//获取左边要计算的数据coml和该数据前的字符串strleftfor(int j=i-1;j>=0;j--){if(pstr[j]=='-'||pstr[j]=='+'){for(int k=0;k<=j;k++) strleft[k]=pstr[k];strleft[k]='\0';//获取左边要计算数据前的字符串strleftfor(k=j+1,n=0;k<i;k++,n++) coml[n]=pstr[k];coml[n]='\0';//获取左边要计算的数据comlbreak;}elsefor(int k=0;k<i;k++){coml[k]=pstr[k];strleft[0]='\0';}}//获取右边要计算的数据comr和该数据后的字符串strrightfor(j=i+1;j<=strlen(pstr);j++){if(pstr[j]=='-'||pstr[j]=='+'||pstr[j]=='*'||pstr[j]=='/'||pstr[j]=='\0'){for(int k=0,n=j;k<strlen(pstr)-i-1;k++,n++) strright[k]=pstr[n];strright[k]='\0';for(k=i+1,n=0;k<j;k++,n++) comr[n]=pstr[k];comr[n]='\0';break;}}if(ysf=='*')//如果是*{comzhi=cmcheng(coml,comr);sprintf(com,"%.3f",comzhi);}else//如果是/{comzhi=cmchu(coml,comr);sprintf(com,"%.3f",comzhi);}strcat(strleft,com);//把数据前的字符和运算后的字符连接strcat(strleft,strright);//把数据后的字符和运算后的字符连接strcpy(pstr,strleft);//替换pstr}//重新找操作符}//再找加减for(i=0;i<strlen(pstr);i++){if(pstr[i]=='+'||pstr[i]=='-'){ysf=pstr[i];//获取左边要计算的数据comlfor(int k=0;k<i;k++) coml[k]=pstr[k];coml[k]='\0';//获取右边要计算的数据和该数据后的字符串strrightfor(int j=i+1;j<=strlen(pstr);j++){if(pstr[j]=='-'||pstr[j]=='+'||pstr[j]=='\0'){for(int k=0,n=j;k<=strlen(pstr)-j;k++,n++) strright[k]=pstr[n];strright[k]='\0';for(k=i+1,n=0;k<j;k++,n++) comr[n]=pstr[k];comr[n]='\0';break;}}if(ysf=='+'){comzhi=cmjia(coml,comr);sprintf(com,"%.3f",comzhi);}else{comzhi=cmjian(coml,comr);sprintf(com,"%.3f",comzhi);}strcat(com,strright);strcpy(pstr,com);}}//没找到,说明全部+-都计算完了zhi=atof(pstr);return zhi;}三、运行效果四、总结还无法提醒形如3-45*+或输入sgfs-34等式的错误,别重新输入,无法计算带括号和函数的表达式等更复杂的四则表达式。

C语言编写的四则运算器

C语言编写的四则运算器
}
/* Source1、Source2加起来到Destination中*/
char *AddStrings_f(char *chpDestination, char *chpSource1, char *chpSource2)
{
char *chpTempdest=chpDestination;
while(*chpSource1!=0) /*先把chpSource1放入chpDestination */
/*关系运算*/
int Nexus(char strIn[]);
/* =============================================== */
/*全局变量声明*/
int Debug=1; /*调试信息显示开关0不显示,1显示*/
char *TF_Info[3]={"FALSE","TURE","Error"}; /*关系运算信息*/
}
sBuf[sPos]=sChar;
strcpy(chpString,sBuf);
}
else
return 0;
return 1;
}
/*替换字符串中的某个字符'#' to '-' */
void StrReplace(char *chpString,char strOld ,char strNew)
{
char sBuf[Max];
/*函数声明*/
/*计算字符串(不带括号的),计算的核心部分*/
char *Calculate_f(char *chpString);
/*主操作过程,输入式子串,返回double型结果*/

用c语言编写加减乘除程序

用c语言编写加减乘除程序

用c语言编写加减乘除程序加减乘除是数学上最基本的四则运算,而用计算机语言实现这些运算则是计算机科学最基本的知识之一。

在c语言中,实现四则运算需要使用基本的算术运算符,并需要注意数据类型的匹配。

加法运算是最简单的四则运算之一,使用c语言执行加法运算的方法是,用“+”符号分隔两个运算数并用“=”符号赋值给结果变量。

例如,将两个整数相加并输出结果,代码如下:```#include <stdio.h>int main(){int a = 5, b = 7, sum;sum = a + b;printf("The sum of %d and %d is %d", a, b, sum);}```这段代码将输出结果:“The sum of 5 and 7 is 12”,其中sum 变量存储了a和b两个变量的和。

减法运算的实现方法与加法运算类似,只需将运算符改为“-”即可,例如:```#include <stdio.h>int main(){int a = 5, b = 7, diff;diff = a - b;printf("The difference between %d and %d is %d", a, b, diff);}```这段代码将输出结果:“The difference between 5 and 7 is -2”,其中diff变量存储了a和b两个变量的差。

乘法运算可以使用“*”符号来实现,例如:```#include <stdio.h>int main(){int a = 5, b = 7, prod;prod = a * b;printf("The product of %d and %d is %d", a, b, prod);return 0;```这段代码将输出结果:“The product of 5 and 7 is 35”,其中prod变量存储了a和b两个变量的积。

c语言四则运算程序

c语言四则运算程序

c语言四则运算程序C语言是一种通用的计算机程序设计语言,用于开发软件和操作系统等工程项目。

C语言的语法简洁,可以编写出高效的代码,因此在编写四则运算程序中被广泛应用。

四则运算指的是加减乘除四种基本运算。

在C语言中,可以使用基本的算术运算符来进行四则运算,例如“+”表示加法,“-”表示减法,“*”表示乘法,“/”表示除法。

在程序中使用scanf函数获取用户输入的数字,然后通过计算输出运算结果。

下面展示一个简单的加法程序,用户输入两个数字,程序通过相加运算输出结果:#include<stdio.h>int main(){int a,b,c;printf("Please enter two numbers:");scanf("%d %d",&a,&b);c=a+b;printf("%d + %d = %d\n",a,b,c);return 0;}以上程序展示了如何使用scanf函数获取用户的输入。

scanf函数的第一个参数是格式化字符串,指定要读取的类型及其数量,例如“%d”表示整数,“%f”表示浮点数。

第二个参数是存储输入值的变量名或指针,它们必须与格式化字符串中要读取的类型相匹配。

当用户输入两个整数后,程序将它们相加并输出结果。

输出语句中使用了占位符“%d”,它们对应的是printf函数中的后三个参数,分别是a,b,c的值。

除了加法,减法、乘法、除法的处理也很相似。

下面展示一个利用switch语句实现四则运算的程序:#include<stdio.h>int main(){int a,b,c;char op;printf("Please enter two numbers:");scanf("%d %d",&a,&b);printf("Please enter the operator:");scanf(" %c",&op);switch(op){case '+': c=a+b;break;case '-': c=a-b;break;case '*': c=a*b;break;case '/': c=a/b;break;default: printf("Invalid operator!");return1;break;}printf("%d %c %d = %d\n",a,op,b,c);return 0;}这个程序通过switch语句根据输入的运算符选择相应的操作。

小学数学四则运算C++程序开发(1)

小学数学四则运算C++程序开发(1)

小学数学四则运算12+56=?1.要求系统随机生成0~100之内的整数。

2.对回答错误的题目应该可重新回答。

3.能够统计回答的正确题目的个数。

#include<iostream.h>#include<iomanip.h>#include<stdlib.h>#include<time.h>static int i=0,j=0;char bkuang() //定义界面函数{for(int l=0;l<30;l++)cout<<setw(12)<<"*";return 0;}void jia(int m) //定义加法运算函数{int a,b;srand(time(0));a=rand()%100; //随机产生一个0--99的数b=rand()%100;//随机产生一个0--99的数cout<<a<<"+"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a+b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a+b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a+b<<endl;//给出正确答案j++;}}}void jian(int m) //定义减法运算函数{int a,b,t;srand(time(0));a=rand()%100; //随机产生一个0--99的数b=rand()%99+1; //随机产生一个1--99的数if(a<b) //调整a为较大值,使运算结果不为负数{t=a;a=b;b=t;}cout<<a<<"-"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a-b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a-b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a-b<<endl;//给出正确答案j++;}}}void cheng(int m) //定义乘法运算函数{int a,b;srand(time(0));a=rand()%100; //随机产生一个0--99的数b=rand()%100; //随机产生一个0--99的数cout<<a<<"*"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a*b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a*b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a*b<<endl;//给出正确答案j++;}}}void chu(int m) //定义除法运算函数{int a,b,t;srand(time(0));a=rand()%100; //随机产生一个0--99的数b=rand()%100; //随机产生一个0--99的数if(b==0) //使分母不为0{while(b==0)b=rand()%100;}if(a<b) //调整a为较大值{t=a;a=b;b=t;}while(a%b!=0) //使a能被b整除{a=rand()%100;b=rand()%100;}cout<<a<<"/"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a/b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:";//有两次作答机会cin>>m;cout<<endl;if(m==a/b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a/b<<endl;//给出正确答案j++;}}}void main(){int s,t,m;cout<<bkuang()<<endl;cout<<setw(16)<<"#"<<setw(10)<<" 小朋友:您好!欢迎简单四则运算考试系统"<<setw(6)<<"#"<<endl;cout<<setw(12)<<bkuang()<<endl;cout<<setw(20)<<"#"<<" 选择1进入考试系统"<<setw(12)<<"#"<<endl;cout<<setw(20)<<"#"<<" 选择2退出考试系统"<<setw(12)<<"#"<<endl;cout<<setw(16)<<"#"<<" 请选择!温馨提示:选择之后按<回车>结束"<<setw(5)<<"#"<<endl;cout<<bkuang()<<endl; //系统开始时的主界面;cin>>s;cout<<endl;while(s==1) //使考试系统能循环进行{cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));t=rand()%100;if(t<25)jia(m); //进行加法运算else if(t>=25&&t<50)//进行减法运算jian(m);else if(t>=50&&t<75)//进行乘法运算cheng(m);else //进行除法运算chu(m);cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}cout<<"您回答正确的个数是:"<<i<<endl; //统计出回答正确的个数cout<<"您回答错误的个数是:"<<j<<endl; //统计出回答错误的个数cout<<bkuang()<<endl;cout<<setw(20)<<"#"<<" 谢谢使用!再见!"<<setw(12)<<"#"<<endl; cout<<setw(12)<<bkuang()<<endl;cout<<bkuang()<<endl; //系统开始时的主界面;}。

C语言四则运算

C语言四则运算

机电学部课程设计题目:小学生算术四那么运算测试程序姓名:黄超学号:202112110118班级:计算机科学与技术课程:程序设计方法学任课老师:顾保磊2021年6月28日课程设计任务书及成绩评定目录背景 (1)摘要 (1)功能要求................................................... . (2)设计流程 (3)程序执行 (4)程序 (5)程序 (6)程序 (7)程序 (8)实验结果 (9)实验结果 (10)实验心得…………………………………………....….. .11背景伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机、计算尺,直至今天我们广泛运用的电子计算机。

计算工具的每一次进步,都导致科学技术发生深入的革命。

人类最初是用手指来作为记数和计算工具的。

在古代,人们还广泛地使用过筹码和结绳来作为记数和计算的工具,其中筹码可能采用石子、木棍、滑片等,每一个可以单独使用也可用工具在其刻上道使用。

我们中华民族的祖先,在公元前5世纪以前开场使用算筹。

利用算筹记数,用笔写下来就是筹算数字,当时这在世界上是非常先进的。

而作为我们的祖先对世界文明的重大奉献——四大创造之一的珠算盘,那么是人类经过设计加工,制造出来的第一种计算工具。

十六世纪以来,随着机械设计和制造程度的进步,同时也为了满足日益复杂的计算要求,许多科学家设计制造了以齿轮为主要构件的机械式计算机。

自从上个世纪四十年代电子计算机的创造,人类计算工具的开展进入了一个新纪元。

计算机以人类技术史上前所未有的高速度开展着,其主要构件由电子管、晶体管、集成电路,一直开展到运用超大规模集成电路。

计算机的计算速度也从每秒几千次算术计算,进步到每秒上万亿次算术计算。

摘要小学生四那么运算,是利用VC++软件编写的一程序,电脑可随机的出10道四那么运算题,每题非常。

答题者输入需要运算的数,其中要求算式面向小学1~2年纪,数的大小不超过50且运算的结果必须在0~50之间,答题者有三次答题时机,在这三次时机之内答出,系统会自动根据答案的正确与否,得出分数,按照相应的分数给出级别,80-90显示“GOOD〞,70-80显示“OK〞,60-70显示“PASS〞,60以下“TRY AGAIN〞功能要求题目:小学生算术四那么运算测试程序面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

小学生四则运算项目C++实现

小学生四则运算项目C++实现

⼩学⽣四则运算项⽬C++实现项⽬相关要求1. (完成)使⽤ -n 参数控制⽣成题⽬的个数。

2. (完成)使⽤ -r 参数控制题⽬中数值(⾃然数、真分数和真分数分母)的范围。

该参数可以设置为1或其他⾃然数。

该参数必须给定,否则程序报错并给出帮助信息。

3. (完成)⽣成的题⽬中计算过程不能产⽣负数,也就是说算术表达式中如果存在形如e1 − e2的⼦表达式,那么e1 ≥ e2。

4. (完成)⽣成的题⽬中如果存在形如e1 ÷ e2的⼦表达式,那么其结果应是真分数。

5. (完成)每道题⽬中出现的运算符个数不超过3个。

6. (完成)程序⼀次运⾏⽣成的题⽬不能重复,即任何两道题⽬不能通过有限次交换+和×左右的算术表达式变换为同⼀道题⽬。

例如,23 + 45 = 和45 + 23 = 是重复的题⽬,6 × 8 = 和8 × 6 = 也是重复的题⽬。

3+(2+1)和1+2+3这两个题⽬是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+ (2+1)。

但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,⽽3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同⼀个题⽬。

⽣成的题⽬存⼊执⾏程序的当前⽬录下的Exercises.txt⽂件。

7. (完成)在⽣成题⽬的同时,计算出所有题⽬的答案,并存⼊执⾏程序的当前⽬录下的Answers.txt⽂件。

8. (完成)程序应能⽀持⼀万道题⽬的⽣成。

9. (完成)程序⽀持对给定的题⽬⽂件和答案⽂件,判定答案中的对错并进⾏数量统计,统计结果输出到⽂件Grade.txt。

代码规范本次项⽬的代码遵循了⾕歌代码规范(C++),但由于⾕歌代码规范篇幅太多,所以我们⽬前只遵循了其中的部分规范,具体如下:1. 禁⽌使⽤宏2. 分号以前不加空格3. ⾏宽原则上不超过804. ⼀⾏只定义⼀个变量5. 左⼤括号前保留⼀个空格6. if, else前后都要⼀个空格7. for, while后要有⼀个空格8. return 后⾯的数值不加 ( )9. 每个⽂件应该含有版权信息及作者10. 左圆括号之后和右圆括号之前⽆空格11. 函数参数过多时,每⾏的参数变量对齐12. ⼀⽬运算符与变量之间不加空格符隔开13. 禁⽌使⽤ using 指⽰(using-directive)14. 禁⽌使⽤C++的流,⽽是⽤printf之类的替代15. 要么函数名与参数同⾏,要么所有参数并排分⾏16. 换⾏代码缩进2个空格,并且使⽤两个空格符取代制表符17. ⼆⽬以上的运算符与变量,常量之间⽤空格隔开(各类括号除外)18. 不论控制语句,循环语句后⾯的循环体有多少⾏,都必须使⽤花括号19. 普通函数,类型(含类与结构体,枚举类型),常量等使⽤⼤⼩写混合,不含下划线20. 除函数定义的左⼤括号可置于⾏⾸以外,包括函数/类/结构体/枚举声明,各种语句的左⼤括号必须置于⾏末,所有右⼤括号独⽴成⾏设计思路具体设计&关键代码ImproperFraction类构建⼀个ImproperFraction的类,然后重载这个类的四种运算 +-x÷ 以及以及六种逻辑关系'<' '==' '<=' '!=' '>' '>='判断,在后续的代码编写之中都是基于这个类进⾏运算class ImproperFraction {public :ImproperFraction(){}ImproperFraction (int Mole, int Deno, int Coef = 0) {int g = std::__gcd (Mole, Deno);g = std::max(g, 1);mole = (Mole + Coef * Deno) / g;deno = Deno / g;}ImproperFraction operator + (const ImproperFraction & rhs ) const {int DENO = deno * rhs.deno;int MOLE = mole * rhs.deno + rhs.mole * deno;ImproperFraction res = ImproperFraction (MOLE, DENO);return res;}ImproperFraction operator - (const ImproperFraction & rhs ) const {int DENO = deno * rhs.deno;int MOLE = mole * rhs.deno - rhs.mole * deno;ImproperFraction res = ImproperFraction (MOLE, DENO);return res;}ImproperFraction operator * (const ImproperFraction & rhs ) const {int DENO = deno * rhs.deno;int MOLE = mole * rhs.mole;ImproperFraction res = ImproperFraction (MOLE, DENO);return res;}ImproperFraction operator / (const ImproperFraction & rhs ) const {int DENO = deno * rhs.mole;int MOLE = mole * rhs.deno;ImproperFraction res = ImproperFraction (MOLE, DENO);return res;}bool operator < (const ImproperFraction & rhs ) const {return mole * rhs.deno < rhs.mole * deno;}bool operator == (const ImproperFraction & rhs ) const {return mole * rhs.deno == rhs.mole * deno;}bool operator != (const ImproperFraction & rhs ) const {return !(mole * rhs.deno == rhs.mole * deno);}bool operator <= (const ImproperFraction & rhs ) const {return (*this) < rhs || (*this) == rhs;}bool operator > (const ImproperFraction & rhs ) const {return !((*this) <= rhs);}bool operator >= (const ImproperFraction & rhs ) const {return (*this) > rhs || (*this) == rhs;}private :int mole = 0; // 分⼦int deno = 1; // 分母};题集的⽣成表达式的⽣成在这⾥选择的是rand() 随机⽣成运算符个数,类型以及每个被运算的数值。

C语言四则运算代码

C语言四则运算代码
int right=getRand(min,max);
char sign=getRandsign();
if(sign=='-')getRightErase(&left,&right);
int answer=getAnswer(left,right,sign);
leftData[n]=left;rightData[n]=right;signData[n]=sign;answerData[n]=answer;
if(s=='/')return left/right;
}
void printSta(int r,int w,int n){
cout<<"你做对了:"<<r<<endl;
cout<<"你做错了:"<<w<<endl;
cout<<"得分"<<(float)r/n*100<<endl;
}
void printAllProblem(int l[],int r[],char s[],int a[],int n){
return rand()%(max-min+1)+min;
}
char getRandsign(){
int n=getRand(1,4);
if(n==1) return'+';
if(n==2) return'-';
if(n==3) return'*';
if(n==4) return'/';
}

四则运算(c语言)

四则运算(c语言)

四则运算(c语⾔)博客班级作业要求作业⽬标能够实现四则运算⼩程序的基本需求,同时练习写博客(排版等)学号3190704217⼆. 题⽬要求写⼀个能⾃动⽣成⼩学四则运算题⽬的程序,然后在此基础上扩展:1)除了整数以外,还要⽀持真分数的四则运算,例如:1/6+1/8=7/242)程序要求能处理⽤户的输⼊,判断对错,累积分数3)程序⽀持可以由⽤户⾃⾏选择加、减、乘、除运算4)使⽤-n参数控制⽣成题⽬的个数,例如Myapp.exe -n 10,将⽣成10个题⽬三. 代码#include <stdio.h>#include <stdlib.h>#include <time.h>#include <math.h>int s;//答对的题⽬数量float score;//得分(百分制)//判断答案是否正确void judge0(float a,float ta) //专为除法提供判断函数{float error=a-ta;//计算结果与真正答案的误差⼩于⼀定值if((error<=0.005)&&(error>=-0.004)){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %.2f\n",ta);}void judge(int a,int ta) //加法减法,乘法的判断函数{if(a==ta){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %d\n",ta);}void judge1(int a1,int a2,float ta) //真分数运算的判断函数{float a=(float)a1/(float)a2;if(a==ta){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %.2f\n",ta);}//真分数的随机运算int random0(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL)));while(i<num){int type;//运算类型,加减乘除int left1,left2,right1,right2;int answer1,answer2;float trueanswer;left1= rand() % 100;left2= rand() % 100;type = rand() % 4;if(left1>left2) //转化为真分数{int t;t=left1;left2=left1;left1=t;}right1 = rand() % 100;right2 = rand() % 100;if(right1>right2)//转化为真分数{int t;t=right1;right2=right1;right1=t;}switch(type){case 0:trueanswer=((float)left1/(float)left2)+((float)right1/(float)right2); printf("%d/%d + %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 1:trueanswer=((float)left1/(float)left2)-((float)right1/(float)right2); printf("%d/%d - %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 2:trueanswer=((float)left1/(float)left2)*((float)right1/(float)right2); printf("%d/%d * %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 3:trueanswer=((float)left1/(float)left2)/((float)right1/(float)right2); printf("%d/%d / %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;}i++;}return num;}// 整数的随机运算int random(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL)));while(i<num){int type;//运算类型int left, right;int answer,trueanswer;left = rand() % 100;type = rand() % 4;right = rand() % 100;switch(type){case 0:trueanswer=left+right;printf("%d + %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 1:trueanswer=left-right;printf("%d - %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 2:trueanswer=left*right;printf("%d * %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 3:float answer0,trueanswer0; trueanswer0=((float)left)/((float)right); printf("%d /%d = ", left, right);scanf("%f",&answer0);judge0(answer0,trueanswer0); break;}i++;}return num;}//加法int add(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer;left = rand() % 100;right = rand() % 100;trueanswer=left+right;printf("%d +%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//减法int subtract(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer; left = rand() % 100;right = rand() % 100; trueanswer=left-right;printf("%d -%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//乘法int multiply(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer; left = rand() % 100;right = rand() % 100; trueanswer=left*right;printf("%d *%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//除法int divide(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right;float answer,trueanswer;left = rand() % 100;right = rand() % 100; trueanswer=((float)left)/((float)right); printf("%d /%d = ", left, right); scanf("%f",&answer);judge0(answer,trueanswer);i++;}return num;}//打印界⾯提⽰信息void main(){printf("welcome!\n");printf("\n");int choose,t;do{s=0;score=0;int n;printf("********************四则运算********************\n");printf("\n");printf(" 1.随即题⽬\n");printf(" 2.加法题⽬\n");printf(" 3.减法题⽬\n");printf(" 4.乘法题⽬\n");printf(" 5.除法题⽬\n");printf(" 6.分数运算\n");printf(" 7.退出\n");printf("\n");printf("******************Designed by 吴⼭茶******************\n");printf("\n");printf("请选择计算类型:");scanf("%d",&t);choose=t;printf("%d",choose);printf("\n");system("cls");switch(choose){case 1:n=random();printf("\n");break;case 2:n=add();printf("\n");break;case 3:n=subtract();printf("\n");break;case 4:n=multiply();printf("\n");break;case 5:n=divide();printf("\n");break;case 6:n=random0();printf("\n");break;default:break;}score=(float)s/(float)n;printf("得分:%.2f\n",score);}while(choose!=7);exit(0);}三.运⾏结果1.显⽰界⾯2.加法运算3.随机运算4.真分数运算任务内容计划完成需要的时间(min)实际完成需要的时间(min)计划1020任务内容计划完成需要的时间(min)实际完成需要的时间(min)估计这个任务需要多少时间,并规划⼤致⼯作步骤55开发00需求分析(包括学习新技术)1010⽣成设计⽂档00设计复审1530代码规范55具体设计2020具体编码150180代码复审1010报告00测试报告00计算⼯作量300330+事后总结,并提出过程改进计划2010。

利用C语言开发一个“小学生算术四则运算测试系统”

利用C语言开发一个“小学生算术四则运算测试系统”

武汉理工大学华夏学院课程设计课程名称C语言程序设计题目利用C语言开发一个“小学生算术四则运算测试系统”专业____电子商务_____班级______1091_______学号_____20510809105_____姓名______张宇_______成绩_________________指导教师杨沙、王绪梅2010年6月28日至2010年7月2日课程设计任务书设计题目:利用C语言开发一个“小学生算术四则运算测试系统”设计目的1.加深对《C语言程序设计》课程所学知识的理解;2.掌握结构化程序设计的基本方法;3.学会编制结构清晰、风格良好、数据结构选择恰当的C语言程序;4.掌握多模块的C语言程序的调试方法。

设计任务(在规定的时间内完成下列任务)任务描述:利用C语言开发一个“小学生算术四则运算测试系统”该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题、阅卷该系统应具备以下功能:1.为小学生出题(分别进行+、-、*、÷等不同运算)2.学生做题后,进行评阅;学生每做一题后,评阅时给出“答题正确,很好”或“答题错误,重做”等字样;3.加、减、乘、除运算功能可以自由选择实现;4.运算数值可以控制在两位(或三位)数的四则运算范围内。

具体要完成的任务是:1 完成整个规定任务的设计及调试,得出正确结果,并经教师检查及答辩;2. 写出规范的课程设计说明书;3. 课程设计结束后交设计说明书等文档和设计内容。

设计说明书的主要内容是详细写出在设计过程中所用到的主要技术或方法;4. 从6月28日起,学生每天至少要到设计教室半天以上;5.课程设计报告按国际通用格式书写,具体格式要求请在网络上查阅时间安排6月28日上午1-103教室动员全体学生,给学生下任务书;下午查阅相关资料;6月29日~7月1日完成选题的设计及报告的书写;7月2日上午提交课程设计报告并答辩。

指导教师签名:2010年 6 月27 日教研室主任(或责任教师)签名:2010年 6 月27 日1、问题描述1.1在最开始设计此程序过程中,我定义的变量flag为字符型,当把原程序段中对应于下面的程序段的程序段改为:……scanf("%d",&temp);while(temp!=answer){printf("\n答案错误,重做\n");printf("\n请输入正确的答案:\n");scanf("%d",&temp);}printf("\n继续请按y,退出测试请按n \n");scanf("%c",&flag);while(flag!=y&&flag!=n){printf("\n继续请按1,退出测试请按0 \n");scanf("%d",&flag);}……我将会发现当我做完一题且做对了的时候,无论我输入的是y还是n或者是其他的字符,printf("\n继续请按1,退出测试请按0 \n")这个提示在屏幕上出现两次,说明了在第一个scanf("%c",&flag)语句中无论什么,flag!=y&&flag!=n都是成立的,这说明了在第一个scanf("%c",&flag)中输入的字符并没有赋给flag。

四则运算训练器软件C语言开发(软件代码+软件说明)

四则运算训练器软件C语言开发(软件代码+软件说明)

软件名称:四则运算训练器软件功能介绍:该软件主要用于训练并测试使用者的四则运算能力。

进入软件主界面,界面上会显示3个选项,分别是:1.10以内的四则运算训练。

2.20以内的四则运算训练。

0.退出。

使用者根据自己的需要选择不同的选项:按“1”进入10以内的四则运算训练;按“2”进入20以内的四则运算训练;按“0”退出程序主界面。

10以内的四则运算和20以内的四则运算均为10题一组;在这10个题中,加减乘除均有,操作数均为整数,且加减乘除出现的顺序不定,除法给出的两个操作数能除尽。

对于给出的题目,当操作者计算正确时,操作界面上无特殊显示;当操作者计算错误时,操作界面上会显示“FAULT!”,提示操作者该题计算错误并同时进入下一题。

操作者每做完10道题,界面上会显示此轮计算的正确率,并询问操作者是否继续。

此时操作者可根据自己的需要,按“1”进入10以内的四则运算训练;按“2”进入20以内的四则运算训练;按“0”退出程序主界面。

程序代码:#include <stdio.h>#include <stdlib.h>#include <time.h>void calculation1();void calculation2();void main(){int number;char m;redo:printf("\t\t\t欢迎进入四则运算训练营!\n\n\n\n"); printf("<1>.10以内的四则运算系列.\n");printf("<2>.20以内的四则运算训练.\n");printf("<0>.退出.\n\n");printf("请选择功能号( 1 / 2 / 0 ): ");scanf("%d",&number);srand((unsigned)time(0));loop: if(number==1) calculation1();else if(number==2) calculation2();else exit(0);printf("\n\n");printf("继续吗?(Y/N):");getchar();scanf("%c",&m);if(m=='Y') goto loop;if(m=='N') goto redo;}void calculation1(){int i,j,n=0;int a1,a2,result;float rate;char c='%';printf("您选择的是10以内的四则运算。

c语言四则运算程序

c语言四则运算程序

c语言四则运算程序本文将介绍一个简单的C语言程序,它可以实现四则运算。

四则运算是数学学科中最基础的计算方法之一,包括加、减、乘、除四个运算符。

通过本程序,您可以输入两个数和运算符,程序将自动计算并输出结果。

具体实现方法如下:1.首先,我们需要定义三个变量,分别代表输入的两个数和运算符。

这里我们使用float类型,以支持小数计算。

2.接着,我们需要使用scanf函数从键盘读入这三个变量的值。

scanf函数可以将输入的字符转换为相应的数据类型,这里我们可以使用“%f”读取浮点数,使用“%c”读取字符。

3.接下来,我们使用switch语句对输入的运算符进行判断。

根据不同的运算符,我们执行相应的计算,最终将结果输出到屏幕上。

4.在程序的结尾,我们可以使用return 0;语句来结束程序的执行。

下面是完整的C语言四则运算程序代码:#include <stdio.h>int main() {float num1, num2, result;char op;printf('请输入两个数和运算符,用空格隔开:');scanf('%f %f %c', &num1, &num2, &op); switch (op) {case '+':result = num1 + num2;printf('%.2f + %.2f = %.2f', num1, num2, result);break;case '-':result = num1 - num2;printf('%.2f - %.2f = %.2f', num1, num2, result);break;case '*':result = num1 * num2;printf('%.2f * %.2f = %.2f', num1, num2, result);break;case '/':if (num2 == 0) {printf('除数不能为0!');} else {result = num1 / num2;printf('%.2f / %.2f = %.2f', num1, num2, result);}break;default:printf('运算符错误!');}return 0;}通过以上程序,您可以轻松地进行四则运算,提高计算效率。

C语言编写四则运算

C语言编写四则运算

C(一)语言编写四则运算#include<stdio.h>//计算器#include<malloc.h>#define STACK_SIZE100//max size of the stack#define STACK_INCREMENT10//realloc sizetypedefstruct FStack//stack of int{float* base;float* top;int stacksize;}FStack;void Init(FStack* s){s->base = (float*)malloc(STACK_SIZE * sizeof(FStack));if (!s->base){printf("overflow!\n");return;}s->top = s->base;s->stacksize = STACK_SIZE;}bool isEmpty(FStack* s){if (s->top == s->base){returntrue;}else{returnfalse;}}void Push(FStack* s, float e){if (s->top - s->base >= s->stacksize){printf("stack is full!\nrealloc %d\n", STACK_INCREMENT);s->base = (float*)realloc(s->base, (s->stacksize + sizeof(FStack))); if (!s->base){printf("overflow!\n");return;s->top = s->base + s->stacksize;s->stacksize += STACK_INCREMENT;}*(s->top) = e;(s->top)++;}float GetTop(FStack* s){if (s->top == s->base){printf("stack is empty!\n");return 0;}float e = *(s->top - 1);return e;}void Pop(FStack* s){if (s->top == s->base){printf("stack is empty!\n");return;}s->top--;}typedefstruct CStack//stack of char{char* base;char* top;int stacksize;}CStack;void Init(CStack* s){s->base = (char*)malloc(STACK_SIZE * sizeof(CStack)); if (!s->base){printf("overflow!\n");return;}s->top = s->base;s->stacksize = STACK_SIZE;}bool isEmpty(CStack* s)if (s->top == s->base){returntrue;}else{returnfalse;}}void Push(CStack* s, int e){if (s->top - s->base >= s->stacksize){printf("stack is full!\nrealloc %d\n", STACK_INCREMENT);s->base = (char*)realloc(s->base, (s->stacksize + sizeof(CStack))); if (!s->base){printf("overflow!\n");return;}s->top = s->base + s->stacksize;s->stacksize += STACK_INCREMENT;}*(s->top) = e;(s->top)++;}char GetTop(CStack* s){if (s->top == s->base){printf("stack is empty!\n");return 0;}char e = *(s->top - 1);return e;}void Pop(CStack* s){if (s->top == s->base){printf("stack is empty!\n");return;}s->top--;}bool isOper(char ch){if (ch == '+' || ch == '-' || ch == '*' || ch == '/' || ch == '%') {returntrue;}else{returnfalse;}}int Priority(char ch){int p;switch(ch){case'(':p = 0;break;case'+':case'-':p = 1;break;case'*':case'/':case'%':p = 2;break;}return p;}float Calculate(float f1, float f2, char oper){float f3;switch(oper){case'+':f3 = f1 + f2;break;case'-':f3 = f1 - f2;break;case'*':f3 = f1 * f2;break;case'%':f3 = (float)((int)f1 % (int)f2);break;case'/':if (f2 == 0){printf("\nDevided by zero!");exit(1);}else{f3 = f1 / f2;}break;}return f3;}float StrtoFloat(char* str, int* pos){float fRes;int i = *pos;int k;char n[50];for (k = 0; str[i] >= '0' && str[i] <= '9' || str[i] == '.'; i++, k++) {n[k] = str[i];}n[k] = '\0';*pos = i;fRes = atof(n);return fRes;}bool Check(char* str){int i = 0;while (str[i] != '\0'){if (str[i] != '+' && str[i] != '-' && str[i] != '*' && str[i] != '/'&& str[i] != '%' && str[i] != '.' && str[i] != '(' && str[i] != ')'&& (str[i] < '0' || str[i] > '9')){returnfalse;}i++;}returntrue;}void main(){char exp[100];int i;float f, f1, f2;char oper;FStackfstack;CStackcstack;Init(&fstack);Init(&cstack);printf("The expression is:");gets(exp);if (!Check(exp)){printf("input error! exit now!\n");exit(1);}for (i = 0; exp[i] != '\0' && exp[i] != -52; i++) {if (!isOper(exp[i])){f = StrtoFloat(exp, &i);Push(&fstack, f);}if (isOper(exp[i])){if (!isEmpty(&cstack)){while (!isEmpty(&cstack) && Priority(exp[i]) <= Priority(GetTop(&cstack))){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Push(&cstack, exp[i]);}else{Push(&cstack, exp[i]);}}elseif (exp[i] == '('){Push(&cstack, exp[i]);}elseif (exp[i] == ')'){while (GetTop(&cstack) != '(' && !isEmpty(&cstack)) {oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Pop(&cstack);}}while (!isEmpty(&cstack)){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}printf("\nThe result is:%f\n", GetTop(&fstack)); Pop(&fstack);}。

C语言编写四则运算

C语言编写四则运算

C语言编写四则运算#include<> ; i++, k++){n[k] = str[i];}n[k] = '\0';*pos = i;fRes = atof(n);return fRes;}bool Check(char* str){int i = 0;while (str[i] != '\0'){if(str[i] != '+'&& str[i] != '-'&& str[i] != '*'&& str[i] != '/' && str[i] != '%' && str[i] != '.' && str[i] != '(' && str[i] != ')' && (str[i] < '0' || str[i] > '9')){return false;}i++;}return true;}void main(){char exp[100];int i;float f, f1, f2;char oper;FStack fstack;CStack cstack;Init(&fstack);Init(&cstack);printf("The expression is:");gets(exp);if (!Check(exp)){printf("input error! exit now!\n");exit(1);}for (i = 0; exp[i] != '\0' && exp[i] != -52; i++){if (!isOper(exp[i])){f = StrtoFloat(exp, &i);Push(&fstack, f);}if (isOper(exp[i])){if (!isEmpty(&cstack)){while (!isEmpty(&cstack) && Priority(exp[i]) <= Priority(GetTop(&cstack))){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Push(&cstack, exp[i]);}else{Push(&cstack, exp[i]);}}else if (exp[i] == '('){Push(&cstack, exp[i]);}else if (exp[i] == ')'){while (GetTop(&cstack) != '(' && !isEmpty(&cstack)) {oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Pop(&cstack);}}while (!isEmpty(&cstack)){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}printf("\nThe result is:%f\n", GetTop(&fstack));Pop(&fstack);}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<iostream.h>#include<iomanip.h>#include<stdlib.h>#include<time.h>static int i=0,j=0;char bkuang() //定义界面函数{for(int l=0;l<30;l++)cout<<setw(12)<<"*";return 0;}void jia(int m) //定义加法运算函数{int a,b;srand(time(0));a=rand()%10; //随机产生一个0--99的数b=rand()%10;//随机产生一个0--99的数cout<<a<<"+"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a+b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a+b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a+b<<endl;//给出正确答案j++;}}}void jian(int m) //定义减法运算函数{int a,b,t;srand(time(0));a=rand()%10; //随机产生一个0--99的数b=rand()%10; //随机产生一个1--99的数if(a<b) //调整a为较大值,使运算结果不为负数{t=a;a=b;b=t;}cout<<a<<"-"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a-b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a-b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a-b<<endl;//给出正确答案j++;}}}void cheng(int m) //定义乘法运算函数{int a,b;srand(time(0));a=rand()%10; //随机产生一个0--99的数b=rand()%10; //随机产生一个0--99的数cout<<a<<"*"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a*b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:"; //有两次作答机会cin>>m;cout<<endl;if(m==a*b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a*b<<endl;//给出正确答案j++;}}}void chu(int m) //定义除法运算函数{int a,b,t;srand(time(0));a=rand()%10; //随机产生一个0--99的数b=rand()%10; //随机产生一个0--99的数if(b==0) //使分母不为0{while(b==0)b=rand()%100;}if(a<b) //调整a为较大值{t=a;a=b;b=t;}while(a%b!=0) //使a能被b整除{a=rand()%10;b=rand()%10;}cout<<a<<"/"<<b<<endl;cout<<"请输入运算结果:";cin>>m;cout<<endl;if(m==a/b){cout<<"恭喜你答对了!"<<endl;i++;}else{cout<<"您答案错误,请重新输入:";//有两次作答机会cin>>m;cout<<endl;if(m==a/b){cout<<"恭喜你答对了"<<endl;i++;}else{cout<<"继续努力,正确答案是:"<<a/b<<endl;//给出正确答案j++;}}}void main(){int s,t,m;cout<<bkuang()<<endl;cout<<setw(16)<<"#"<<setw(10)<<" 小朋友:您好!欢迎简单四则运算考试系统"<<setw(6)<<"#"<<endl;cout<<setw(12)<<bkuang()<<endl;cout<<setw(20)<<"#"<<" 选择1进入考试系统"<<setw(12)<<"#"<<endl;cout<<setw(20)<<"#"<<" 选择2退出考试系统"<<setw(12)<<"#"<<endl;cout<<setw(16)<<"#"<<" 请选择!温馨提示:选择之后按<回车>结束"<<setw(5)<<"#"<<endl;cout<<bkuang()<<endl; //系统开始时的主界面;cin>>s;cout<<endl;while(s==1) //使考试系统能循环进行{cout<<"请选择做题类型1加法2减法3乘法4除法5混合运算"<<endl;int x;cin>>x;if(x==1){int y,z;cout<<"请选择题目个数:"<<endl;cin>>y;for(z=1;z<y;z++)cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));t=rand()%100;jia(m); //进行加法运算cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}if(x==2){int y,z;cout<<"请选择题目个数:"<<endl;cin>>y;for(z=0;z<y;z++){cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));jian(m);}cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}if(x==3){int y,z;cout<<"请选择题目个数:"<<endl;cin>>y;for(z=0;z<y;z++){cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));cheng(m);}cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}if(x==4){int y,z;cout<<"请选择题目个数:"<<endl;cin>>y;for(z=0;z<y;z++){cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));t=rand()%100;chu(m);}cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}if(x==5){int y,z;cout<<"请选择题目个数:"<<endl;cin>>y;for(z=0;z<y;z++){cout<<"您好!请回答第"<<i+j+1<<"题:";srand(time(0));t=rand()%100;if(t<25)jia(m); //进行加法运算else if(t>=25&&t<50)//进行减法运算jian(m);else if(t>=50&&t<75)//进行乘法运算cheng(m);else //进行除法运算chu(m);}cout<<"选择1进入继续答题"<<endl<<"选择2退出考试系统";cout<<endl<<"请选择:"<<endl;cin>>s;}}cout<<"您回答正确的个数是:"<<i<<endl; //统计出回答正确的个数cout<<"您回答错误的个数是:"<<j<<endl; //统计出回答错误的个数cout<<bkuang()<<endl;cout<<setw(20)<<"#"<<" 谢谢使用!再见!"<<setw(12)<<"#"<<endl; cout<<setw(12)<<bkuang()<<endl;cout<<bkuang()<<endl; //系统开始时的主界面;}。

相关文档
最新文档