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

 

需求分析:

●基本功能

●实现100以内的加法

●实现100以内的减法

●实现100以内的乘法

●实现100以内的除法

 

设计:

●程序由主函数和子函数构成

●首先选择要进行测试的题目种类,让运用者进入开始做题,题目随机产生(1表示加法运算,2表示减法,3表示乘法,4表示除法运算,5表示退出系统)

●int question_get() 用于系统计算四种运算的值,temp表示用户计算出的值,系统会自动将answer与temp的值进行比较,从而会输出相应的提示语。最后输出总共回答了题的数目,答对了几道,答错了几道。

 

代码实现:

#include <stdlib.h> 
#include <stdio.h>
#include <time.h>

int question_get();
int type;


void main( void ) 
{
	int r=0;
	int e=0;
	int answer;
	int n; 
	srand( (unsigned)time( NULL ) );
loop:printf( "请选择要进行测试的题目种类:" );
     printf( "\n1.加法运算\n2.减法运算\n3.乘法运算\n4.除法运算\n5.退出运算\n" );
     printf("\t\t\t请选择(1-5):");
	 scanf( "%d", &type ); 
	 
	 while( 1 )
	 {
		 int temp; 
		 int flag; 
		 answer = question_get(); 
		 printf( "请回答:\n" ); 
		 scanf( "%d", &temp ); 
		 
		 while( temp!=answer ) 
		 {
			 e++;
			 printf( "\n答案错误,再接再厉,请您重做\n" ); 
			 
			 scanf( "%d", &temp );
			 
		 }
		 r++;
		 printf( "\n恭喜你!回答正确\n" ); 
		 
		 printf( "若继续请按1,退出请按0\n" ); 
		 scanf( "%d", &flag ); 
		 
		 while( flag!=0&&flag!=1 ) 
		 {
			 printf( "按其它键无效\n" );
			 scanf( "%d", &flag ); 
		 }
		 if( flag==0 ) 
			 break; 
		 else
			 printf("您共回答了%d道题,其中正确的有%d道,错误的有%d道\n",e+r,r,e);
		 goto loop;
	 }
} 

int question_get() 
{
	int a,b,c; 
loop: if( type==1 ) 
	  { 
		  a=rand()%99;
		  b=99-a;
		  b=rand()%b;
		  printf( "%d + %d = ?", a, b ); 
		  return (a+b);
		  
	  }
	  else if( type==2 )
	  {
		  b=rand()%99;
		  c=99-b;
		  c=rand()%c;
		  printf( "%d - %d = ?", b+c, b );
		  return(c);
	  }
	  else if( type==3 )
	  {
		  a=rand()%10;
		  b=50-a; 
		  b=rand()%b; 
		  printf( "%d * %d = ?", a, b );
		  return(a*b);
	  }
	  else if( type==4 )
	  {
		  b=rand()%50;
		  c=100/b; 
		  while( 1 ) 
		  {
			  c=rand()%c;
			  if( c!=0 )
				  break;
		  }
		  printf( "%d / %d = ?", b*c, b );
		  return(c);
	  }
	  else if( type==5 )
	  {
		  printf("\t\t\t退出系统\n"); 
		  system("pause"); 
		  exit(0);
	  }
	  else if( type==0||type>5 ) 
	  {
		  printf("\t\t\t输入错误,请输入1-5内的数字\n"); 
		  printf("\t\t\t请选择(1-5):"); 
		  scanf( "%d", &type ); 
		  goto loop;
	  } 
	  
}

 

程序截图:

加法界面:

减法界面:

乘法界面:

除法界面:

分析与总结:

●PSP耗时与总结

    总结:

    一定要多动脑子去思考,应该怎么设计,为什么要这样设计,一定要有一个清晰的思路再去写代码。要先想好思路再动手写,想的过程很重要,然后再去实现。

PSP

Personal Software Process Stage

Time(h)

Time(%)

●Design

●具体设计

6

11.5

●Coding

●具体编码

24

46.2

          ●Code Review

●代码复审

5

9.6

●Test

●测试(自测,修改代码)

13

25

●Postmortem & Process

Improvement Plan

●事后总结,并提出过程改进计划

4

7.7

posted on 2015-04-10 07:28  唐洁  阅读(257)  评论(1编辑  收藏  举报