📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Panel3: TPanel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label6: TLabel;
Label7: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses math;
{$R *.dfm}
function J(a:real;n:integer):real ; // 函数 J(a,n)=
var i,s2:integer;
s1:real;
begin
s1:=power(a,n); s2:=1;
for i:=1 to n do
s2:=s2*i;
result:=s1/s2;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,n:integer;
s,ss,x,u,Lv,Lq,P0,Wq,Ls,Ws:real;
begin
if (edit1.Text='') or (edit2.Text='')or (edit3.Text='') then
begin
showmessage('请输入完整数据!');
exit;
end;
s:=0;
n:=StrToint(Edit1.Text);
x:=StrTofloat(Edit2.Text);
u:=StrTofloat(Edit3.Text);
Lv:=x/u; // 占用服务员的平均数
for i:=0 to n do
s:=s+ J(Lv,i);
ss:=s+Lv*J(Lv,n)/(n-Lv);
P0:= 1/ss;
Lq:=(Lv*J(Lv,n)*P0)/(n*sqr(1-Lv/n)); //系统内排队顾客的平均数
Wq:=Lq/x; //顾客平均排队时间
Ls:=Lv+Lq; //系统内顾客的平均数
Ws:=Wq+1/u; //顾客在系统内的平均逗留时间
edit4.Text:= formatfloat('0.000 ',Lq);
edit5.Text:=formatfloat('0.000',Wq);
edit6.Text:= formatfloat('0.000',Lv);
edit7.Text:=formatfloat('0.000',Ls);
edit8.Text:=formatfloat('0.000',Ws);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -