使用软件——VS 2015

使用环境——C语言

早在上周我就开始使用C#语言做,由于最后一点问题而放弃,之后用C语言开始做,很顺利,但是也碰到了一些问题,但是通过了百度文库上的一些程序的借鉴和吴阿平同学的悉心指导最后还是解决了,主要是通过C语言实现能够生成100以内的加减乘除题目,并且判断使用者的答题是否正确。一开始的时候先会给使用者提供加减乘除四个选项,使用者选择后会提示是一位数还是两位数;之后使用者开始作答,之后之前的步骤一直循环,直到使用者不再使用。下面是程序代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int add(int num1, int num2)//加法
{
return num1 + num2;
}
int subtraction(int num1, int num2)//减法
{
return num1 - num2;
}
int mul(int num1, int num2)//乘法
{
return num1*num2;
}
float divis(int num1, int num2)//除法
{
return ((int)(((float)num1 / num2) * 100 + 0.5)) / 100.0;
}
int main()
{
int type = -1;
int data = -1;
int choice, num1, num2, results;
float div_result;
int right = 0;
int wrong = 0;
char ch;
printf("欢迎进入小学四则运算题,现在考验你的智商是不是真正的“小学生”了!\n");
srand((unsigned int)time(NULL));
while (1)
{
printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数)\n");
scanf("%d", &choice);
printf("请选择位数:1.一位数 2.两位数\n");
scanf("%d", &data);
switch (choice)
{
case 1:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d + %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == add(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d + %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == add(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 2:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d - %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == subtraction(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d - %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == subtraction(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 3:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d * %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == mul(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d * %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == mul(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 4:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10 + 1;
printf("%d / %d=__?__\n", num1, num2);
scanf("%f", &div_result);
if (div_result == divis(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100 + 1;
printf("%d / %d=__?__\n", num1, num2);
scanf("%f", &div_result);
if (div_result == divis(num1, num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
default:
printf("输入错误!\n");
break;
}
}
end:
printf("回答正确%d题,回答错误%d题\n", right, wrong);
printf("\n===================感谢使用=====================!\n");
system("pause");
return 0;
}

实验截图:

用C语言编写生成小学四则运算程序的更多相关文章

  1. 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序

    1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题 ...

  2. C语言:一个能自动生成小学四则运算题目的程序

    完成这个程序,半个小时内完成了,这个程序,可以自动生成小学简易的四则运算,提供菜单让用户选择,然后判断加减乘除,判断答对答错的题目个数,用户同时也可以重新选择继续答题或重新选择或退出程序. 源程序: ...

  3. myapp——自动生成小学四则运算题目的命令行程序(侯国鑫 谢嘉帆)

    1.Github项目地址 https://github.com/baiyexing/myapp.git 2.功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 功能(已全部实现) 使用 -n ...

  4. Python实现自动生成小学四则运算题目

    Github地址: https://github.com/guoyuyi/gyy.github.io/blob/%E4%BD%9C%E4%B8%9A1/zy1.py 题目描述: 通过python语言编 ...

  5. [改善Java代码]易变业务使用脚本语言编写

    建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP.Ruby.Groovy.JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们 ...

  6. 四则运算程序(java基于控制台)

    四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...

  7. java实现自动生成小学四则运算——朱庭震,詹祺豪

    组员:朱庭震,詹祺豪 Github地址:https://github.com/ztz1998/second/tree/master 1题目:实现一个自动生成小学四则运算题目的命令行程序. 2说明: 自 ...

  8. Individual Project "写一个能自动生成小学四则运算题目的程序"

    一.题目简介 写一个能自动生成小学四则运算题目的程序. 初步拟定要实现的功能后,估计一下自己需要花多长时间.编程过程中记录自己实际用了多长时间. 然后和同学们比较一下各自程序的功能.实现方法的异同等等 ...

  9. 软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想

    对于小学四则混合运算出题软件的设计,通过分析设计要求,我觉得为了这个软件在今后便于功能上的扩充,可以利用上学期所学习的<编译原理>一课中的LL1语法分析及制导翻译的算法来实现.这样做的好处 ...

随机推荐

  1. java 文件按行读写

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  2. ThreadStart 与ParameterizedThreadStart的区别

    1) ParameterizedThreadStart与ThreadStart 1 static void Main(string[] args) { #region ParameterizedThr ...

  3. UVA 11768 Lattice Point or Not(扩展欧几里德)

    将直线转化为ax + by = c的形式,然后扩展欧几里得求在[x1, x2]之间的解 对直线与坐标轴平行的特判 调试了好长时间,注意: 1 正负数转化为整型的处理 2 注意判断有无解 #includ ...

  4. 如何快速找到排好序的数组中最先不连续的数字N

    现在有一大堆自然数组成的小到大数组arr,其中会有123456910  这样就要找到6(最先不连续的数字) 举例:[12356789] 找到3 [012345678] 找到8 第一种:遍历数组判断是否 ...

  5. Error:Execution failed for task ':clean'. > Unable to delete directory :\build\intermediates (转)

    第一种方法: build文件夹,可以使用360文件粉碎机删除,然后重启Android Studio即可! 转自 第二种方法: 进入studio,进入settings,搜索instant run,进入该 ...

  6. 「理解HTTP」之常见的状态码segmentfault

    状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误. RFC2616定义的状态码,由3位数字和原因短信组成.数字中的第一 ...

  7. redhat6下安装Lighttpd1.4.43

    学完了C语言,自信满满地冲着开源软件去了,首选了Lighttpd,这个软件代码量不多,适合初入开源的朋友 redhat下安装Lighttpd,一定要先安装依赖库,pcre和bzip2,这两个自行下载, ...

  8. ubuntu14.04 安装 搜狗输入法

    1.安装或者更新fcitx libssh2-1:sudo  apt-get install fcitx libssh2-1; 2.搜索是否安装成功: dpkg -l | grep fcitx ; dp ...

  9. redis——学习之路五(简单的C#使用redis)

    redis官方推荐使用的客户端程序 打星星表示推荐使用的客户端程序,一个笑脸表示最近6个月内有过正式活动的.http://redis.io/clients/#c 从这里我们可以判断官方推荐我们使用Se ...

  10. Trigger和ViewStateManager的具体比较

    ViewStateManager的好处  拥有 GeneratedDuration ,可以很方便的进行几个状态之间的切换过渡动画. 坏处是,在界面加载时只能显示默认效果,通过GoToStateActi ...