鱼C论坛

 找回密码
 立即注册
查看: 2338|回复: 3

纯新手看了一晚上视频.写的第一个练习题.但是有点问题.

[复制链接]
发表于 2019-4-6 01:00:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序功能:
自动随机出加法或减法.让小孩计算.edit1+edit2=(答题区域edit3)
如果答案正确自动进入下一题.如果答案错误.Label10里错题数+1.
可选择10.20.30分种练习时间.

但是出了点问题.目前只会if循环和简单的语法.如果连续随机3次+法或-法题之后.答案不管正确错误.错题数都+1。不知道哪里出了问题.请各位老师帮忙指正一下。谢谢

下面是部分代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
   If Random(2) = 1 then  //随机是加法
   begin
   Label1.Caption:= '+';
      //判断答题错误
      if StrToInt(edit3.Text) <> StrToInt(edit1.text) + StrToInt(edit2.text) then
      begin
      Label10.Caption:= IntToStr(No+1); //不正确,错题数+1
      No:= No+1;
      end;
   end
   else                   //随机是减法
   begin
   label1.Caption:= '-';
      //判断答题错误
      if StrToInt(edit3.Text) <> StrToInt(edit1.text) - StrToInt(edit2.text) then
      begin
      Label10.Caption:= IntToStr(No+1);//不正确,错题数+1
      No:= No+1;
      end;
   end;
   Edit1.Text:= IntToStr(Random(9)+10);//edit1出现随机数
   edit2.Text:= IntToStr(Random(9)+1);  //edit2出现随机数
   label7.Caption:= IntToStr(I + 1);                //总题数+1
   i:= i+1;
   Edit3.SelectAll;
end;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-4-6 17:18:57 | 显示全部楼层
有老师来帮助解答一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-12 16:36:28 | 显示全部楼层
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    Button3: TButton;
    Timer1: TTimer;
    Label4: TLabel;
    Memo1: TMemo;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation
var i:string;
var a,b,c,d,e,f:integer;


tCount:integer;


{$R *.dfm}



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #3, #13, #8, #22]) then
    key := #0;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #3, #13, #8, #22]) then
    key := #0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
case  random(4) of        //case语句用来随机产生+-*/

0: i:='+';
1: i:='-';
2: i:='*';
3: i:='/';
end;
label1.Caption :='第'+inttostr(f+1)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
label3.Caption :='';
label1.Caption :='';
label3.Caption :=i;
  randomize;//初始随机数;
a:=random(20);
b:=random(20);
edit1.Text :=inttostr(a);
edit2.Text :=inttostr(b);
button1.Enabled :=false;
button2.Enabled :=true;
edit1.Enabled :=true;
edit2.Enabled :=true;
edit3.Enabled :=true;



button1.Caption :='下一题';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin label3.Caption :='';
  label1.Caption :='';
  label2.Caption :='';
  label1.Font.Size :=10;
  label3.Font.Size :=10;
  label2.Font.Size :=10;
  button2.Enabled :=false;
  edit1.Enabled :=false;
  edit2.Enabled :=false;
  edit3.Enabled :=false;
  memo1.Text :='';

  case  random(4) of      //case语句用来随机产生+-*/
        0: i:='+';
        1: i:='-';
        2: i:='*';
        3: i:='/';
  end;
  //////////////////////
  tCount := 20*60; // 100分钟
Timer1.Interval := 1000; // 1秒钟触发一次
Timer1.Enabled := false;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin
if edit3.Text =''then
exit;

