C语言编写一个简单的选择题答题系统
上个星期,我们老师给我们布置了一道非常变态的作业题。开始一看只有一道题,欣喜若狂,
以为老师终于大发慈悲了一回,结果点开一看,长这样。。。
顿时就傻了眼,对于一个刚接触C语言一两个月的小白来说,不能说不会做,只能说看不懂[哭笑][哭笑]。
但是经过几天的艰苦打拼,最终还是完成了老师交给我们的任务。接下来,就为大家分享一些我写代码时遇到的困难,和解决的方案。
首先我抽到的组是第三组,也就是说要去完成一个20道选择题的答题系统。
困难一
如何保证20道题随机出现?并且20道题里面没有重复的题?
方案一
保证20道题随机出现,我去网上搜寻了一些相关资料,发现rand函数是个不错的选择,(关于rand函数的用法,请观看此文:C语言随机数的生成【详解】_星空之路Star的博客-CSDN博客_c语言随机数)
然后就是如何保证抽到的20个随机数里没有相同的数字。
对此我的做法是
int b[20]=0;for (int i = 0;; i++){int a = 1 + rand() % 20; for(int j=0;j<=19;j++){if(b[j]==0)break;}if(j==20)break;if(b[a-1]!=0continue;if(b[a-1]==0)b[a-1]=1;}
直至20道题全部抽完为止
困难二
怎样将抽到的随机数去对应相应的题号,从而呈现相应的题目?
方案二
对此我用到了函数指针数组来解决此次难题
void (*p[20])() = { t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20 }
当产生了一个随机数后,再
p[a - 1]();
去对应相应的题目
前提是每道题目都要用函数的形式表达出来[苦笑][苦笑]
void t1()
{char a[10];char b='C';int c=0;printf("考察内容:c语言局部变量和全局变量\n");yanshi(2000); // 前面定义了延时函数,来达到延时的效果printf("变量存储类别寄存器变量使用( )关键字\n");printf("A.auto B.extern C.register D.static\n");printf("你的答案是:");gets(a);for(int i=0;i<=strlen(a);i++){if(a[i]!=b&&a[i]!=b+32&&a[i]!=' '){c=1;break;}}if(c==1) printf("答案错误 正确答案是:%c\n",b);else {sum++;printf("恭喜你,回答正确\n");}
}
困难三
如何让输出时的字体变色?
方案三
使输出字体变色我用到的是system函数
具体用法如
system("color 2");
记得加上头文件 Windows.h
详细用法见此文章
(8条消息) C语言中如何使用system函数_路遥芝麻的博客-CSDN博客_c语言system函数用法
困难四
如何让程序延迟执行?
方案四
对此,我用到的是sleep函数
具体用法如
sleep(1000); //程序延时一秒执行
同样也是记得加上头文件 Windows.h
详细用法见此文章
(8条消息) Sleep()函数的使用方法详解_无赖H4的博客-CSDN博客_sleep函数
以上就是我写代码是遇到的比较棘手的问题,希望能给你带来帮助。
也欢迎各位大佬点评和给出观点,进步是不断在不完善中逐渐完善的!受教了。谢谢!!!
C语言编写一个简单的选择题答题系统相关推荐
- 用C语言编写一个“简单”的程序答题系统
上个星期我们老师给我们布置一道他认为很简单的题,其实就想考考我们,要我们写一个简单的答题系统.开始一看只有一道题我直呼:"仰天大笑出门去,我辈岂是蓬蒿人" 以为老师放我一马,结果点 ...
- 用C语言设计一个简易的选择题答题系统
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.设计简易的答题系统 二.使用步骤 1.引入库 2.读入数据 总结:应用随机数,getchar以及if else 前 ...
- c语言编写一个简单的答题系统
利用c语言编写一个简单的答题系统. 思路是先设计好题目和答案,再输入自己的答案,利用输入的答案与正确答案对比,从而得出你回答的对错. (一)捆绑题目和答案 我们可以利用结构体对一个题目捆绑上一个答案. ...
- C语言编写一个简单的扫雷
C语言编写一个简单的扫雷 # include <stdio.h> # include <stdlib.h> # include <math.h> # include ...
- 用 C 语言编写一个简单的垃圾回收器
人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法.我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难 ...
- python语言的记事本在哪_用python语言编写一个简单记事本
看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽. 题目:编写一个功能简单的记事本. 编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本 ...
- 【无标题】C语言编写一个简单答题系统
这是蒟蒻写的第一个博客,将就看看吧! 首先,我写的是一个填空题答题系统,填空题数目为20. 其次,需要随机出题,题目出现顺序要不一致. (1) 产生随机数 1~20 (2) 解决运气不好的问题1-1 ...
- 用GO语言编写一个简单的区块链
区块链的大致概念. 按照个人理解来说,区块,就是保存一个一个数据的模块,然后区块链,是每个区块相连的链表那种,同时区块链实现之所以公平,是采用加密,且不可倒置等的机制,也就是,数据只要成功加载到区块链 ...
- c语言整点报时,C语言编写一个简单整点报时工具源代码
(1)用数字逻辑集成块实现: (2)时间以24小时为一个周期,显示时.分.秒: (3)计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时: (4)为了保证计时的稳定及准确须由晶体振荡器提供表针时间 ...
最新文章
- hdu 1251 统计难题
- view,control,service,dao,model层的关系
- iOS crash 崩溃问题的追踪方法
- Everest 0.6 添加开机自启动程序
- tornado学习笔记day08-tornado中的异步
- c语言练习的软件,我想学C语言,在自己的电脑上练习,要安装什么软件呢?
- Canvas简单动画和像素处理
- html5画布页面,HTML5 界面元素 Canvas 参考手册
- 转(ASP.NET页面缓存)
- Dart 基礎 - 3
- java近义词,同义词查询_java 同义词查询怎么做?
- 本地快速搭建FTP服务器
- 网络上的计算机无权限访问权限,权限,教您怎么解决无internet访问权限
- Kotlin学习系列之:协程的取消和超时
- 获取计算机管理员,获取administrator权限的方法步骤-电脑自学网
- 树莓派上云-天工物接入
- 你还在靠“喂喂喂”来测语音通话质量吗,看完这篇文章你就能掌握正确姿势。
- 关于睡眠,你需要了解的3件事
- pr预设的卷及内核锐化是什么_PR内置特效合集
- 高薪前端都应该具备的开发好习惯
热门文章
- MediaPlayer简单使用
- 2021美赛MCM\ICM E题
- maya表情blendshape_maya在表情制作中Blendshape的使用技巧
- 科研丨Overleaf打开LaTeX编译报错:PDF渲染错误【已解决】
- 正则表达式匹配字符串中以数字结尾的字符
- NIO 选择 Onsemi 的 SiC 牵引功率模块
- graphpad两组t检验_SPSS如何比较样本两组样本的组内和组间差异(含GraphPad Prism绘图)...
- Python 三维绘图
- 复盘2020年全球科技行业:5G建设加速、半导体行业洗牌、云计算爆发 | TMT观察...
- 2020上海国际电力电工展——安科瑞参展产品提前剧透