第二次作业

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

一 需求分析:

  • 运行界面用户按任意键开始运行,根据提示选择所要实现的计算(加、减、乘、除)
  • 选择相应计算后,程序对应算法随机产生两个数,用户给出答案
  • 用户给出答案,程序进行判断答案是否正确
  • 运行退出时,程序给出计算结果,统计答题正确与错误的个数

二 设计:

  • rand()%100用来产生0~100以内的随机数,cystem("pause")用于暂停
  • 四个子函数对应相应的加减乘除运算,并判断结果对错
  • switch选择调用运算种类

三 代码实现

#include <stdio.h>
#include <windows.h>
int right=0,wrong=0;
void add()
{
 int a,b,c;
  a=rand()%100;
  b=rand()%100;
 printf("请回答:%d+%d=",a,b);
 scanf("%d",&c);
 if(a+b!=c){printf("回答错误
");wrong++;}
 else {printf("回答正确
");right++;} 
}
void minu()
{
 int a,b,c;
  a=rand()%100;
  b=rand()%100;
 printf("请回答:%d-%d=",a,b);
 scanf("%d",&c);
 if(a-b!=c){printf("回答错误
");wrong++;}
 else {printf("回答正确
");right++;} 
}
void mul()
{
 int a,b,c;
  a=rand()%100;
  b=rand()%100;
 printf("请回答:%d*%d=",a,b);
 scanf("%d",&c);
 if(a*b!=c){printf("回答错误
");wrong++;}
 else {printf("回答正确
");right++;} 
}
void di()
{
 int a,b,c;
  a=rand()%100;
  b=rand()%100;
 printf("请回答:%d/%d=",a,b);
 scanf("%d",&c);
 if(a/b!=c){printf("回答错误
");wrong++;}
 else {printf("回答正确
");right++;} 
}
void main()
{
   int choise,con=0;
   
   printf("

		四则运算程序
"); 
   system("pause");
   system("cls");
   while(1)
   {
    printf("

		请选择:
加(输入1)
减(输入2)
乘(输入3)
除(输入4)
"); 
    if(con==0)scanf("%d",&choise);
    switch(choise)
    {
     case 1:add();break;
     case 2:minu();break;
     case 3:mul();break;
     case 4:di();break;
 
    }
       printf("请问您想继续进行这个运算还是重新选择其他运算还是退出程序?
继续(输入1),重新(输入2),退出(输入3)");
    scanf("%d",&con);
    if(con==1)con=1;
    if(con==2)con=0;
    if(con==3)break;
   }
   printf("您总做了%d个题,正确%d的道,错误%d道!
",right+wrong,right,wrong);
   system("pause");
   
} 

四 测试:(结果截图)

五 事后分析和总结:

PSP耗时统计

PSP 耗时 百分比
需求分析 10 13%
设计 20 27%
代码实现 35 47%
测试 5 6.5%
分析和总结 5 6.5%





分析与总结:
  • 首先必须要了解用户需求--编写一个能自动生成小学四则运算题目的 “软件”
  • 思路要清晰,要有一个对程序设计走向的基本认识
  • 编写程序过程中,有不清楚的地方,善于查阅资料
  • 代码编写个人感觉很难(可能是由于自己编程基础太差),通过上网查阅、借鉴,才勉强完成。
原文地址:https://www.cnblogs.com/maorong93/p/4414721.html