c语言小学生四则运算出题_软件工程第一次作业,小学生四则运算的出题程序...

一、背景

阿超有个儿子上小学二年级,老师每天让家长给孩子出30道加减法题,虽然不多,但是每天都做也算是个负担,阿超作为一个老牌程序员当然想用计算机来解决这个小问题,目前对于这个问题对于任何语言都不是问题,比如:

C/C++、C#、Java、Python、VB、JavaScript、Perl……

具体要求如下:

能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)

除了整数外,还要支持真分数的四则运算

请大家用任何一种自己擅长的语言来编写这段程序,并把程序的介绍和自己编写的过程写一个博客

二、分析

(一) 自己擅长的是c语言,准备用c语言,但是自己学的java,想用java试试,支持真分数运算,如果用C语言,我们可以这么考虑,a,b,c,d随机生成。

a/b      c/d,

(1)可能存在a,b,c,d;a和b存在公约数,c和d存在公约数。

解 决办法:先求a和b的最大公约数m,先求c和d的最大公约数n,然后a=a/m;b=b/m;c=c/m;d=d/m;,然后就可以算加"+"法 (a*d+b*c)/(b*d);减“-”法(a*d-b*c)/(b*d);乘“*”法a*c/(b*d);除法“/”,判断一下分母是否为0,分数符 号直接输出;

(2)可能存在a>b,c>d的情况,真假分数情况。输出直接输出符号“/”。

(二)有判断正确和错误,每答一次就判断一次,回答正确和回答错误,一次性答对是10分,答两次才答对得5分,答三次才答对得3分。

(三)输入一个数,知道出题的数目,随机产生的题数目,多输也会提示输入错误。

三、代码部分

我用的是java写的:

importjava.util.InputMismatchException;

importjava.util.Random;

importjava.util.Scanner;

import java.io.*;

