酒店管理的问题,新手上路,请各位指教!只有200分,全给了!!有分了再加!谢谢(200分)

  • 主题发起人 主题发起人 轩辕无恨
  • 开始时间 开始时间

轩辕无恨

Unregistered / Unconfirmed
GUEST, unregistred user!
关于酒店管理的一个软件!
要求根据客户输入的楼栋号和楼层号,每层房间数以及房间号的格式,自动生成每层的房间号 并写入表中
例:客户输入楼栋号为A 共有5层 每层房间数20 房间号码的格式为80001 则自动生成第一层房间号码为 A80101 A80102^^……A80120 第五层为 A80501……A80520

小弟刚进这家公司 能否留下来就靠这个项目了,从来没有接触过delphi 望各位老大哥 拉兄弟一把!!!!!顿首 再拜!!!!!
 
只要找到规律就行了.用字符串...
 
你的格式没有规则吗,只能这样了:
function AAA(DH,GS:String;Layer:Integer):TStringList;
var i,j:integer;
s,st:string;
SL:TStringList;
begin
SL:=TStringList.create;
for i:=1 to Layer do begin
s:=DH+Copy(GS,1,1)+copy('0'+inttostr(i),length('0'+inttostr(i))-1,2);
for j:=1 to 20 do begin
st:=s+copy('0'+inttostr(j),length('0'+inttostr(j))-1,2);
sl.add(st);
end;
end;
result:=sl;
end;
调用:
procedure TForm1.Button1Click(Sender: TObject);
var SL:TStringList;
begin
sl:=AAA('A','80001',5);
listbox1.Items:=sl;
end;
 
楼上说的我正在写,遇到困难,刚好这里解决,谢谢楼上的,也谢谢楼主提出这样的问题来
 
哎其实是很简单的问题了
 
很简单的问题了。
 
晕啊 这样的水平也能进公司[:(]
为什么就没人要我呢[:(!]
 
var
i,roomcount,Floor:integer;
format,buildid,Floorid,roomid:string;
id:array of string;

begin

buildid:=Trim(Edit1.Text); //楼编号
format:=Trim(Edit4.Text); //格式,比如8
if length(Trim(Edit2.Text))= 1 then //楼层号
Floorid:='0'+Trim(Edit2.text)
else
Floorid:=Trim(Edit2.Text);
roomcount:=StrToInt(Edit3.Text);
SetLength(id,roomcount);
for i:=1 to roomcount do
begin
if i<10 then
roomid:='0'+IntToStr(i)
else
roomid:=IntToStr(i);
id[i-1]:=buildid+format+floorid+roomid;
Memo1.Lines.Add(id[i-1]);


end;


end;
 
我写得 大家帮我看看
//edit1-楼栋号
//edit2-楼层号
//edit3-房间数

procedure TForm1.Button1Click(Sender: TObject);
var
tl:tstringlist;
i:integer;
j:integer;
s:string;
begin
tl := tstringlist.Create;
for j := 0 to strtoint(edit2.text) - 1 do
begin
for i := 0 to strtoint(Edit3.Text) - 1 do
begin
s := Edit1.Text+Edit2.Text+'0'+format('%.2d',[i+1]);
tl.Add(s);
end;
showmessage(tl.Text);
tl.Free;
end;
 
还行,不过最好listbox1.Items:=sl;否则我看不全,太多!
 
可是运行的时候 按照层数无法完全把房间显示出来
晕,不知道是怎么回事
 
dey-999大哥 方便的话 给我你的qq
有些问题单独请教 我的qq 12238181
谢谢
 
s := Edit1.Text+Edit2.Text+'0'+format('%.2d',[i+1]);
这个Edit2错了改为 IntTostr(j);
 
这个问题。。。。。。。 汗一个
 
上面的解答方法都复杂了,其实Delphi已经给你提供了一个很好的函数:
for i = 0 to Count - 1 do
S := 'A' + FormatFloat('80000', i);
FormatFloat函数对于为0的位置,会填充i值.

而你的程序就可以这样写了:

procedure TForm1.Button1Click(Sender: TObject);
var
tl:tstringlist;
i:integer;
j:integer;
s:string;
begin
tl := tstringlist.Create;
try
for i := 0 to strtoint(Edit3.Text) - 1 do
begin
s := FormatFloat('A80000', i);
tl.Add(s);
end;
finally
tl.Free;
end;
end;
 
没有QQ,只有邮箱:dey-999@163.com
 
后退
顶部