本作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

我的githup地址为:https://github.com/lianglina98/ruanjian02

、基本要求

从个人项目出发,将程序改造成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:

  • 自动生成题目,单个题目最多不能超过4个运算符,操作数小于100。
  • 用户可以输入答案
  • 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

二、扩展方向

  1. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66(保留两位小数功能实现,不支持出带括号题目)
  2. 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数(实现)

三、开发环境调试:Visual C++

四、代码呈现

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<windows.h>
float calculate(float x,char op,float y)
{
float result;
switch(op)
{
case'+':result = x + y;break;
case'-':result = x - y;break;
case'*':result = x * y;break;
case'/':result = x / y;break;
}
return result;
}
float calculate2(float x,char op2,float y)
{
float result;
switch(op2)
{
case'+':result = x + y;break;
case'-':result = x - y;break;
case'*':result = x * y;break;
case'/':result = x / y;break;
}
return result;
}
int createnumber()
{
return rand() % 100+1;
}

int createnumber2()
{
return rand() % 20+1;
}

char createnumberop()
{
int op;
op=rand() % 4+1;
switch(op)
{
case 1:return'+';
case 2:return'-';
case 3:return'*';
case 4:return'/';
}
return 0;
}

void exercises(int n)
{
int i,right=0,wrong=0;
float a,b,c,answer,result1,result2;
char op,op2;
srand(time(NULL));
for(i=0;i<n;i++)
{
a=(float)createnumber();
b=(float)createnumber();
c=(float)createnumber();
op=createnumberop();
op2=createnumberop();
result1=calculate2(calculate(a,op,b),op2,c);
result2=calculate(a,op,calculate2(b,op2,c));
if(result1 < 0 || result2 <0)
{
i--;
continue;
}
else{
printf("%.f %c %.f %c %.f = ",a,op,b,op2,c);
scanf("%f",&answer);
if((op=='+' || op=='-') && (op2=='*' || op2=='/'))
{
if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result2+0.5)/100.0 && result2 >=0)
{
printf("\n【回答正确!】\n\n");
right++;
}
else
{
printf("\n【回答错误!答案是:%.2f】\n\n",(int)(100.0*result2+0.5)/100.0);
wrong++;
}
}
else
{
if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result1+0.5)/100.0 && result1 >=0)
{
printf("\n【回答正确!】\n\n");
right++;
}
else
{printf("\n【回答错误!答案是:%.2f】\n\n",(int)(100.0*result1+0.5)/100.0);
wrong++;
}
}
}
printf("\n你答对了%d题,答错了%d题\n\n",right,wrong);
}
}

double gongbeishu(double b,double d)
{
double i,max;
max=b>d?b:d;
for(i=max;;i++)
if((int)(i)%(int)(b)==0 && (int)(i)%(int)(d)==0)
break;
return i;
}

double gongyueshu(double a,double c)
{
double i,min;
min=a<c?a:c;
for(i=2;i<=min;i++)
if((int)(a)%(int)(i)==0 && (int)(c)%(int)(i)==0)
break;
if(i>min)
i=1;
return i;
}

int main()
{
int n;
printf("\n——————————————四则运算-------------------------------------------\n");
printf("\n\n| 欢迎进入四则运算小程序! |\n");
printf("\n——————————————---------------------------------------------------\n");
while(1)
{
do{
printf("\n请输入四则运算的数目:");
scanf("%d",&n);
if(n<=0)
printf("数目有误,请重新输入!\n");
if(n>5)
printf("最多不能超过5个题目,请重新输入!\n");
}while(n<=0 || n>5);
exercises(n);
}
}

五、运行结果截图

六、感想

我并没有结对,自己的基础不好,不想拖累别人。这个作业我做得很简单,主要的问题就在于计算上,其他基本没有什么问题。

转载于:https://www.cnblogs.com/lianglin918/p/9843232.html

结对项目-四则运算 “软件”之升级版相关推荐

  1. 结对项目——四则运算 “软件”之升级版

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 我的github远程仓库的地址为:https://git ...

  2. 【软件工程实践】结对项目-四则运算 “软件”之升级版

    这个作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 githup地址是:https://github.com/ ...

  3. 作业五—个人项目-小学四则运算 “软件”之升级版1

    作业五-个人项目-小学四则运算 "软件"之升级版 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/21 ...

  4. 结对项目-四则运算出题程序(GUI版)

    目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...

  5. 201571030128/201571030118《小学四则运算练习软件软件需求说明》结对项目报告

    一.以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动具体过程. 1.真实的调研对象 对象 性别 年龄 身份 刘老师 女 23 小学数学实习 ...

  6. 201571030121《小学四则运算练习软件软件需求说明》结对项目报告

    201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已 ...

  7. 201571030121 《小学生四则运算练习软件》结对项目

    201571030107/201571030121<小学四则运算练习软件>结对项目 结对伙伴:201571030107 冯晓 项目Github地址 https://github.com/d ...

  8. 实验四:201571030116/201571030106《小学四则运算练习软件需求说明》结对项目报告...

    任务1:以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 由于上次作业小伙伴很机智的把软件的操作过程录成了gif动图,所以在做基于原型的 ...

  9. 【软件工程基础】结对项目之四则运算题目生成

    [软件工程基础]结对项目之四则运算题目生成 一,项目介绍 项目的github地址:https://github.com/qqqqqianru/sizeyunsuantimushengcheng 二.项 ...

最新文章

  1. 学习UI设计都需要了解哪些知识
  2. Matlab与数据结构 -- 如何获取完整文件名
  3. windows mysql 开启日志功能_Windows下开启mysql日志功能
  4. 2.10 m 个样本的梯度下降-深度学习-Stanford吴恩达教授
  5. Linux网络编程 -- socketpair的使用
  6. type_traits应用
  7. c语言局限性,C语言陷阱与缺陷.pdf
  8. mysql 23000_mysql – SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败...
  9. 安卓模拟器手游辅助制作教程
  10. 计算机视觉与智能语音处理融合套件初体验(语音部分)
  11. phyton基础-01
  12. 仿Excel冻结单元格效果
  13. 编译内核出错:Unable to find the ncurses package. recipe for target ‘scripts/kconfig/.mconf-cfg‘ failed
  14. 咸鱼ESP32实例—MQTT
  15. eap wifi 证书_用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书)
  16. 用网页打开本地exe程序
  17. ZCMU-1720-死亡如风,我要装逼
  18. 三重邪骨手机版怎么登录服务器未响应,三重邪骨手机版-三重邪骨模拟器预约v1.0-k73游戏之家...
  19. 使用BN时ValueError: expected 2D or 3D input (got 4D input)的可能原因
  20. https://github.com/Wechat-Group/WxJava 使用记录

热门文章

  1. 设计模式=相似模式区别
  2. airtest下载网址
  3. 什么是OOA/OOD
  4. [LeetCode]--5. Longest Palindromic Substring
  5. 项目管理生命周期各个阶段的文档
  6. 关于bat中使用rar压缩命令
  7. C语言初学者代码中的常见错误与瑕疵(9)
  8. 连载MariaDB Crash Cource中文笔记(第二)
  9. Reading papers_15(Graph cuts optimization for multi-limb human segmentation in depth maps)
  10. Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述