Welcome![Sign In][Sign Up]
Location:
Search - 16*64 13

Search list

[Other resourcehuffman

Description: 实现最优二叉树的构造;在此基础上完成哈夫曼编码器与译码器。 假设报文中只会出现如下表所示的字符: 字符 A B C D E F G H I J K L M N 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 字符 O P Q R S T U V W X Y Z , . 频度 63 15 1 48 51 80 23 8 18 1 16 1 6 2 要求完成的系统应具备如下的功能: 1.初始化。从终端(文件)读入字符集的数据信息,。建立哈夫曼树。 2.编码:利用已建好的哈夫曼树对明文文件进行编码,并存入目标文件(哈夫曼码文件)。 3.译码:利用已建好的哈夫曼树对目标文件(哈夫曼码文件)进行编码,并存入指定的明文文件。 4.输出哈夫曼编码文件:输出每一个字符的哈夫曼编码。
Platform: | Size: 132535 | Author: 张娟 | Hits:

[Other Games瑪莉台(老虎機)

Description:

var
  Form1: TForm1;
  MousePos: TPoint;
  bet_x : Integer;
  bet_y : Integer;
  i, j, k, l, r, m, n : integer;// i:大迴圈 J:跑燈迴圈 K:倍數燈 L:倍數燈 M:大小燈  n:比倍迴圈
  left_bai, right_bai : Integer; //左邊倍數..右邊倍數
  Ti, Tj : Cardinal; //迴圈時間 , 押注連續時間
  rb, rd : integer;//加速用定位
  score : Integer;//現有分數
  take_score : Integer;//得分
  bet_ok : Boolean;    //押注完成
  re_bet : Boolean;    //重新押注
  bar_bet, seven_bet, star_bet, Watermelon_bet, bell_bet, Lemon_bet, Orange_bet, apple_bet : Integer;
  bar_bet_full, seven_bet_full, star_bet_full, Watermelon_bet_full, bell_bet_full, Lemon_bet_full, Orange_bet_full, apple_bet_full : Boolean; //下注全滿
  bet_all : Integer;//押注總和
  runing : Boolean; //正在跑燈
  not_take_score : Boolean;//是否已經取回得分
  big_small : Integer;  //大小  大:0  小:1
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  if (not AsphyreDevice1.Initialize()) then
  begin
   Close();
   Exit;
  end;

  Randomize;
  Ti := 451; //毫秒
  score := 5000;
  bet_ok := False;
  runing := False;
  re_bet := True;
  not_take_score := False;
  Tj := 50;
  PlaySound('R_21',hinstance,SND_ASYNC or SND_RESOURCE);

end;

procedure TForm1.AsphyreDevice1Initialize(Sender: TObject;
  var Success: Boolean);
begin
  Success:=AsphyreFonts1.LoadFromASDb(ASDb1);
  if (Success) then
  Success:=AsphyreImages1.LoadFromASDb(ASDB1);
  //if (Success) then SoundSystem1.LoadFromASDb(ASDb1);
  AsphyreTimer1.Enabled:= Success;
end;

procedure TForm1.AsphyreDevice1Render(Sender: TObject);
begin
  AsphyreCanvas1.Draw(AsphyreImages1.Image['23ok1.image'],0,0,0,1); //背景加載
  AsphyreFonts1[2].TextOut(format('%6s',[IntToStr(score)]), 232,56, $FF2425FF); //資金顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%6s',[IntToStr(take_score)]), 66,56, $FF2425FF); //得分顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(bar_bet)]), 18,523, $FF2425FF); //BAR押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(seven_bet)]), 64,523, $FF2425FF); //77押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(star_bet)]), 112,523, $FF2425FF); //双星押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(Watermelon_bet)]), 159,523, $FF2425FF); //西瓜押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(bell_bet)]), 206,523, $FF2425FF); //鈴鐺押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(Lemon_bet)]), 253,523, $FF2425FF); //檸檬押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(Orange_bet)]), 300,523, $FF2425FF); //橘子押注顯示( $FF0400FF 正紅 )
  AsphyreFonts1[2].TextOut(format('%2s',[IntToStr(apple_bet)]), 347,523, $FF2425FF); //蘋果押注顯示( $FF0400FF 正紅 )
  //AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 174,90+i,0,1);
  Demo;
  Form1.FormStyle := fsStayOnTop;
  if (bet_x > 267) and (bet_x < 374) and (bet_y > 555) and (bet_y < 588) then AsphyreCanvas1.Draw(AsphyreImages1.Image['start4.image'], 265,555,0,1);
  if (bet_x > 24) and (bet_x < 83) and (bet_y > 559) and (bet_y < 587) then AsphyreCanvas1.Draw(AsphyreImages1.Image['big2.image'], 24,559,0,1);
  if (bet_x > 89) and (bet_x < 144) and (bet_y > 559) and (bet_y < 587) then AsphyreCanvas1.Draw(AsphyreImages1.Image['small2.image'], 89,559,0,1);
end;

procedure TForm1.AsphyreTimer1Timer(Sender: TObject);
begin
  AsphyreDevice1.Render(0,true);
  AsphyreDevice1.Flip;
end;

procedure TForm1.Demo();     //選擇性顯示
begin
    case j of
      1 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 174,90,0,fxMax);
      2 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 224,90,0,fxMax);
      3 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 276,90,0,fxMax);
      4 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,90,0,fxMax);
      5 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,142,0,fxMax);
      6 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,192,0,fxMax);
      7 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,244,0,fxMax);
      8 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,294,0,fxMax);
      9 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,346,0,fxMax);
      10 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 326,398,0,fxMax);
      11 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 276,398,0,fxMax);
      12 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 224,398,0,fxMax);
      13 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 174,398,0,fxMax);
      14 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 122,398,0,fxMax);
      15 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 71,398,0,fxMax);
      16 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,398,0,fxMax);
      17 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,346,0,fxMax);
      18 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,294,0,fxMax);
      19 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,244,0,fxMax);
      20 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,192,0,fxMax);
      21 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,142,0,fxMax);
      22 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 20,90,0,fxMax);
      23 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 71,90,0,fxMax);
      24 : AsphyreCanvas1.Draw(AsphyreImages1.Image['1.image'], 122,90,0,fxMax);
    end;
    case k of
      1 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 74,454,0,fxMax);
      2 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 121,454,0,fxMax);
      3 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 167,454,0,fxMax);
    end;
    case l of
      1 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 309,454,0,fxMax);
      2 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 261,454,0,fxMax);
      3 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-2.image'], 215,454,0,fxMax);
    end;
    case m of
      1 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-1.image'], 123,285,0,fxMax);
      2 : AsphyreCanvas1.Draw(AsphyreImages1.Image['-1.image'], 244,285,0,fxMax);
    end;
end;


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if (x > 267) and (x < 374) and (y > 555) and (y < 588) or    //这里是改变鼠标样子的 --開始
     (x > 14) and (x < 55) and (y > 492) and (y < 546) or //--BAR
     (x > 61) and (x < 101) and (y > 492) and (y < 546) or  //--77
     (x > 109) and (x < 149) and (y > 492) and (y < 546) or  // --双星
     (x > 155) and (x < 197) and (y > 492) and (y < 546) or  // --西瓜
     (x > 203) and (x < 243) and (y > 492) and (y < 546) or  //  --鈴鐺
     (x > 249) and (x < 289) and (y > 492) and (y < 546) or  //  --檸檬
     (x > 297) and (x < 337) and (y > 492) and (y < 546) or  //  --橘子
     (x > 344) and (x < 384) and (y > 492) and (y < 546) or  //  --蘋果
     (x > 24) and (x < 83) and (y > 559) and (y < 587) or    //  --押大
     (x > 89) and (x < 144) and (y > 559) and (y < 587) then //  --壓小
     begin
       form1.Cursor := crHandPoint //进入这个区域,鼠标变成手型
     end
  else
    form1.Cursor := crDefault; //离开时,恢复默认鼠标

GetCursorPos(MousePos);
//Form1.Caption:='相對座標'+IntToStr(x)+','+IntToStr(y) + '絕對座標'+IntToStr(MousePos.X)+','+IntToStr(MousePos.Y);
bet_x := x;
bet_y := y;

end;



procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (x > 267) and (x < 374) and (y > 555) and (y < 588) then // --開始
    begin


    end;
  if (x > 14) and (x < 55) and (y > 492) and (y < 546) then  //--BAR 押分
    begin

    end;
  if (x > 109) and (x < 149) and (y > 492) and (y < 546) then  //--77 押分
  begin

  end;
  if (x > 109) and (x < 149) and (y > 492) and (y < 546) then    // --双星
  begin

  end;
  if (x > 155) and (x < 197) and (y > 492) and (y < 546) then     // --西瓜
  begin

  end;
  if (x > 203) and (x < 243) and (y > 492) and (y < 546) then     //  --鈴鐺
  begin

  end;
  if (x > 249) and (x < 289) and (y > 492) and (y < 546) then      //  --檸檬
  begin

  end;
  if (x > 297) and (x < 337) and (y > 492) and (y < 546) then      //  --橘子
  begin

  end;
  if (x > 344) and (x < 384) and (y > 492) and (y < 546) then   //  --蘋果
  begin

  end;
end;


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (x > 267) and (x < 374) and (y > 555) and (y < 588) then // --開始壓下檢查
     begin
       if (not runing) then
       begin
         if (take_score > 0) then
           begin
             PlaySound('R_1',hinstance,SND_ASYNC or SND_RESOURCE);
             score := take_score + score;
             take_score := 0;
           end
           else
             start_key();
       end;
     end;
  if (x > 14) and (x < 55) and (y > 492) and (y < 546) then  //--BAR 押分
    begin

    end;
  if (x > 61) and (x < 101) and (y > 492) and (y < 546) then  //--77 押分
    begin

    end;
  if (x > 109) and (x < 149) and (y > 492) and (y < 546) then    // --双星
  begin

  end;
  if (x > 155) and (x < 197) and (y > 492) and (y < 546) then     // --西瓜
  begin

  end;
  if (x > 203) and (x < 243) and (y > 492) and (y < 546) then     //  --鈴鐺
  begin

  end;
  if (x > 249) and (x < 289) and (y > 492) and (y < 546) then      //  --檸檬
  begin

  end;
  if (x > 297) and (x < 337) and (y > 492) and (y < 546) then      //  --橘子
  begin

  end;
  if (x > 344) and (x < 384) and (y > 492) and (y < 546) then   //  --蘋果
  begin

  end;
  if (x > 24) and (x < 83) and (y > 559) and (y < 587) then   //  --押大
  begin
    if (take_score >= 1) then
    begin
      big_small := 0;
      r := random(4);
      Timer2.Enabled := True;
    end;
  end;
  if (x > 89) and (x < 144) and (y > 559) and (y < 587) then   //  --押小
  begin
    if (take_score >= 1) then
    begin
      big_small := 1;
      r := random(4);
      Timer2.Enabled := True;
    end;
  end;
  if (x > 201) and (x < 221) and (y > 54) and (y < 74) then  //移動分數
    begin

    end;

end;