public classPratices {

public static voidmain(String[] args) {

newPratices().list_Pratices();

}

public int random_Num(intrange) {

return (int) (Math.random() *range);

}

public voidlist_Pratices() {

int right = 0;

int wrongtimes = 0;

intnum_1, num_2, temp;

int type = random_Num(4);

int score = 0;

int count = 1;

System.out.println("请输入题目数量:");

Scanner sc = newScanner(System.in);

int n =sc.nextInt();

while (count <=n) {

type = random_Num(2);

num1 = random_Num(100); //100以内随机数

num2 = random_Num(100); //100以内的随机数

wrongtimes = 0;

if (type == 0)

{

System.out.print("(" + count + ") " + num1 + " + " + num2+ " = ");//加法

}

else if(type == 1)

{

if ((num1

{

temp =num1;

num1 =num2;

num2 =temp;

}

System.out.print("(" + count + ") " + num1 + " - " + num2+ " = ");//减法

}

else if(type == 2)

System.out.print("(" + count + ") " + num1 + " * " + num2+ " = ");//乘法

}

else if(type == 3)

{

if(num2!=0)

System.out.print("(" + count + ") " + num1 + " / " + num2+ " = ");//除法

elseSystem.out.println("分母为零");

}

int answer = this.getAnswer(count);

boolean flag =check(num1, num2, type, answer, count);

if(flag) {

right++;

System.out.println("回答正确");

score += this.getScore(wrongtimes);

} else{

while (wrongtimes < 2) {

wrongtimes++;

System.out.println("回答错误 " + wrongtimes + " 次");

answer = this.getAnswer(count);

flag =check(num1, num2, type, answer, count);

if(flag) {

score += this.getScore(wrongtimes);

right++;

wrongtimes = 0;

break;

}

}

if (wrongtimes == 3)

System.out.println("回答错误 ");

elseSystem.out.println("回答正确");

}

count++;

}

System.out.println("回答正确 : " +right);

System.out.println("回答错误: " + (10 -right));

System.out.println("获得分数: " +score);

System.out.println(getDegree(score));

}

public boolean check(int num_1, int num_2, int type, intmy_Answer,

intcount) {

int answer = 0;

if (type == 1) {

answer = num_1 -num_2;

} else if (type == 0) {

answer = num_1 +num_2;

}

return my_Answer ==answer;

}

public int getAnswer(intcount) {

int my_Answer = 0;

BufferedReader br = new BufferedReader(newInputStreamReader(System.in));

try{

my_Answer =Integer.parseInt(br.readLine());

} catch(IOException e) {

e.printStackTrace();

} catch(NumberFormatException e) {

System.out.println("输入有误");

return 0;

} finally{

if (count >= n && (br != null)) {//不会超出输入的n

try{

br.close();

} catch(IOException e) {

e.printStackTrace();

}

br = null;

}

}

returnmy_Answer;

}

public int getScore(intwrongtimes) {

if (wrongtimes == 0) {

return 10;

} else if (wrongtimes == 1) {

return 7;

} else if (wrongtimes == 2) {

return 5;

} else

return 0;

}

public String getDegree(int score) {

if (score > 90)

return "SMART";

else if (score > 80)

return "GOOD";

else if (score > 70)

return "OK";

else if (score > 60)

return "PASS";

else

return "TRY AGAIN";

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国大学生计算机设计大赛--软件应用与开发类--经验总结

1 大赛介绍 中国大学生计算机设计大赛是我国高校面向本科生最早的赛事之一&#xff0c;自2008年开赛至2019年&#xff0c;一直由教育部高校与计算机相关教指委等或独立或联合主办。此赛目前是全国普通高校大学生竞赛排行榜榜单赛事之一。 我们参加了很多届大赛&#xff0c;在2…

python如何使用ppip安装xlwt_Python-xlwt库的基本使用

安装xlwt库 pip install xlwt 基本使用 ①创建工作簿 wa xlwt.Workbook() ②添加工作表 添加“class”工作表 b wa.add_sheet(class) ③向工作表写入数据 注释&#xff1a;(0,0,姓名)(行、列、内容)第0行的第0个也就是excel中的A1&#xff0c;(0,1)就是B1..... b.write(0,0,姓…

网络与系统安全1.1 中间人攻击

1 Diffie-Hellman密钥交换过程 2 中间人攻击过程

tomcat启动占了12g_tomcat服务为何报内存相关错误??

本帖最后由 linux_love 于 2014-9-19 11:46 编辑多谢各位英雄支持&#xff0c;这个问题困扰我N久了&#xff0c;昨天终于让我给拿下了&#xff0c;在Linux下有个CommitLimit 用于限制系统应用使用的内存资源&#xff0c;#grep -i commit /proc/meminfoCommitLimit: 20389524…

python调用键盘_使用 Python 控制自己的电脑和键盘是一种什么样的体验?

可能有时候你需要在电脑做一些重复的点击或者提交表单等操作&#xff0c;如果能通过 Python 预先写好相关的操作指令&#xff0c;让它帮你操作&#xff0c;然后你自己爱干嘛干嘛去&#xff0c;有点 “按键精灵” 的意思&#xff0c;是不是感觉有点爽呢&#xff1f; 那么如何使用…

网络与系统安全4.1 基于随机搜索的黑盒对抗攻击方法

1 摘要 神经网络模型容易受到对抗样本的攻击&#xff0c;根据攻击者是否能获取到模型内部参数可以把攻击类型分为白盒攻击和黑盒攻击。 白盒攻击比较常见&#xff0c;但其对目标模型的威胁程度要远低于黑盒攻击。传统黑盒攻击往往都是基于梯度实现的&#xff0c;并且具有查询…

mybatis 二级缓存失效_二级缓存updateBatchById失效

### 当前使用版本(必须填写清楚&#xff0c;否则不予处理)3.3.0### 该问题是怎么引起的&#xff1f;**([最新版](https://search.maven.org/search?qg:com.baomidou%20a:mybatis-*)上已修复的会直接**close**掉)**### 重现步骤**字典mapper**CacheNamespacepublic interface D…

centos 安装jdk_centos7配置jdk

一、查看centos7是否有自带jdk查看是否安装过java rpm -qa | grep java 如果是centos 一般会自带两个openjdk rpm -e --nodeps 要卸载的包 (包通过上面的指令可以获取到)] 将显示java的包全都卸载 命令&#xff1a; rpm -e --nodeps 要卸载的包二、创建/opt/app目录,用于安装JD…

隐私计算 1 隐私计算的定义与背景

1 隐私计算的定义 隐私计算&#xff1a;在保证数据提供方不泄露原始数据的前提下&#xff0c;对数据进行分析计算的一系列技术&#xff0c;保障数据在流通和融合过程中“可用不可见”。 隐私计算涉及到的学科&#xff1a; 密码学&#xff1b;统计学&#xff1b;计算机体系结…

php object 对象不存在。增加对象_PHP核心

1、单例模式单例模式三要素&#xff1a;拥有一个构造函数&#xff0c;并且为private拥有一个静态成员变量来保持类的实例拥有一个访问这个实例的静态方法<?php //Instan.php 单例类class Instan{static public $instance null;private function __construct(){var_dump(…

数据库查询求小于_SQL学习笔记(二)简单查询

本篇主要学习如何通过简单查询获取想要的数据。从零学会SQL&#xff1a;简单查询​www.zhihu.com基本的查询语句从数据库中查找数据时要使用select子句&#xff0c;select子句是sql中使用最多、最基本的子句。子句是sql语句的组成要素&#xff0c;是以某一个关键字作为开始的语…

隐私计算 2.1秘密共享--问题模型及定义

1 秘密共享问题模型 1.1 富翁和三个儿子的故事 问题&#xff1a; 富翁想在自己的三个儿子中找一个最聪明的来继承自己的遗产&#xff0c;在保护好财富的同时&#xff0c;让其他两个人也参与进来&#xff0c;使得兄弟间和睦相处&#xff0c;家庭和谐。 大儿子的方案&#xff…

为什么手机上传图片这么慢 前端_为什么手机上传速度那么慢?

展开全部1、是由于手机内部存储器写入e69da5e6ba9062616964757a686964616f31333365633861速度慢导致的。可以更换速度更快的内部存储器来解决。2、如果是将手机直接用数据线连到电脑&#xff0c;一般传送文件很慢&#xff0c;这是因为手机的通讯端口波特率限制的&#xff0c;虽…

如何命令行结束react程序_想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化...

前言 以前一直有疑问困扰着我&#xff1a;人人都在吹的Docker容器化&#xff0c;与前端有何关系&#xff1f;然而在近两年的编程生涯&#xff0c;在每一次产品迭代中&#xff0c;渐渐体会到了容器化其魅力所在。应用部署从刀耕火种&#xff0c;到DevOps崛起&#xff0c;原来不止…

隐私计算 2.2 Shamir秘密共享方案

1 简介 作者&#xff1a;Shamir时间&#xff1a;1979年理念&#xff1a;基于多项式插值算法 2 具体实现 I 秘密分割算法 &#xff08;1&#xff09;选择一个随机素数 ppp&#xff0c;并产生一个随机的 t−1t-1t−1 次多项式&#xff1b; f(x)at−1xt−1⋯a1xa0modpf(x)a_{t-…

vue理由设置_在你的下一个Web应用中使用Vue.js的三个理由

Vue.js是那么地易上手&#xff0c;它在提供了大量开箱即用的功能的同时也提供了良好的性能。请继续阅读以下事例及代码片段以便更加了解Vue.js。选择一个JavaScript框架真是太难了——因为有太多的框架可以供我们使用&#xff0c;并且它们之间的差距并不是很明显。如果你认为生…

什么是spark的惰性计算?有什么优势?_spark——spark中常说RDD,究竟RDD是什么?

本文始发于个人公众号&#xff1a;TechFlow&#xff0c;原创不易&#xff0c;求个关注今天是spark专题第二篇文章&#xff0c;我们来看spark非常重要的一个概念——RDD。在上一讲当中我们在本地安装好了spark&#xff0c;虽然我们只有local一个集群&#xff0c;但是仍然不妨碍我…

隐私计算 2.3 基于中国剩余定理的秘密共享方案

1 简介 作者&#xff1a;Asmuth和Bloom&#xff1b;时间&#xff1a;1983年&#xff1b;理念&#xff1a;基于中国剩余定理&#xff08;CRT&#xff09;。 2 具体实现 I 秘密分割算法 &#xff08;1&#xff09;选择nnn个整数d1,d2,…,dnd_1, d_2, \dots, d_nd1​,d2​,…,d…

服务器基线加固脚本_Linux 基线检查,安全加固脚本

#!/bin/bash# Author:韩伟# Date: 2019-12-29# 实现对用户密码策略的设定&#xff0c;如密码最长有效期等datedate %Y-%m-%dread -p "是否设置密码策略[y/n]:" Yif [ "$Y" "y" ];thenread -p "设置密码最多可多少天不修改&#xff1a;&quo…

前端websocket获取数据后需要存本地吗_是什么让我放弃了Restful API?了解清楚后我全面拥抱GraphQL!...

背景REST作为一种现代网络应用非常流行的软件架构风格&#xff0c;自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性&#xff0c;可扩展性&#xff0c;伸缩性受到广大Web开发者的喜爱。REST 的 API 配合JSON格式的数据交换&#xff…