首页 > 编程语言 >四则运算练习&竞赛系统(结对编程)

四则运算练习&竞赛系统(结对编程)

时间:2023-04-12 23:37:13浏览次数:27  
标签:结对 编程 cout int 四则运算 系统 100

四则运算练习&竞赛系统(结对编程)

伙伴:2152334

项目要求

小学老师要每周给同学出300道四则运算练习题
一或两个运算符(a+b或a+b+c), 100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0..100之间
尽可能地多设置一些条件。
请两位同学以结对编码(一个同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验,并把程序、运算结果、博客体会等截屏发到其中一位同学的博客上,并在博客中体现另一位同学的学号(仅学号不体现姓名)


增添功能:

  • 系统分为练习系统和竞赛系统
  • 练习系统更方便同学自己控制练习题数目,也方便老师控制练习题数目
  • 竞赛系统还有计时系统,用来限制完成的时间
  • 两个系统都有计分功能,用户可以实时了解到自己的目前得分
  • 在练习系统内,用户答错题目时可以知道题目的正确答案,而竞赛系统则不行

实现代码(点击下面按钮查看完整项目代码)

点击查看代码

#include<bitsdc++.h>
#include<windows.h>
using namespace std;

int a,b,c;
int ans;
int p;
int cnt;
int score=0;

void practise(){
        system("cls");
	cout<<"欢迎使用波涛四则运算练习系统!"<<endl<<endl;
	cout<<"请输入需要练习的题目数:"<<endl;
	cin>>cnt;
	system("cls");
	cout<<"欢迎使用波涛四则运算练习系统!"<<endl;
	cout<<"习题还有3秒到达屏幕,请做好准备!"<<endl;
	cout<<"loading..";
	for(int i=1;i<=10;i++){
		Sleep(300);
		cout<<".";
	}
	while(cnt--){
		system("cls");
		cout<<"欢迎使用波涛四则运算练习系统!"<<endl;
		cout<<endl<<"你当前的分数为"<<score<<endl;
		cout<<endl<<"剩余习题数:"<<cnt<<endl<<endl; 
		srand(time(NULL));
		while(1){
			a=rand()%99+1;
			b=rand()%100;
			p=rand()%4+1;
			switch(p){
				case 1:
					ans=a+b;
					break;
				case 2:
					ans=a-b;
					break;
				case 3:
					ans=a*b;
					break;
				case 4:
					ans=rand()%14+1;
					b=rand()%7+1;
					a=ans*b;
			}
			if(ans<0||ans>=100) continue;
			
			else{
				cout<<a<<(p==1?'+':(p==2?'-':(p==3)?'*':'/'))<<b<<"=";
				double in;
				cin>>in;
				if(in==ans) {
					score++;
					cout<<"回答正确!"<<endl;
					system("pause");
				}
				else{
					cout<<"答案错误QAQ"<<endl; 
					cout<<"正确答案为:"<<ans<<endl;
					system("pause");
				}
				break;
			}
		}
		if(cnt==0) {
			system("cls");
			cout<<endl<<"你最终得分为"<<score<<"分"<<endl;
			system("pause");
		}
	}
}

void contest(){
	clock_t begin ,end;
	system("cls");
	cout<<"欢迎使用波涛四则运算竞赛系统!"<<endl<<endl;
	cout<<"请在15分钟内完成100道,祝你好运!"<<endl;
	cnt=100;
	cout<<endl<<"题目还有5秒到达屏幕,请做好准备!"<<endl;
	cout<<"loading..";
	for(int i=1;i<=10;i++){
		Sleep(500);
		cout<<".";
	}
	begin=clock();
	while(cnt--){
		system("cls");
		cout<<"欢迎使用波涛四则运算竞赛系统!"<<endl;
		cout<<endl<<"你当前的分数为"<<score<<endl;
		cout<<endl<<"剩余习题数:"<<cnt<<endl<<endl; 
		srand(time(NULL));
		while(1){
			a=rand()%99+1;
			b=rand()%100;
			p=rand()%4+1;
			switch(p){
				case 1:
					ans=a+b;
					break;
				case 2:
					ans=a-b;
					break;
				case 3:
					ans=a*b;
					break;
				case 4:
					ans=rand()%14+1;
					b=rand()%7+1;
					a=ans*b;
			}
			if(ans<0||ans>=100) continue;
			
			else{
				cout<<a<<(p==1?'+':(p==2?'-':(p==3)?'*':'/'))<<b<<"=";
				
				double in;
				cin>>in;
				if(in==ans) {
					score++;
					cout<<"回答正确!"<<endl;
					system("pause");
				}
				else{
					cout<<"答案错误QAQ"<<endl; 
//					cout<<"正确答案为:"<<ans<<endl;
					system("pause");
				}
				break;
			}
		}
		if(cnt==0) {
			system("cls");
			end=clock();
			cout<<endl<<"你最终得分为"<<score<<"分"<<endl;
			cout<<"你最终耗时"<<(end-begin)/1000<<"秒"<<endl;
			if(end-begin>=900000) cout<<"超时!请继续努力"<<endl;
			else cout<<"成功在规定时间内完成,请继续加油!"<<endl; 
			system("pause");
		}
	}
}

int main()
{
	cout<<"欢迎使用波涛四则运算系统!"<<endl;
	cout<<"1.练习系统"<<endl<<"2.竞赛系统"<< endl<<"请选择使用的功能(输入1或2):"<<endl;
	int op1;
	cin>>op1;
	if(op1==1) practise();
	else contest();
	return 0;
 } 

功能截图

  1. 目录界面:

  1. 练习系统





  1. 竞赛系统






实现方法

  • 随机出题

    使用随机数函数分别产生两个运算数和一个运算符数(1代表‘+’、2代表‘-’等),并且用%运算保证在100以内产生计算数。

  • 判断对错

    系统在出题后会自动计算出所出题目的答案,如果算出来答案不符合要求(0~100)则不输出并且重新生成新的题目。算出来的答案将与用户输入的输入相比较,相等则分数加一,不等则分数不变。

  • 计算时间

    利用clock()函数来获取用户开始答题和结束答题的时间,并判断是否超过规定时间,超过了则成绩无效,未超过则有效。


总结

这次结对编程让我们了解到这种编程模式的优越之处,它能够降低我们的代码出错率,并能够增加代码的编辑效率。未来我们也许会将这种编程方法应用于更多的项目开发过程中。

标签:结对,编程,cout,int,四则运算,系统,100
From: https://www.cnblogs.com/waibiwaibii/p/17311861.html

相关文章

  • IDL编程语言的代码,打开文件、读文件、写文件
    proread_write_file,filename,output_filename;打开输入文件openr,1,filename,/get_lun;读取文件内容content=''while(noteof(1))dobeginline=''readf,1,linecontent=strjoin([content,line......
  • 编程打卡:C语言趣味编程习题做
    编程打卡:C语言趣味编程习题做百钱百鸡问题问题描述一只Cock卖5钱,Hen卖3钱,chicken卖0.33333333钱,真正工作的时候不要用浮点数存钱啊笨蛋!然后100钱买了100只鸡,问各买了多少只。设计思路解不定方程,穷举。两层循环遍历各种鸡的个数,第三种鸡可以直接相减得出结果,然后判......
  • Java并发编程的艺术
    回复并发编程的艺术即可获取《Java并发编程的艺术》正是为了解决这个问题而写的。书中采用循序渐进的讲解方式,从并发编程的底层实现机制入手,逐步介绍了在设计Java并发程序时各种重要的技术、设计模式与应用,同时辅以丰富的示例代码,使得开发人员能够更快地领悟Java并发编程的要领,围绕......
  • Vue.js 编程式路由导航
    视频>router-link最后会转成标签,有时候页面不是a标签就不能用router-link来写9.编程式路由导航作用:不借助<router-link>实现路由跳转,让路由跳转更加灵活具体编码://$router的两个APIthis.$router.push({ name:'xiangqing', params:{ id:xxx, title:xxx ......
  • 结对编程---四则运算
    目录一、实验目的二、实验内容三、实验代码四、实验结果五、实验心得一、实验目的通过两位同学组队用结对编码(两位位同学轮流coding,另一个同学在旁边审核代码)的方式完成本次实验。本次实验需要设计一个四则运算练习题的随机出题程序,可以通过C/C++/Java/Python等语言进......
  • Nvidia Tensor Core-WMMA API编程入门
    1WMMA(Warp-levelMatrixMultiplyAccumulate)API对于计算能力在7.0及以上的CUDA设备,可以使用CUDAC++API调用TensorCore,支持形如D=AB+C的混合精度的矩阵乘运算。template<typenameUse,intm,intn,intk,typenameT,typenameLayout=void>classfragment;......
  • 结对编程
    21522012157132·关于结对编程 结对编程(Pairprogramming)来自于极端编程XP(eXtremeProgramming),是它的十二个最佳实践之一。顾名思义,结对编程就是两个程序员坐在一起,结对进行代码开发。在极限编程中,所有的软件产品都是由两个程序员并排坐在一起,在同一台机器上共同完成的。关......
  • 【JAVA】四则运算计算题生成及完成情况分析程序
    第七周结对编程任务为给出一个300道四则运算计算题并能够完成和检查答案是否正确,我(2152113)邀请到了我计科专业的舍友(2152123)与我一同组队,编程语言选择了我们都较为熟悉的JAVA。代码初现先由我来进行了计算题生产器的代码编写代码如下importjava.util.Random;publicclass......
  • 编程语言和编程工具
    使用过的语言:C、C++、Java、PythonC语言的优势:C语言编写的代码效率高,运行速度快。C语言的语法和功能简单,易于学习和理解。C语言具有很高的可移植性,可以在多种不同的平台上运行。C++语言的优势:C++语言是一种强类型的面向对象编程语言,可以方便地进行模块化的设计和开发。C......
  • CodeGeeX论文发表:揭秘AI辅助编程工具背后的大模型
    近日,CodeGeeX模型迭代v1.5版本上线,用户反馈模型效果和使用效率较之前有大幅提升。恰逢CodeGeeX团队在arxiv上发布了论文,详细介绍了CodeGeeXAI编程辅助工具背后的代码生成大模型的架构、训练过程及推理加速等工作。今天我们对这篇论文的核心信息进行解读,让更多的开发者了解Cod......