procedure TForm1.Timer1Timer(Sender: TObject);    //跑燈
var
  ra : integer;//總步數
begin
  runing := True;
  Timer1.Interval := Ti;
  ra := 72;
  ra := ra + r;
  rb := rb + 1;
  i := i + 1;

  if (rb < 10) then
    begin
      Ti := Ti - 50; //加速
      PlaySound('R_1',hinstance,SND_ASYNC or SND_RESOURCE);
    end;
  if (i > ra-12) then
    begin
      Ti := Ti + 50;//減速
      PlaySound('R_1',hinstance,SND_ASYNC or SND_RESOURCE);
    end;
  j := j + 1;
  if (j >= 25) then j := 1;

  k := k + 1;
  if (k >= 4) then  k := 1;

  l := l + 1;
  if (l >= 4) then l := 1;

  {m := m + 1;
  if (m >= 3) then m := 1;}
  //PlaySound('R_1',hinstance,SND_ASYNC or SND_RESOURCE);
  //SoundSystem1.Play('Unti1.wav', False);
  Form1.Caption := inttostr(Ti) + '-j:' + inttostr(j) + '-r:' + IntToStr(r) + '-ra:' + IntToStr(ra) + '--rb:' + IntToStr(rb) + '__';
  if (i >= ra) then //燈跑完後要做的事
  begin
    Timer1.Enabled := False;
    Ti := 451;
    rb := 0;
    i := j+1;
    take_allscore();
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
  rc : integer;//總步數
begin
  runing := True;
  Timer2.Interval := Tj;
  rc := 12;
  rc := rc + r;
  rd := rd + 1;
  n := 1 + n;
  if (n >= rc) then //燈跑完後要做的事
  begin
    Timer2.Enabled := False;
    Tj := 50;
    rd := 1;
    n := 0;
    bi_bai_take_allscore();
  end;
 
  if (n > rc-12) then
    begin
      Tj := Tj + 50;//減速
      PlaySound('R_1',hinstance,SND_ASYNC or SND_RESOURCE);
    end;

  m := m + 1;
  if (m >= 3) then m := 1;
end;



