回 帖 发 新 帖 刷新版面

主题:[讨论]抄作业和做作业的都到这里来。

为小学生编写一个一位数加法运算的练习程序。
  先让学生选择难度:A,B
  难度A:程序一共产生10道题(由计算机随机产生),在屏幕上依次显示各题,要求学生输入答案,每道题有两次回答机会。只要答对一次即给10分,两次都未答对不给分。
  难度B:程序一共产生10道题(由计算机随机产生),在屏幕上依次显示各题,要求学生输入答案,每道题只给一次回答机会。答对给10分,未答对不给分。
  每当所有题都答完时,在屏幕上显示本次练习成绩,并询问是否再来一次;选择“Y”,则重新选择难度,再来一次;选择“N”,退出练习程序。
要求用到WHILE-WEND语句。


defint a-z
print "是否开始练习?";
while ucase$(input$(1))="Y"
  cls
  input "请选择难度 A,B:";a$
  a$=ucase$(rtrim$(a$))
  if a$<>"B"then j=1 else j=2
  f=0
  for t=1 to 10
    randomize timer
    x=rnd*10
    y=rnd*10
    z=x+y
   for i=1 to j
    print
    print "第";t;"题:";x;"+";y;"=";
    input ;s
      if s=z then
         print "√";
         f=f+10
         exit for
      else
         print "×";
      end if
   next i,t
   print
   print "本次练习完成,你的成绩是";f;"分. 是否需要再来一次?(Y/N)";
wend

回复列表 (共4个回复)

沙发

谢谢楼主。。
但是你编的程序我有些还没学好。
DO语句没学 。

板凳

ucase$(input$(1))="Y"这句是什么意思。
还有  randomize timer
和defint a-z
a$=ucase$(rtrim$(a$))
上面4句都不太理解。
其他都明白了。

3 楼

defint a-z                          '以字母A~Z的都是INTEGER(整型)变量
print "是否开始练习?";             '提示
while ucase$(input$(1))="Y"         '等待键盘输入一个按键  
  cls                               '清屏
  input "请选择难度 A,B:";a$       '提示并等待输入选择
  a$=ucase$(rtrim$(a$))             '将输入字符截去右边的空格并转换成大写
  if a$<>"B"then j=1 else j=2       '判断选择了哪一个
  f=0
  for t=1 to 10                     '循环(随机出10题)
    randomize timer                 '激了随机数,使每次取的题目不重复
    x=rnd*10                        '随机取10以内一人数存入变量X
    y=rnd*10                        '随机取10以内一人数存入变量Y
    z=x+y                           '把X+Y的结果存入Z
   for i=1 to j                     'j 是答题机会 1=1次 2=2次
    print                           '打印一空行  
    print "第";t;"题:";x;"+";y;"=";'打印题目
    input ;s                        '等待输入答案    
      if s=z then                   '如果答案正确
         print "√";                '打印"√",不换行   
         f=f+10                     '加10分
         exit for                   '结束这次答题
      else                          '否则:  
         print "×";                '打印"×",不换行
      end if
   next i,t
   print                            '打印一空行
   print "本次练习完成,你的成绩是";f;"分. 是否需要再来一次?(Y/N)";
wend

RTRIM$ 截去字符串右边的空格
UCASE$ 将字母转换成大写
INPUT$ 接受输入
TIMER  取系统自午夜至现在所经过的秒数*18.2
RANDOMIZE 激发随机数
DEFINT 默认A-Z为INTEGER型

(请在QB编辑状态下输入请求帮助的内容,光标移到行首,按F1键,帮助有更详细说明)

4 楼

谢谢QB71的解释..
再次谢谢楼主的程序.

我来回复

您尚未登录,请登录后再回复。点此登录或注册