随机模拟事件操作系统实验delphi - 图文

更新时间:2024-06-11 07:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

随机事件模拟

一、实验名称

Simulation of random occurrence

(随机事件模拟) 二、实验目的

以银行业务处理为例,理解随机事件的发生、处理过程及处理的一般原则,为处理操作系统中的随机事件做准备。

三、实验内容

模拟银行的业务处理过程。假设银行有三个窗口,每天8点开门,12点关门。银行业务主要包括

两种:存钱和取钱,每件业务的处理时间为3-5分钟。

六、实验思路

1.如果程序开始运行时产生的随机时间在8-12点之间,则运行该程序,否则提示

银行已关门;

2.程序开始运行时,随机产生当时银行存在的人数,及三个窗口的排列情况,并按其先后顺序排序1,2,3……;

3.随机产生每个窗口正在办理业务的情况,包括存钱和取钱,及其每个窗口正在办理业务所剩余的时间,并表示出来;

4.程序运行中随机产生每个时刻进来的人数,并进行排列; 5.假如第一个人处理完业务,则队列依次前移; 6.假如到了12点,系统提示银行停止办理业务。

本程序运用delphi软件运行 运行程序如下:

第一个界面的代码如下: unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, jpeg, ExtCtrls, StdCtrls; type

TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Button1: TButton; Image1: TImage; Timer1: TTimer;

procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private

{ Private declarations }

public

{ Public declarations } end; var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Randomize; i := random(20);

edit1.Text:=inttostr(i); if edit1.Text<'12' then Form2.show

ELSE

messagedlg('对不起,银行已关门',mtInformation,[mbOk],0); end;

procedure TForm1.Timer1Timer(Sender: TObject); begin

label1.Font.Color:=rgb(random(255),random(255),random(255)); end; end.

第二个界面的代码如下: unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, jpeg, ExtCtrls, StdCtrls; type

TForm2 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Image1: TImage; Timer1: TTimer; Label5: TLabel; Timer2: TTimer; Label6: TLabel; Label7: TLabel; Timer3: TTimer; Label8: TLabel; Label9: TLabel; Label10: TLabel;

Timer4: TTimer; Label11: TLabel; Label12: TLabel; Timer5: TTimer; Edit1: TEdit; Timer6: TTimer; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label13: TLabel; Timer7: TTimer; Timer8: TTimer; Label14: TLabel; Timer9: TTimer; Timer10: TTimer; Label15: TLabel; Edit5: TEdit; Label16: TLabel; Edit6: TEdit; Timer11: TTimer; Timer12: TTimer;

procedure Timer1Timer(Sender: TObject);

procedure Timer2Timer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Timer6Timer(Sender: TObject); procedure Timer7Timer(Sender: TObject); procedure Timer8Timer(Sender: TObject); procedure Timer9Timer(Sender: TObject); procedure Timer10Timer(Sender: TObject); procedure Timer11Timer(Sender: TObject); procedure Timer12Timer(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end; var

Form2: TForm2; Id:integer=60; Id1:integer=55; Id2:integer=78;

Id3:integer=60; Id4:integer=55; Id5:integer=78;

implementation {$R *.dfm}

procedure TForm2.Timer1Timer(Sender: TObject); begin

label1.Font.Color:=rgb(random(255),random(255),random(255)); end;

procedure TForm2.Timer2Timer(Sender: TObject); begin

label5.Caption := FormatDateTime('hh:nn:ss',now); end;

procedure TForm2.Timer3Timer(Sender: TObject); begin

label7.Font.Color:=rgb(random(255),random(255),random(255));

if Id > 0 then

begin

Id := Id -1;

Label7.Caption := IntToStr(Id); end else // begin Id:=67;

//Timer1.Enabled := true; // end; end;

procedure TForm2.Timer4Timer(Sender: TObject); begin

label9.Font.Color:=rgb(random(255),random(255),random(255));

if Id1 > 0 then begin

Id1 := Id1 -1;

Label9.Caption := IntToStr(Id1); end else Id1:=82;

end;

procedure TForm2.Timer5Timer(Sender: TObject); begin

label11.Font.Color:=rgb(random(255),random(255),random(255));

if Id2 > 0 then begin

Id2 := Id2 -1;

Label11.Caption := IntToStr(Id2); end else Id2:=55; end;

procedure TForm2.Timer6Timer(Sender: TObject); var i:integer; begin i:=15; Randomize; i := random(15);

edit1.Text:=inttostr(i); end;

procedure TForm2.Timer7Timer(Sender: TObject); begin

if Id3 > 0 then begin

Id3 := Id3 -1;

edit2.Text := ('K顾客正在办理存款手续'); end else begin Id3:=60;

edit2.Text := ('F顾客正在办理取款手续');

end; end;

procedure TForm2.Timer8Timer(Sender: TObject); begin

form2.Label14.Caption:='今天是'+formatdatetime('yyyy-mm-dd',now); end;

procedure TForm2.Timer9Timer(Sender: TObject); begin

if Id4 > 0 then begin

Id4 := Id4 -1;

edit3.Text := ('A顾客正在办理取款手续'); // messagedlg('顾客正在办理存款手续',mtInformation,[mbOk],0); end else begin Id4:=55;

edit3.Text := ('B顾客正在办理存款手续'); //Timer1.Enabled := true; end; end;

procedure TForm2.Timer10Timer(Sender: TObject); begin

if Id5 > 0 then begin

Id5 := Id5 -1;

edit4.Text := ('C顾客正在办理存款手续'); // messagedlg('顾客正在办理存款',mtInformation,[mbOk],0); end else begin Id5:=78;

edit4.Text := ('D顾客正在办理取款手续'); //Timer1.Enabled := true; end; end;

procedure TForm2.Timer11Timer(Sender: TObject); var i:integer; begin i:=15; Randomize; i := random(15);

edit5.Text:=inttostr(i); end;

procedure TForm2.Timer12Timer(Sender: TObject); var i:integer; begin i:=15; Randomize; i := random(15);

edit6.Text:=inttostr(i); end; end.

本文来源:https://www.bwwdw.com/article/4586.html

Top