procedure TForm1.take_allscore();
begin
  case k of
      1 : left_bai := 40;
      2 : left_bai := 30;
      3 : left_bai := 20;
    end;

  case k of
      1 : right_bai := 10;
      2 : right_bai := 20;
      3 : right_bai := 15;
    end;

  case j of
      1 : begin
          if (bar_bet >= 1) then
          begin
             PlaySound('R_11',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := bar_bet * 100;
          end;
           end;
      2 : begin
          if (apple_bet >= 1) then
          begin
            PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := apple_bet * 5;
          end;
          end;
      3 : begin
          if (Lemon_bet >= 1) then
          begin
            PlaySound('R_16',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Lemon_bet * 2;
          end;
          end;
      4 : begin
          if (Lemon_bet >= 1) then
          begin
            PlaySound('R_16',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Lemon_bet * right_bai;
          end;
          end;
      5 : begin
          if (Watermelon_bet >= 1) then
          begin
            PlaySound('R_14',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Watermelon_bet * left_bai;
          end;
          end;
      6 : begin
          if (Watermelon_bet >= 1) then
          begin
            PlaySound('R_14',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Watermelon_bet * 2;
          end;
          end;
      7 : begin
            take_score := 0;
          end;
      8 : begin
          if (apple_bet >= 1) then
          begin
            PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := apple_bet * 5;
          end;
          end;
      9 : begin
          if (Orange_bet >= 1) then
          begin
            PlaySound('R_17',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Orange_bet * 2;
          end;
          end;
      10 : begin
           if (Orange_bet >= 1) then
           begin
            PlaySound('R_17',hinstance,SND_ASYNC or SND_RESOURCE);
            take_score := Orange_bet * right_bai;
           end;
          end;
      11 : begin
           if (bell_bet >= 1) then
           begin
             PlaySound('R_15',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := bell_bet * right_bai;
           end;
           end;
      12 : begin
           if (bell_bet >= 1) then
           begin
             PlaySound('R_15',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := bell_bet * 2;
           end;
           end;
      13 : begin
           if (seven_bet >= 1) then
           begin
             PlaySound('R_12',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := seven_bet * left_bai;
           end;
           end;
      14 : begin
           if (apple_bet >= 1) then
           begin
             PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := apple_bet * 5;
           end;
           end;
      15 : begin
           if (apple_bet >= 1) then
           begin
             PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := apple_bet * 2;
           end;
           end;
      16 : begin
           if (Lemon_bet >= 1) then
           begin
             PlaySound('R_16',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := Lemon_bet * right_bai;
           end;
           end;
      17 : begin
           if (star_bet >= 1) then
           begin
             PlaySound('R_13',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := star_bet * left_bai;
           end;
           end;
      18 : begin
           if (star_bet >= 1) then
           begin
             PlaySound('R_13',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := star_bet * 2;
           end;
           end;
      19 : begin
             take_score := 0;
           end;
      20 : begin
           if (apple_bet >= 1) then
           begin
             PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := apple_bet * 5;
           end;
           end;
      21 : begin
           if (seven_bet >= 1) then
           begin
             PlaySound('R_12',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := seven_bet * 2;
           end;
           end;
      22 : begin
           if (Orange_bet >= 1) then
           begin
             PlaySound('R_17',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := Orange_bet * right_bai;
           end;
           end;
      23 : begin
           if (bell_bet >= 1) then
           begin
             PlaySound('R_11',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := bell_bet * right_bai;
           end;
           end;
      24 : begin
           if (bar_bet >= 1) then
           begin
             PlaySound('R_18',hinstance,SND_ASYNC or SND_RESOURCE);
             take_score := bar_bet * 50;
           end;
           end;
    end;

  runing := False;
  bet_ok := False;;
  re_bet := True;
  bar_bet_full := False;
  seven_bet_full := False;
  star_bet_full := False;
  Watermelon_bet_full := False;
  bell_bet_full := False;
  Lemon_bet_full := False;
  Orange_bet_full := False;
  apple_bet_full := False;
end;

procedure TForm1.bi_bai_take_allscore();
begin
  case m of
      1 : if (big_small = 1) then
          begin
            take_score := take_score * 2;
            PlaySound('R_19',hinstance,SND_ASYNC or SND_RESOURCE);
          end
            else
            begin
            take_score := 0;
            PlaySound('R_20',hinstance,SND_ASYNC or SND_RESOURCE);
            end;
      2 : if (big_small = 0) then
          begin
            take_score := take_score * 2;
            PlaySound('R_19',hinstance,SND_ASYNC or SND_RESOURCE);
          end
            else
            begin
            take_score := 0;
            PlaySound('R_20',hinstance,SND_ASYNC or SND_RESOURCE);
            end;
    end;

  runing := False;
  bet_ok := False;;
  re_bet := True;
  bar_bet_full := False;
  seven_bet_full := False;
  star_bet_full := False;
  Watermelon_bet_full := False;
  bell_bet_full := False;
  Lemon_bet_full := False;
  Orange_bet_full := False;
  apple_bet_full := False;
end;



procedure TForm1.start_key();
begin
  bet_all := bar_bet + seven_bet + star_bet + Watermelon_bet + bell_bet + Lemon_bet + Orange_bet + apple_bet;
  if (not runing) then
     begin
       if (take_score >= 0) then
          begin
            score := take_score + score;
            take_score := 0;
            if (bar_bet >= 1) or (seven_bet >= 1) or (star_bet >= 1) or (Watermelon_bet >= 1) or
               (bell_bet >= 1) or (Lemon_bet >= 1) or (Orange_bet >= 1) or (apple_bet >= 1) then
               Begin
                 if re_bet then
                 begin
                   if (score >= bet_all) then
                   begin
                     score := score - bet_all;
                     bet_ok := True;
                   end
                   else
                   begin
                     bet_ok := False;
                     Exit;
                   end;
                 end;
                 if bet_ok then
                 begin
                   r := random(24);
                   Timer1.Enabled := True;
                 end;
               end;
          end;
     end;
end;




procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if (bet_x > 14) and (bet_x < 55) and (bet_y > 492) and (bet_y < 546) then  //--BAR 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;

            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (bar_bet >= 99) then
            begin
              bar_bet_full := True;
            end
            else
            begin
              PlaySound('R_2',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              bar_bet := bar_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 61) and (bet_x < 101) and (bet_y > 492) and (bet_y < 546) then  //--77 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (seven_bet >= 99) then
            begin
              seven_bet_full := True;
            end
            else
            begin
              PlaySound('R_3',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              seven_bet := seven_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 109) and (bet_x < 149) and (bet_y > 492) and (bet_y < 546) then  //--star 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (star_bet >= 99) then
            begin
              star_bet_full := True;
            end
            else
            begin
              PlaySound('R_4',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              star_bet := star_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 155) and (bet_x < 197) and (bet_y > 492) and (bet_y < 546) then  //--西瓜 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (Watermelon_bet >= 99) then
            begin
              watermelon_bet_full := True;
            end
            else
            begin
              PlaySound('R_5',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              watermelon_bet := watermelon_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 203) and (bet_x < 243) and (bet_y > 492) and (bet_y < 546) then  //--鈴鐺 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (bell_bet >= 99) then
            begin
              bell_bet_full := True;
            end
            else
            begin
              PlaySound('R_6',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              bell_bet := bell_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 249) and (bet_x < 289) and (bet_y > 492) and (bet_y < 546) then  //--檸檬 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (lemon_bet >= 99) then
            begin
              lemon_bet_full := True;
            end
            else
            begin
              PlaySound('R_7',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              lemon_bet := lemon_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 297) and (bet_x < 337) and (bet_y > 492) and (bet_y < 546) then  //--橘子 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (orange_bet >= 99) then
            begin
              orange_bet_full := True;
            end
            else
            begin
              PlaySound('R_8',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              orange_bet := orange_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if (bet_x > 344) and (bet_x < 384) and (bet_y > 492) and (bet_y < 546) then  //--蘋果 押分
    begin
      if (not runing) then
      begin
        if (score >= 1) then
        begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;
            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
          begin
            if (apple_bet >= 99) then
            begin
              apple_bet_full := True;
            end
            else
            begin
              PlaySound('R_9',hinstance,SND_ASYNC or SND_RESOURCE);
              score := score - 1;
              apple_bet := apple_bet + 1;
              bet_ok := True;
            end;
          end;
        end;
      end;
    end;
  if bar_bet_full and seven_bet_full and star_bet_full and Watermelon_bet_full and bell_bet_full and Lemon_bet_full and Orange_bet_full and apple_bet_full then
  begin
    start_key();
  end;
end;





procedure TForm1.FormDblClick(Sender: TObject);
begin
  if (not runing) then
      begin
        if (score >= 1) then
        begin
          if (score >= 792) then
          begin
          if re_bet then
          begin
            score := take_score + score;
            take_score := 0;

            bar_bet := 0;
            seven_bet := 0;
            star_bet := 0;
            Watermelon_bet := 0;
            bell_bet := 0;
            Lemon_bet := 0;
            Orange_bet := 0;
            apple_bet := 0;
            re_bet := False;
          end
          else
  &
Platform: | Size: 4438122 | Author: 039917 | Hits:

[BooksVerilog教程

Description: 目 录 译者序 前言 第1章 简介 1 1.1 什么是Verilog HDL? 1 1.2 历史 1 1.3 主要能力 1 第2章 HDL指南 4 2.1 模块 4 2.2 时延 5 2.3 数据流描述方式 5 2.4 行为描述方式 6 2.5 结构化描述形式 8 2.6 混合设计描述方式 9 2.7 设计模拟 10 第3章 Verilog语言要素 14 3.1 标识符 14 3.2 注释 14 3.3 格式 14 3.4 系统任务和函数 15 3.5 编译指令 15 3.5.1 `define和`undef 15 3.5.2 `ifdef、`else 和`endif 16 3.5.3 `default_nettype 16 3.5.4 `include 16 3.5.5 `resetall 16 3.5.6 `timescale 16 3.5.7 `unconnected_drive和 `nounconnected_drive 18 3.5.8 `celldefine 和 `endcelldefine 18 3.6 值集合 18 3.6.1 整型数 18 3.6.2 实数 19 3.6.3 字符串 20 3.7 数据类型 20 3.7.1 线网类型 20 3.7.2 未说明的线网 23 3.7.3 向量和标量线网 23 3.7.4 寄存器类型 23 3.8 参数 26 第4章 表达式 28 4.1 操作数 28 4.1.1 常数 28 4.1.2 参数 29 4.1.3 线网 29 4.1.4 寄存器 29 4.1.5 位选择 29 4.1.6 部分选择 29 4.1.7 存储器单元 30 4.1.8 函数调用 30 4.2 操作符 30 4.2.1 算术操作符 31 4.2.2 关系操作符 33 4.2.3 相等关系操作符 33 4.2.4 逻辑操作符 34 4.2.5 按位操作符 35 4.2.6 归约操作符 36 4.2.7 移位操作符 36 4.2.8 条件操作符 37 4.2.9 连接和复制操作 37 4.3 表达式种类 38 第5章 门电平模型化 39 5.1 内置基本门 39 5.2 多输入门 39 5.3 多输出门 41 5.4 三态门 41 5.5 上拉、下拉电阻 42 5.6 MOS开关 42 5.7 双向开关 44 5.8 门时延 44 5.9 实例数组 45 5.10 隐式线网 45 5.11 简单示例 46 5.12 2-4解码器举例 46 5.13 主从触发器举例 47 5.14 奇偶电路 47 第6章 用户定义的原语 49 6.1 UDP的定义 49 6.2 组合电路UDP 49 6.3 时序电路UDP 50 6.3.1 初始化状态寄存器 50 6.3.2 电平触发的时序电路UDP 50 6.3.3 边沿触发的时序电路UDP 51 6.3.4 边沿触发和电平触发的混合行为 51 6.4 另一实例 52 6.5 表项汇总 52 第7章 数据流模型化 54 7.1 连续赋值语句 54 7.2 举例 55 7.3 线网说明赋值 55 7.4 时延 55 7.5 线网时延 57 7.6 举例 57 7.6.1 主从触发器 57 7.6.2 数值比较器 58 第8章 行为建模 59 8.1 过程结构 59 8.1.1 initial 语句 59 8.1.2 always语句 61 8.1.3 两类语句在模块中的使用 62 8.2 时序控制 63 8.2.1 时延控制 63 8.2.2 事件控制 64 8.3 语句块 65 8.3.1 顺序语句块 66 8.3.2 并行语句块 67 8.4 过程性赋值 68 8.4.1 语句内部时延 69 8.4.2 阻塞性过程赋值 70 8.4.3 非阻塞性过程赋值 71 8.4.4 连续赋值与过程赋值的比较 72 8.5 if 语句 73 8.6 case语句 74 8.7 循环语句 76 8.7.1 forever 循环语句 76 8.7.2 repeat 循环语句 76 8.7.3 while 循环语句 77 8.7.4 for 循环语句 77 8.8 过程性连续赋值 78 8.8.1 赋值—重新赋值 78 8.8.2 force与release 79 8.9 握手协议实例 80 第9章 结构建模 83 9.1 模块 83 9.2 端口 83 9.3 模块实例语句 83 9.3.1 悬空端口 84 9.3.2 不同的端口长度 85 9.3.3 模块参数值 85 9.4 外部端口 87 9.5 举例 89 第10章 其他论题 91 10.1 任务 91 10.1.1 任务定义 91 10.1.2 任务调用 92 10.2 函数 93 10.2.1 函数说明部分 93 10.2.2 函数调用 94 10.3 系统任务和系统函数 95 10.3.1 显示任务 95 10.3.2 文件输入/输出任务 97 10.3.3 时间标度任务 99 10.3.4 模拟控制任务 99 10.3.5 定时校验任务 100 10.3.6 模拟时间函数 101 10.3.7 变换函数 102 10.3.8 概率分布函数 102 10.4 禁止语句 103 10.5 命名事件 104 10.6 结构描述方式和行为描述方式的 混合使用 106 10.7 层次路径名 107 10.8 共享任务和函数 108 10.9 值变转储文件 110 10.9.1 举例 111 10.9.2 VCD文件格式 112 10.10 指定程序块 113 10.11 强度 114 10.11.1 驱动强度 114 10.11.2 电荷强度 115 10.12 竞争状态 116 第11章 验证 118 11.1 编写测试验证程序 118 11.2 波形产生 118 11.2.1 值序列 118 11.2.2 重复模式 119 11.3 测试验证程序实例 123 11.3.1 解码器 123 11.3.2 触发器 124 11.4 从文本文件中读取向量 126 11.5 向文本文件中写入向量 127 11.6 其他实例 128 11.6.1 时钟分频器 128 11.6.2 阶乘设计 130 11.6.3 时序检测器 132 第12章 建模实例 136 12.1 简单元件建模 136 12.2 建模的不同方式 138 12.3 时延建模 139 12.4 条件操作建模 141 12.5 同步时序逻辑建模 142 12.6 通用移位寄存器 145 12.7 状态机建模 145 12.8 交互状态机 147 12.9 Moore有限状态机建模 150 12.10 Mealy型有限状态机建模 151 12.11 简化的21点程序 153 附录 语法参考 157 参考文献 172
Platform: | Size: 4169233 | Author: mayzhao | Hits:

[Windows DevelopC语言实战105例

Description: C语言实战105例 第1部分 基础篇 实例1 一个价值“三天”的BUG 2 实例2 灵活使用递增(递减)操作符 5 实例3 算术运算符计算器 7 实例4 逻辑运算符计算器 9 实例5 IP地址解析 11 实例6 用if…else语句解决奖金发放问题 13 实例7 用for循环模拟自由落体 16 实例8 用while语句求n! 19 实例9 模拟银行常用打印程序 22 实例10 使用一维数组统计选票 26 实例11 使用二维数组统计学生成绩 29 实例12 简单的计算器 32 实例13 时钟程序 35 实例14 华氏温度和摄氏温度的相互转换 38 实例15 SimpleDebug函数应用 40 第2部分 数值计算与数据结构篇 实例16 常用的几种排序方法 46 实例17 广度优先搜索及深度优先搜索 53 实例18 实现基本的串操作 59 实例19 计算各点到源点的最短距离 62 实例20 储油问题 65 实例21 中奖彩球问题 67 实例22 0-1背包问题 69 实例23 阶梯计数问题 72 实例24 二叉树算法集 74 实例25 模拟LRU页面置换算法 79 实例26 大整数阶乘新思路 82 实例27 银行事件驱动模拟程序 84 实例28 模拟迷宫探路 87 实例29 实现高随机度随机序列 89 实例30 停车场管理系统 91 第3部分 文本屏幕与文件操作篇 实例31 菜单实现 96 实例32 窗口制作 97 实例33 模拟屏幕保护程序 100 实例34 文件读写基本操作 102 实例35 格式化读写文件 105 实例36 成块读写操作 107 实例37 随机读写文件 108 实例38 文件的加密和解密 111 实例39 实现两个文件的连接 113 实例40 实现两个文件信息的合并 116 实例41 文件信息统计 118 实例42 文件分割实例 121 实例43 同时显示两个文件的内容 123 实例44 模拟Linux环境下的vi编辑器 124 实例45 文件操作综合应用——银行账户管理 128 第4部分 病毒与安全篇 实例46 实用内存清理程序 134 实例47 如何检测Sniffer  136 实例48 加密DOS批处理程序 139 实例49 使用栈实现密码设置 141 实例50 远程缓冲区溢出漏洞利用程序 144 实例51 简易漏洞扫描器 146 实例52 文件病毒检测程序 149 实例53 监测内存泄露与溢出 150 实例54 实现traceroute命令 152 实例55 实现ping程序功能 154 实例56 获取Linux本机IP地址 157 实例57 实现扩展内存的访问 161 实例58 随机加密程序 164 实例59 MD5加密程序 165 实例60 RSA加密实例 168 第5部分 图形篇 实例61 制作表格 172 实例62 用画线函数作出的图案 174 实例63 多样的椭圆 176 实例64 多变的立方体 177 实例65 简易时钟 178 实例66 跳动的小球 181 实例67 用柱状图表示学生成绩各分数段比率 183 实例68 EGA/VGA屏幕存储 187 实例69 按钮制作 190 实例70 三维视图制作 193 实例71 红旗图案制作 194 实例72 火焰动画制作 196 实例73 模拟水纹扩散 199 实例74 彩色的Photo Frame  201 实例75 火箭发射演示 203 第6部分 系统篇 实例76 恢复内存文本 208 实例77 挽救磁盘数据 210 实例78 建立和隐藏多个PRI DOS分区 213 实例79 简单的DOS下的中断服务程序 216 实例80 文件名分析程序 219 实例81 鼠标中断处理 222 实例82 实现磁盘数据的整体加密 224 实例83 揭开CMOS密码 227 实例84 获取网卡信息 229 实例85 创建自己的设备 231 实例86 设置应用程序启动密码 233 实例87 获取系统配置信息 236 实例88 硬件检测 239 实例89 管道通信 241 实例90 程序自杀技术实现 244 第7部分 游戏篇 实例91 连续击键游戏 248 实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 266 实例100 十全十美游戏 269 第8部分 综合篇 实例101 强大的通信录 274 实例102 模拟Windows下UltraEdit程序 277 实例103 轻松实现个人理财 279 实例104 竞技比赛打分系统 281 实例105 火车订票系统 286
Platform: | Size: 654374 | Author: jawin@126.com | Hits:

[Books你必须知道的495个C语言问题

Description: 学习c 的绝对好书! 第1章 声明和初始化. 1 基本类型 1 1.1 我该如何决定使用哪种整数类型? 1 1.2 为什么不精确定义标准类型的大小? 2 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 2 1.4 新的64位机上的64位类型是什么样的? 3 指针声明 3 1.5 这样的声明有什么问题? char *p1, p2; 我在使用p2的时候报错了。 3 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?char *p; *p = malloc (10); 4 声明风格 4 1.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static 存储类型吗? 6 1.11 extern在函数声明中是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,typedef和#define有什么区别? 7 1.14 我似乎不能成功定义一个链表。我试过typedef struct {char *item; NODEPTR next;}* NODEPTR;但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗? 7 1.15 如何定义一对相互引用的结构? 9 1.16 Struct {...} x1;和typedef struct{...} x2;这两个声明有什么区别? 10 1.17 “typedef int (*funcptr)();”是什么意思? 10 const限定词 10 1.18 我有这样一组声明:typedef char *charp; const charp p;为什么是p而不是它指向的字符为const? 10 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n = 5; int a[n];……
Platform: | Size: 925772 | Author: superhyi@gmail.com | Hits:

[source in ebookVHDL语言100例(普通下载)

Description: VHDL语言100例 VHDL语言100例 第1例 带控制端口的加法器 第2例 无控制端口的加法器 第3例 乘法器 第4例 比较器 第5例 二路选择器 第6例 寄存器 第7例 移位寄存器 第8例 综合单元库 第9例 七值逻辑与基本数据类型 第10例 函数 第11例 七值逻辑线或分辨函数 第12例 转换函数 第13例 左移函数 第14例 七值逻辑程序包 第15例 四输入多路器 第16例 目标选择器 第17例 奇偶校验器 第18例 映射单元库及其使用举 第19例 循环边界常数化测试 第20例 保护保留字 第21例 进程死锁 第22例 振荡与死锁 第23例 振荡电路 第24例 分辨信号与分辨函数 第25例 信号驱动源 第26例 属性TRANSACTION和分辨信号 第27例 块保护及属性EVENT, 第28例 形式参数属性的测试 第29例 进程和并发语句 第30例 信号发送与接收 第31例 中断处理优先机制建模 第32例 过程限定 第33例 整数比较器及其测试 第34例 数据总线的读写 第35例 基于总线的数据通道 第36例 基于多路器的数据通道 第37例 四值逻辑函数 第38例 四值逻辑向量按位或运算 第39例 生成语句描述规则结构 第40例 带类属的译码器描述 第41例 带类属的测试平台 第42例 行为与结构的混合描述 第43例 四位移位寄存器 第44例 寄存/计数器 第45例 顺序过程调用 第46例 VHDL中generic缺省值的使用 第47例 无输入元件的模拟 第48例 测试激励向量的编写 第49例 delta延迟例释 第50例 惯性延迟分析 第51例 传输延迟驱动优先 第52例 多倍(次)分频器 第53例 三位计数器与测试平台 第54例 分秒计数显示器的行为描述6 第55例 地址计数器 第56例 指令预读计数器 第57例 加.c减.c乘指令的译码和操作 第58例 2-4译码器结构描述 第59例 2-4译码器行为描述 第60例 转换函数在元件例示中的应用 第61例 基于同一基类型的两分辨类型的赋值相容问题 第62例 最大公约数的计算 第63例 最大公约数七段显示器编码 第64例 交通灯控制器 第65例 空调系统有限状态自动机 第66例 FIR滤波器 第67例 五阶椭圆滤波器 第68例 闹钟系统的控制 第69例 闹钟系统的译码 第70例 闹钟系统的移位寄存器 第71例 闹钟系统的闹钟寄存器和时间计数器 第72例 闹钟系统的显示驱动器 第73例 闹钟系统的分频器 第74例 闹钟系统的整体组装 第75例 存储器 第76例 电机转速控制器 第77例 神经元计算机 第78例ccAm2901四位微处理器的ALU输入 第79例ccAm2901四位微处理器的ALU 第80例ccAm2901四位微处理器的RAM 第81例ccAm2901四位微处理器的寄存器 第82例ccAm2901四位微处理器的输出与移位 第83例ccAm2910四位微程序控制器中的多路选择器 第84例ccAm2910四位微程序控制器中的计数器/寄存器 第85例ccAm2910四位微程序控制器的指令计数器 第86例ccAm2910四位微程序控制器的堆栈 第87例 Am2910四位微程序控制器的指令译码器 第88例 可控制计数器 第89例 四位超前进位加法器 第90例 实现窗口搜索算法的并行系统(1)——协同处理器 第91例 实现窗口搜索算法的并行系统(2)——序列存储器 第92例 实现窗口搜索算法的并行系统(3)——字符串存储器 第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的描述 第99例 多周期指令的描述 第100例 MB86901流水线行为模型
Platform: | Size: 344064 | Author: wfl.a@163.com | Hits:

[Delphi/CppBuilderDelphi_程序设计基础教程

Description: 目 录 第 1 章 Delphi 集成开发环境 ..................... 1 2.2.4 指针类型................................... 30 2.2.5 过程与函数类型....................... 31 1.1 Delphi 主窗口 ........................................ 2 1.1.1 标题栏 ........................................ 2 1.1.2 菜单栏 ........................................ 2 1.1.3 工具栏 ........................................ 3 1.1.4 组件板 ........................................ 3 1.2 Delphi 窗体窗口..................................... 3 1.2.1 窗体窗口 .................................... 3 1.2.2 窗体文件 .................................... 4 1.3 代码编辑窗口 ........................................ 4 1.4 对象查看器窗口 .................................... 4 1.4.1 对象查看器窗口的组成............. 5 1.4.2 设置属性 .................................... 5 1.4.3 添加事件 .................................... 6 1.5 项目管理器 ............................................ 6 1.5.1 项目组成 .................................... 7 1.5.2 项目管理器 ................................ 9 1.5.3 项目管理 .................................. 10 1.5.4 项目编译和运行....................... 12 1.6 Delphi 程序设计过程........................... 14 1.7 实验 ...................................................... 17 习题 ............................................................... 19 2.2.6 可变类型................................... 31 2.3 常量和变量的定义............................... 32 2.3.1 常量........................................... 32 2.3.2 变量........................................... 32 2.4 运算符和表达式................................... 33 2.4.1 算术运算符............................... 34 2.4.2 逻辑运算符............................... 34 2.4.3 关系运算符............................... 34 2.4.4 位运算符................................... 35 2.4.5 指针运算符............................... 35 2.4.6 集合运算符............................... 35 2.5 语句 ...................................................... 36 2.5.1 简单语句................................... 36 2.5.2 条件语句................................... 36 2.5.3 循环语句................................... 38 2.6 过程与函数........................................... 40 2.6.1 过程和函数的声明................... 40 2.6.2 过程和函数的参数................... 40 2.6.3 过程和函数的调用................... 42 2.7 实验 ...................................................... 43 2.7.1 编写对象 Pascal 应用程序....... 43 第 2 章 Delphi 的编程语言........................ 21 2.7.2 函数和过程的编写和调用 ....... 44 2.1 保留字和标识符 .................................. 21 习题 ............................................................... 46 2.1.1 保留字和标准指令符............... 21 第 3 章 Delphi 窗体与组件........................ 47 2.1.2 标识符 ...................................... 22 2.1.3 注释 .......................................... 22 2.1.4 控制台程序中的屏幕输入 3.1 Delphi 窗体........................................... 47 3.1.1 窗体与窗口............................... 47 和输出 ...................................... 22 3.1.2 窗体属性................................... 47 3.1.3 窗体事件................................... 48 2.2 Object Pascal 的数据类型.................... 23 2.2.1 简单数据类型........................... 24 2.2.2 字符串类型 .............................. 28 2.2.3 结构类型 .................................. 29 3.2 设计窗体 .............................................. 48 3.2.1 新建窗体................................... 48 3.2.2 设置窗体属性........................... 49 3.2.3 添加组件 .................................. 49 3.2.4 编辑组件 .................................. 49 3.2.5 设置组件属性........................... 49 3.2.6 保存文件 .................................. 49 3.3 文本型组件 .......................................... 50 3.3.1 Label 组件 ................................ 50 3.3.2 Static Text 组件 ........................ 51 3.3.3 Tab 组件 ................................... 52 3.4 按钮型组件 .......................................... 52 3.4.1 Button 组件............................... 52 3.4.2 BitBtn 组件............................... 53 3.4.3 RadioButton 组件 ..................... 54 3.4.4 CheckBox 组件......................... 54 3.5 编辑型组件 .......................................... 54 3.5.1 Edit 组件................................... 54 3.5.2 MaskEdit 组件.......................... 56 3.5.3 Memo 组件 ............................... 57 3.5.4 RichEdit 组件 ........................... 58 3.6 列表框型组件 ...................................... 60 3.6.1 ListBox 组件............................. 60 3.6.2 CheckBox 组件......................... 62 3.6.3 ComboBox 组件 ....................... 62 3.7 滑块型组件 .......................................... 63 3.7.1 Scrollbar 组件........................... 63 3.7.2 TrackBar 组件 .......................... 64 3.8 容器型组件 .......................................... 64 3.8.1 GroupBox 组件......................... 64 3.8.2 Panel 组件................................. 65 3.8.3 ScrollBox 组件 ......................... 66 3.9 MDI 程序 ............................................. 66 3.9.1 MDI 窗体及其属性.................. 66 3.9.2 利用模板创建 MDI 应用 程序 .......................................... 67 3.10 实验 .................................................... 68 3.10.1 设计由按钮类组件实现 的功能窗体............................. 68 3.10.2 设计由列表类组件实现的 功能窗体 ................................ 70 3.10.3 按需求将各种组件灵活组合, 实现功能窗体......................... 73 习题 ............................................................... 74 第 4 章 菜单设计............................................ 76 4.1 菜单设计简介....................................... 76 4.1.1 菜单结构................................... 76 4.1.2 菜单命令项的作用................... 76 4.1.3 菜单设计器............................... 77 4.2 主菜单设计........................................... 77 4.2.1 打开主菜单设计器................... 78 4.2.2 添加菜单命令项....................... 78 4.2.3 菜单命令项分组....................... 79 4.2.4 菜单命令项热键....................... 79 4.2.5 调整菜单命令项....................... 79 4.2.6 创建级联菜单........................... 80 4.3 菜单命令响应....................................... 80 4.4 运行时设置菜单................................... 82 4.4.1 菜单命令灰显........................... 83 4.4.2 隐藏菜单命令........................... 83 4.4.3 改变菜单命令文本................... 84 4.4.4 菜单命令单选标记................... 84 4.4.5 菜单命令复选标记................... 84 4.5 创建动态菜单....................................... 85 4.6 图形菜单 .............................................. 88 4.7 快捷菜单设计....................................... 89 4.7.1 快捷菜单的设计....................... 89 4.7.2 快捷菜单的响应....................... 90 4.8 实验 ...................................................... 91 习题 ............................................................... 93 第 5 章 对话框、工具栏和状态栏设计 .... 95 5.1 对话框设计........................................... 95 5.1.1 文件对话框组件....................... 95 5.1.2 字体对话框组件....................... 97 5.1.3 颜色对话框组件....................... 98 5.1.4 打印、打印设置和页面设置 对话框组件............................... 98 5.1.5 查找和替换对话框组件........... 99 5.1.6 消息框和输入框..................... 100 5.1.7 对话框综合应用实例..............102 7.3.1 异常响应与 try…except 5.2 工具栏设计 .........................................107 语句......................................... 155 5.2.1 用面板构成工具栏..................107 7.3.2 异常保护与 try…finally 5.2.2 使用工具栏组件......................112 语句......................................... 157 5.2.3 使用 TCoolBar 组件................113 7.3.3 异常的重引发和处理嵌套 ..... 159 5.2.4 使用 TControlBar 组件 ...........115 7.3.4 定义自己的异常..................... 159 5.3 状态栏设计 .........................................115 7.3.5 利用异常响应编程................. 163 5.4 实验 .....................................................118 7.4 Delphi 调试器..................................... 165 习题 ..............................................................121 7.4.1 准备调试................................. 165 第 6 章 Delphi 多媒体应用.......................123 7.4.2 设置调试器的选项................. 165 7.5 控制程序的运行................................. 166 6.1 绘图组件 .............................................123 7.5.1 单步执行................................. 166 6.1.1 TShape 组件 ............................123 7.5.2 跟踪执行................................. 167 6.1.2 画布对象 .................................124 7.5.3 跳过一段代码......................... 168 6.1.3 TPaintBox 组件 .......................124 7.5.4 全速执行剩余的代码............. 168 6.1.4 TImage 组件 ............................124 7.5.5 返回到执行点......................... 168 6.2 图形列表组件 .....................................130 7.5.6 暂停运行................................. 168 6.2.1 TTreeView 组件 ......................130 7.5.7 重新开始运行......................... 168 6.2.2 TListView 组件 .......................131 7.5.8 命令行参数............................. 169 6.3 图形栅格组件 .....................................132 7.6 断点 .................................................... 169 6.3.1 TStringGrid 组件 .....................133 7.6.1 源代码断点............................. 169 6.3.2 TDrawGrid 组件......................134 7.6.2 机器指令断点......................... 170 6.3.3 TColorGrid 组件......................136 7.6.3 数据断点................................. 171 6.4 图形日历组件 .....................................136 7.6.4 模块断点................................. 171 6.4.1 TDateTimePicker 组件 ............137 7.6.5 指定遇到断点时的行为......... 171 6.4.2 TCalendar 组件........................137 7.6.6 断点列表窗口......................... 172 6.5 多媒体组件 .........................................137 7.6.7 删除断点................................. 173 6.5.1 TMediaPlayer 组件..................137 7.6.8 设置断点的属性..................... 173 6.5.2 多媒体播放器..........................138 7.6.9 禁止和允许断点..................... 173 6.5.3 Flash 播放器............................141 7.7 监视表达式的值................................. 174 6.6 实验 .....................................................144 7.7.1 观察窗口................................. 174 习题 ..............................................................148 7.7.2 计算和修改表达式的值......... 175 第 7 章 Delphi 异常处理与调试..............150 7.1 Delphi 异常处理..................................150 7.1.1 异常处理的意义......................150 7.1.2 错误类型 .................................151 7.2 Delphi 异常类 .....................................153 7.3 Delphi 异常处理机制..........................155 7.7.3 计算提示................................. 176 7.7.4 Inspector 窗口......................... 176 7.7.5 查看局部变量的值................. 177 7.8 实验 .................................................... 177 7.8.1 Delphi 异常处理机制 ............. 177 7.8.2 Delphi 调试............................. 178 习题 ............................................................. 180 第 8 章 数据库编程......................................183 8.1 数据库系统概述 .................................183 8.1.1 数据库管理系统......................183 8.1.2 关系数据库 .............................184 8.1.3 数据库应用程序......................184 8.1.4 Delphi 数据库的体系结构......184 8.2 BDE 组件 ............................................188 8.2.1 TTable 组件介绍 .....................189 8.2.2 TQuery 组件介绍 ....................199 8.3 ADO 组件............................................206 8.3.1 TADOConnection 组件 ...........208 8.3.2 TADOCommand 组件.............210 8.3.3 TADODataSet 组件.................212 8.3.4 TADOTable 组件 ....................213 8.4 数据控制组件简介 .............................214 8.4.1 TDBGrid 组件介绍 .................215 8.4.2 TDBNavigator 组件介绍.........217 8.4.3 TDBText 组件介绍 .................219 8.4.4 TDBEdit 组件介绍..................219 9.1.1 QuickReport 概述 .................. 244 9.1.2 TQuickRep 组件 .................... 245 9.1.3 TQRSubDetail 组件................ 247 9.1.4 TQRBand 组件 ....................... 248 9.1.5 TQRChildBand 组件............... 249 9.1.6 TQRGroup 组件...................... 250 9.1.7 TQRLabel 组件....................... 250 9.1.8 TQRDBText 组件................... 250 9.1.9 TQRExpr 组件........................ 250 9.1.10 TQRsysData 组件 ................. 251 9.1.11 TQRMemo 组件 ................... 252 9.1.12 TQRRichText 组件............... 252 9.1.13 TQRDBRichText 组件.......... 252 9.1.14 TQRShape 组件 .................... 252 9.1.15 TQRImage 组件.................... 252 9.1.16 TQRDBImage 组件 .............. 252 9.1.17 TQRComposite 组件............. 252 9.1.18 TQRPreview 组件................. 253 9.2 QuickReport 报表实例 ....................... 253 8.4.5 TDBMemo 组件介绍 ..............220 9.2.1 打印单数据库报表................. 253 8.4.6 TDBImage 组件介绍...............221 9.2.2 打印标签、信封..................... 256 8.4.7 TDBListBox 组件介绍............221 9.2.3 打印主/明细表........................ 258 8.4.8 TDBComboBox 组件介绍 ......221 9.2.4 打印分组与统计报表............. 260 8.4.9 TDBCheckBox 组件介绍........222 9.3 Rave 报表设计器的组件.................... 262 8.4.10 TDBRadioGroup 组件介绍 ...222 9.3.1 Rave 5 的报表设计界面......... 262 8.4.11 TDBLookupListBox 组件 介绍 .......................................223 8.4.12 TDBLookupComboBox 组件 介绍 .......................................223 9.3.2 Drawing(绘图)组件页 ............ 263 9.3.3 Bar Code(条形码)组件页 ....... 263 9.3.4 Standard(标准)组件页 ............ 263 9.3.5 Report(报表)组件页 ............... 263 8.4.13 TDBCtrlGrid 组件介绍 .........223 9.3.6 其他组件页............................. 264 8.4.14 TDBRichEdit 组件介绍.........224 8.4.15 TDBChart 组件介绍..............224 8.5 实验 .....................................................231 8.5.1 设计数据表结构......................231 8.5.2 设计数据表编辑窗体..............232 8.5.3 设计数据表查询窗体..............238 习题 ..............................................................242 9.4 Delphi 中的 Rave 组件....................... 265 9.4.1 RvProject 组件........................ 265 9.4.2 RvSystem 组件 ....................... 266 9.4.3 其他组件................................. 267 9.5 Rave 报表例程 ................................... 267 9.5.1 设计 Rave 报表....................... 267 9.5.2 调用 Rave 报表....................... 271 第 9 章 报表与图表......................................244 9.6 图表 .................................................... 271 9.1 QuickReport 组件................................244 9.6.1 DBChart 组件 ......................... 271 9.6.2 设计图表 .................................273 11.1.2 现有的组件........................... 309 9.7 实验 .....................................................274 11.1.3 组件模板............................... 310 习题 ..............................................................279 11.1.4 选择祖先类的建议............... 311 第 10 章 面向对象程序设计......................281 11.2 建立组件框架................................... 312 11.3 加入属性........................................... 314 10.1 面向对象程序设计概念....................281 11.3.1 加入简单型的属性............... 314 10.1.1 结构化程序设计方法............281 11.3.2 加入枚举型的属性............... 314 10.1.2 面向对象的设计方法............282 11.3.3 加入集合型的属性............... 315 10.2 类 .......................................................284 11.3.4 加入对象型的属性............... 315 10.2.1 类的定义 ...............................284 11.3.5 加入数组型的属性............... 316 10.2.2 保护方式 ...............................285 11.3.6 公开继承的属性................... 316 10.2.3 类的实例化............................286 11.3.7 给出属性的默认值............... 317 10.2.4 类操作符 ...............................286 11.4 加入方法........................................... 317 10.3 方法 ...................................................287 11.4.1 方法的可见性....................... 317 10.3.1 一般方法 ...............................287 11.4.2 避免内部相关性................... 318 10.3.2 构造方法 ...............................289 11.4.3 给方法命名........................... 318 10.3.3 析构方法 ...............................290 11.4.4 加入静态方法....................... 318 10.3.4 类方法 ...................................290 11.4.5 加入虚拟方法....................... 319 10.3.5 隐含参数 Self ........................291 11.4.6 加入动态方法....................... 319 10.4 继承和多态 .......................................292 11.4.7 加入消息处理方法............... 320 10.4.1 继承 .......................................292 11.5 加入事件........................................... 320 10.4.2 覆盖 .......................................293 11.6 安装组件........................................... 323 10.4.3 抽象类 ...................................294 11.7 实验 .................................................. 324 10.4.4 多态 .......................................295 习题 ............................................................. 327 10.4.5 共同祖先 TObject..................296 10.5 属性 ...................................................297 第 12 章 动态链接库(DLLs)编程............ 329 10.5.1 属性定义 ...............................297 12.1 动态链接库概述............................... 329 10.5.2 属性的访问方法....................298 12.1.1 Windows 系统的动态 10.6 消息 ...................................................299 链接库................................... 329 10.6.1 消息机制 ...............................299 12.1.2 为什么使用 DLL .................. 330 10.6.2 发送消息 ...............................300 12.1.3 DLL 与 EXE 文件之间 10.6.3 处理消息 ...............................301 的区别................................... 331 10.6.4 用户自定义消息....................303 12.1.4 DLL 编写规则 ...................... 331 10.7 实验 ...................................................305 12.2 在 Delphi 中编写 DLLs.................... 331 习题 ..............................................................307 12.2.1 编写一般 DLLs 的步骤........ 332 第 11 章 Delphi 自定义组件的开发.......308 12.2.2 动态链接库中的标准指示 ... 334 12.2.3 库初始化代码的编写........... 335 11.1 选择祖先类 .......................................308 12.2.4 从 DLL 中输出字符串 ......... 337 11.1.1 公共祖先类............................308 12.3 在 Delphi 中 DLLs 的调用............... 340 12.3.1 调用 DLL 方式......................340 12.3.2 静态调用 ...............................340 12.3.3 动态调用 ...............................342 12.4 利用 DLLs 实现窗体重用 ................345 12.4.1 利用 DLLs 实现窗体重用 的一般步骤............................346 12.4.2 使用 DLL 模态窗体..............346 12.4.3 DLL 中的非模态窗体...........346 12.5 DLL 与 Delphi 组件包......................351 12.6 实验 ...................................................352 习题 ..............................................................356 第 13章 多线程.............................................358 13.1 多线程概述 .......................................358 13.1.1 什么是多线程........................358 13.1.2 使用多线程的优缺点............358 13.1.3 编写多线程应用程序步骤....359 13.2 多线程编程 .......................................359 13.2.1 创建线程对象........................359 13.2.2 线程的同步............................361 13.2.3 设置线程的优先级................362 13.2.4 挂起和唤醒............................363 13.2.5 缓存线程对象........................363 13.2.6 线程终止 ...............................365 13.2.7 一个多线程排序程序............370 13.3 实验 ...................................................375 习题 ............................................................. 379 第 14 章 文件操作 ....................................... 381 14.1 文件操作命令................................... 381 14.1.1 文件的类型........................... 381 14.1.2 文件的定义........................... 381 14.1.3 文件管理命令....................... 382 14.1.4 文本文件命令....................... 382 14.1.5 输入输出命令....................... 383 14.2 文本文件........................................... 383 14.2.1 打开文本文件....................... 383 14.2.2 关闭文本文件....................... 384 14.2.3 写入文本文件....................... 384 14.2.4 读取文本文件....................... 385 14.3 非文本文件....................................... 386 14.3.1 类型文件............................... 386 14.3.2 无类型文件........................... 389 14.4 文件系统........................................... 390 14.4.1 文件系统组件....................... 390 14.4.2 文件控制单元....................... 393 14.5 实验 .................................................. 396 14.5.1 文件名操作........................... 396 14.5.2 文件读写操作....................... 399 习题 ............................................................. 401 参考文献................................................... 403
Platform: | Size: 3534536 | Author: chaoyan_ma@126.com | Hits:

[VC/MFC《Windows核心编程(第四版)》中文版.rar

Description: 目 录 译者序 前言 第一部分 程序员必读 第1章 对程序错误的处理 1 1.1 定义自己的错误代码 4 1.2 ErrorShow示例应用程序 5 第2章 Unicode 11 2.1 字符集 11 2.1.1 单字节与双字节字符集 11 2.1.2 Unicode:宽字节字符集 12 2.2 为什么使用Unicode 13 2.3 Windows 2000与Unicode 13 2.4 Windows 98与Unicode 13 2.5 Windows CE与Unicode 14 2.6 需要注意的问题 14 2.7 对COM的简单说明 14 2.8 如何编写Unicode源代码 15 2.8.1 C运行期库对Unicode的支持 15 2.8.2 Windows定义的Unicode数据类型 17 2.8.3 Windows中的Unicode函数和ANSI 函数 17 2.8.4 Windows字符串函数 19 2.9 成为符合ANSI和Unicode的应用程序 19 2.9.1 Windows字符串函数 19 2.9.2 资源 22 2.9.3 确定文本是ANSI文本还是Unicode 文本 22 2.9.4 在Unicode与ANSI之间转换字符串 23 第3章 内核对象 27 3.1 什么是内核对象 27 3.1.1 内核对象的使用计数 27 3.1.2 安全性 28 3.2 进程的内核对象句柄表 30 3.2.1 创建内核对象 30 3.2.2 关闭内核对象 32 3.3 跨越进程边界共享内核对象 32 3.3.1 对象句柄的继承性 32 3.3.2 改变句柄的标志 35 3.3.3 命名对象 36 3.3.4 终端服务器的名字空间 39 3.3.5 复制对象句柄 39 第二部分 编程的具体方法 第4章 进程 45 4.1 编写第一个Windows应用程序 46 4.1.1 进程的实例句柄 49 4.1.2 进程的前一个实例句柄 50 4.1.3 进程的命令行 50 4.1.4 进程的环境变量 51 4.1.5 进程的亲缘性 54 4.1.6 进程的错误模式 54 4.1.7 进程的当前驱动器和目录 54 4.1.8 进程的当前目录 55 4.1.9 系统版本 56 4.2 CreateProcess函数 58 4.2.1 pszApplicationName和 pszCommandLine 59 4.2.2 psa Process、psa Thread和 binherit Handles 60 4.2.3 fdwCreate 62 4.2.4 pvEnvironment 64 4.2.5 pszCurDir 64 4.2.6 psiStartInfo 64 4.2.7 ppiProcInfo 67 4.3 终止进程的运行 69 4.3.1 主线程的进入点函数返回 69 4.3.2 ExitProcess函数 69 4.3.3 TerminateProcess函数 70 4.3.4 进程终止运行时出现的情况 71 4.4 子进程 72 4.5 枚举系统中运行的进程 73 第5章 作业 91 5.1 对作业进程的限制 93 5.2 将进程放入作业 99 5.3 终止作业中所有进程的运行 99 5.4 查询作业统计信息 100 5.5 作业通知信息 103 5.6 JobLab示例应用程序 104 第6章 线程的基础知识 121 6.1 何时创建线程 121 6.2 何时不能创建线程 122 6.3 编写第一个线程函数 123 6.4 CreateThread函数 124 6.4.1 psa 124 6.4.2 cbStack 124 6.4.3 pfnStartAddr和pvParam 125 6.4.4 fdwCreate 126 6.4.5 pdwThreadID 126 6.5 终止线程的运行 127 6.5.1 线程函数返回 127 6.5.2 ExitThread函数 127 6.5.3 TerminateThread函数 127 6.5.4 在进程终止运行时撤消线程 128 6.5.5 线程终止运行时发生的操作 128 6.6 线程的一些性质 129 6.7 C/C++运行期库的考虑 131 6.7.1 Oops—错误地调用了Create Thread 138 6.7.2 不应该调用的C/C++运行期库函数 138 6.8 对自己的ID概念应该有所了解 139 第7章 线程的调度、优先级和亲缘性 142 7.1 暂停和恢复线程的运行 143 7.2 暂停和恢复进程的运行 144 7.3 睡眠方式 145 7.4 转换到另一个线程 145 7.5 线程的运行时间 146 7.6 运用环境结构 148 7.7 线程的优先级 152 7.8 对优先级的抽象说明 153 7.9 程序的优先级 156 7.9.1 动态提高线程的优先级等级 158 7.9.2 为前台进程调整调度程序 159 7.9.3 Scheduling Lab示例应用程序 160 7.10 亲缘性 167 第8章 用户方式中线程的同步 172 8.1 原子访问:互锁的函数家族 172 8.2 高速缓存行 177 8.3 高级线程同步 178 8.4 关键代码段 180 8.4.1 关键代码段准确的描述 182 8.4.2 关键代码段与循环锁 185 8.4.3 关键代码段与错误处理 185 8.4.4 非常有用的提示和技巧 186 第9章 线程与内核对象的同步 190 9.1 等待函数 191 9.2 成功等待的副作用 194 9.3 事件内核对象 195 9.4 等待定时器内核对象 204 9.4.1 让等待定时器给APC项排队 207 9.4.2 定时器的松散特性 209 9.5 信标内核对象 210 9.6 互斥对象内核对象 211 9.6.1 释放问题 213 9.6.2 互斥对象与关键代码段的比较 214 9.6.3 Queue示例应用程序 214 9.7 线程同步对象速查表 223 9.8 其他的线程同步函数 224 9.8.1 异步设备I/O 224 9.8.2 WaitForInputIdle 224 9.8.3 MsgWaitForMultipleObjects (Ex) 225 9.8.4 WaitForDebugEvent 225 9.8.5 SingleObjectAndWait 226 第10章 线程同步工具包 228 10.1 实现关键代码段:Optex 228 10.2 创建线程安全的数据类型和反信标 239 10.3 单个写入程序/多个阅读程序的保护 251 10.4 实现一个WaitForMultipleExpressions 函数 259 第11章 线程池的使用 274 11.1 方案1:异步调用函数 275 11.2 方案2:按规定的时间间隔调用函数 277 11.3 方案3:当单个内核对象变为已通知状态 时调用函数 283 11.4 方案4:当异步I/O请求完成运行时调用 函数 285 第12章 纤程 287 12.1 纤程的操作 287 12.2 Counter示例应用程序 289 第三部分 内 存 管 理 第13章 Windows的内存结构 299 13.1 进程的虚拟地址空间 299 13.2 虚拟地址空间如何分区 300 13.2.1 NuLL 指针分配的分区—适用于 Windows 2000和Windows 98 300 13.2.2 MS-DOS/16位Windows 应用程序兼容 分区—仅适用于Windows 98 301 13.2.3 用户方式分区—适用于Windows 2000 和Windows 98 301 13.2.4 64 KB禁止进入的分区—仅适用 于Windows 2000 302 13.2.5 共享的MMF分区—仅适用于 Windows 98 303 13.2.6 内核方式分区—适用于Windows 2000和Windows 98 303 13.3 地址空间中的区域 303 13.4 提交地址空间区域中的物理存储器 304 13.5 物理存储器与页文件 304 13.6 保护属性 307 13.6.1 Copy-On-Write 访问 308 13.6.2 特殊的访问保护属性的标志 309 13.7 综合使用所有的元素 309 13.7.1 区域的内部情况 312 13.7.2 与Windows 98地址空间的差别 315 13.8 数据对齐的重要性 319 第14章 虚拟内存 323 14.1 系统信息 323 14.2 虚拟内存的状态 330 14.3 确定地址空间的状态 336 14.3.1 VMQuery函数 337 14.3.2 虚拟内存表示例应用程序 343 第15章 在应用程序中使用虚拟内存 354 15.1 在地址空间中保留一个区域 354 15.2 在保留区域中的提交存储器 355 15.3 同时进行区域的保留和内存的提交 356 15.4 何时提交物理存储器 357 15.5 回收虚拟内存和释放地址空间区域 358 15.5.1 何时回收物理存储器 359 15.5.2 虚拟内存分配的示例应用程序 360 15.6 改变保护属性 368 15.7 清除物理存储器的内容 369 15.8 地址窗口扩展—适用于 Windows 2000 372 第16章 线程的堆栈 385 16.1 Windows 98下的线程堆栈 387 16.2 C/C++运行期库的堆栈检查函数 389 16.3 Summation示例应用程序 390 第17章 内存映射文件 397 17.1 内存映射的可执行文件和DLL 文件 397 17.1.1 可执行文件或DLL的多个实例 不能共享静态数据 398 17.1.2 在可执行文件或DLL的多个实 例之间共享静态数据 400 17.1.3 AppInst示例应用程序 404 17.2 内存映射数据文件 409 17.2.1 方法 1:一个文件,一个缓存 409 17.2.2 方法 2:两个文件,一个缓存 409 17.2.3 方法 3:一个文件,两个缓存 410 17.2.4 方法 4:一个文件,零缓存 410 17.3 使用内存映射文件 410 17.3.1 步骤 1:创建或打开文件内核 对象 411 17.3.2 步骤 2:创建一个文件映射内核 对象 412 17.3.3 步骤 3:将文件数据映射到进程 的地址空间 414 17.3.4 步骤4:从进程的地址空间中撤消 文件数据的映像 416 17.3.5 步骤 5和步骤 6:关闭文件映射对象 和文件对象 417 17.3.6 文件倒序示例应用程序 418 17.4 使用内存映射文件来处理大文件 426 17.5 内存映射文件与数据视图的相关性 427 17.6 设定内存映射文件的基地址 428 17.7 实现内存映射文件的具体方法 429 17.8 使用内存映射文件在进程之间共享 数据 431 17.9 页文件支持的内存映射文件 431 17.10 稀疏提交的内存映射文件 438 第18章 堆栈 451 18.1 进程的默认堆栈 451 18.2 为什么要创建辅助堆栈 452 18.2.1 保护组件 452 18.2.2 更有效的内存管理 453 18.2.3 进行本地访问 453 18.2.4 减少线程同步的开销 453 18.2.5 迅速释放堆栈 453 18.3 如何创建辅助堆栈 454 18.3.1 从堆栈中分配内存块 455 18.3.2 改变内存块的大小 456 18.3.3 了解内存块的大小 456 18.3.4 释放内存块 457 18.3.5 撤消堆栈 457 18.3.6 用C++程序来使用堆栈 457 18.4 其他堆栈函数 460 第四部分 动态链接库 第19章 DLL基础 463 19.1 DLL与进程的地址空间 464 19.2 DLL的总体运行情况 465 19.3 创建DLL模块 467 19.3.1 输出的真正含义是什么 469 19.3.2 创建用于非Visual C++工具 的DLL 471 19.4 创建可执行模块 472 19.5 运行可执行模块 474 第20章 DLL的高级操作技术 477 20.1 DLL模块的显式加载和 符号链接 477 20.1.1 显式加载DLL模块 478 20.1.2 显式卸载DLL模块 479 20.1.3 显式链接到一个输出符号 480 20.2 DLL的进入点函数 481 20.2.1 DLL_PROCESS_ATTACH通知 482 20.2.2 DLL_PROCESS_DETACH通知 483 20.2.3 DLL_THREAD_ATTACH通知 485 20.2.4 DLL_THREAD_DETACH通知 485 20.2.5 顺序调用DllMain 486 20.2.6 DllMain与C/C++运行期库 488 20.3 延迟加载DLL 489 20.4 函数转发器 499 20.5 已知的DLL 499 20.6 DLL转移 500 20.7 改变模块的位置 501 20.8 绑定模块 506 第21章 线程本地存储器 509 21.1 动态TLS 509 21.2 静态TLS 513 第22章 插入DLL和挂接API 515 22.1 插入DLL:一个例子 515 22.2 使用注册表来插入DLL 517 22.3 使用Windows挂钩来插入DLL 518 22.4 使用远程线程来插入DLL 531 22.4.1 Inject Library 示例应用程序 534 22.4.2 Image Walk DLL 541 22.5 使用特洛伊DLL来插入DLL 544 22.6 将DLL作为调试程序来插入 544 22.7 用Windows 98上的内存映射文件 插入代码 544 22.8 用CreateProcess插入代码 544 22.9 挂接API的一个示例 545 22.9.1 通过改写代码来挂接API 546 22.9.2 通过操作模块的输入节来挂接API 546 22.9.3 LastMsgBoxInfo示例应用程序 549 第五部分 结构化异常处理 第23章 结束处理程序 565 23.1 通过例子理解结束处理程序 566 23.2 Funcenstein1 566 23.3 Funcenstein2 566 23.4 Funcenstein3 568 23.5 Funcfurter1 568 23.6 突击测验:FuncaDoodleDoo 569 23.7 Funcenstein4 570 23.8 Funcarama1 571 23.9 Funcarama2 572 23.10 Funcarama3 572 23.11 Funcarama4:最终的边界 573 23.12 关于finally块的说明 574 23.13 Funcfurter2 575 23.14 SEH结束处理示例程序 576 第24章 异常处理程序和软件异常 578 24.1 通过例子理解异常过滤器和异常处理 程序 578 24.1.1 Funcmeister1 578 24.1.2 Funcmeister2 579 24.2 EXCEPTION_EXECUTE_HANDLER 580 24.2.1 一些有用的例子 581 24.2.2 全局展开 583 24.2.3 暂停全局展开 585 24.3 EXCEPTION_CONTINUE_ EXECUTION 586 24.4 EXCEPTION_CONTINUE_ SEARCH 588 24.5 Get Exception Code 589 24.6 Get Exception Information 592 24.7 软件异常 595 第25章 未处理异常和C++异常 598 25.1 即时调试 600 25.2 关闭异常消息框 601 25.2.1 强制进程终止运行 601 25.2.2 包装一个线程函数 601 25.2.3 包装所有的线程函数 601 25.2.4 自动调用调试程序 602 25.3 程序员自己调用UnhandledException Filter 602 25.4 UnhandledExceptionFilter函数的一些 细节 603 25.5 异常与调试程序 604 25.6 C++异常与结构性异常的对比 618 第六部分 窗 口 第26章 窗口消息 623 26.1 线程的消息队列 623 26.2 将消息发送到线程的消息队列中 625 26.3 向窗口发送消息 626 26.4 唤醒一个线程 630 26.4.1 队列状态标志 630 26.4.2 从线程的队列中提取消息的 算法 631 26.4.3 利用内核对象或队列状态标 志唤醒线程 634 26.5 通过消息发送数据 636 26.6 Windows如何处理ANSI/Unicode 字符和字符串 642 第27章 硬件输入模型和局部输入状态 645 27.1 原始输入线程 645 27.2 局部输入状态 646 27.2.1 键盘输入与焦点 647 27.2.2 鼠标光标管理 649 27.3 将虚拟输入队列同局部输入状态挂接 在一起 651 27.3.1 LISLab 示例程序 652 27.3.2 LISWatch 示例程序 666 第七部分 附 录 附录A 建立环境 675 附录B 消息分流器、子控件宏和API宏 686
Platform: | Size: 36814984 | Author: mrf341@163.com | Hits:

[Books高质量C++/C编程指南

Description: 第1章 文件结构... 11 1.1 版权和版本的声明... 11 1.2 头文件的结构... 12 1.3 定义文件的结构... 13 1.4 头文件的作用... 13 1.5 目录结构... 14 第2章 程序的版式... 15 2.1 空行... 15 2.2 代码行... 16 2.3 代码行内的空格... 17 2.4 对齐... 18 2.5 长行拆分... 19 2.6 修饰符的位置... 19 2.7 注释... 20 2.8 类的版式... 21 第3章 命名规则... 22 3.1 共性规则... 22 3.2 简单的Windows应用程序命名规则... 23 3.3 简单的Unix应用程序命名规则... 25 第4章 表达式和基本语句... 26 4.1 运算符的优先级... 26 4.2 复合表达式... 27 4.3 if 语句... 27 4.4 循环语句的效率... 29 4.5 for 语句的循环控制变量... 30 4.6 switch语句... 30 4.7 goto语句... 31 第5章 常量... 33 5.1 为什么需要常量... 33 5.2 const 与 #define的比较... 33 5.3 常量定义规则... 33 5.4 类中的常量... 34 第6章 函数设计... 36 6.1 参数的规则... 36 6.2 返回值的规则... 37 6.3 函数内部实现的规则... 39 6.4 其它建议... 40 6.5 使用断言... 41 6.6 引用与指针的比较... 42 第7章 内存管理... 44 7.1内存分配方式... 44 7.2常见的内存错误及其对策... 44 7.3指针与数组的对比... 45 7.4指针参数是如何传递内存的?... 47 7.5 free和delete把指针怎么啦?... 50 7.6 动态内存会被自动释放吗?... 50 7.7 杜绝“野指针”... 51 7.8 有了malloc/free为什么还要new/delete ?... 52 7.9 内存耗尽怎么办?... 53 7.10 malloc/free 的使用要点... 54 7.11 new/delete 的使用要点... 55 7.12 一些心得体会... 56 第8章 C++函数的高级特性... 57 8.1 函数重载的概念... 57 8.2 成员函数的重载、覆盖与隐藏... 60 8.3 参数的缺省值... 63 8.4 运算符重载... 64 8.5 函数内联... 65 8.6 一些心得体会... 68 第9章 类的构造函数、析构函数与赋值函数... 69 9.1 构造函数与析构函数的起源... 69 9.2 构造函数的初始化表... 70 9.3 构造和析构的次序... 72 9.4 示例:类String的构造函数与析构函数... 72 9.5 不要轻视拷贝构造函数与赋值函数... 73 9.6 示例:类String的拷贝构造函数与赋值函数... 73 9.7 偷懒的办法处理拷贝构造函数与赋值函数... 75 9.8 如何在派生类中实现类的基本函数... 75 9.9 一些心得体会... 77 第10章 类的继承与组合... 78 10.1 继承... 78 10.2 组合... 80 第11章 其它编程经验... 82 11.1 使用const提高函数的健壮性... 82 11.2 提高程序的效率... 84 11.3 一些有益的建议
Platform: | Size: 84427 | Author: 87503655@qq.com | Hits:

[Data structshuffman

Description: 实现最优二叉树的构造;在此基础上完成哈夫曼编码器与译码器。 假设报文中只会出现如下表所示的字符: 字符 A B C D E F G H I J K L M N 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 字符 O P Q R S T U V W X Y Z , . 频度 63 15 1 48 51 80 23 8 18 1 16 1 6 2 要求完成的系统应具备如下的功能: 1.初始化。从终端(文件)读入字符集的数据信息,。建立哈夫曼树。 2.编码:利用已建好的哈夫曼树对明文文件进行编码,并存入目标文件(哈夫曼码文件)。 3.译码:利用已建好的哈夫曼树对目标文件(哈夫曼码文件)进行编码,并存入指定的明文文件。 4.输出哈夫曼编码文件:输出每一个字符的哈夫曼编码。
Platform: | Size: 132096 | Author: 张娟 | Hits:

[SCM19264

Description: 管脚号 管脚名称 LEVER 管脚功能描述 1 VSS 0V 电源地 2 VDD 5.0V 电源电压 3 VEE 5.0V~(-13V) 液晶显示器驱动电压 4 D/I H/L D/I=“H”,表示DB7~DB0为显示数据 D/I=“L”,表示DB7~DB0为显示指令数据 5 R/W H/L R/W=“H”,E=“H”,数据被读到DB7~DB0 R/W=“L”,E=“H→L”, DB7~DB0的数据被写到IR或DR 6 E H/L 使能信号:R/W=“L”,E信号下降沿锁存DB7~DB0 R/W=“H”,E=“H” DRAM数据读到DB7~DB0 7 DB0 H/L 数据线 8 DB1 H/L 数据线 9 DB2 H/L 数据线 10 DB3 H/L 数据线 11 DB4 H/L 数据线 12 DB5 H/L 数据线 13 DB6 H/L 数据线 14 DB7 H/L 数据线 15 CS1 L (19264A) 选择IC1,即(左)64列 16 RESET L 复位控制信号,RST=0有效 17 CS2 L (19264A) 选择IC2,即(中)64列 18 CS3 L (19264A) 选择IC3,即(右)64列 19 V0 -9V Negative Voltage for LCD driving 20 LED+ +5.0V The LED supply-管脚号 管脚名称 LEVER 管脚功能描述 1 VSS 0V 电源地 2 VDD 5.0V 电源电压 3 VEE 5.0V~(-13V) 液晶显示器驱动电压 4 D/I H/L D/I=“H”,表示DB7~DB0为显示数据 D/I=“L”,表示DB7~DB0为显示指令数据 5 R/W H/L R/W=“H”,E=“H”,数据被读到DB7~DB0 R/W=“L”,E=“H→L”, DB7~DB0的数据被写到IR或DR 6 E H/L 使能信号:R/W=“L”,E信号下降沿锁存DB7~DB0 R/W=“H”,E=“H” DRAM数据读到DB7~DB0 7 DB0 H/L 数据线 8 DB1 H/L 数据线 9 DB2 H/L 数据线 10 DB3 H/L 数据线 11 DB4 H/L 数据线 12 DB5 H/L 数据线 13 DB6 H/L 数据线 14 DB7 H/L 数据线 15 CS1 L (19264A) 选择IC1,即(左)64列 16 RESET L 复位控制信号,RST=0有效 17 CS2 L (19264A) 选择IC2,即(中)64列 18 CS3 L (19264A) 选择IC3,即(右)64列 19 V0-9V Negative Voltage for LCD driving 20 LED++5.0V The LED supply
Platform: | Size: 1024 | Author: 梁军 | Hits:

[Data structsHaffmancode

Description: 课程设计: 1.求出在一个n×n的棋盘上,放置n个不能互相捕捉的国际象棋“皇后”的所有布局。 2.设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。 【基本要求】 1) 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) 2) 分别采用动态和静态存储结构 3) 初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 4) 编码:利用建好的哈夫曼树生成哈夫曼编码; 5) 输出编码; 6) 设字符集及频度如下表: 字符 空格 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1 -Curriculum design: 1. Obtained in an n × n chessboard, the place to catch each other should not n个chess "Queen" of all the layout. 2. The design of a use of Huffman coding and decoding algorithms systems, and deal with duplicate to show the following items until the exit date selection. The basic requirements 【】 1) will be the right value data stored in data files (file named data.txt, located in the implementation of procedures in the current directory) 2), respectively, dynamic and static storage structure 3) Initialization: keyboard input character set size of n, n and n characters of the right value, set up Huffman tree 4) Coding: Using the built Huffman tree generated Huffman coding 5) output coding 6) The character set and the frequency of the following table: Space characters A B C D E F G H I J K L M Frequency of 186 64 13 22 32 103 21 15 47 57 1 5 32 20 Character N O P Q R S T U V W X Y Z Frequency 57 63 15 1 48 51 80 23 8 18 1 16 1
Platform: | Size: 550912 | Author: 赵刚 | Hits:

[Compress-Decompress algrithmsdianzhenshijianxianshi

Description: 64*16的点阵显示,利用DS1302时钟芯片显示时间-64* 16 lattice shows that the use of display time clock chip DS1302
Platform: | Size: 1494016 | Author: 陈均浩 | Hits:

[assembly languageasm

Description: 24*64点阵屏 64*24点阵LED点阵显示板源代码 1:初始通电时灯泡全亮,必需通过程序运行才能避免。这虽然说无伤大雅,但却也是一个弊端。原因是裸片MCU各个口都是高电平的原因,我在设计时未考虑周到。 2:CD4094穿行数据传输级联,现扫描顺序反了,导致编程稍微困难一些。目前顺序是这样的:一共64列嘛,从8开始的,8-7-6-5-4-3-2-1; 16-15-14-13-12-11-10-9;24-23-22-21-20-19-18-17-24* 64 dot matrix screen 64* 24 dot matrix LED dot matrix display source code 1: the initial full-power when the light bulb must be run through the procedure to avoid. Although this innocuous, but it is also a disadvantages. The reason is that I die MCU are high in all of the reasons, I am not taken into account in the design and thoughtful. 2: CD4094 cascade through data transmission, is the order of the anti-scanning, resulting in slightly more difficult programming. At present, the order is this: do a total of 64, from 8 to start the ,8-7-6-5-4-3-2-1 16-15-14-13-12-11-10-9 24-- 23-22-21-20-19-18-17 ..................................... ........
Platform: | Size: 5120 | Author: 125449594 | Hits:

[JSP/Javades_java

Description: 一个DES的加密解密算法完整实现 包括S盒等重要实现,另外此程序还实现了文件数据流的加密解密 DESAlgorithm.java DesHelper.java DESStream.java // des算法初始置换表ip public static final int[] IP = { 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 } // des算法终结置换表ip-1 public static final int[] IP_1 = { 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 } 等-A DES, encryption and decryption algorithms, including the full realization of S boxes and other important implementation, the program also implements other file data stream encryption and decryption DESAlgorithm.java DesHelper.java DESStream.java // des算法初始置换表ip public static final int[] IP = { 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 } // des算法终结置换表ip-1 public static final int[] IP_1 = { 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 } and so on
Platform: | Size: 11264 | Author: 不死鸟 | Hits:

[AlgorithmEular-Engineering

Description: Euler工程,相邻元素乘积最大。 给了一个20x20的两位数矩阵,其中的红字部分的积为: 26x63x78x14=1788696 那么,任意方向上(上、下、左、右、对角)4个相邻的数的最大乘积是多少?-In the 20x20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 6
Platform: | Size: 4096 | Author: superman | Hits:

[assembly language(2)

Description: 用减奇数开平方运算 8086/8088指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通过程序来实现的。用减奇数法可求得近似平方根,获得平方根的整数部分。我们知道,N个自然数中的奇数之和等于N2 ,即: 1+3+5=32 1+3+5+7=16=42 1+3+5+7+9+11+13+15=64+82-Odd square root operation with reduced instruction set in 8086/8088 multiply and divide instructions, but no square root instruction, therefore, square root operation is achieved through the process. Reduction method can be obtained with approximate square root of the odd, the integer part to obtain the square root. We know, N a natural number equal to the sum of the odd N2, namely: 1+3+5 = 32 1+3+5+7 = 16 = 42 1+3+5+7+9+11+13+15 = 64+82
Platform: | Size: 4096 | Author: ada | Hits:

[Program docS7-200biancheng

Description: 模拟电位器 H–2 H.2 怎样使用高速计数器 H–6 H.3 自由通信口模式的简单应用 H–10 H.4 处理脉宽调制 H–13 H.5 可逆电动机起动器电路――适用于改变三相交流感应电动机旋转方向 H–16 H.6 步执行顺序(事件鼓定时器) H–19 H.7 S7-200用自由通信口模式和并行打印机连接 H–23 H.8 通过自由通信口模式接受条形码阅读器的信息 H–27 H.9 集成脉冲输出通过步进电机进行定位控制 H–31 H.10 SIMATIC S7-221通过自由通信口模式控制贺氏(Hayes)调制解调器 H–37 H.11 几台SIMATIC S7-200 PLC使用自由通信口模式连接在一个远程I/O网络上 H–43 H.12 S7-224与SIMOVERT电机驱动器之间的自由通信口通信接口 H-54 H.13 用S7-200 CPU 224 DC/DC/DC进行定位控制,并具有位置监视和位置校正 H-64 H.14 用S7-200实现PID控制 H-80 H.15 模拟量输入的处理 H-92 H.16 S7-200与PC之间的连接:从Windows应用程序中读数据 H-98-Analog potentiometers H-2 H.2 How to use high-speed counter H-6 H.3 Simple application of the Freeport mode H-10 H.4 Dealing with pulse width modulation H-13 H.5 Reversible motor starter circuit- to change the direction of rotation of three-phase AC induction motor H-16 H.6 Step sequence (drum event timer) H-19 H.7 S7-200 Freeport mode and parallel printer connection H-23 H.8 Freeport mode to accept the bar code reader H-27 H.9 Integrated pulse output by the stepper motor positioning control H-31 H.10 SIMATIC S7-221 modem Hayes (Hayes) Freeport mode to control H-37 H.11 Of SIMATIC S7-200 PLC to use the Freeport mode to connect a remote I/O network H-43 H.12 Freeport communication interface between the S7-224 and SIMOVERT motor drive H-54 H.13 S7-200 CPU 224 the DC/DC/DC positioning control and position monitoring and position correction H-64 H.14 S7-200 PID control H-80 H.15 Processing of analog input H-92 H.16 Connection between the S7-200
Platform: | Size: 779264 | Author: 李明 | Hits:

[Program docs7-200bcc

Description: 模拟电位器 H–2 H.2 怎样使用高速计数器 H–6 H.3 自由通信口模式的简单应用 H–10 H.4 处理脉宽调制 H–13 H.5 可逆电动机起动器电路――适用于改变三相交流感应电动机旋转方向 H–16 H.6 步执行顺序(事件鼓定时器) H–19 H.7 S7-200用自由通信口模式和并行打印机连接 H–23 H.8 通过自由通信口模式接受条形码阅读器的信息 H–27 H.9 集成脉冲输出通过步进电机进行定位控制 H–31 H.10 SIMATIC S7-221通过自由通信口模式控制贺氏(Hayes)调制解调器 H–37 H.11 几台SIMATIC S7-200 PLC使用自由通信口模式连接在一个远程I/O网络上 H–43 H.12 S7-224与SIMOVERT电机驱动器之间的自由通信口通信接口 H-54 H.13 用S7-200 CPU 224 DC/DC/DC进行定位控制,并具有位置监视和位置校正 H-64 H.14 用S7-200实现PID控制 H-80 H.15 模拟量输入的处理 H-92 H.16 S7-200与PC之间的连接:从Windows应用程序中读数据 H-98-Analog potentiometers H-2 H.2 How to use high-speed counter H-6 H.3 Simple application of the Freeport mode H-10 H.4 Dealing with pulse width modulation H-13 H.5 Reversible motor starter circuit- to change the direction of rotation of three-phase AC induction motor H-16 H.6 Step sequence (drum event timer) H-19 H.7 S7-200 Freeport mode and parallel printer connection H-23 H.8 Freeport mode to accept the bar code reader H-27 H.9 Integrated pulse output by the stepper motor positioning control H-31 H.10 SIMATIC S7-221 modem Hayes (Hayes) Freeport mode to control H-37 H.11 Of SIMATIC S7-200 PLC to use the Freeport mode to connect a remote I/O network H-43 H.12 Freeport communication interface between the S7-224 and SIMOVERT motor drive H-54 H.13 S7-200 CPU 224 the DC/DC/DC positioning control and position monitoring and position correction H-64 H.14 S7-200 PID control H-80 H.15 Processing of analog input H-92 H.16 Connection between the S7-200
Platform: | Size: 784384 | Author: 李明 | Hits:

[Data structshufferman

Description: 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”字符 A B C D E F G H I J K L M 频度 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1-The actual statistics of the character set and the frequency established by the following table shows the Huffman tree, and to achieve the following message encoding and decoding: " THIS PROGRAM IS MY FAVORITE" character ABCDEFGHIJKLM frequency 641,322,321,032,115 4757153220 characters NOPQRSTUVWXYZ frequency ° 57 ' 6,315,148,518,023,818,116 1
Platform: | Size: 3072 | Author: 梁耀燊 | Hits:
« 12 »

CodeBus www.codebus.net