| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3723 人关注过本帖
标题:求救--VC++基本程序代码
只看楼主 加入收藏
界水乘风
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-24 17:08
maxsss126
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-6-23
收藏
得分:0 
C++
我们学的就是C++啊
可是 我们用的却是VC6.0啊
我以为VC就和C++一样
…………
现在在忙碌ing
很烦恼ing
……
整个世界都在转了
2008-06-24 17:11
maxsss126
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-6-23
收藏
得分:0 
又是悲伤事
刚刚得到的新消息:老师说了连递归语句也不能用……
晕了……
还让人活吗
继续重来吧
2008-06-24 17:58
Dray8888
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-6-4
收藏
得分:0 
#include <iostream.h>
#include <time.h>  //取当前时间作为随机数的种子
#incluee <stdlib.h>
void main()
{
  int select;
  cout<<"*************************************\n";
  cout<<"      小学生四则运算练习系统         \n";
  cout<<"              1--加法练习            \n";
  cout<<"              2--减法练习            \n";
  cout<<"              3--乘法练习            \n";
  cout<<"              4--除法练习            \n";
  cout<<"              0--退出                \n";
  cout<<"请选择(0--4):";
  while(true)
  {
    cin>>select;
    switch(select)
    {
      case 1:
        addition();
        continue;
      case 2:
        subtract();
        continue;
      case 3:
        multiplication();
        continue;
      case 4:
        division();
        continue;
      case 0:
        break;
    }
  }
}

void  addition()
{
  int a,b,result,input,trycount; //被加数,加数,正确结果,输入的结果,测试次数
  trycount = 0;
  srand((unsigned int)time(NULL)); //初始化随机数种子
  a = rand() % 100 + 1; //被加数,1到100之间的一个整数
  b = rand() % 100 + 1; //加数,1到100之间的一个整数
  result = a + b;
  cout<<"请你输入"<<a<<"+"<<b<<"=?的结果\n";
  cin>>input;
  while(trycount <= 3)               //只能猜三次,控制循环
  {
    if(input == result)              //当答对时的判断
    {
      switch(trycount)
      {
        case 0:
          cout<<"正确,你真聪明!";
          break;
        case 1:
          cout<<"正确,继续保持!";
          break;
        case 2:
          cout<<"正确,加油!";
          break;
      }
    }
    else                             //当答错时的判断
    {
      trycount++;
      switch(trycount)
      {
        case 1:
          cout<<"不正确,再想一想,你还有两次机会。";
          cin>>input;
          continue;
        case 2:
          cout<<"不正确,不要着急,要把握住最后一次机会喔!";
          cin>>input;
          continue;
        case 3:
          cout<<"不正确,要加强练习喔!正确答案为"<<result;
          break;
      }
    }
  }

  char g;
  cout<<"是否继续练习(Y/N)";
  cin>>g;
  if('Y' == g || 'y' == g) addition(); //递归调用自己继续做题
  else return; //否则返回
}
2008-06-25 10:46
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
我建议你把老师抽一顿,不识货的家伙该打

我小学的时候写过这玩意,当时是用的GWBasic(小霸王学习机上的玩意儿),那个上面压根儿就没有这么多控制语句,连switch和子程序都没有,子程序就是GOSUB和RETURN,连递归都不允许,面对这种东西只能满程序的goto,哈哈~~~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 12:59
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
再顺便说一下,现在再看这程序,可以写得很简单,用一个函数处理运算,一个函数处理算式生成,UI直接放主函数处理,菜单啥的用宏得了,主函数一个用getchar做循环条件的循环语句……加起来三十行应该能解决吧……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 13:01
maxsss126
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-6-23
收藏
得分:0 
好了 ,麻烦大家指导下
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

double addition ();
double subtract ();
double multiplication ();
double division ();

