C语言程序设计——小学生计算机辅助教学系统

题目:小学生计算机辅助教学系统

编写一个程序,帮助小学生学习乘法。然后判断学生输入的答案对错与否,按下列任务要求以循序渐进的方式分别编写对应的程序并调试。

  • 任务1 程序首先随机产生两个1—10之间的正整数,在屏幕上打印出问题。例如:6*7=?然后输入答案,如果输入答案正确,则显示“Right!”,然后问下一个问题;否则显示“Wrong!Please try again.”,然后提示学生重做,直到答对为止。(略)
    • 任务2 在任务1的基础之上,当学生回答错误时,最多给三次重做,三次仍未做对,则显示“Wrong!You have tried three times!Test over!”,程序结束。
      • 任务3 在任务1的基础上,连续做10道乘法运算题,不给机会重做,若学生回答正确,则显示“Right!”,否则显示“Wrong!”。10道题全部做完后,按每题10分统计并输出总分,并输出学生的回答正确率。
        • 任务4 在任务2的基础上,为了提高程序的可读性,完善人机对话界面,从而达到来吸引学生的注意力,故要为学生输入的每一个正确或错误的答案输出不同的评价,正确的答案评价分为四个等级:“Very good!”、“Excellent!”、“Nice work!”、“Keep up the good work!”,错误的答案评价分为三个等级:“No.Please try again.”、“Wrong.Try once more.” ,“Don’t give up!”。
