第二次作业(四则运算)

-题目:
      请编写一个能自动生成小学四则运算题目的 “软件”。
      让程序能接受用户输入答案,并判定对错。
      最后给出总共 对/错 的数量。

-需求分析

     便于初涉四则运算的学生的加强锻炼,通过大量的四则运算练习达到熟练地效果。

-基本要求:

     根据需要选择计算类型(加*、减-、乘*、除/)

     自己计算出答案,若果答案错误,系统将予以提示错误,并提示重做若答案正确则提示很好

     统计出所答对的题目个数

  -具体设计:

    算法较为简单,代码中已给出叫为详细的注释

 

  -代码:

          #include<stdio.h>
#include<stdlib.h>  //包含rand,srand函数
#include<time.h>   //用于计时
float again_chu(int m,int n,int j)   /*除法重做函数,当结果小于0.001时重新取数*/

{
 float i,b;
 m=rand()%100;n=rand()%99+1;    //取小于100的随机数,n大于0
 b=(int)(1000*m/(float)n)/1000.0;  //取结果b小数点后三位
 if(b>0)      //结果大于零时继续,否则重新执行again函数
 

 {
  

printf("%d/%d=",m,n);scanf("%f",&i);
  if(i==b){printf("答案正确,很好!\n");j++;

}
     else printf("答案错误,重做\n");
   }

else again_chu(m,n,j);
      return 0;
}
int jia(int m,int n)  //加法函数
{
 int i,j=0,k;  //j用于记录正确题数
    srand(time(0));  //获得随机数种子,time(0)用于获取当前时间
 for(k=0;k<5;k++)
 {
  m=rand()%100;n=rand()%100;
  printf("%d+%d=",m,n);scanf("%d",&i);
  if(i==(m+n)){printf("答案正确,很好!\n");j++;}
     else printf("答案错误,重做\n");
 }printf("做对了%d个\n",j);
 return 0;
}
int jian(int m,int n)  //减法函数
{
 int i,j=0,k;
    srand(time(0));
 for(k=0;k<5;k++)
 {
  m=rand()%100;n=rand()%100;
printf("%d-%d=",m,n);scanf("%d",&i);
  if(i==(m-n)){printf("答案正确,很好!\n");j++;}
     else printf("答案错误,重做\n");
 }printf("做对了%d个\n",j);
 return 0;
}
int cheng(int m,int n)  //乘法函数
{
 int i,j=0,k;
    srand(time(0));
 for(k=0;k<5;k++)
 {
  m=rand()%100;n=rand()%100;
  printf("%d*%d=",m,n);scanf("%d",&i);
  if(i==(m*n)){printf("答案正确,很好!\n");j++;}
     else printf("答案错误,重做\n");
 }printf("做对了%d个\n",j);
 return 0;
}                       
float chu(int m,int n)  //除法函数
{
 int j=0,k;float i,b;
    srand(time(0));
 printf("用去尾法取小数点后三位:如1/6=0.166\n");
 for(k=0;k<5;k++)
 { 
  m=rand()%100;n=rand()%99+1;
     b=(int)(1000*m/(float)n)/1000.0;
     if(b>0)
  {
   printf("%d/%d=",m,n);scanf("%f",&i);
      if(i==b){printf("答案正确,很好!\n");j++;}
         else printf("答案错误,重做\n");
  }
  else again_chu(m,n,j);
 }printf("做对了%d个\n",j);
 return 0;
}
int main()
{
 int m,n;
 char a;
 printf("请选择要做的题目类型(+,-,*,/):");
 scanf("%c",&a);
 if(a=='+')jia(m,n);
    else if(a=='-')jian(m,n);
    else if(a=='*')cheng(m,n);
    else chu(m,n);
    return 0;
}

-程序效果图:

-PSP耗时统计:

 

Personal Software Process Stages 时间 时间百分比
需求分析 5 11.6%
具体设计 5 11.6%
生成文档 15 34.9%
测试 10 23.2%  
 总结 8 18.6%

 

 

 

 

 

 

-总结:

基本知识掌握不够好,以至于写代码的时候屡次犯错,而且所设计的程序过于简单化,功能也不是很完善,自己都很不满意,十分汗颜。

 

 

posted @ 2015-04-09 14:27  杨家堂  阅读(162)  评论(1编辑  收藏  举报