C++ 定时计算/*麻烦看下怎么加东西,让程序可以定时结束*/

梦想一米七八 2018-09-19 01:15:52
#include <iostream>
#include "stdlib.h"
#define MAX 100
#include "time.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
char suanfa(int n){
switch(n){
case 0:return '+';
case 1:return '-';
case 2:return '*';
case 3:return '/';
}
}
int main(int argc, char** argv) {
time_t tt = time(NULL);
tm* t= localtime(&tt);
printf("%d-%02d-%02d %02d:%02d:%02d\n", //得到当前时间
t->tm_year + 1900,
t->tm_mon + 1,
t->tm_mday,
t->tm_hour,
t->tm_min,
t->tm_sec);

srand((unsigned)time(NULL));//随机题目不重复
int number1,number2;int i;int count=0;
float user_answer,right_answer;
int operators;
for(i=1;i<=MAX;i++){
number1=rand()%100;
number2=rand()%100;
operators=rand()%4;
cout<<i<<":"<<number1<<suanfa(operators)<<number2<<"=";
cin>>user_answer;
switch(operators){
case 0:right_answer=number1+number2;break;
case 1:right_answer=number1-number2;break;
case 2:right_answer=number1*number2;break;
case 3:right_answer=number1/number2;break;
}
if(right_answer==user_answer){
cout<<"you are right."<<endl;
count++;
}
else
cout<<"you are wrong."<<endl;
}


cout<<count<<"/"<<(i-1);/*准确率*/
return 0;
}
...全文
155 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
@风轻云淡_ 2018-09-19
  • 打赏
  • 举报
回复
你既然已经获取到了当前时间,加个循环,让时间作为循环的唯一出口,比如多少分钟后程序结束,或者哪个时刻程序结束不就可以了吗。而至于需要把哪些代码放到循环里面,哪些在外面,相信你自己可以做好。
赵4老师 2018-09-19
  • 打赏
  • 举报
回复
#include <iostream>
#include "stdlib.h"
#define MAX 10
#include "time.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
char suanfa(int n) {
switch(n) {
case 0:return '+';
case 1:return '-';
case 2:return '*';
case 3:return '/';
}
}
int main(int argc, char** argv) {
time_t tt = time(NULL),te=tt+60;
tm* t= localtime(&tt);
printf("%d-%02d-%02d %02d:%02d:%02d\n", //得到当前时间
t->tm_year + 1900,
t->tm_mon + 1,
t->tm_mday,
t->tm_hour,
t->tm_min,
t->tm_sec);

srand((unsigned)time(NULL));//随机题目不重复
int number1,number2;int i;int count=0;
float user_answer,right_answer;
int operators;
int td;
for(i=1;i<=MAX;i++) {
number1=rand()%100;
number2=rand()%100;
operators=rand()%4;
td=int(te-time(NULL));
if (td>0) {
cout<<"You have "<<td<<" second(s)!"<<endl;
} else {
cout<<"60s timeover!"<<endl;
break;
}
cout<<i<<":"<<number1<<suanfa(operators)<<number2<<"=";
cin>>user_answer;
if (time(NULL)>te) {
cout<<"60s timeover!"<<endl;
break;
}
switch(operators) {
case 0:right_answer=number1+number2;break;
case 1:right_answer=number1-number2;break;
case 2:right_answer=number1*number2;break;
case 3:right_answer=number1/number2;break;
}
if(right_answer==user_answer) {
cout<<"you are right."<<endl;
count++;
} else
cout<<"you are wrong."<<endl;
}


cout<<count<<"/"<<(i-1);/*准确率*/
return 0;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