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语言实现300道随机四则运算题
C语⾔实现300道随机四则运算题1.要求: 打印300道含两个运算符数字在100以内的四则运算,并显⽰答案。
2. 分析:对于两个运算符,按照排列与组合,共有4*3=12种,由于乘除与加减的运算优先级不⼀样,在考虑添加⼩括号的情况下,应该有12+8=20种可能的组合,同⼀种运算符⾃⾝可以与⾃⾝进⾏⼀次组合,故有四种,因此总共应有24种组合⽅式;3.思想:(1)根据数学排列思想保证含⼆个运算符四则运算式⼦的多样性 (2)调⽤rand()函数来随机产⽣0-100的随机数 (3)采⽤判断语句排除在进⾏除法运算时除数为0的情况 (4)switch语句实现不包括除法运算式⼦的打印输出4.代码实现#include<stdio.h>#include <stdlib.h>#include<time.h>int main(){int a,b,c;int n;int i=0;while(i<300){a=rand()%101;b=rand()%101;c=rand()%101;n=rand()%24;if(n==5){if(b!=0&&c!=0)printf("%d/%d/%d=%f\n",a,b,c,(float)a/(float)b/(float)c);}if(n==6){if(c!=0)printf("%d*%d/%d=%f\n",a,b,c,a*(float)b/(float)c);}if(n==7){if(b!=0)printf("%d/%d*%d=%f\n",a,b,c,(float)a/(float)b*c);}if(n==12){if(c!=0)printf("%d+%d/%d=%f\n",a,b,c,a+(float)b/(float)c);}if(n==13){if(b!=0)printf("%d/%d+%d=%f\n",a,b,c,(float)a/(float)b+c);}if(n==14){if(c!=0)printf("%d-%d/%d=%f\n",a,b,c,a-(float)b/(float)c);}if(n==15){if(b!=0)printf("%d/%d-%d=%f\n",a,b,c,(float)(a/b)-c);}if(n==20){if(c!=0)printf("(%d+%d)/%d=%f\n",a,b,c,(float)(a+b)/(float)c);}if(n==21){if((b+c)!=0)printf("%d/(%d+%d)=%f\n",a,b,c,(float)a/(float)(b+c));}if(n==22){if(c!=0)printf("(%d-%d)/%d=%f\n",a,b,c,(float)(a-b)/(float)c);}if(n==23){if((b-c)!=0)printf("%d/(%d-%d)=%d\n",a,b,c,(float)a/(float)(b-c));}switch(n){case0:printf("%d+%d+%d=%d\n",a,b,c,a+b+c);break;case1:printf("%d-%d-%d=%d\n",a,b,c,a-b-c);break;case2:printf("%d+%d-%d=%d\n",a,b,c,a+b-c);break;case3:printf("%d-%d+%d=%d\n",a,b,c,a-b+c);break;case4:printf("%d*%d*%d=%d\n",a,b,c,a*b*c);break;//case 5:printf("%d/%d/%d=%f\n",a,b,c,(float)a/(float)b/(float)c); //break;//case 6:printf("%d*%d/%d=%f\n",a,b,c,(float)(a*b)/c);//break;//case 7:printf("%d/%d*%d=%f\n",a,b,c,(float)(a/b)*c);// break;case8:printf("%d+%d*%d=%d\n",a,b,c,a+b*c);break;case9:printf("%d*%d+%d=%d\n",a,b,c,a*b+c);break;case10:printf("%d-%d*%d=%d\n",a,b,c,a-b*c);break;case11:printf("%d*%d-%d=%d\n",a,b,c,a*b-c);break;//case 12:printf("%d+%d/%d=%f\n",a,b,c,a+(float)(b/c));// break;//case 13:printf("%d/%d+%d=%f\n",a,b,c,(float)(a/b)+c);// break;//case 14:printf("%d-%d/%d=%f\n",a,b,c,a-(float)b/c);// break;//case 15:printf("%d/%d-%d=%f\n",a,b,c,(float)(a/b)-c);// break;case16:printf("(%d+%d)*%d=%d\n",a,b,c,(a+b)*c);break;case17:printf("%d*(%d+%d)=%d\n",a,b,c,a*(b+c));break;case18:printf("(%d-%d)*%d)=%d\n",a,b,c,(a-b)*c);break;case19:printf("%d*(%d-%d)=%d\n",a,b,c,a*(b-c));break;//case 20:printf("(%d+%d)/%d)=%f\n",a,b,c,(float)(a+b)/c); // break;//case 21:printf("(%d/(%d+%d))=%f\n",a,b,c,(float)a/(b+c)); // break;//case 22:printf("(%d-%d)/%d)=%f\n",a,b,c,(float)(a-b)/c);// break;//case 23:printf("%d/(%d-%d))=%d\n",a,b,c,(float)a/(b-c));// break;}++i;}return0;}5.测试。
c语言小学生测验题
你的编程报告应该包括:
(1)伪代码或流程图来描述你的程序算法
(2)在屏幕上显示出来
(3)C语言源文件
大作业提交要求:
1.须提交的文档:C源代码文件,包含伪码/流程图和运行结果的Word文档
48 + 32 =80
…
56 / 28 =2
注意:1)回答完之前一个问题后下一个问题才出现
2)这些数学问题应该包含加减乘除,它们应该是随机出现的
3)确保问题的结果小于100,并大于0;除数不能为0
4)答完10道题后,记录学生总共用的时间
5)给每个同学的分数,保存这个学生的ID,成绩和时间并将文件命名为“record.txt”
6)在屏幕上显示一下信息
Prob. | Correct Answ. |UrAnsw
(B)检查得分:搜索文件“record.txt”,并列出了这个学生所有的历史成绩如
Your previous records are:
AB1234 80 150 seconds
AB1234 50 182 seconds
写一个程序,便于小学母和四个数字如Please input your four digit ID no:AB1234)
该程序应有输入验证
然后程序应包含这3个项目
(1)开始测试
(2)评分
(3)退出
A)测试:该程序需给出10个数学问题如
12 * 3 =36
c语言小学生四则运算练习题
c语言小学生四则运算练习题### C语言小学生四则运算练习题随着计算机编程教育的普及,越来越多的小学生开始接触编程。
C语言作为一门基础的编程语言,非常适合初学者学习。
四则运算是数学中的基本运算,通过编写C语言程序来实现四则运算,不仅可以锻炼小学生的逻辑思维,还能加深他们对编程语言的理解。
#### 题目一:加法运算编写一个C语言程序,实现两个整数的加法运算。
要求用户输入两个整数,程序输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```#### 题目二:减法运算编写一个C语言程序,实现两个整数的减法运算。
要求用户输入两个整数,程序输出它们的差。
```c#include <stdio.h>int main() {int num1, num2, difference;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);difference = num1 - num2;printf("它们的差是:%d\n", difference);return 0;}```#### 题目三:乘法运算编写一个C语言程序,实现两个整数的乘法运算。
要求用户输入两个整数,程序输出它们的积。
```c#include <stdio.h>int main() {int num1, num2, product;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);product = num1 * num2;printf("它们的积是:%d\n", product);return 0;}```#### 题目四:除法运算编写一个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++实现项⽬相关要求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语言小学生四则运算考试系统课程设计代码部分:#include"stdio.h"#include "windows.h"#include<time.h>#include<stdlib.h>#include<conio.h>#define N 3struct stu{int num;char name[12];int score;}em[N],max;void input();void menu_admin();void search();void search_num();void search_name();void cal_score();void sort();void del();int *p;void mune_admin(){int k=0;printf("请根据提示选择:\n");printf("1.查询系统\n");printf("2.删除系统\n");printf("3.排序\n");scanf("%d",&k);switch(k){case 1:search();break;case 2:del();break;case 3:sort();break;}}void input(){int i;printf("请输入你的信息:\n");for(i=0;i<N;i++){printf("请输入学生的学号:\n");scanf("%d",&em[i].num);printf("请输入学生姓名:\n");scanf("%s",&em[i].name);printf("请完成下列题目得出你的成绩:\n");cal_score();em[i].score=*p;getchar();}mune_admin();}void cal_score(){int a[10],b[10],d[10],c[10],num=0,result,score=0;double va1;char fa[5]={'+','-','*','/'};p = &score;srand((unsigned)time(NULL)); // 出10道题10while(1) { d[num]=abs(rand())%4;// 保证出题算法的随机性while(1) // 保证出题成功{c[num]=-1; //保存计算结果a[num]=abs(rand())%100;b[num]=abs(rand())%100;if(d[num]==0) c[num]=a[num]+b[num];else if(d[num]==1) c[num]=a[num]-b[num];else if(d[num]==2) c[num]=a[num]*b[num];else if(d[num]==3){ if(b[num]>0){va1=1.0*a[num]/b[num]; }else { va1=-1; } }if(d[num]<=2){if(c[num]>=0 && c[num]<=100) // 保证计算结果在0-100之间27break;}else{if(a[num]==va1*b[num] && va1>=0){c[num]=va1; break;}}}num++;if(num==10) break;}num=0; //回答41while(1){printf("%d %c %d= ",a[num],fa[d[num]],b[num]);scanf("%d",&result);if(result==c[num]){printf("回答正确!\n");score+=10; }else printf("错误,正确答案: %d\n",c[num]);num++;if(num==10) break;}printf("\n成绩:%d\n",score);}void sort(){int i,j;printf("排序前:\n");for(i=0;i<N;i++){printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);}for(i=0;i<N;i++){for(j=0;j<N-1;j++){if(em[j].score<em[j+1].score){max=em[j];em[j]=em[j+1];em[j+1]=max;}}}printf("排序后:\n");for(i=0;i<N;i++){printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);}mune_admin();}void search(){int t=0;printf("请根据提示选择:\n");printf("1.学号查询\n");printf("2.姓名查询\n");printf("请输入你的选择1/2\n");scanf("%d",&t);switch(t){case 1:search_num();break;case 2:search_name();break;}mune_admin();}void search_num(){int num,i;printf("请输入你要查找的学号:");scanf("%d",&num);for(i=0;i<N;i++){if(num==em[i].num){printf("找到此人\n");printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);break;}if(i==N-1){printf("查无此人\n");}}}void search_name(){char name[12];int i;printf("请输入你要查找的姓名:");scanf("%s",&name);for(i=0;i<N;i++){if(strcmp(em[i].name,name)==0){printf("找到此人\n");printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);break;}if(i==N-1) {printf("查无此人\n");}}}void del(){int i,k,j,num;char a = '\0';printf("请输入你要删除的学号:");scanf("%d",&num);for(i=0;i<N;i++){if(num==em[i].num){printf("找到此人\n");printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);printf("确认删除输入1 ,取消删除输入2\n");scanf("%s",&k);if(k==1){/* em[i].num=0;strcpy(em[i].name,a);em[i].score=0;*/for(j=i;j<N-1;j++){em[j].num=em[j+1].num;strcpy(em[j].name,em[j+1].name);em[j].score=em[j+1].score;}}else if(!k==1){break;}}}printf("删除后:\n");printf("学号\t姓名\t成绩\n");printf("%d\t%s\t%d\n",em[i].num,em[i].name,em[i].score);search();}void main(){input();}。
C语言课程设计举例--小学生算术自测
printf("%d-%d=",a,b);
scanf("%d",&c);
if (a-b==c) printf("right!\n");
else printf("error!\n");
break;
case3: goto end;
(2)作三位或三位以上的整数除法运算练习
(3)返回主菜单
请选择(1,2,3):
2.接收子菜单选择项
如果选择项的值为1,随机出一道两位整数的除法练习题,根据小学生的回答,输出表示“正确”或“错误”的提示信息,然后再显示子菜单。
如果选择项的值为2,随机出一道三位或三位以上的整数除法练习题,根据小学生的回答,输出表示“计算正确”或“计算错误”的提示信息,然后再显示子菜单。
(略)
(2)软件配置
操作系统:windows2000;
C语言编译系统:WIN-TC。
3.系统结构
(1)系统结构图
小学生算术练习管理系统的系统结构图如下所示,总共由7个模块组成,其中一个是总控模块,另外七个是分别实现不同功能的子模块:
(2)模块说明书
A.小学生算术练习管理系统总控模块的模块说明书
模块名称:小学生算术练习管理系统总控模块
输入:主菜单选择项
输出:
处理:
1.按以下格式显示主菜单和提示小学生选择:
小学生算术练习管理系统
(1)加法运算练习
(2)减法运算练习
(3)乘法运算练习
(4)除法运算练习
(5)四则混合运算练习
(6)模拟考试练习
(7)结束练习,退出本系统
请选择(1,2,3,4,5,6,7):
编程练习,小学生加法和四则运算器
编程练习---小学生加法和四则运算器------电信14-1班20141303225 李兴福实验目的:编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。
实验要求:程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。
程序 2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。
程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! Y ou have tried three times! Test over!”,程序结束。
程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。
程序5通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。
【思考题】如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请读者修改程序,并上机测试程序运行结果。
实验内容:以下程序均在C--Free 5.0环境下编译的!程序 1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。
小学生四则运算测试
面向对象程序设计大作业------小学生四则运算测验1.系统简介该系统开发平台为Windows 7,程序设计语言采用Visual C++6.0,程序运行平台为Windows XP,程序通过调试运行,初步实现了设计目标。
(1)利用C++语言实现简易小学生四则运算测试系统的程序设计;(2)利用结构图和自行定义的函数进行相关的功能设计;(3)测试系统能随机产生数据进行测试.2.基本要求根据C++语言,将具体实现某个功能的函数设成小学生四则运算测试系统的公有函数成员,将数据利用自行定义的函数进行计算.随机选择两个整数进行加减乘除运算,给出算式要求学生作答。
基本要求如下:(1)电脑随机出20道题,每题5分,程序结束时显示学生得分;(2)允许随机给出的数在10以内。
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案,该题不计入学生得分(4)对于每道题目,学生第一次输入正确答案得5分,第二次输入正确答案得4分,第三次输入正确答案得3分,否则不得分;(5)20道题全部答完以后,电脑给出学生总分,并将学生得分为0的题目以及相应的正确答案再次输出。
3. 总体设计4. 详细设计表格 15.关键技术说明选择判断结构、循环结构、类、继承与派生、构造函数的应用。
6.源代码#include<iostream>#include<ctime>#include<cstdlib> //标准库头文件using namespace std;#define N 10 //十以内的算数题目#define NUMBER 20 //题目个数//int send=0;class RandShu{private:int shu;public:RandShu(){shu=rand()%N;}int getShu(){return shu;}void setShu(float d){shu=d;}};class RandFu{private:int fu;public:RandFu(){fu=rand()%4;}int getFu(){return fu;} };class ShiTi :public RandShu,RandFu {private:RandShu s1,s2;RandFu f;double r;char t[6];public:ShiTi(){r=solve();}double solve();double getResult();void display();};void ShiTi::display(){cout<<s1.getShu();switch(this->f.getFu()){case 0:cout<<"+";break;case 1:cout<<"-";break;case 2:cout<<"*";break;case 3:cout<<"/";break;}cout<<s2.getShu()<<"=";}double ShiTi::getResult(){double q=r*100;int w=q/1;double a=r*1000;int d=a/1;int c=d%10;double e=q-w;r=r-0.01*e;if(c>=5){r=r+0.01;}return r;}double ShiTi::solve(){switch(this->f.getFu()){case 0:r=s1.getShu()+s2.getShu();break;case 1:r=s1.getShu()-s2.getShu();break;case 2:r=s1.getShu()*s2.getShu();break;case 3:if(s2.getShu()==0)s2.setShu(1);r=(double)s1.getShu()/s2.getShu();break;}return r;}void head(){cout<<endl;cout<<"==================欢迎使用小学生四则运算测试系统======================"<<endl;cout<<"\t系统说明:";cout<<"\n\t本系统为十以内的四则运算测试系统"<<endl;cout<<"\t注意事项:";cout<<"\n\t除法结果若小数位多余两位的,四舍五入保留小数点后两位\n\n";cout<<"按任意键,进入答题"<<endl;system("pause");system("cls");}int main(){srand((unsigned)time(NULL));ShiTi t[NUMBER];double nResult[NUMBER];int fenShu=0;int count=0;int countRight=0;head();for(int i=0;i<NUMBER;i++){count=0;cout<<"第"<<i+1<<"题:";t[i].display();do{if(count!=0&&count<3)cout<<"结果错误,还有"<<3-count<<"次机会!"<<endl<<"请重新输入:"<<endl;cin>>nResult[i];count++;}while(nResult[i]!=t[i].getResult()&&count<3);if(count==3){cout<<"\n正确结果:"<<t[i].getResult()<<endl;}if(nResult[i]==t[i].getResult()){countRight++;fenShu=fenShu+5-count+1;}cout<<"*************************当前得分:"<<fenShu<<"**************************"<<endl;}cout<<"按任意键,进入测试成绩结果查看"<<endl;system("pause");system("cls");cout<<"测试成绩结果:"<<endl;for( i=0;i<NUMBER;i++){cout<<"第"<<i+1<<"题:";t[i].display();cout<<nResult[i];if(nResult[i]==t[i].getResult()){cout<<" √"<<endl;}else cout<<" ×"<<endl;}cout<<"答对题数:"<<countRight<<" 总得分:"<<fenShu<<endl;if(countRight!=NUMBER)cout<<"\t错误题目及答案:\n";for( i=0;i<NUMBER;i++){if(nResult[i]!=t[i].getResult()){cout<<"第"<<i+1<<"题:";t[i].display();cout<<t[i].getResult()<<endl;}}return 0;}7.测试(主界面及各功能模块的运行图及说明)1)初始界面2)错误结果及其处理3)测试界面4)测试成绩结果显示界面8.系统评价及展望本系统可以实现基本的试题产生及对输入结果的处理,程序运行较为完善,系统运作流畅,界面相对友好,能很容易使操作者操作自如。
C语言课程设计小学算术运算测试
C语言课程设计小学算术运算测试学号武汉理工大学华夏学院课程设计课程名称c语言课程设计题目小学算术运算测试专业电子商务班级电商1111姓名成绩_________________指导教师王绪梅2021年6月25日至2021年6月29日课程设计任务书学生姓名:专业班级:电商1111指导教师:王绪梅工作单位:汽车工程系设计题目:小学算术运算测试建议顺利完成的主要任务:1.任务描述我计划撰写小学算术运算测试程序。
建议顺利完成10以内的加减乘除运算。
能根据用户输入的想要练习的题目数自行出题。
用户输入答案后可以判断正误,并能给出算对及算错的题目数,最后计算出分数。
同时,对于用户算错的题目发出报警声,提示用户注意,同时给出正确结果。
做完一次测试后用户可决定是否继续进行下一次测试。
2.本课程牵涉的知识点变量的定义、输入和输出函数、产生随机数函数、if语句、goto语句、转义字符的采用等等。
3.要求完成的任务⑴顺利完成整个规定任务的设计及调试,且一定必须图画出来程序流程图,最后得出结论恰当结果,并经教师检查及面试;⑵写出规范的课程设计说明书;⑶课程设计结束后交设计说明书等文档和设计内容:⑷从6月25日起,学生每天至少要到设计教室半天以上;设计报告编写格式建议:设计报告的主要内容是详细写出在设计过程中所用到的主要技术或方法;课程设计报告按国际通用格式书写,具体格式要求请见资料:“课程设计说明书的书写内容与格式”时间精心安排:第一天:学生先在实验室集中,由指导教师介绍课程设计的目的、布置任务后选题;第二天-第四天:学生在实验室完成设计,经教师检查并回答提问,确认设计完成;第五天:教师在计算机上先检查设计报告、学生修改后打印提交指导教师盖章:2021年6月23日系主任签字:2021年6月23日设计过程中现场回答(或面试)记述:指导教师评语:成绩评定等级:指导教师(签名):2021年2月17日1设计题目小学算术运算测试2研发环境硬件环境:微机系列,内存在1g以上软件环境:microsoftwindowsxp3开发工具tc、win-tc或者visualc++6.04顺利完成时间2021-6-25----2021-6-295设计过程及设计步骤5.1功能设计5.1.1算法设计1、本程序实现的功能建议:利用if语句顺利完成右图的主菜单。
四则运算(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语言开发一个“小学生算术四则运算测试系统”专业____电子商务_____班级______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。
编写一个能自动生成小学四则运算题目的程序。
编写⼀个能⾃动⽣成⼩学四则运算题⽬的程序。
主要功能:运算⼩学四则运算,可以选择加减乘除以及混合运算。
设计思想:⾸先思考运算数字范围,考虑⼩学⽣的运算能⼒,然后分类运算⽅法,分为加减乘除混合运算,然后可以选择是继续做题还是退出程序,可以总结做对或者做错的题数,⽅便计算正确以及错误的题数。
源代码:#include <stdio.h>#include <ctype.h>#include <time.h>#include <stdlib.h>#include <windows.h>#define IDNO_LENGTH 6#define CALC_KIND 4char getSignal();int getResult(int,int,char);void takeTest();void falsePrint(int);void correctPrint(int);//main函数void main(){while(1){takeTest();}}//获取随机运算符char getSignal(){char signal[CALC_KIND]={'+','-','*','/'};srand((unsigned)time(NULL));return signal[rand()%4];}int random(double start, double end){return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0)); }//运算int getResult(int num1,int num2,char signal){int res;switch(signal){case '+':res=num1+num2;break;case '-':res=num1-num2;break;case '*':res=num1*num2;break;case '/':res=num1/num2;break;default:res=0;printf("运算符不符合规则\n");}return res;}//列出题⽬void takeTest(){int giveRes;int num1;int num2;char signal;int printFlag;srand((unsigned)time(NULL));signal=getSignal();if(signal=='-'){if(num1<num2){int temp;temp=num1;num1=num2;num2=temp;}}if(signal=='/'){if(num2==0){int temp;temp=num1;num1=num2;num2=temp;}}printf("%d%c%d=",num1,signal,num2);scanf("%d",&giveRes);fflush(stdin);if(getResult(num1,num2,signal)==giveRes){printFlag=random(1,5);correctPrint(printFlag);}else{printFlag=random(1,4);falsePrint(printFlag);printf("正确答案:%d\n",getResult(num1,num2,signal));//回答正确打印信息void correctPrint(int num){switch(num){case 1:printf("You're right!\n");break; case 2:printf("It's OK!\n");break;case 3:printf("Correct!\n");break;case 4:printf("Perfect!\n");break;case 5:printf("Good!\n");break;default:printf("Powerful!\n");break; }}//回答错误打印信息void falsePrint(int num){switch(num){case 1:printf("You're lost!");break; case 2:printf("Failure!");break;case 3:printf("Come on!");break;case 4:printf("It's wrong!");break;default:printf("Incorrect!");break;}感谢《百度贴吧》⼤神的帮助。
C语言课程设计-小学生算术四则运算测试系统
C语言课程设计-小学生算术四则运算测试系统#ifndef H_STUDENT_HH#define H_STUDENT_HH#include "stdio.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/ #define numsubs 5 /*学科数目*/typedef struct message_student /*结构体定义*/{char number[6];char name[20];char sex[4];float subject[numsubs];float score;float average;int index;}student;extern int numstus; /*学生数目*/extern student *pointer; /*指向结构体数组*/extern int lens;int menu_select(); /*函数声明*/int openfile(student stu[]);int findrecord(student stud[]);int writetotext(student stud[]);void welcome();void display1();void showtable();void sort(student stu[]);void deleterecord(student stu[],int i); void addrecord(student stud[]);void display(student stud[],int n1,int n2); void amendrecord(student stud[]);void count(student stud[]);void sortnum(student stud[]);void sortnum2(student stud[]);void sortname(student stud[]);void sortname2(student stud[]);void sortcount(student stud[]);void sortcount2(student stud[]);void statistic(student stud[]);void display1();#endif//#include "head.h"int menu_select(){char c;printf("\\");printf(" | 1. 增加学生记录 5.统计信息 |\"); printf(" | 2. 查询学生记录 6.打开文件 |\"); printf(" | 3. 修改学生记录 7.保存文件 |\"); printf(" | 4. 学生纪录排序 8.显示记录 |\"); printf(" | 0. 退出系统 |\");printf("\\");printf("请选择(0-8):");c=getchar();getchar();return (c-'0');}//#include "head.h"int findrecord(student stud[]) /*查找信息*/{char str[2];int i,num;if(numstus==0){printf("没有可被查找的记录\");return -1;}else{printf("以何种方式查找?\1.学号\2.姓名\3.名次\"); gets(str); if(str[0]=='1') /*按学号查找*/{printf("请输入学号:");gets(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].number)==0) {display(stud,i,i);break;}else continue;}else if(str[0]=='2') /*按姓名查找*/ {printf("请输入姓名:");gets(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].name)==0) {display(stud,i,i);break;}else continue;}else if(str[0]=='3') /*按名次查找*/ {printf("请输入名次:");scanf("%d",&num);getchar();for(i=0;i<=numstus;i++)if(num==stud[i].index){display(stud,i,i);break;}else continue;}if(i>numstus){printf("没有查找所要的信息。
(完整版)C++小学生四则运算测验(附代码和程序结果)
a=rand()%100; //rand()是一个随机函数,i=rand()%100是在0-100内取随机值赋给m
loop: b=rand()%100; //j=rand()%100是在0-100内取随机值赋给j
n=rand()%4;
switch(n)
{
case 0:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"+"<<b<<"="; t=a+b; break;
}
cout<<"最后得分为"<<score<<" ";
if (score>90) //如果总分大于90
{
cout<<"SMART!"<<endl;
}
else if (score>80) //如果总分大于80
{
cout<<"GOOD!"<<endl;
}
else if (score>70) //如果总分大于70
1.程序功能介绍
电脑随机出10道加减乘除的题(允许随机给出的数在100以内),每题总分10分,程序结束时显示学生得分及学生的等级。并且每道题学生有三次机会输入答案,当学生一次就答对是直接进入下一道题,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案最后,程序的最后给出学生的分数及其答案。
case 1:cout<<"*********第"<<i<<"题*********"<<endl;cout<<a<<"-"<<b<<"="; t=a-b; break;