double main()
{
  cout<<"*************************************"<<endl;
  cout<<"       小学生四则运算练习系统        "<<endl;
  cout<<"*************************************"<<endl;
  cout<<"            1--加法练习              "<<endl;
  cout<<"            2--减法练习              "<<endl;
  cout<<"            3--乘法练习              "<<endl;
  cout<<"            4--除法练习              "<<endl;
  cout<<"            0--退出                  "<<endl;
  cout<<" 请选择 (0--4): "<<endl;
  char x;
  cin>>x;
  if (x=='1')
  {
      cout<<"您选择了加法练习: "<<endl;
      addition ( );
  }
  if (x=='2')
  {
      cout<<"您选择了减法练习:"<<endl;
      subtract ();
  }

  if (x=='3')
  {
      cout<<"您选择了乘法练习: "<<endl;
      multiplication ();
  }
  if (x=='4')
  {
      cout<<"您选择了除法练习:"<<endl;
      division ();
  }
  if (x=='0')
  {
      exit (1);
  }    
  else
  {
      cout<<"请选择 (0--4)"<<endl;
      return main();
  }
}


double addition ()
{
    double a,b,c,s;
    srand (time(NULL));
    a=rand ()%100;
    b=rand ()%100;
    cout<<a<<"+"<<b<<"="<<endl;
    s=a+b;
    cout<<"请输入计算结果:"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,你真聪明!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return addition ();
    }
    else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,继续保持!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return addition ();
    }
    else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,加油!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return addition ();
    }
    else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
    cout<<"是否要继续练习? (Y/N)"<<endl;
    char z;
    cin>>z;
    if (z=='n'||z=='N')
    {
        return main ();
    }
    else
        return addition ();
}
double subtract ()
{
    double a,b,c,s;
    srand (time(NULL));
    a=rand ()%100;
    b=rand ()%100;
    cout<<a<<"-"<<b<<"="<<endl;
    s=a-b;
    cout<<"请输入计算结果:"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,你真聪明!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return subtract ();
    }
    else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,继续保持!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return subtract ();
    }
    else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,加油!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return subtract ();
    }
    else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
    cout<<"是否要继续练习? (Y/N)"<<endl;
    char z;
    cin>>z;
    if (z=='n'||z=='N')
    {
        return main ();
    }
    else
        return subtract ();
}

double multiplication ()
{
    double a,b,c,s;
    srand (time(NULL));
    a=rand ()%100;
    b=rand ()%100;
    cout<<a<<"*"<<b<<"="<<endl;
    s=a*b;
    cout<<"请输入计算结果:"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,你真聪明!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return multiplication ();
    }
    else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,继续保持!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
 
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return multiplication ();
    }
    else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,加油!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return multiplication ();
    }
    else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
    cout<<"是否要继续练习? (Y/N)"<<endl;
    char z;
    cin>>z;

    if (z=='n'||z=='N')
    {
        return main ();
    }
    else
        return multiplication ();
}


double division ()
{
    double a,b,c,s;
    cout<<"你选择了除法练习(结果四舍五入,保留两位小数)"<<endl;
    do
    {
        srand (time(NULL));
        a=rand ()%100;
        b=rand ()%100;
    }
    while (b==0);
    cout<<a<<"/"<<b<<"="<<endl;
    s=a/b;
 
    cout<<"请输入计算结果:"<<endl;
    s=int(s*100.0+0.5)/100.00;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,你真聪明!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return division ();
    }
    else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,继续保持!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return division ();
    }
    else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
    cin>>c;
    if (s==c)
    {
        cout<<"正确,加油!"<<endl;
        cout<<"是否要继续练习? (Y/N)"<<endl;
        char z;
        cin>>z;
        if (z=='n'||z=='N')
        {
            return main ();
        }
        else
            return division ();
    }
    else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
    cout<<"是否要继续练习? (Y/N)"<<endl;
    char z;
    cin>>z;
    if (z=='n'||z=='N')
    {
        return main ();
    }
    else
        return division ();
}




长是长了点  但水平有限
有地方什么能改进的  有什么要提问的
有什么地方有错的  
请大家多多指导啊
谢谢大家的 支持
努力  努力……
2008-06-25 13:19
爱喝牛奶的猫咪
Rank: 1
来 自:QQ群46520219
等 级:禁止访问
帖 子:513
专家分:0
注 册:2008-6-16
收藏
得分:0 
代码冗余太大


[color=white]<" border="0" />>
2008-06-25 13:21
界水乘风
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-25 13:21
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
你看你的程序里面重复的地方
可以用函数/宏来“归纳”出来吗?
这样代码会短一些

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-25 13:25
快速回复:求救--VC++基本程序代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042591 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved