zoukankan      html  css  js  c++  java
  • 计算与软件工程 作业二

    作业要求

    https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402

    作业一

    四则运算的程序代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    #include <ctype.h> 
    #include<windows.h>
    
    int menu(int num1);         //显示菜单界面
    void Exercise(char choose);   //随机生成各难度梯度的四则运算
    //主函数
    int main()
    {
        char choose;
        int num1=1;
        while(1)
        {
            num1=menu(num1);
            flushall();            //清除缓冲区的换行符
            scanf("%c",&choose);
            if((int)choose<48||(int)choose>54)  //判断用户的输入是否符合要求(ASCII码)
            {
                printf("
    	您的输入有误,请重新输入!
    ");
                Sleep(1000);       //计时函数,产生1秒的延时
                system("cls");
                num1=1;
                continue;
            }
            Exercise(choose);
        }
        return 0;
    }
    
    int menu(int num1)
    {
        char ch;
        if(num1==1)
            num1++;
        else
        {
            while(1)
            {
                printf("是否清除练习记录(Y/N):");
                flushall();  //清除缓存
                scanf("%c",&ch);
                if((int)ch==89||(int)ch==121)
                {
                    system("cls");         //清屏操作
                    break;
                }
                else if((int)ch==78||(int)ch==110) break;
                else
                    printf("您的输入有误!
    ");
            }
        }
        printf("**************************************************
    ");
        printf("	    小学生四则运算练习软件
    ");
        printf("	 1、加法练习	2、减法练习
    ");
        printf("	 3、乘法练习	4、除法练习
    ");
        printf("	 5、混合练习	0、退出系统
    ");
        printf("请输入你的选择(0--5):
    ");
        printf("
    *************************************************
    ");
        return num1;
    }
    
    void Exercise(char choose)
    {
        int i,j,num,k;
        int ra=0,ua=0; //初始化正确题目的数量和错误题目的数量
        int p[20],m[4]={10,100,200,500}; //产生的随机数保存在数组p[20]中
        float q[20],result;
        srand(time(NULL)); //产生随机数
        printf("请给出出题数量:");
        scanf("%d",&num);
        for(i=0;i<num;i++)
        {
            if(choose==49||choose==50)
            {
                if(i==0)
                {
                    printf("请选择难度系数:1、小学一年级      2、小学二年级
    ");
                    printf("                3、小学三,四年级  4、小学五,六年级
    
    ");
                    printf("                    难度等级:");
                    scanf("%d",&j);
                }
                for(k=0;k<j+1;k++)
                    p[k]=rand()%m[j-1];
                k=0;
                p[j+1]=p[0];
                printf("%d",p[k]);
                k++;
            }
            switch(choose)   //根据用户的输入选择不同的操作
            {
            case '1':{
                        while(k<j+1)
                        {
                            printf(" + %d",p[k]);
                            p[j+1]+=p[k];
                            k++;
                        }
                        break;
                    }
            case '2':{
                        while(k<j+1)
                        {
                            printf(" - %d",p[k]);
                            p[j+1]-=p[k];
                            k++;
                        }
                        break;
                   }
            case '3':{
                        if(i==0)
                        {
                            printf("请选择难度系数:1、小学二年级  2、小学三年级
    ");
                            printf("                3、小学四年级  4、小学五,六年级
    
    ");
                            printf("                    难度等级:");
                            scanf("%d",&j);
                        }
                        for(k=0;k<j+1;k++)
                            p[k]=rand()%m[j-1];
                        k=0;
                        p[j+1]=p[0];
                        printf("%d",p[k]);
                        k++;
                        while(k<j+1)
                        {
                            printf(" * %d",p[k]);
                            p[j+1]*=p[k];
                            k++;
                        }
                        break;
                    }
            case '4':{
                        int m[4]={50,100,500,1000};
                        if(i==0)
                        {
                            printf("请选择难度系数:1、小学三年级  2、小学四年级
    ");
                            printf("                3、小学五年级  4、小学六年级
    
    ");
                            printf("                    难度等级:");
                            scanf("%d",&j);
                            printf("	若结果为小数,请将结果保留两位小数
    ");
                        }
                        for(k=0;k<j+1;k++)
                            p[k]=rand()%m[j-1];
                        k=0;
                        printf("%d",p[k]);
                        q[0]=(float)p[0];
                        k++;
                        while(k<j+1)
                        { 
                            q[k]=(float)p[k];
                            printf(" / %d",p[k]);
                            q[0]/=q[k];
                            k++;
                        }
                        break;
                   }
            case '5':{
                        if(i==0)
                        {
                            printf("请选择难度等级:1. *   2. **
    ");
                            printf("                3. *** 4. ****
    ");
                            scanf("%d",&j);
                        }
                        for(k=0;k<4;k++)
                        {
                            p[k]=rand()%m[j-1];
                            q[k+1]=(float)p[k];
                        }
                        if(i%4==0)
                        {
                            printf("%d + %d - %d * %d",p[0],p[1],p[2],p[3]);
                            q[0]=q[1]+q[2]-q[3]*q[4];
                        }
                        else if(i%4==1)
                        {
                            while(p[1]==0)
                                p[1]=rand()%m[j-1];
                            q[2]=(float)p[1];
                            printf("%d / %d + %d * %d",p[0],p[1],p[2],p[3]);
                            q[0]=q[1]/q[2]+q[3]*q[4];
                        }
                        else if(i%4==2)
                        {
                            printf("%d + %d * (%d - %d)",p[0],p[1],p[2],p[3]);
                            q[0]=q[1]+q[2]*(q[3]-q[4]);
                        }
                        else
                        {
                            printf("%d * (%d + (%d - %d))",p[0],p[1],p[2],p[3]);
                            q[0]=q[1]*(q[2]+(q[3]-q[4]));
                        }
                   }
            case '0':{ 
                        printf("	   感谢您的使用^_^,再见
    ");
                        exit(0);
                        break;
                   }
            }
            printf("=");
            if(choose==49||choose==50||choose==51)
            {
                scanf("%f",&result);
                if(result==p[j+1])
                {
                    printf("you are right!
    ");
                    ra+=1;
                }
                else
                {
                    printf("wrong!Try again
    ");
                    ua+=1;
                }
            }
            if(choose==52||choose==53)
            {
                scanf("%f",&result);
                if(fabs(result-q[0])<0.01)   //若运算结果为小数,则保留两位小数即可
                {
                    printf("you are right!
    ");
                    ra+=1;
                }
                else
                {
                    printf("wrong!Try again
    ");
                    ua+=1;
                }    
            }
    
        }
        printf("
            答对 %d 道题,答错 %d 道题,得分为 %d 
    
    ",ra,ua,ra*100/num);
    
    }
    

    运行结果截图



    小结

    作业要求分别能够实现小学一、二、三、四、五年级的四则运算要求, 逐步实现各个年级的难度,代码编写的时候出现了困难,在完成的同时也借鉴参考很多网上的代码,进行修改添加,首先可以选择选择运算方式,选择随机出的题目数,然后根据不同年级进行难度上的选择,设置变量ra进行分数的统计,不足的地方在于时间的累积和运算不能重复没有完成,以及四则混合运算的运行出现闪退。

    作业二

    码云代码托管平台gitee小结

    第一次接触这类软件,首先阅读了廖雪峰老师关于git的安装与使用说明,然后按照步骤进行git的安装,开始由于浏览器的选择不正确一直下载失败,后来下载成功后进行软件的安装与初始配置,以及如何让获得密钥,这里也另外上网查阅了教程,有关git bush常用的命令等等。在创建克隆好仓库以后,进行代码文件转移的时候,也出现了问题,因为没有建立git仓库,代码格式保存的错误,重复操作后把源代码保存到git仓库中。

    码云的链接

    https://gitee.com/Rachelee/firstwarehouse/blob/master/computation1.c

  • 相关阅读:
    Vim内直接使用p粘贴系统剪切板
    购买主机时的常见宽带类型或运营商
    Bilibli文章无法复制文字
    Python_tkinter(1)_窗口创建与布局
    模拟器中安装APK报Error:INSTALL_FAILED_NO_MATCHING_ABIS
    Fiddler_内置命令行_03
    【摘】Fiddler工具使用介绍
    get和post区别
    jmeter_上一请求的响应值作为下一请求的参数
    jmeter_用户并发登录
  • 原文地址:https://www.cnblogs.com/Rachelee/p/12367036.html
Copyright © 2011-2022 走看看