c:=strtoint(edit1.text)+strtoint(edit2.text);
f:=f+1;

  if i= '+' then
  begin
      if c=strtoint(edit3.Text) then
      begin

       messagebox(handle,'小朋友真棒!回答正确!请准备开始下一题的练习!','恭喜!',MB_ICONASTERISK);
       label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
       button2.Enabled :=false;
       edit3.Text :='';
       edit2.Text :='';
       edit1.Text :='';
       button1.Enabled :=true;
       label2.Visible :=true;
       d:=d+1;
       label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);



          exit;
      end
      else
       begin
           messagebox(handle,'很遗憾!小朋友,你的答案不正确,要加油哦!没关系我们开始下一题的练习!','回答错误!',MB_ICONEXCLAMATION);
           button2.Enabled :=false;
           label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
           edit3.Text :='';
           edit2.Text :='';
           edit1.Text :='';
           edit1.Enabled :=false;
           edit2.Enabled :=false;
           edit3.Enabled :=false;
           button1.Enabled :=true;
            e:=e+1;
           label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
            exit;
       end;

    end;
     c:=strtoint(edit1.text)-strtoint(edit2.text);
  ////////////////////////////////////////////////////
  if i= '-' then
  begin
      if c=strtoint(edit3.Text) then
      begin

       messagebox(handle,'小朋友真棒!回答正确!请准备开始下一题的练习!','恭喜!',MB_ICONASTERISK);
       button2.Enabled :=false;
       label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
       edit3.Text :='';
       edit2.Text :='';
       edit1.Text :='';
       button1.Enabled :=true;
       label2.Visible :=true;
       d:=d+1;
       label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
         exit;
      end
      else
       begin
           messagebox(handle,'很遗憾!小朋友,你的答案不正确,要加油哦!没关系我们开始下一题的练习!','回答错误!',MB_ICONEXCLAMATION);
           button2.Enabled :=false;
           label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
           edit3.Text :='';
           edit2.Text :='';
           edit1.Text :='';
           edit1.Enabled :=false;
           edit2.Enabled :=false;
           edit3.Enabled :=false;
           button1.Enabled :=true;
            e:=e+1;
           label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
           exit;
       end;

    end;
   ///////////////////////////////////////////////////////////////////////
    c:=strtoint(edit1.text)*strtoint(edit2.text);
    if i= '*' then
  begin
      if c=strtoint(edit3.Text) then
      begin

       messagebox(handle,'小朋友真棒!回答正确!请准备开始下一题的练习!','恭喜!',MB_ICONASTERISK);
       button2.Enabled :=false;
       label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
       edit3.Text :='';
       edit2.Text :='';
       edit1.Text :='';
       button1.Enabled :=true;
       label2.Visible :=true;
       d:=d+1;
       label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
        exit;
      end
      else
       begin
           messagebox(handle,'很遗憾!小朋友,你的答案不正确,要加油哦!没关系我们开始下一题的练习!','回答错误!',MB_ICONEXCLAMATION);
           button2.Enabled :=false;
           label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
           edit3.Text :='';
           edit2.Text :='';
           edit1.Text :='';
           edit1.Enabled :=false;
           edit2.Enabled :=false;
           edit3.Enabled :=false;
           button1.Enabled :=true;
             e:=e+1;
           label2.Caption :='总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
          exit;
       end;

    end;
    /////////////////////////////////////////////////////////
     c:=strtoint(edit1.text) div strtoint(edit2.text);
     if i= '/' then
  begin
      if c=strtoint(edit3.Text) then
      begin

       messagebox(handle,'小朋友真棒!回答正确!请准备开始下一题的练习!','恭喜!',MB_ICONASTERISK);
       button2.Enabled :=false;
       label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
       edit3.Text :='';
       edit2.Text :='';
       edit1.Text :='';
       button1.Enabled :=true;
       label2.Visible :=true;
       d:=d+1;
       label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
        exit;
      end
      else
       begin
           messagebox(handle,'很遗憾!小朋友,你的答案不正确,要加油哦!没关系我们开始下一题的练习!','回答错误!',MB_ICONEXCLAMATION);
           button2.Enabled :=false;
           label1.Caption :='第'+inttostr(f)+'题:' + edit1.Text  + i + edit2.Text  + '=' + edit3.Text ;
        memo1.Text :=memo1.Text+#10+#13+label1.Caption +#10#13;
           edit3.Text :='';
           edit2.Text :='';
           edit1.Text :='';
           edit1.Enabled :=false;
           edit2.Enabled :=false;
           edit3.Enabled :=false;
           button1.Enabled :=true;
           e:=e+1;
           label2.Caption := '总数:'+inttostr(f)+#10#13+'正确:'+inttostr(d)+#10#13+'错误:' + inttostr(e);
            exit;
       end;

    end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
h,n,s:string;
begin
Dec(tCount);
h := IntToStr(tCount div 3600); // 小时
n := IntToStr((tCount div 60) mod 60); // 分钟
s := IntToStr(tCount mod 60); // 秒
if Length(h)=1 then h := '0'+h;
if Length(n)=1 then n := '0'+n;
if Length(s)=1 then s := '0'+s;
Label4.Caption := '离学习时间20分钟还有:'+h+':'+n+':'+s;
if tCount=0 then begin // 倒计时结束
Timer1.Enabled := False;
label4.Font.Size :=12;
label4.caption:='时间到,请结束学习进行打分!'


end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
timer1.Enabled :=true;
end;

end.


已测试,通过!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-7 14:34:49 | 显示全部楼层
楼主,问题解决了,请结帖!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 03:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表