课程实践——第一个——小学生测试系统

来源:互联网 发布:神州数码融信软件 编辑:程序博客网 时间:2024/05/16 17:53
/*Copyright (c) 2016, 烟台大学计算机学院 All rights reserved.文件名称:first.cpp作    者:颜丙齐完成日期:2017年 1 月 5 日版 本 号:v1.0题目描述  小学生测试系统输入 各个题的答案输出 答题对的个数及正确答案样例输入  2  2  2  2  2  2  2  2  2  2样例输出 这是小学生练习系统!设计人:颜丙齐!!!完成时间:2016年1月5日!!!指导老师:贺利坚老师!!!考试简述:    本次考试共十个题,为百以内的加、减、乘、除运算,答对六个及以上为及格,请同学们仔细运算!!!下面让我们开始答题吧!!!34-25=282-41=219-15=287-86=289-85=294-49=224+2=255-39=23+10=223+12=2您的测试已结束,本次共十道题您答对了0道题,得分0您本次考试没有及格,请您抓紧复习,加油!!!本次测试题目的答案为:(0) 9(1) 41(2) 4(3) 1(4) 4(5) 45(6) 26(7) 16(8) 13(9) 35是否要进行补考?输入1为补考,输入0结束考试!!! */#include <stdio.h>#include <stdlib.h>#include<time.h>void text();//测试系统int add1(int num1,int num2);//加运算的函数,并输出表达式,返回加的结果int  except(int num1,int num2);//除运算的函数,并输出表达式,返回除的结果int multiply(int num1,int num2);//乘运算的的函数,并输出表达式,返回乘的结果int subtraction(int num1,int num2);//减运算的函数,并输出表达式,返回减的结果void head();int main(){    head();    text();    return 0;}/*************************************************************功能描述:输出程序的说明输入参数:无返 回 值:无其他说明:无*************************************************************/void head(){    system("color 1b");    printf("这是小学生练习系统!\n");    printf("设计人:颜丙齐!!!\n");    printf("完成时间:2016年1月5日!!!\n");    printf("指导老师:贺利坚老师!!!\n");    printf("考试简述:\n");    printf("    本次考试共十个题,为百以内的加、减、乘、除运算,答对六个及以上为及格,请同学们仔细运算!!!\n");    printf("下面让我们开始答题吧!!!\n");    return;}/*************************************************************功能描述:进行考试的系统输入参数:无传入参数返 回 值:无其他说明:通过调用其他函数实现加、减、乘、除四种运算*************************************************************/void text(){    int i,sum,k=0;    int a,b,c;    int sum_get;    srand( (unsigned)time( NULL ) );    int r=0;    int answer[10];//保存计算题的答案    //循环输出十个题    while(r<10)    {        a=rand()%100;        b=rand()%100;        c=rand()%4;//随机产生0,1,2,3这四个数,分别代表加减乘除四种运算。        switch(c)        {        case 0:            if(a+b>100)            {                continue;            }            else            {                sum=add1(a,b);                r++;                break;            }        case 1:            if(a*b>100||a==0||b==0)            {                continue;            }            else            {                sum=except(a,b);                r++;                break;            }        case 2:            if(a*b>100)            {                continue;            }            else            {                sum=multiply(a,b);                r++;                break;            }    system("color a1");    printf("这是小学生练习系统!\n");    printf("设计人:颜丙齐!!!\n");    printf("完成时间:2016年1月5日!!!\n");    printf("指导老师:贺利坚老师!!!\n");    printf("下面让我们开始答题吧!!!\n");    printf("如果结果为小数,请保留小数点后两位!!!\n");        case 3:            if(b>a)            {                continue;            }            else            {                sum=subtraction(a,b);                r++;                break;            }        }        scanf("%d",&sum_get);        if(sum_get==sum)        {            k++;        }        answer[r-1]=sum;    }    printf("您的测试已结束,本次共十道题您答对了%d道题,得分%d",k,10*k);    k*=10;    int one ;    if(k>60)    {        printf("恭喜您本次考试及格,请再接再厉\n");        printf("本次测试题目的答案为:\n");        for(i=0; i<10; i++)        {            printf("(%d) %d\n",i+1,answer[i]);        }    }    else    {        printf("您本次考试没有及格,请您抓紧复习,加油!!!\n");        printf("本次测试题目的答案为:\n");        for(i=0; i<10; i++)        {            printf("(%d) %d\n",i,answer[i]);        }        printf("是否要进行补考?\n输入1为补考,输入0结束考试!!!\n");        scanf("%d",&one);        if(one==1)        {            printf("考试开始,请您细心做!!!\n");            text();        }    }    return;}/*************************************************************功能描述:进行加法运算输入参数:num1-随机数1     num2-随机数2返 回 值:result-加法运算后的结果其他说明:无*************************************************************/int add1(int num1,int num2){    int result;    result=num1+num2;    printf("%d+%d=",num1,num2);    return result;}/*************************************************************功能描述:进行除法运算输入参数:num1-随机数1     num2-随机数2返 回 值:除法的结果其他说明:为保证除法的结果为整数,因此用乘法来实现除法*************************************************************/int  except(int num1,int num2){    int  result;    result=num1*num2;    printf("%d/%d=",result,num1);    return num2;}/*************************************************************功能描述:进行乘法运算输入参数:num1-随机数1     num2-随机数2返 回 值:乘法的结果其他说明:无*************************************************************/int multiply(int num1,int num2){    double result;    result=num1*num2;    printf("%d*%d=",num1,num2);    return result;}/*************************************************************功能描述:进行减法运算输入参数:num1-随机数1     num2-随机数2返 回 值:减法的结果其他说明:无*************************************************************/int subtraction(int num1,int num2){    int result;    result=num1-num2;    printf("%d-%d=",num1,num2);    return result;}

学习心得:本程序花的时间有点长,开始不是很想写,然后不得不写,效果也不是很好,今天想写了,一会就弄完了,感觉效果还可以。在写程序的时候出现一个错误,开始非常弄不懂,后来问了一下度娘,然后就清楚了。

code::blocks给出的错误提示词为:expected declaration or statement at end of input,最后才明白,这是“{”不成对的原因!!!

0 0