C语言课程设计(这个没在老师给定的题目内)——实用的作答题目小代码

2023-12-13 20:18

本文主要是介绍C语言课程设计(这个没在老师给定的题目内)——实用的作答题目小代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

c语言小代码:随机加减乘除的计算

功能介绍:
随机出现两组数字,计算二者的简单数学运算,
统计做题结果的正确和错误的题目个数,
适合一二三年级小朋友拿来玩耍。

感想:
其实也就是自己寒假
在读小学的表弟弟和妹妹
天天没事干,
就弄来了这个为他打发时间。
不要喷我昂,
毕竟这个还不算是成熟。
如有BUG,敬请指正,共同学习。
小将学习,如有雷同,请联系。



版本:1.1(2016年7月25日09:29:13)
简化代码的重复部分以及增加更多注释。
参考代码:
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
#include <windows.h>
#define MYDD 30000int a[MYDD],b[MYDD],c[MYDD];
double ans,youans;// ans 记录正确答案;youans记录个人答案
int cuo,dui;//统计题目 错误,正确个数 
int chengji=0;//记录成绩void RED() {//控制台调整前景色为红色HANDLE kai_1 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_1, FOREGROUND_INTENSITY | FOREGROUND_RED); // 为红色
}void GREEN() {//控制台调整前景色为绿色HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_GREEN);// 为绿色
}void LIGHT() {//控制台调整前景色为强光HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);// 为强光
}void ans_yourans() {// 多次用到以下代码片段,所以直接定义一部分函数GREEN();scanf("%lf",&youans);if(youans==ans) {printf("   你的答案是 √恭喜正确,继续努力.\n\n");chengji+=10;dui++;} else {LIGHT();printf("   正确答案为  %.0lf\n    你的答案是  × 不要气馁,再仔细算算.\n\n",ans);chengji-=12;cuo++;}
}int main() {int i,j,N,dd;//务必符合 c 语言变量的定义规则:必须在函数的最开始定义变量GREEN();//控制台以下字体为绿色printf("小同学,要努力昂:\n");printf("你想做多少道题目?\n请键入你想要做的题目。\n");RED();//控制台以下字体为红色scanf("%d",&N) ;// N 做题数量 printf("你想做的 %d 道\n得分规则:正确一道得分+10,错误一道得分-12\n请键入数字 1 后,回车键开始挑战!\n",N);scanf("%d",&dd);//是否确定 if(dd==1) {srand((int)time(0));dui=cuo=0;//记录做题数目的对错情况for(int k=1; k<=N; k++) {LIGHT();printf("当前第 %d 题,剩余 %d 题\n     现在你的分数是  %d  分\n",k,N-k,chengji);c[k]=1+(int)(4.0*rand()/(RAND_MAX+1.0));//字符随机数不会,模拟的数字随机数确定运算符号switch(c[k]) {case 4: {//加法RED();a[k]=1+(int)(10000.0*rand()/(RAND_MAX+1.0));// 10000 可修改,表示产生的随机整数的最大值b[k]=1+(int)(10000.0*rand()/(RAND_MAX+1.0));ans=a[k]+b[k];printf("     %d + %d 答案是  ",a[k],b[k]);ans_yourans();//目的简化代码,自定义重复的函数break;}case 1: {//减法RED();a[k]=1+(int)(5000.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(a[k]*rand()/(RAND_MAX+1.0));// 此处的 a[k] 目的保证,减数<被减数,避免小学生计算负数ans=a[k]-b[k];printf("     %d - %d 答案是  ",a[k],b[k]);ans_yourans();break;}case 2: {//乘法RED();a[k]=1+(int)(100.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(10.0*rand()/(RAND_MAX+1.0));ans=a[k]*b[k];printf("     %d * %d 答案是  ",a[k],b[k]);ans_yourans();break;}case 3: {//除法RED();a[k]=1+(int)(100.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(10.0*rand()/(RAND_MAX+1.0));ans=(double)a[k]/(double)b[k];//不会出现 b[k]=0 的情况printf("     %d / %d 答案是(两位小数,四舍五入)  ",a[k],b[k]);ans_yourans();break;}}}LIGHT();printf("\n*********************解  题  报  告*********************\n你的分数是 %d .\n",chengji);printf("你一共做了 %d 道题,正确 %d 题,错误 %d 题 。\n",N,dui,cuo);printf("请点击 Ctrl + Shift +J (搜狗输入法截图快捷键)截图保存该报告。\n");} elseprintf("让你按的是昂,Baby!*****  1  *****!!!!\n");system("pause");//屏幕暂停函数return 0;
}



