delphi程序.docx
《delphi程序.docx》由会员分享,可在线阅读,更多相关《delphi程序.docx(15页珍藏版)》请在冰豆网上搜索。
delphi程序
239页1题小时钟
procedureTForm1.Timer1Timer(Sender:
TObject);
var
xt,yt:
integer;
h,m,s,ms:
word;
begin
decodetime(time,h,m,s,ms);
xt:
=paintbox1.clientwidthdiv2;
yt:
=paintbox1.clientheightdiv2;
paintbox1.refresh;
paintbox1.canvas.moveto(xt,yt);
paintbox1.canvas.pen.width:
=3;
paintbox1.canvas.lineto(xt+round(sin((60*h+m)/(12*60)*2*pi)*100),
yt-round(cos((60*h+m)/(12*60)*2*pi)*100));
paintbox1.canvas.moveto(xt,yt);
paintbox1.canvas.pen.width:
=2;
paintbox1.canvas.lineto(xt+round(sin(m/60*2*pi)*140),
yt-round(cos(m/60*2*pi)*140));
paintbox1.canvas.moveto(xt,yt);
paintbox1.canvas.pen.width:
=1;
paintbox1.canvas.lineto(xt+round(sin(s/60*2*pi)*180),
yt-round(cos(s/60*2*pi)*180));
end;
end.
239页3题求两点间的距离
procedureTForm1.Button1Click(Sender:
TObject);
begin
paintbox1.Refresh;
formpaint(sender);
end;
procedureTForm1.FormPaint(Sender:
TObject);
var
xt,yt:
integer;
ax,ay,bx,by:
integer;
begin
xt:
=paintbox1.ClientWidthdiv2;
yt:
=paintbox1.Clientheightdiv2;
paintbox1.canvas.MoveTo(xt,0);
paintbox1.canvas.lineTo(xt,2*yt);
paintbox1.canvas.MoveTo(0,yt);
paintbox1.canvas.lineTo(2*xt,yt);
ax:
=strtoint(edit1.text);
ay:
=strtoint(edit2.text);
bx:
=strtoint(edit3.text);
by:
=strtoint(edit4.text);
edit5.Text:
=floattostr(sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by)));
paintbox1.canvas.MoveTo(xt+ax*10,yt-ay*10);
paintbox1.canvas.lineTo(xt+bx*10,yt-by*10);
end;
end.
226页5题?
?
?
?
var
Form1:
TForm1;
type
studentrecord=record
xh,xm:
string[6];
xb:
boolean;
yy,sx,dz:
integer;
end;
implementation
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);
vart:
studentrecord;
f:
fileofstudentrecord;
size:
integer;
begin
t.xh:
=edit1.Text;
t.xm:
=edit2.Text;
t.sx:
=strtoint(edit3.Text);
t.yy:
=strtoint(edit4.Text);
t.dz:
=strtoint(edit5.Text);
ifradiobutton1.Checkedthen
t.xb:
=true
else
t.xb:
=false;
assignfile(f,'c:
\mydocuments\stu.dat');
iffileexists('c:
\mydocuments\stu.dat')then
reset(f)
else
rewrite(f);
size:
=filesize(f);
seek(f,size);
write(f,t);
closefile(f);
edit1.Text:
='';
edit2.Text:
='';
edit3.Text:
='';
edit4.Text:
='';
edit5.Text:
='';
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
close;
end;end.
226页?
?
?
?
?
var
Form1:
TForm1;
type
studentrecord=record
xh,xm:
string[6];
xb:
boolean;
yy,sx,dz:
integer;
end;
implementation
{$R*.dfm}
procedureTForm1.FormCreate(Sender:
TObject);
vart:
studentrecord;
f:
fileofstudentrecord;
xingbie:
string;
begin
assignfile(f,'c:
\mydocuments\stu0.dat');
reset(f);
whilenoteof(f)do
begin
read(f,t);
ift.xbthen
xingbie:
='男'
else
xingbie:
='女';
listbox1.Items.Add(t.xh+''+t.xm+''+xingbie+''+inttostr(t.sx)+
''+inttostr(t.yy)+''+inttostr(t.dz));
end;
closefile(f);
end;
procedureTForm1.Button1Click(Sender:
TObject);
vart:
studentrecord;
f,f1:
fileofstudentrecord;
begin
assignfile(f,'c:
\mydocuments\stu.dat');
reset(f);
assignfile(f1,'c:
\mydocuments\stu0.dat');
rewrite(f1);
whilenoteof(f)do
begin
read(f,t);
if(t.sx<60)or(t.yy<60)or(t.dz<60)then
write(f1,t);
end;
closefile(f);
closefile(f1);
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
close;
end;
end.
166页22题素数
procedureTForm1.Button1Click(Sender:
TObject);
type
sushuset=setofbyte;
var
sushu:
sushuset;
i,j,n,m,k:
longword;
s,s0:
string;
begin
n:
=strtoint(edit1.text);
m:
=strtoint(edit2.text);
ifnmod2=0thenn:
=n+1;
k:
=m-n;
ifk>255then
showmessage('范围太大,请重新输入区间端点!
')
else
begin
sushu:
=[0..k];
fori:
=2ton-1do
forj:
=ntomdo
ifjmodi=0thensushu:
=sushu-[j-n];
fori:
=ntomdiv2do
forj:
=i+1tomdo
ifjmodi=0thensushu:
=sushu-[j-n];
s:
='';
s0:
='';
fori:
=ntomdo
ifi-ninsushuthen
begin
iflength(s0+''+inttostr(i))>60then
begin
s:
=s+s0+chr(13);
s0:
='';
end;
s0:
=s0+''+inttostr(i);
end;
s0:
=s0+''+inttostr(i);
end;
s:
=s+s0;
label1.caption:
=s;
groupbox1.Top:
=(panel1.Top-groupbox1.height)div2;
end;
procedureTForm1.FormCreate(Sender:
TObject);
begin
groupbox1.Top:
=(panel1.Top-groupbox1.height)div2;
end;
procedureTForm1.Edit1KeyPress(Sender:
TObject;varKey:
Char);
varj:
setofchar;
begin
j:
=['0'..'9',#8];
ifnot(keyinj)thenkey:
=#0;
end;
end.
148页12题整除的数
implementation
{$R*.dfm}
functiond7(x:
integer):
boolean;
begin
ifxmod7=0thend7:
=true
elsed7:
=false;
end;
functiond17(x:
integer):
boolean;
begin
ifxmod17=0thend17:
=true
elsed17:
=false;
end;
procedureTForm1.FormActivate(Sender:
TObject);
var
n:
integer;
begin
forn:
=1000to4000do
ifd7(n)andd17(n)thenmemo1.Lines.Add(inttostr(n));
end;
end.
148页17题求斐波那契数列问题
implementation
{$R*.dfm}
functionfib(n:
integer):
int64;
begin
casenof
1,2:
fib:
=1;
else
fib:
=fib(n-1)+fib(n-2);
end;
end;
procedureTForm1.Button1Click(Sender:
TObject);
var
k:
integer;
begin
memo1.lines.clear;
fork:
=1tostrtoint(edit1.text)do
memo1.lines.add(format('%2d%3d',[k,fib(k)]));
end;
end.
120页10题,判断是否是闰年
procedureTForm1.Button1Click(Sender:
TObject);
var
y,m:
integer;
begin
y:
=strtoint(edit1.text);
m:
=strtoint(edit2.text);
label3.Caption:
='';
if((ymod4=0)and(ymod100<>0))or(ymod400=0)then
label3.Caption:
=edit1.text+'年是闰年,'
else
label3.Caption:
=edit1.text+'年不是闰年,';
casemof
3,4,5:
Label3.Caption:
=Label3.Caption+edit2.Text+'月份是春天,';
6,7,8:
Label3.Caption:
=Label3.Caption+edit2.Text+'月份是夏天,';
9,10,11:
Label3.Caption:
=Label3.Caption+edit2.Text+'月份是秋天,';
else
Label3.Caption:
=Label3.Caption+edit2.Text+'月份是冬天,';
end;
casemof
1,3,5,7,8,10,12:
Label3.Caption:
=Label3.Caption+'共有31天,';
4,6,9,11:
Label3.Caption:
=Label3.Caption+'共有30天,';
else
if((ymod4=0)and(ymod100<>0)or(ymod400=0))then
Label3.Caption:
=Label3.Caption+'共有29天,'
else
Label3.Caption:
=Label3.Caption+'共有28天,';
end;
end;
end.
120页11题求和的
procedureTForm1.Button1Click(Sender:
TObject);
var
n,k,j:
integer;
s:
int64;
begin
n:
=strtoint(edit1.text);
j:
=0;
s:
=0;
fork:
=1tondo
begin
j:
=j+k;
s:
=s+j;
end;
panel2.Caption:
=format('s=%d',[s]);
edit1.setfocus;
end;
procedureTForm1.Edit1KeyPress(Sender:
TObject;varKey:
Char);
varb:
boolean;
begin
b:
=(key<>#8)and(key<#48)or(key>#57);
ifbthenkey:
=#0;
end;
end.
120页12题男人,女人,小孩各有多少人
procedureTForm1.Button1Click(Sender:
TObject);
var
x,y,z:
integer;
p:
string;
begin
memo1.clear;
forx:
=0to16do
fory:
=0to24do
begin
z:
=30-x-y;
if3*x+2*y+z/1=50then
begin
p:
=format('%3d%3d%3d',[x,y,z]);
memo1.lines.add(p);
end;
end;
end;
end.
98页2题求长方体的表面积
procedureTForm1.Button1Click(Sender:
TObject);
var
s,l,k,h:
double;
begin
l:
=strtofloat(edit1.text);
k:
=strtofloat(edit2.text);
h:
=strtofloat(edit3.text);
s:
=2*l*k+2*k*h+2*l*h;
label1.Caption:
=floattostr(s);
end;
end.
98页5题计算圆的面积和周长
procedureTForm1.Edit1KeyPress(Sender:
TObject;varKey:
Char);
var
r:
real;
b:
boolean;
begin
b:
=(key<>#8)and(key<>'.')and(key<>#13)and(key<#48)or(key>#57);
ifbthenkey:
=#0;
ifkey=#13then
begin
ifedit1.text=''thenedit1.text:
='0';
r:
=strtofloat(edit1.text);
ifradiobutton1.Checkedthen
label1.Caption:
=format('圆的面积为:
%f',[pi*r*r]);
ifradiobutton2.Checkedthen
label1.Caption:
=format('圆的周长为:
%f',[2*pi*r]);
ifradiobutton3.Checkedthen
label1.Caption:
=format('圆的面积为:
%f'+chr(13)+'周长为:
%f',[pi*r*r,2*pi*r]);
edit1.SelectAll;
end;
end;
procedureTForm1.RadioButton1Click(Sender:
TObject);
var
sender0:
tobject;
key:
char;
begin
sender0:
=edit1;
key:
=#13;
form1.edit1keypress(sender0,key);
end;
procedureTForm1.RadioButton2Click(Sender:
TObject);
var
sender0:
tobject;
key:
char;
begin
sender0:
=edit1;
key:
=#13;
form1.edit1keypress(sender0,key);
end;
procedureTForm1.RadioButton3Click(Sender:
TObject);
var
sender0:
tobject;
key:
char;
begin
sender0:
=edit1;
key:
=#13;
form1.edit1keypress(sender0,key);
end;
end.
98页6题统计奇数和偶数的个数
procedureTForm1.Button1Click(Sender:
TObject);
var
k,j,n:
word;
begin
k:
=0;
n:
=combobox1.items.count;
forj:
=1tondo
ifstrtoint(combobox1.items[j-1])mod2=0then
k:
=k+1;
label1.caption:
=format('共有:
'+#13+'%d个偶数,'+#13+'%d个奇数。
',[k,n-k]);
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
combobox1.items.clear;
end;
procedureTForm1.ComboBox1KeyPress(Sender:
TObject;varKey:
Char);
begin
if(key=#13)and(combobox1.text<>'')then//按键后接收输入的选项
begin
combobox1.items.insert(0,combobox1.text);//按键后移去选项
combobox1.selstart:
=0;
combobox1.text:
='';
end;
ifkey=#27then
ifcombobox1.itemindex<>-1then
combobox1.items.Delete(combobox1.itemindex);
end;
end.
98页8题设置倒计时的时间,并进行倒计时
procedureTForm1.Timer1Timer(Sender:
TObject);
var
m,n,s,h:
integer;
begin
timer1.Tag:
=timer1.Tag-1;
m:
=timer1.Tag;
ifm<0then
begin
timer1.enabled:
=false;
showmessage('预定的时间到了!
');
edit1.Text:
='0';
end
else
begin
s:
=m;
n:
=sdiv60;
s:
=smod60;
h:
=ndiv60;
n:
=nmod60;
maskedit1.text:
=format('%d:
%d:
%d',[h,n,s]);
ifn<>strtoint(edit1.text)thenedit1.Text:
=inttostr(n);
end;
end;
end.