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

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/Rachelee/p/12367036.html
Copyright © 2011-2022 走看看