版本:1.0(2016年1月29日14:34:07)
代码:
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
#include <windows.h>
#define MYDD 30000 void RED() {//控制台调整前景色为红色HANDLE kai_1 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_1, FOREGROUND_INTENSITY | FOREGROUND_RED); // 为红色
}void GREEN() {//控制台调整前景色为绿色HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_GREEN);// 为绿色
}void LIGHT() {//控制台调整前景色为强光HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);// 为强光
}int main() {int a[MYDD],b[MYDD],c[MYDD];double e[MYDD],d[MYDD];int x,y,N,wqs;double ans,youans; int i,j,cuo,dui;GREEN(); printf("小同学,要努力昂:\n");printf("你想做多少道题目?\n请键入你想要做的题目。\n");RED();scanf("%d",&N) ;printf("你想做的 %d 道\n得分规则:正确一道得分+10,错误一道得分-12\n请键入数字 1 后,回车键开始挑战!\n",N);scanf("%d",&wqs);if(wqs==1) {srand((int)time(0));int chengji=0;//记录成绩 dui=cuo=0;//记录做题数目的对错情况 for(int k=1; k<=N; k++) {LIGHT();printf("当前第 %d 题,剩余 %d 题\n     现在你的分数是  %d  分\n",k,N-k,chengji);c[k]=1+(int)(4.0*rand()/(RAND_MAX+1.0));//字符随机数不会,模拟的数字随机数确定运算符号 switch(c[k]) {case 4: { RED();a[k]=1+(int)(10000.0*rand()/(RAND_MAX+1.0));// 10000 可修改,表示产生的随机整数的最大值 b[k]=1+(int)(10000.0*rand()/(RAND_MAX+1.0));ans=a[k]+b[k];printf("     %d + %d 答案是  ",a[k],b[k]);GREEN();scanf("%lf",&youans);if(youans==ans) {printf("   你的答案是 √恭喜正确,继续努力.\n\n");chengji+=10;dui++;} else { LIGHT();printf("   正确答案为  %.0lf\n    你的答案是  × 不要气馁,再仔细算算.\n\n",ans);chengji-=12;cuo++;}break;}case 1: { RED();a[k]=1+(int)(5000.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(a[k]*rand()/(RAND_MAX+1.0)); ans=a[k]-b[k];printf("     %d - %d 答案是  ",a[k],b[k]);GREEN();scanf("%lf",&youans);if(youans==ans) {printf("   你的答案是 √恭喜正确,继续努力.\n\n");chengji+=10;dui++;} else {LIGHT();printf("   正确答案为  %.0lf\n    你的答案是  × 不要气馁,再仔细算算.\n\n",ans);chengji-=12;cuo++;}break;}case 2: { RED();a[k]=1+(int)(100.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(10.0*rand()/(RAND_MAX+1.0));ans=a[k]*b[k];printf("     %d * %d 答案是  ",a[k],b[k]);GREEN();scanf("%lf",&youans);if(youans==ans) {printf("   你的答案是 √恭喜正确,继续努力.\n\n");chengji+=10;dui++;} else {GREEN();printf("   正确答案为  %.0lf\n    你的答案是  × 不要气馁,再仔细算算.\n\n",ans);chengji-=12;cuo++;}break;}case 3: { RED();a[k]=1+(int)(100.0*rand()/(RAND_MAX+1.0));b[k]=1+(int)(10.0*rand()/(RAND_MAX+1.0));ans=(double)a[k]/(double)b[k]; printf("     %d / %d 答案是(两位小数,四舍五入)  ",a[k],b[k]);GREEN();scanf("%lf",&youans);if(youans==ans) {printf("   你的答案是 √恭喜正确,继续努力.\n\n");chengji+=10;dui++;} else {GREEN();printf("   正确答案为  %.2lf\n    你的答案是  × 不要气馁,再仔细算算.\n\n",ans);chengji-=12;cuo++;}break;}}}LIGHT();printf("\n*********************解  题  报  告*********************\n你的分数是 %d .\n",chengji);printf("你一共做了 %d 道题,正确 %d 题,错误 %d 题 。\n",N,dui,cuo);printf("请点击 Ctrl + Shift +J 截图保存该报告。\n");} elseprintf("让你按的是  1   !!!!\n");system("pause"); return 0;
}


这篇关于C语言课程设计(这个没在老师给定的题目内)——实用的作答题目小代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489827

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim