亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 一個小學生出題器
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, jpeg, ComCtrls,DateUtils,
  XLSReadWriteII2, ApplyFormat, CellFormats2, BIFFRecsII2,XLSFonts2;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Bevel1: TBevel;
    Label4: TLabel;
    Edit1: TEdit;
    Bevel2: TBevel;
    Memo1: TMemo;
    ComboBox1: TComboBox;
    Label9: TLabel;
    Image2: TImage;
    Label3: TLabel;
    ComboBox2: TComboBox;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Key1Up(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    QCount:integer;     //問題數量
    MaxNum:integer;     //最大數值
    OperandNum:integer;//多少元操作數運算
    QList:TstringList;//問題列表
    AList:TstringList;//答案列表
    XLS: TXLSReadWriteII2;
    procedure init;
    procedure Builder;

    procedure ExportToXls;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses expr;

{$R *.dfm}
Function BookLeftSpace(s:string;len:integer):string;
begin
    while length(s)<Len do s:=' '+s;
    result:=s;
end;
Function BookRightSpace(s:string;len:integer):string;
begin
    while length(s)<Len do s:=s+' ';
    result:=s;
end;
Function StringToint(s:string;def:integer=0):integer;
begin
    result:=def;
    s:=trim(s);
    if s='' then exit;
    try
      result:=strtoint(s);
    Except
      result:=def;
    end;
end;
Function showstr(str:string;F:boolean=False;Titlestr:string='注意'):boolean;
begin
      result:=False;
      if not F then
      begin
          application.MessageBox(pchar(str),pchar(titlestr),MB_OK);
          exit;
      end;
      result:=application.MessageBox(pchar(str),pchar(titlestr),MB_OKCancel)=IDOK;
end;
procedure TForm1.init;
begin
    QCount:=0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    Randomize;
    QCount:=0;//問題數量
    OperandNum:=0;//操作數個數
    QList:=TstringList.Create;//問題列表
    AList:=TstringList.Create;//答案列表
    MaxNum:=0;
    XLS:=TXLSReadWriteII2.Create(self);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
    XLS.free;
end;
Function RunExpression(s:string):integer;
var
  yacc: TYacc;
  Lex: TLex;
  B: SmallInt;
begin
  result:=-1;
  if Trim(s) = '' then Exit;
  yacc := TYacc.Create;
  Lex := TLex.Create;
  yacc.ylex := Lex;

  Lex.llib.yyinput := s + ';';
  //yacc.GetFuncValue := GetFuncValue;
    if yacc.yyparse = 0 then
      result:=stringtoint(Lex.llib.yyoutput,-1);
end;
procedure TForm1.Builder;
const p:array[0..1] of string=('-','+');
var //Expressions:TstringList;
    i,j,k,oper:integer;
    ExpressionIsOK:boolean;
    s,Str:string;
begin
    //Expressions:=TstringList.create;
    QList.clear;
    AList.Clear;
    for i:=0 to QCount-1 do
    begin
        ExpressionIsOK:=false;
        while not ExpressionIsOK do
        begin
            j:=1;
            //Expressions.Clear;
            Str:='';
            while j<OperandNum*2 do
            begin
                if odd(j) then
                begin
                    s:=inttostr(random(MaxNum));
                    //Expressions.Add(s);
                    str:=str+s;
                    if (j>1) and (RunExpression(str)<0) then
                        break;
                end
                else
                begin
                    Oper:=random(100);
                    Oper:=ord(odd(Oper));
                    //Expressions.Add(p[Oper]);
                    str:=str+p[Oper];
                end;
                inc(j);
            end;
            if (j>=OperandNum*2) and (QList.IndexOf(Str+' =' )=-1) then
               ExpressionIsOK:=true;
        end;
        QList.Add(Str+' = ');
        AList.Add(inttostr(RunExpression(Str)));
    end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
    QCount:=stringtoint(trim(edit1.text),0);
    if QCount<=0 then
    begin
        showstr('請輸入正確的出期數量!');
        exit;
    end;
    OperandNum:=Combobox2.ItemIndex;
    if OperandNum<0 then
    begin
        showstr('請選擇適合的操作數個數?。ǘ嗌賯€數的加減)');
        exit;
    end;
    OperandNum:=OperandNum+2;
    MaxNum:=Combobox1.ItemIndex;
    if MaxNum<0 then
    begin
        showstr('請選擇正確的最大運算數值范圍');
        exit;
    end;
    case MaxNum of
       0  : MaxNum:=10;
       1  : MaxNum:=20;
       2  : MaxNum:=30;
       3  : MaxNum:=50;
       4  : MaxNum:=100;

    end;
    Builder;
    ExportToXls;
end;

procedure TForm1.ExportToXls;
var FName:string;
    i:integer;
begin

    SaveDialog1.FileName:='小學數據題目與答案'+formatdatetime('yyyymmdd-hhnn',now)+'.xls';
    if not SaveDialog1.Execute then exit;
    FName:=SaveDialog1.FileName;
    if fileExists(FName) then
    begin
        if not showstr('你需要保存的文件已經存在,請確定是否需要覆蓋這個文件?'+FName,true) then
            exit;
    end;
    
    XLS.Filename := FName;
    XLS.Sheets.Clear;
    XLS.Sheets.Add;
    XLS.Sheets.Add;
    with XLS.Sheets[0] do
    begin
        Name:='題目';
        DisplayName:='題目';
        DefaultColWidth:=15;

        for i:=0 to QCount-1 do
        begin
            AsString[0,3+i] :='['+BookLeftSpace(inttostr(i+1),3)+']';
            AsString[1,3+i] :=BookLeftSpace(QList[i],12);
            Cell[0,3+i].FontSize:=14;
            Cell[1,3+i].FontSize:=14;
            Cell[1,3+i].HorizAlignment:=chaRight;
        end;
        AutoWidthCol(0);
        AutoWidthCol(1);

        AsStringRef['B1'] := '小學數學加減法測驗卷';
        Range.ItemsRef['B1:D1'].FontSize := 20;
        Range.ItemsRef['B1:D1'].FontStyle := [xfsBold];

    end;

    with XLS.Sheets[1] do
    begin
        Name:='答案';
        DisplayName:='答案';
        DefaultColWidth:=15;

        for i:=0 to QCount-1 do
        begin
            AsString[0,3+i] :='['+BookLeftSpace(inttostr(i+1),3)+']';
            AsString[1,3+i] :=BookLeftSpace(QList[i],12);
            AsString[2,3+i] :=AList[i];
            Cell[0,3+i].FontSize:=14;
            Cell[1,3+i].FontSize:=14;
            Cell[2,3+i].FontSize:=14;
            Cell[1,3+i].HorizAlignment:=chaRight;
            Cell[2,3+i].HorizAlignment:=chaLeft;
            
        end;
        AutoWidthCol(0);
        AutoWidthCol(1);

        AsStringRef['B1'] := '小學數學加減法測驗卷';
        Range.ItemsRef['B1:D1'].FontSize := 20;
        Range.ItemsRef['B1:D1'].FontStyle := [xfsBold];

    end;



    XLS.Write;

    
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
    close

end;


Function AllIsDigit(s:string):boolean;
var pStr:pchar;
begin
    result:=false;
    pStr:=pchar(s);
    while pStr^<>#0 do
    begin
        if (pStr^<'0') or (pStr^>'9') then Exit;
        inc(pStr);
    end;
    result:=True;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    //if not  AllIsDigit(key) then  key:=#0;
    if not AllIsDigit(trim(Edit1.Text+key)) then Key:=#0;
end;

procedure TForm1.Edit1Key1Up(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if not AllIsDigit(trim(Edit1.Text)) then Key:=0;
end;




end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合在线观看| 亚洲第一福利一区| 欧美午夜精品一区二区蜜桃| 精品久久久久一区二区国产| 国产精品一区二区三区99| 精品国产一区久久| 成人美女视频在线看| 最新国产成人在线观看| 99精品1区2区| 日本三级韩国三级欧美三级| 欧美一级搡bbbb搡bbbb| 国产精品夜夜嗨| 综合久久综合久久| 欧美视频在线不卡| 激情五月播播久久久精品| 国产精品久久免费看| 欧美在线免费播放| 精品一区二区三区在线播放视频 | 久久综合综合久久综合| 精品日韩欧美在线| 菠萝蜜视频在线观看一区| 最新成人av在线| 欧美一级片在线观看| 国产激情视频一区二区三区欧美| 国产偷国产偷亚洲高清人白洁| 99精品视频在线观看| 日韩精品1区2区3区| 亚洲三级在线看| 日韩女优毛片在线| 91国偷自产一区二区开放时间 | 国产一区二区三区高清播放| 亚洲精品精品亚洲| 久久久高清一区二区三区| 欧美在线观看一二区| 不卡av在线免费观看| 国产综合久久久久久鬼色| 亚洲少妇30p| 国产日产亚洲精品系列| 欧美精品国产精品| 久久精品视频免费观看| 精品福利在线导航| 久久免费视频一区| 国产视频在线观看一区二区三区 | 精品美女在线播放| 欧美一级艳片视频免费观看| 91麻豆精品久久久久蜜臀| 在线中文字幕一区| 欧美三级电影在线看| 欧美色爱综合网| 欧美色欧美亚洲另类二区| 欧美三级在线播放| 欧美日本一道本在线视频| 日韩欧美国产精品一区| 免费在线成人网| 国产精品白丝av| 成人国产精品免费观看动漫 | 国产又粗又猛又爽又黄91精品| 六月丁香婷婷色狠狠久久| 国产白丝网站精品污在线入口| 99re亚洲国产精品| 欧美日韩在线精品一区二区三区激情| 欧美日韩另类一区| 久久综合五月天婷婷伊人| 亚洲美女电影在线| 久久电影网电视剧免费观看| 成人动漫一区二区在线| 欧美综合在线视频| 久久久久久久性| 亚洲午夜精品网| 免费xxxx性欧美18vr| a级精品国产片在线观看| 正在播放亚洲一区| 日韩va亚洲va欧美va久久| 美国欧美日韩国产在线播放| 不卡一区二区中文字幕| 欧美一级日韩一级| 亚洲男人天堂av网| 国产精品夜夜嗨| 欧美日韩在线观看一区二区 | 欧美大片在线观看| 亚洲欧美色图小说| 国内精品久久久久影院色| 欧美老年两性高潮| 一区二区欧美精品| 色悠悠亚洲一区二区| 国产精品久久毛片| 国产麻豆精品久久一二三| 日韩午夜小视频| 日韩精品国产精品| 欧美网站大全在线观看| 亚洲自拍偷拍综合| 日韩欧美在线1卡| 午夜视频久久久久久| 在线观看一区日韩| 亚洲三级在线免费观看| 欧美性一二三区| 一区二区三区四区亚洲| 欧美午夜不卡在线观看免费| 亚洲美女精品一区| 欧美日韩国产一二三| 麻豆精品精品国产自在97香蕉| 欧美r级电影在线观看| 国模冰冰炮一区二区| 久久午夜羞羞影院免费观看| 国产成人av一区二区三区在线 | 成人高清免费观看| 亚洲日本在线观看| 欧洲国内综合视频| 久草精品在线观看| 自拍偷拍欧美激情| 精品少妇一区二区三区视频免付费| 日韩在线播放一区二区| 国产欧美精品在线观看| 91福利视频久久久久| 日韩精彩视频在线观看| 亚洲天堂久久久久久久| 日韩视频免费直播| 91蜜桃免费观看视频| 欧美高清视频www夜色资源网| 国产精品欧美综合在线| 欧美午夜电影网| 日本道在线观看一区二区| 偷窥少妇高潮呻吟av久久免费| 麻豆成人在线观看| 精品噜噜噜噜久久久久久久久试看| 久久er99热精品一区二区| 国产精品欧美一区喷水| 中文字幕中文字幕一区二区 | 欧美日韩五月天| 91激情在线视频| 欧美四级电影网| 日本电影欧美片| 在线观看免费一区| 99久久精品久久久久久清纯| 国产精品88av| 丁香啪啪综合成人亚洲小说 | 亚洲靠逼com| 国产精品的网站| 综合色天天鬼久久鬼色| 日韩美女视频一区二区| 国产午夜亚洲精品不卡| 精品动漫一区二区三区在线观看| 日韩亚洲欧美综合| 久久一夜天堂av一区二区三区| 亚洲精品一区二区三区99| 国产女同性恋一区二区| 日韩一区欧美小说| 天堂影院一区二区| 大美女一区二区三区| 欧美一区二区成人| 亚洲欧洲另类国产综合| 激情综合色综合久久综合| 久久精品国产精品亚洲红杏 | 国产精品黄色在线观看| 亚洲精品日韩一| 日韩福利视频导航| 国产精品一区二区在线播放 | 国产精品久久久久久久久免费相片| 亚洲图片你懂的| 日本亚洲天堂网| 成人免费观看男女羞羞视频| 成人aaaa免费全部观看| 欧美美女直播网站| 18欧美亚洲精品| 激情综合网天天干| 色婷婷综合激情| 久久亚洲一区二区三区四区| 亚洲日本欧美天堂| 国产一区二区美女诱惑| 国产日韩高清在线| 亚洲成年人网站在线观看| 久久国产乱子精品免费女| 91丝袜呻吟高潮美腿白嫩在线观看| 7777精品伊人久久久大香线蕉| 国产精品超碰97尤物18| 狠狠色丁香婷婷综合久久片| 91浏览器打开| 国产精品色一区二区三区| 免费成人你懂的| 欧美日本乱大交xxxxx| 一区二区三区四区高清精品免费观看 | 日韩精品成人一区二区在线| 欧美怡红院视频| 亚洲精品乱码久久久久久黑人 | 欧美tk—视频vk| 日韩精品91亚洲二区在线观看| 色老综合老女人久久久| 亚洲视频综合在线| 成人av资源下载| 亚洲免费在线视频| 色婷婷亚洲精品| 亚洲欧美日韩国产一区二区三区| 国内精品国产三级国产a久久| 精品成人a区在线观看| 经典三级在线一区| 国产欧美一区二区精品婷婷| 成人a免费在线看| 成人免费视频一区二区| 久久久久久毛片| 97久久精品人人做人人爽50路 |