// 任务2
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(int argc, char const *argv[]) {int computerProduct, myProduct, num1, num2, redoNumber;srand(time(NULL));for (;;) {redoNumber = 0;// 产生两个 1~10 之间的随机数num1 = rand() % 10 + 1;num2 = rand() % 10 + 1;// 电脑计算结果computerProduct = num1 * num2;do {printf("%d * %d = ? ", num1, num2);// 我的计算结果scanf("%d", &myProduct);if (myProduct == computerProduct) {printf("Right!\n");break;}// 若同一题连续错误三次则直接结束测试if (redoNumber == 3) {printf("Wrong!You have tried three times!Test over!");break;} else printf("Wrong!Please try again.\n");redoNumber++;} while (myProduct != computerProduct);if (redoNumber == 3) break;}return 0;
}
// 任务3
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(int argc, char const *argv[]) {int computerProduct, myProduct, num1, num2, winNumber = 0, questionsNumber, i;srand(time(NULL));for (questionsNumber = 1; questionsNumber <= 10; questionsNumber++) {// 产生两个 1~10 之间的随机数num1 = rand() % 10 + 1;num2 = rand() % 10 + 1;// 电脑计算结果computerProduct = num1 * num2;printf("%d * %d = ? ", num1, num2);scanf("%d", &myProduct);if (myProduct == computerProduct) {printf("Right!\n");winNumber += 10;} else printf("Wrong!\n");}// 统计分数printf("学生得分:%d\n", winNumber);// 统计得分率(questionsNumber++最后累计到 11) printf("学生得分率:%d%%", winNumber * 10 / --questionsNumber);return 0;
}
// 任务4
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(int argc, char const *argv[]) {int computerProduct, myProduct, num1, num2, redoNumber, winNumber = 0;srand(time(NULL));for (;;) {// 只要出现正确则把累计的错误次数清零redoNumber = 0;// 产生两个 1~10 之间的随机数num1 = rand() % 10 + 1;num2 = rand() % 10 + 1;// 电脑计算结果computerProduct = num1 * num2;do {// 只要出现错误则把累计的正确次数清零if (redoNumber != 0)winNumber = 0;printf("%d * %d = ? ", num1, num2);scanf("%d", &myProduct);if (myProduct == computerProduct) {winNumber++;// 输出对应正确次数的语句switch (winNumber) {case (1):printf("Keep up the good work!");break;case (2):printf("Nice work!");break;case (3):printf("Excellent!");break;default:printf("Very good!");break;}printf("\n");break;} else redoNumber++;switch (redoNumber) {case (1):printf("No.Please try again.");break;case (2):printf("Wrong.Try once more.");break;case (3):printf("Don't give up!");break;}if (redoNumber == 3) break;printf("\n");} while (1);if (redoNumber == 3) break;}return 0;
}

结果展示

在这里插入图片描述

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

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

相关文章

基于vue和element的脚手架【vue-element-admin 和vue-element-plus-admin 】

vue-element-admin vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 element-ui实现 介绍 | vue-element-adminA magical vue adminhttps://panjiachen.github.io/vue-element-admin-site/zh/guide/ vue-element-plus-admin vue-element-plus-admin 是一…

游戏设计的主要部分

游戏设计的主要部分 介绍 游戏设计是创建有趣、挑战性和令人满足的游戏体验的过程。它涵盖了许多方面&#xff0c;从概念开发到实际实施&#xff0c;以及最终的游戏测试和优化。游戏设计师需要考虑玩家的情感、技能挑战、故事情节、游戏世界等多个要素&#xff0c;以确保游戏…

如何在Windows / Mac / iPhone / Android / Online上将MP4转换为MP3

如果只想保留MP4视频的音频轨道&#xff0c;则可以将MP4转换为MP3格式。 MP3是几乎所有设备&#xff0c;播放器和编辑器都支持的数字音频格式。无论您将MP4视频转换为MP3音频以进行脱机播放或进一步编辑&#xff0c;都可以提取音轨并保存为MP3格式。这是在不损失质量的情况下将…

图形化管理工具ossbrowser

文章目录 一、OSS介绍二、通过工具管理OSS三、安装四、使用-通过AK五、免责声明摘抄 一、OSS介绍 云对象存储OSS&#xff08;Object Storage Service&#xff09;是一款海量、安全、低成本、高可靠的云存储服务&#xff0c;可提供99.9999999999%&#xff08;12个9&#xff09;…

基于Spring Gateway路由判断器实现各种灰度发布场景

文章目录 1、灰度发布实现1.1 按随机用户的流量百分比实现灰度1.2 按人群划分实现的灰度1.2.1 通过Header信息实现灰度1.2.2 通过Query信息实现灰度1.2.3 通过RemoteAdd判断来源IP实现灰度 2、路由判断器2.1. After2.2. Before2.3. Between2.4. Cookie2.5. Header2.6. Host2.7.…

kafka复习:(3)自定义序列化器和反序列化器

一、实体类定义&#xff1a; public class Company {private String name;private String address;public String getName() {return name;}public void setName(String name) {this.name name;}public String getAddress() {return address;}public void setAddress(String a…

【算法刷题之哈希表篇(1)】

目录 1.哈希表基础理论2.leetcode-242. 有效的字母异位词&#xff08;1&#xff09;方法一&#xff1a;排序&#xff08;2&#xff09;方法二&#xff1a;哈希表 3.leetcode-349. 两个数组的交集&#xff08;1&#xff09;方法一&#xff1a;哈希表&#xff08;2&#xff09;方…

会员管理系统实战开发教程06-会员充值

我们上篇讲解了会员开卡的操作&#xff0c;有了会员卡之后日常就是给会员进行充值&#xff0c;充值的逻辑是对余额进行累加&#xff0c;而且要记录充值的情况。 1 创建充值记录表 打开控制台&#xff0c;点击号创建数据源 输入数据源名称充值记录 点击编辑添加字段 先添加…

【C进阶】深度剖析数据在内存中的存储

目录 一、数据类型的介绍 1.类型的意义&#xff1a; 2.类型的基本分类 二、整形在内存中的存储 1.原码 反码 补码 2.大小端介绍 3.练习 三、浮点型在内存中的存储 1.一个例子 2.浮点数存储规则 一、数据类型的介绍 前面我们已经学习了基本的内置类型以及他们所占存储…

WebRTC之FEC前向纠错协议

FEC前向纠错用于丢包恢复&#xff0c;对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包&#xff0c;可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽&#xff0c;所以一般会根据网络状况、丢包率来动态调整FEC冗余系数&#xff0c;也会结合NACK/…

无涯教程-Android - 环境设置

您可以从Oracle的Java网站下载最新版本的Java JDK-Java SE下载&#xff0c;您将在下载的文件中找到有关安装JDK的说明,按照给定的说明安装和配置安装程序。最后,将PATH和JAVA_HOME环境变量设置为引用包含 java 和 javac 的目录,通常分别是java_install_dir/bin和java_install_d…

D-Link DCS 密码泄露漏洞

0x01 前言 本次测试仅供学习使用&#xff0c;如若非法他用&#xff0c;与本文作者无关&#xff0c;需自行负责&#xff01;&#xff01;&#xff01; 0x02 漏洞描述 D-link DCS是一款成像色彩为彩色 是一款网络摄像机。D-link DCS系统存在密码泄露漏洞&#xff0c;攻击者通过…

C语言每日一练-----Day(4)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;记负均正    旋转数组的最小数字    二分查找 &#x1f493;博主…

“精准时空”赋能制造业智能化发展

作者&#xff1a;邓中亮 高达动态厘米级的高精度定位服务&#xff0c;不仅是北斗卫星导航系统的一大独门绝技&#xff0c;其在产业化应用层面也已逐步向普适化、标配化演进&#xff0c;并延展出时空智能新兴产业。 5月17日&#xff0c;当长征三号乙运载火箭成功发射北斗系统的…

ubuntu触摸板自然滚动设置无效

natural scrolling does not work in gnome - Unix & Linux Stack Exchange settings->Mouse & Touchpad 里设置触摸板滚动方向为Natural无效&#xff0c;可能的原因是xserver-xorg-input-synaptics捕获了触摸板行为&#xff0c;把它xserver-xorg-input-synaptics …

Apache Spark 的基本概念和在大数据分析中的应用

Apache Spark是一个开源的大数据分析框架&#xff0c;可以快速高效地处理大规模的数据集。Spark具有以下特点&#xff1a; 快速性&#xff1a; Spark使用内存计算&#xff0c;能够在迭代算法、交互式数据挖掘和实时流处理等场景中表现出色。 灵活性&#xff1a; Spark支持多种…

Next.js基础语法

Next.js 目录结构 入口App组件&#xff08;_app.tsx&#xff09; _app.tsx是项目的入口组件&#xff0c;主要作用&#xff1a; 可以扩展自定义的布局&#xff08;Layout&#xff09;引入全局的样式文件引入Redux状态管理引入主题组件等等全局监听客户端路由的切换 ts.config…

驱动版本问题:connect error, url mysql.db.url:jdbc:mysql://IP地址:3306/数据库名

MySQL升级版本 5.7.43 必须升级驱动版本 8.0 以上版本 启动项目报错 使用Druid数据库连接池获取Mysql常见的错误--不兼容问题 后来百度搜索发现原来是Mysql版本和mysql-connector-java版本不一致造成的。 查询Mysql版本号&#xff1a; SELECT version(); 然后去官网找对应版…

iOS开发Swift-2-图片视图、App图标-赏月App

1.创建新项目 点击File - New - Project。 选择Single View App&#xff0c;点击Next。 填写文件信息&#xff0c;点击Next。 选择文件位置&#xff0c;点击Create。 修改App显示名称为 “赏月”。 2.设置背景色 选择Main&#xff0c;点击View界面&#xff0c;选择右边属性&…

用docker-compose搭建LNMP

docker-compose搭建LNMP 一、compose 的部署1.Docker Compose 环境安装 二、编写Docker Compose1.准备依赖文件,配置nginx2.配置mysql3.配置php4.编写docker-compose.yml5.执行6.查看 一、compose 的部署 &#xff08;1&#xff09;公司在实际的生产环境中&#xff0c;需要使用…