当前位置:编程学习 > VB >>

求一段C++程序,300分,大家帮帮忙


1.《我猜!我猜!我猜猜猜!》游戏要求:用户希望开发一个新游戏。游戏面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

要求:

(1)只出10道题,每题10分,程序结束时显示游戏参与者得分;

(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;

(3)每道题游戏参与者有三次机会输入答案,当游戏参与者输入错误答案时,提醒游戏参与者重新输入,如果三次机会结束则输出正确答案;

(4)对于每道题,游戏参与者第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;

(5)当游戏参与者输入了正确得数后,随机显示评价结果,例如“Right!”、“Correct!”、“You got it!”、“That's the answer!”、“Bingo!”, “Gaoging!”等,若答案错误,则按照格式“No, the answer is …”输出答案。

补充:必须用C++,而且是要和我的问题要求完全相符的,如果真的写出来了,我还可以再送分的,急用,很急。。。
		
追问:恩  非常感谢。辛苦你了,不过你这个程序,倾向于只用了C++的输入输出,本质上还是C的程序。离我的要求有一定差距。。没有用到类,或者窗口界面啊。   。。。你这么辛苦,我一定会给你一定分数的,请放心,咱不缺积分。。。要是你能改进一下就更好了。。
答案:兄弟,可要采纳我呀,  写的辛苦的。  嘻嘻  

#include <iostream>
#include <time.h>
#define ADD 1
#define SUB 0 //后来发现没用上  嘻嘻
using namespace std;
//产生题目,并要求输入答案,并且返回 回答是是否正确
int RandTiMu();

int main()
{
 int  zongfenshu=0;//总分数
 //用系统时间当种子,对随机函数进行初始化
    srand( (unsigned)time( NULL ) );
    for (int i=0;i<10;++i)
    {
  switch (RandTiMu())
  {
  case 1:
             zongfenshu+=10;
   break;
  case 2:
   zongfenshu+=7;
   break;
  case 3:
   zongfenshu+=5;
   break;
  }
    }
 cout<<"你的总成绩是:"<<zongfenshu<<endl;
 return 0;
}
int RandTiMu()
{
    int ia=0,ib=0,ic=0,iFuHao;
    int num;//保存临时输入的答案
 bool bWhlie=true;//用于结束循环
 while(bWhlie)//用于随机生成题目
 {
  ia=rand()%51;
  ib=rand()%51;
  iFuHao=rand()%2;
  if(iFuHao==ADD)//加法
           ic=ia+ib;
  else //减法
     ic=ia-ib;
  if (ic>=0&&ic<=50)
    bWhlie=false;
 }
 for (int i=1;i<4;++i)
 {
  cout<<"请输入算式  "<<ia<<(iFuHao?'+':'-')<<ib<<"=  的答案:";
  cin>>num;
  if (num==ic)
  {
   switch (rand()%6)
   {
   case 0:
     cout<<"Right!"<<endl;
    break;
   case 1:
    cout<<"Correct!"<<endl;
    break;
   case 2:
    cout<<"You got it!"<<endl;
    break;
   case 3:
    cout<<"That's the answer!"<<endl;
    break;
   case 4:
    cout<<"Bingo!"<<endl;
    break;
   case 5:
    cout<<"Gaoging!"<<endl;
    break;
   }
   return i;
  }
  else if(i!=3)
  {
   cout<<"你小子要加油啦,请重新输入答案."<<endl;
  }
  else
  {
     cout<<"算式 "<<ia<<(iFuHao?'+':'-')<<ib<<"= 正确的答案是"<<ic<<endl;
     cout<<"你已经错过3次机会了,请回答下题。"<<endl;
  }
 }

 return 0;
}

控制台程序还是窗体程序。
光那两个++都很头疼了,用MFC可以实现,,,MFC刚学,,如果用VB的话就很简单,,300分,可忘而不可及,唉

#include "stdio.h"
#include "stdlib.h"
#include "time.h"

void getQuestion(int *a,int *b,char *c)  { //获取题目,a为第一个操作数,b为第二个操作数,c为操作符
 time_t t;//用于获取系统时间
 int c1,r;//用于确定运算符号
 srand((unsigned)time(&t));//取得系统时间,并将其转换为随机数序列的最小起点
 while(1)  {
  *a = rand()%50;//随机产生1个50以内的整数给a
  *b = rand()%50;//随机产生1个50以内的整数给b
  c1 = rand()%4;//随机产生1个4以内的整数给c1,由c1的奇偶性决定运算法
            //c1为偶数则运算法为加法,c1为奇数为减法(也可以设c1为奇数为加法)
  if(c1%2 == 0) *c = '+';
  else *c = '-';
  //计算运算结果
  if(*c == '+') r = *a + *b;
  else r = *a - *b;
  if(r >= 0 && r <= 50)  break; //运算结果在0--50以内则合法。
 }
}

 void display(int score)  {//输出总成绩等级
  printf("\n\n\n实际得分:%d\n\n",score);
  if(score >= 90) printf("\n\n\n             聪明!\n\n");
  else if(score < 90 && score >= 80) printf("\n\n\n             很好!\n\n");
  else if(score < 80 && score >= 70) printf("\n\n\n             好!\n\n");
  else if(score <70 && score >= 60) printf("\n\n\n             及格。\n\n");
  else printf("\n\n\n             再来一次。\n\n"); 
 }

void main() {
 int a,b;//用于存放两个操作数
    int r;//用于存储答题结果
    int i,n;
    int score;//记录得分
    char c;//用于存放运算符
    score = 0;
    for(i = 0;i < 10;i++) {
        getQuestion(&a,&b,&c);//随机产生题目
        n = 0;//记录回答同一问题的次数
        while(1) {
   printf("%d %c %d = ",a,c,b);
   scanf("%d",&r);//回答问题
   n++;
   if(n == 3) break;//回答次数超过3次转到下一题
   if(c == '+')  { //加法运算
    if((a + b) == r)  { //回答正确
     printf("√\n");
     if(n == 1) {
      score = score + 10;
      break;
     }
     else if(n == 2) {
      score = score + 7;
      break;
     }
     else if(n == 3) {
      score = score + 5;
      break;
     }
    }
    else printf("错了,再来一遍。\n");
   }
   else  { //减法运算
    if((a - b) == r) { //回答正确
     printf("√\n");
     if(n == 1) {
      score = score + 10;
      break;
     }
     else if(n == 2) {
      score = score + 7;
      break;
     }
     else if(n == 3) {
      score = score + 5;
      break;
     }
    }
    else printf("错了,再来一遍。\n");
   }
  }
  //答完1题输出正确答案
  if(n == 3) {
   if(c == '+') printf("正确答案:%d\n",a+b);
   else printf("正确答案:%d\n",a-b);
  }
  
 }
 display(score);//显示得分等级  
}

该代码在VC环境下编译运行。

VB 可以写吗

上一个:有VB程序编辑器吗?
下一个:怎样才能学好VB程序?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,