• 计算机与软件工程 第二次作业


    作业一

    1.预习 阅读讲义<https://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html >第二部分内容 2.个人开发技术
    2.个人程序(本作业内容来源于网址:https://www.cnblogs.com/xinz/p/7417960.html,与 <https://www.cnblogs.com/jiel/p/4810756.html >)像《构建之法》的 人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。 可以使用C,C++,或者C#等语言实现。
    分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度
    要求能够通过输入来选择不同年级,每个年级还得区分难,中,易三个等级
    对于三、四、五年级需要支持括号与多个运算符
    程序支持判断对错及累计得分与时间
    一次可以出100道题目,而且不能重复(比如2+3 与 3+2 算重复的)
    充分发挥想象增加满足小学生数学检测需要的功能

    代码

    include
    using namespace std;

    class Calcution{
    public:
    Calcution();
    char getSignal();
    void addsub(int n);
    void muldiv(int n);
    void decial(int n);
    void fraction(int n);
    void mixed(int n);
    void Gradeone(int n);
    void Gradetwo(int n);
    void Gradethree(int n);
    void Gradefour(int n);
    void Gradefive(int n);
    private:
    int n;
    };

    Calcution::Calcution():n(0){};

    //随机获得运算符
    char Calcution::getSignal(){
    char signal[]={'+','-','*','/'};
    srand((unsigned)time(NULL));
    return signal[rand()%4];
    }

    //整数加减
    void Calcution::addsub(int n){
    int a,b,c;
    a=rand()%n+1;
    b=rand()%n+1;
    if(a+b>=n){
    a=rand()%n+1;
    b=rand()%n+1;
    }
    c=rand()%2;
    switch(c){
    case(0):
    cout<<a<<"+"<<b<<"="<<endl;break;
    case(1):
    if(a<b){
    int tmp=0;
    tmp=a;
    a=b;
    b=tmp;
    cout<<a<<"-"<<b<<"="<<endl;break;
    }
    }
    }

    //整数乘除
    void Calcution::muldiv(int n){
    int a,b,c;
    a=rand()%n+1;
    b=rand()%n+1;
    if(ab>=n){
    a=rand()%n+1;
    b=rand()%n+1;
    }
    c=rand()%2;
    switch(c){
    case(0):
    cout<<a<<"
    "<<b<<"="<<endl;break;
    case(1):
    if(b==0){
    b=rand()%n;
    }
    cout<<a<<"÷"<<b<<"="<<endl;break;
    }
    }

    //小数加减乘除
    void Calcution::decial(int n){
    double a,b;
    a=(double)(rand()%n+1)/1000;
    b=(double)(rand()%n+1)/1000;
    cout<<a<<getSignal()<<b<<"="<<endl;
    }

    //分数加减乘除
    void Calcution::fraction(int n){
    int mole1,deno1,mole2,deno2;
    mole1=rand()%10;
    deno1=rand()%10+1;
    mole2=rand()%10;
    deno2=rand()%10+1;
    //a=rand()%4;
    while(mole1>deno1 || mole2>deno2){
    mole1=rand()%10;
    deno1=rand()%10;
    mole2=rand()%10;
    deno2=rand()%10;
    }
    cout<<mole1<<"/"<<deno1<<getSignal()<<mole2<<"/"<<deno2<<"="<<endl;
    }

    void Calcution::mixed(int n){
    int a,b,c,d;
    a=rand()%n+1;
    b=rand()%n+1;
    c=rand()%n+1;
    d=rand()%2;
    if(d0)
    cout<<"("<<a<<getSignal()<<b<<")"<<getSignal()<<c<<"="<<endl;
    if(d
    1)
    cout<<a<<getSignal()<<"("<<b<<getSignal()<<c<<")"<<"="<<endl;
    }

    //一年级加减法,难中易分别对应100,50,10以内的运算
    void Calcution::Gradeone(int n){
    for(int i=0;i<100;i++){
    addsub(n);
    }
    }

    //二年级在一年级的基础上加入乘除法,难中易分别对应100,50,10以内的运算
    void Calcution::Gradetwo(int n){
    for(int i=0;i<100;i++){
    int a=rand()%3;
    if(a0)
    addsub(n);
    if(a
    1 || a==2)
    muldiv(n);
    }
    }

    //三年级在一二年级的基础上加入分数,难中易分别对应100,50,10以内的运算
    void Calcution::Gradethree(int n){
    for(int i=0;i<100;i++){
    int a=rand()%4;
    if(a0)
    addsub(n);
    if(a
    1)
    muldiv(n);
    if(a2 || a3)
    fraction(n);
    }
    }

    //四年级在一二三年级基础上加入分数计算,难中易分别对应100,50,10以内的运算
    void Calcution::Gradefour(int n){
    for(int i=0;i<100;i++){
    int a=rand()%5;
    if(a0)
    addsub(n);
    if(a
    1)
    muldiv(n);
    if(a2)
    fraction(n);
    if(a
    3 || a==4)
    decial(n);
    }
    }

    //五年级在一二三四年级基础上加入混合运算,难中易分别对应100,50,10以内的运算
    void Calcution::Gradefive(int n){
    for(int i=0;i<100;i++){
    int a=rand()%6;
    if(a0)
    addsub(n);
    if(a
    1)
    muldiv(n);
    if(a2)
    decial(n);
    if(a
    3)
    fraction(n);
    if(a4 || a5)
    mixed(n);
    }
    }

    int main(){
    Calcution cal;
    int a;
    cout<<"请输入年级:1~5年级 (输入对应的年级数即可)"<<endl;
    cin>>a;
    switch(a){
    case(1):
    int o;
    cout<<"请选择难度: 1、易 2、中 3、难 (输入前面数字)"<<endl;
    cin>>o;
    if(o1)
    cal.Gradeone(10);
    if(o
    2)
    cal.Gradeone(50);
    if(o3)
    cal.Gradeone(100);
    break;
    case(2):
    int t;
    cout<<"请选择难度: 1、易 2、中 3、难(输入前面数字)"<<endl;
    cin>>t;
    if(t
    1)
    cal.Gradetwo(10);
    if(t2)
    cal.Gradetwo(50);
    if(t
    3)
    cal.Gradetwo(100);
    break;
    case(3):
    int h;
    cout<<"请选择难度: 1、易 2、中 3、难(输入前面数字)"<<endl;
    cin>>h;
    if(h1)
    cal.Gradethree(10);
    if(h
    2)
    cal.Gradethree(50);
    if(h3)
    cal.Gradethree(100);
    break;
    case(4):
    int f;
    cout<<"请选择难度: 1、易 2、中 3、难(输入前面数字)"<<endl;
    cin>>f;
    if(f
    1)
    cal.Gradefour(10);
    if(f2)
    cal.Gradefour(50);
    if(f
    3)
    cal.Gradefour(100);
    break;
    case(5):
    int v;
    cout<<"请选择难度: 1、易 2、中 3、难(输入前面数字)"<<endl;
    cin>>v;
    if(v1)
    cal.Gradefive(10);
    if(v
    2)
    cal.Gradefive(50);
    if(v==3)
    cal.Gradefive(100);
    break;
    }
    return 0;
    }

    作业二

    连接库的时候,公钥输入地址后一直循环报错 然后出现问题 库无法连接

  • 相关阅读:
    sql 事务
    GridView数据导入Excel
    图片对比度亮度调节函数
    在.NET(C#)中获取电脑名IP地址及当前用户名
    一个简单的存储过程
    通用海量数据库翻页
    Graphics
    sql 触发器
    DataTable中的数据导出Excel文件
    窗口渐变
  • 原文地址:https://www.cnblogs.com/lazycat777/p/12399671.html
Copyright © 2020-2023  润新知