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

题目

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

 

需求分析:

●基本功能

●实现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

 

 

 

 

 

 

 

 

 

 

 

 

●总结:

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

转载于:https://www.cnblogs.com/TaurusChenLi/p/4414271.html

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值