C语言中随机函数的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

srand()函数的用法
► srand(
(unsigned)time( NULL ) ); ► 产生一个以当前时间开始的随机种子
情境一:为小学生出20以内的加减计算题,在学生回答后,能 判断对错。
► ► ►
步骤一:出题(出题并显示 随机数1 op 随机数2=) 步骤二:学生做答(输入自己的答案) 步骤三:判断答案的对错(将学生输入的答案与正确答案比 较,并给出判断)
rand()函数的用法
► rand()不需要参数,它会返回一个从0到最大
随机数的任意整数
n= rand() % 11 产生0~10之间的随机整数 n= rand() % 10+1 产生1~10之间的随机整数 n=( rand() % 100)/10.0 产生1~9.9之间的随机小数
模块分解
主函数 登录 显示菜单并选择 出题并答题 制卷 ► 登录 输入并判断密码 最多允许输入三次密码 ► 出题并答题 确定第一、第二操作数,确定运算符 在屏幕中显示试题 Y 获得学生的答案 判断答案的正确性,并统计分数 ► 制成答题试卷

登录 显示菜单 完成出题 和答题 制卷保存 继续 练习 N 退出
情境二:为小学生出20以内的加减计算题,每次出20题,每 题5分,在学生回答后,能给出学生的最后得分,以及对错的 题数。
► ► ► ► ► ►
关键点:随机函数的应用 20用于循环就是的控制 在学生答题后并判断对错后,计算得分 变量定义:n 用于循环变量控制 score: 用于统计分数,初始值为0 right: 用于统计对题的题数,初始值为0
登 录
待解决的问题: 1. 密码
i=0;flag=1; do { gets(mima); if(strcmp(mima,”正确密码串”)==0) {flag=0(密码正确); } else i++; }while( i<3 && flag!=0);
显示菜单并选择任务
int menu() { int k; system("cls"); printf("1. 20以内的加减法练习\n"); printf("2. 100以内的加减法练习\n"); printf("3. 一位数的乘法练习\n"); printf("4. 混合运算测试\n"); printf("0. 退出\n"); printf("\n请输入你的选择(0~4):"); scanf("%d",&k); return k; }

wk.baidu.com
任务分解,确定菜单 20以内加减法sub1() 100以内的加减法sub2() 10以内的乘除法sub3() 菜单的操作方式 多选择开关 循环选择 0菜单项终止操作


试题构成 struct title { int first; char oprand; int second; int result; char rw; }paper[20];
制卷保存



打开文件 确定文件保存目录 输入文件名和序号 打开文件(文件名和打开方式) 将试题写入文件 写入试题的各部分 写入分数 关闭文件

简化程序
一次编程,多次运行(函数的功能)
菜单的选择
► 1.
菜单的显示(printf函数) ► 2. 菜单的控制与选择 (switch语句) ► 3. 菜单的循环控制(while语句)
情境四:针对不同年级的学生进行20以内的加减计算100以内 的加减运算、10以内的乘除运算练习,每次出20题,每题5分, 在学生回答后,能给出学生的最后得分,并将学生的答题以试 卷的形式保存。
关键点:随机数1=rand()%20+1 ► 随机数2=rand()%20+1 ► 运算符op=rand()%2+1 (1为加法,2为减法) ► 变量:a(随机数1) b (随机数2) ► op (操作符) c (正确答案) r(学生答案)

查看完整的程序
几个问题 ► 1、若a<b怎么解决? ► 2、如何实现加减乘运算 ► 3、如何实现一位小数的加减运 算 ► 如何实现连续出10道题 ► 若1题10分,怎么给出学生的 最后得分?
C++中的随机函数
► 标准函数库提供一随机数生成器rand,返回0
-RAND_MAX(32767)之间均匀分布的伪 随机整数 ► srand()函数可以指定不同的数做为随机函 数的种子 ► time的值每时每刻都不同 ,可以做为随机函 数的种子 ► #include <stdlib.h> ► #include <time.h>
情境三:不同年级的学生进行20以内的加减计算、100以内的 加减运算、10以内的乘除运算练习,每次出20题,每题5分, 在学生回答后,能给出学生的最后得分,以及对错的题数。
主要关键点分析

菜单的选择
菜单重复显示 菜单选择,并转向不同的功能

随机组卷和判卷功能
操作数和运算符的随机功能 重复出题 正确判卷
相关文档
最新文档