第二次作业——小学生四则运算

题目

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

 

需求分析:

●基本功能

●实现100以内的加法

●实现100以内的减法

●实现100以内的乘法

●实现100以内的除法

●累计答对题目的个数,并做出相关的评价

 

设计:

●首先选择是否进入测试状态,若选择进入测试,则随机产生100以内的加减乘除的思则运算的题目

● 用Switch选择语句来选择做什么运算(0表示加法运算,1表示减法,2表示除法运算,3表示乘法)以及根据答对的题目个数做出相关的评价

 

●代码实现

#include <iostream> 
#include <ctime> 
using namespace std; 
int main() 
{ 
    int a,b,c,R=0,x,z,i,y,k; 
    srand(time(NULL)); 
    cout<<"**************************\n"; 
    cout<<"欢迎进入小学四则运算测试系统\n"; 
    cout<<" 1.进入测试 \n"; 
    cout<<" 2.退出程序 \n"; 
    cout<<"**************************\n"; 
    cin>>z; 
    if (z==1) 
    { 
        cout<<"测试开始!\n"; 
        for(i=1;i<11;i++) 
        { 
            a=rand()%100; 
            b=rand()%100; 
            x=rand()%4; 
            k=rand()%10; 
            switch(x) 
            { 
            case 0: 
                { 
                    y=a+b; 
                    cout<<"请看题:\t"; 
                    cout<<a<<"+"<<b<<"="; 
                    cin>>c; 
                    if (y==c) 
                    { 
                        R+=1; 
                        cout<<"答对了,累计答对题数为"<<R<<"\n"; 
                    } 
                    else cout<<"答错了,继续努力!\n"; 
                    break; 
                } 
            case 1: 
                { 
                    if (b>a) 
                    { 
                        z=a; 
                        a=b; 
                        b=z; 
                    } 
                    y=a-b; 
                    cout<<"请看题:\t"; 
                    cout<<a<<"-"<<b<<"="; 
                    cin>>c; 
                    if (y==c) 
                    { 
                        R+=1; 
                        cout<<"答对了,累计答对题数为"<<R<<"\n"; 
                    } 
                    else cout<<"答错了,继续努力!\n"; 
                    break; 
            case 2: 
                {  
                    if (a>10) 
                    { 
                        a=a/10; 
                    } 
                    if (b>10) 
                    { 
                        b=b/10; 
                    } 
                    y=a*b; 
                    cout<<"请看题:\t"; 
                    cout<<a<<"*"<<b<<"="; 
                    cin>>c; 
                    if (y==c) 
                    { 
                        R+=1; 
                        cout<<"答对了,累计答对题数为"<<R<<"\n"; 
                    } 
                    else cout<<"答错了,继续努力!\n"; 
                    break; 
                } 
            case 3: 
                {  
                    if (b>10) 
                    { 
                        b=b/10; 
                    } 
                    if (!(a%b==0)) 
                    { 
                        a=b*k; 
                    } 
                    y=a/b; 
                    cout<<"请看题:\t"; 
                    cout<<a<<"/"<<b<<"="; 
                    cin>>c; 
                    if (y==c) 
                    { 
                        R+=1; 
                        cout<<"答对了,累计答对题数为"<<R<<"\n"; 
                    } 
                    else cout<<"答错了,继续努力!\n";
                    break; 
                } 
                } 
            } 
        } 
    } 
    else 
    { 
        cout<<"测试已完成,谢谢您的参与\n"; 
        return 0; 
    } 
    switch(R) 
    { 
    case 10: cout<<"真是个天才!\n";break; 
    case 9: cout<<"真聪明!\n";break; 
    case 8: cout<<"还不错!\n";break; 
    case 7: cout<<"多多加油!\n";break; 
    case 6: cout<<"刚及格,还得多练习!\n";break; 
    case 5: 
    case 4: 
    case 3: 
    case 2: 
    case 1: 
    case 0: cout<<"不及格!\n";break; 
    } 
    
    return 0; 
} 

运行效果图

●选择1进入测试界面的运行效果图

●选择2退出程序的运行效果图

 

分析与总结:

●PSP耗时   

 

PSP

Personal Software Process Stage

Time(h)

Time(%)

Design

具体设计

14

25.9

Coding

具体编码

17

31.5

         Code Review

代码复审

9

16.7

Test

测试

8

14.8

Postmortem & Process

Improvement Plan

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

6

11.1

 

 

 

 

 

 

 

 

 

 

 

 

●总结:

    首先想法很重要,有了一定的想法再去实现。遇到问题多向老师,同学请教。多反思,和总结。这样才会设计出更好的程序!

posted @ 2015-04-10 12:49  陈小丽  阅读(222)  评论(1编辑  收藏  举报