⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit3.~pas

📁 采用JAVA语言实现的出租车计价器的程序
💻 ~PAS
字号:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Db, ADODB;

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    ADOQuery1: TADOQuery;
    ListView1: TListView;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.DFM}

procedure TForm3.Button2Click(Sender: TObject);
begin
        Close;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
        strSQL,strSQL1,e1,e2,e3,e4,e5,e6,e7:string;
        j,k,n,i,eh,el,jj:Integer;
        data:Array of string;
        listitem:TListItem;
        r1,r2:real;//r1:里程,r2:金额
begin  //AAAAA
        e1:=Trim(Edit1.Text);
        if e1='' then Exit;
        e5:=e1+'31';
        e1:=e1+'00';
        strSQL:='select distinct 出租车号 from yyjl';
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(strSQL);
        ADOQuery1.Open;
        //筛选出不同出租车号
        SetLength(data,ADOQuery1.RecordCount); // 不同出租车号数量为ADOQuery1.RecordCount
        For i:=0  to  ADOQuery1.RecordCount-1  do
                SetLength(data[i],50);    // 每个data[i]为串类型,长度为50
        ADOQuery1.First;
        data[0]:=ADOQuery1.FieldValues['出租车号'];
        For i:=1  to  ADOQuery1.RecordCount-1  do
        begin  //BBBBB
          ADOQuery1.Next;
          data[i]:=ADOQuery1.FieldValues['出租车号'];
        end;  //BBBBB,不同车号存入data[i]
        //下面按data[i]检索
        n:=ADOQuery1.RecordCount;
        ListView1.Items.Clear;
        For i:=0  to  n-1  do
        begin //CCCCC
           strSQL:='select * from yyjl  where ((出租车号='''+data[i]+''') and ((日期>= '''+e1+''') and (日期<= '''+e5+''')))';
           ADOQuery1.Close;
           ADOQuery1.SQL.Clear;
           ADOQuery1.SQL.Add(strSQL);
           ADOQuery1.Open;
           //得到一个车号在e1日的所有数据
           if  ADOQuery1.RecordCount>0  then
           begin  //DDDDD,开始统计
           ADOQuery1.First;
           k:=ADOQuery1.RecordCount;
           r1:=StrToFloat(ADOQuery1.FieldValues['里程']);
           r2:=StrToFloat(ADOQuery1.FieldValues['金额']);
           //处理侯时
           eh:=0;el:=0;
           jj:=1;
           e4:=ADOQuery1.FieldValues['侯时'];
           while e4[jj]<>':' do
              jj:=jj+1;
           eh:=StrToInt(Copy(e4,1,jj-1));
           jj:=Length(e4);
           while e4[jj]<>':' do
              jj:=jj-1;
           el:=StrToInt(Copy(e4,jj+1,Length(e4)));
           For j:=0  to  k-2  do
               begin
                    ADOQuery1.Next;
                    r1:=r1+StrToFloat(ADOQuery1.FieldValues['里程']);
                    r2:=r2+StrToFloat(ADOQuery1.FieldValues['金额']);
                    e4:=ADOQuery1.FieldValues['侯时'];
                    jj:=1;
                    while e4[jj]<>':' do
                             jj:=jj+1;
                    eh:=eh+StrToInt(Copy(e4,1,jj-1));
                    jj:=Length(e4);
                    while e4[jj]<>':' do
                             jj:=jj-1;
                    el:=el+StrToInt(Copy(e4,jj+1,Length(e4)));
                    if el>=60 then
                    begin
                        el:=el-60;
                        eh:=eh+1;
                    end;
               end;
           strSQL1:='select * from ygxx  where (出租车号='''+data[i]+''')';
           listitem:=ListView1.Items.Add;
           listitem.Caption:=ADOQuery1.FieldValues['出租车号'];
           ADOQuery1.Close;
           ADOQuery1.SQL.Clear;
           ADOQuery1.SQL.Add(strSQL1);
           ADOQuery1.Open;
           e2:='';e3:='';
           if  ADOQuery1.RecordCount>0  then
           begin
                 e2:=ADOQuery1.FieldValues['单位'];
                 e3:=ADOQuery1.FieldValues['司机'];
           end;
           listitem.SubItems.Add(e2);
           listitem.SubItems.Add(e3);
           listitem.SubItems.Add(IntToStr(k));
           listitem.SubItems.Add(FloatToStr(r1));
           listitem.SubItems.Add(IntToStr(eh)+':'+IntToStr(el));
           listitem.SubItems.Add(FloatToStr(r2));
           end; // DDDDD,统计结束
        end; //CCCCC


end; //AAAAA

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -