早教吧 育儿知识 作业答案 考试题库 百科 知识分享

小学生测验2.课题说明:向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生作答。基本功能:电脑随机出10道题,每题10分,程序结束时显示学生得分;确保算

题目详情
小学生测验 2. 课题说明:向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生作答。
基本功能:
 电脑随机出10道题,每题10分,程序结束时显示学生得分;
 确保算式没有超出1~2年级水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
 每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
 对于每道题目,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
 总成绩90分以上现实“SMART”,80~90分显示“GOOD”,70~80分显示“OK”,60~70分显示“PASS”,60分以下显示“TRY AGAIN”。
▼优质解答
答案和解析
//原创代码,欢迎参考,编译环境:devcpp 4.9.9.2
//添加了一些头文件,楼主可以再编译试试
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std ;
const string outInfo[13] = {
"欢迎使用上机评测系统,请依提示操作,要退出系统,请输入\"exit\"\n\n" ,
"当前是第 " ,
" 题,您还有 " ,
" 次机会:\n" ,
"您已经选择退出,您的当前得分是: " ,
"\n系统即将退出,请再接再厉..." ,
"恭喜您回答正确,请继续回答下一题..\n\n" ,
"您的回答错误,请继续尝试..\n\n" ,
"您第 " ,
" 题的得分是 : " ,
" 。\n" ,
"您的总得分是 : " ,
" 。\n\n"
} ;
const string resultInfo[5] = {
"TRY AGAIN\n" ,
"PASS\n" ,
"OK\n" ,
"GOOD\n" ,
"SMART\n"
} ;
const int scoreGet[4] = {0 , 5 , 7 , 10} ;
int scoreEveryProblem[10] ;
int main() {
srand((unsigned)time(NULL)) ;
string inputInfo ;
cout << outInfo[0] ;
int score = 0 ;
for(int problemNumber = 1 ; problemNumber <= 10 ; problemNumber++) {
int res = rand() % 51 ;
int pa = rand() % (res + 1) ;
int pb = res - pa ;
bool op = rand() % 2 ;
if(op) swap(res , pa) ;

for(int tryTime = 3 ; tryTime >= 1 ; tryTime--) {
cout << outInfo[1] << problemNumber << outInfo[2]
<< tryTime << outInfo[3] ;
cout << pa << (op ? " - " : " + ") << pb << " = " ;
cin >> inputInfo ;
if(inputInfo.substr(0 , 4) == "exit") {
system("cls") ;
cout << outInfo[4] << score << outInfo[5] ;
for(int t = 0 ; t < 1000000000 ; t++) ;
return 0 ;
}
else {
int ans ;
sscanf(inputInfo.c_str() , "%d" , &ans) ;
if(ans == res) {
cout << outInfo[6] ;
score += scoreGet[tryTime] ;
scoreEveryProblem[problemNumber - 1] = scoreGet[tryTime] ;
break ;
}
else if(tryTime > 1) {
cout << outInfo[7] ;
}
else {
cout << pa << (op ? " - " : " + ") << pb << " = " << res << "\n\n" ;
}
}
}
}
for(int i = 0 ; i < 10 ; i++) {
cout << outInfo[8] << (i + 1) << outInfo[9]
<< scoreEveryProblem[i] << outInfo[10] ;
}
cout << outInfo[11] << score << outInfo[12] ;
cout << resultInfo[min(4 , max(0 , (score - 50) / 10))] << endl ;
system("pause") ;
return 0 ;
}
看了小学生测验2.课题说明:向小学...的网友还看了以下:

将直线方程x+3y=2化为复数形式方程,有没有会的?大二新开了个课,选修,没课本,老师在黑板上写了  2020-06-11 …

课程绩点,用英语怎么说,高手请进。没问GPA,只问单科的平均学分绩点=∑(课程绩点×课程学分)/∑  2020-06-12 …

公务员考试行测;数学某工厂有100名工人报名参加了4项专业技能课程中的一项或多项某工厂有100名工  2020-06-12 …

英语翻译比较口语:我可以上你的课吗?我非常喜欢这个课程而且我只需要旁听,不需要学分.我想提高我的口  2020-06-13 …

新东方听说风暴训练营、听说特训和外教精品班那个比较好?已经保送北大,想快速提高英语口语表达能力.新  2020-06-14 …

设有学生-课程关系数据库,它由三个关系组成。它们的模式是:学生S(学号S#,姓名SN,所在系SD,  2020-07-23 …

配对阅读.左栏是对五位学生英语技能情况的描述,右栏是马丁英语培训中心七个课程的简介,请为左栏的每位  2020-07-25 …

请问考ACCA必须循序渐进吗?我的意思是比如没考过F1-3的基础课程能不能报考后面的F6,7,8等课  2020-11-06 …

你们现在上的这是什么课程?〔我用英文问一个正在听课的学生,请问怎么说,〕还有,你对这个课程感兴趣..  2020-11-28 …

六、课程内容:结合小学一年级学生特点和对学校资源的评估,以“阳光好孩子”为主题,课程内容分为介绍课和  2020-11-28 …