第十周(3)小学生数学考试系统
来源:互联网 发布:各种网络协议的区别 编辑:程序博客网 时间:2024/04/29 20:57
*\
烟台大学计算机与控制工程学院
All rights reserved.
作者:汪莹莉
完成日期:2016年11月14日
问题描述:
1.做一个小学生考试系统,功能包括:(1)利用随机数出10道加法题;(2)小学生用户答题给出每道题的答案;(3)对小学生的答题进行评判;(4)计算出小学生答题正确率。
2. 进一步改进,提高题目质量。要求(1)百以内算术:运算数、结果都在100以内!(2)先随机产生运算符后,针对各个运算产生运算数保证下列要求:对加法,两数之和保证不大于100;对减法,被减数大于减数,且被减数不大于100;对乘法:两数之积不超过100;对除法:被除数大于除数,且被除数不大于100,除数不许为0。
3. 建立一个文件,里面包含人工出好的题目。程序从文件中读取题目。
程序:
#include <stdio.h>#include <stdlib.h>#include <time.h>int main (){ int sum=0;//答对的数目 int i; int a,b,f,e;//a,b为运算时的两个数 int c;//f=0为加,f=1为减,f=2为乘,f=3为除 srand(time(0));//产生随机数 for(i=0;i<10;i++) { printf("这是第%d道题",i+1); c=rand()%4;//表示0-4四个数,分别代表着加减乘除 do { a=rand()%100+1;//a为1-100之间的数 b=rand()%100+1; if(a<b&&(c==1||c==3)) { f=a; a=b; b=f; } if(c==3) a=(a/b)*b;//调整被除数,保证能够整除 } while((a+b)>=100||a*b>=100); switch(c) { case 0://加法 f=a+b; printf("%d+%d=",a,b); break; case 1://减法 f=a-b; printf("%d-%d=",a,b); break; case 2://乘法 f=a*b; printf("%d*%d=",a,b); break; case 3://除法 f=a/b; printf("%d/%d=",a,b); break; } scanf("%d",&e); if(f==e) { printf("回答正确!\n"); sum++; } else printf("回答错误!\n"); } printf("共回答正确%d道题",sum); return 0; }运行结果:
知识点总结:srand(time(0))产生随机数,a=rand()%100+1;表示1-100的随机数。对于加法和乘法不超过100的程序不太明白为何要用while((a+b)>=100||a*b>=100)也有了新的认识。
学习心得:利用switch语句使得麻烦的问题简单化,只是简单的罗列即可
0 0
- 第十周(3)小学生数学考试系统
- 第十周-小学生数学考试系统
- 第十周—小学生数学考试系统2
- 第十周—C语言 小学生数学考试系统
- 第十周课后作业——小学生数学考试系统
- 第十周 项目三-小学生数学考试系统
- 第十周项目三——小学生数学考试系统(1)
- 第十周项目三——小学生数学考试系统(2)
- 小学生数学考试系统
- 小学生数学考试系统
- 第十周 项目三 小学生考试系统
- 第十周 小学生简单加法考试系统
- 第九周 小学生数学考试系统
- 第九周 小学生数学考试系统
- 第十九周— 小学生数学考试系统
- 小学生数学考试系统(实现基本功能)
- 第十周项目三改进小学生考试系统
- 第十周 小学生百以内算术考试系统
- Django模板中常用过滤器(filter)
- recyclerView调用notifyItemChanged导致屏幕闪烁的问题
- STM32F030 Nucleo-开发前要做的事
- 关于container_of和list_for_each_entry 及其相关函数的分析
- [ 备战NOIP2016 ] 斐波那契数列
- 第十周(3)小学生数学考试系统
- C++ 类关键字public、protected、private区别
- CSS3 基础(012_Box Sizing)
- 3.IPC 机制(一)
- laravel 发邮件 qq配置
- runtime之@dynamic属性
- 自动分配座位
- startActivityForResult的使用
- 基于Socket的UDP和TCP编程介绍