单车管理系统——3.delphi主要代码说明

Delphi部分代码
目录:
1.登录页面代码
2.用户注册页面代码
3.用户主页面代码
3.1.用户充值页面代码
3.2.用户骑行记录页面代码
3.3.用户注销页面代码
4.维修员主页面代码
5.管理员主页面代码

1.登录页面代码

在这里插入图片描述

“用户”,“维修员”,“管理员”三者登录时提示相同,故在此处只放置用户登录代码,
adotable1 连接与“用户”表,adotable2链接与“维修员”表, adotable3连接与“管理员”表。

//用户登录
procedure TForm6.登录Click(Sender: TObject);
var
  yh:string;
  results:variant;
begin
  adotable1.Active:=true;
  yh:= edit1.text;
  results :=ADOtable1.Lookup('账号',edit1.text,'密码');
  if(edit1.text='') then
  begin
    showmessage('账号不能为空!');
    edit1.text:='';
    edit2.text:='';
  end

  else if (edit2.Text='') then
  begin
    showmessage('密码不能为空!');
    edit1.text:='';
    edit2.text:='';
  end

  else if not(results=edit2.Text) then
  begin
    showmessage('密码错误!');
  end
  else if(results=edit2.Text) then
  begin
  //showmessage('登录成功');
  form2.show;
  end

end;
//退出
procedure TForm6.退出Click(Sender: TObject);
begin
if messagedlg('确定要退出吗?',mtconfirmation,[mbyes,mbno],0)
  =mryes  then  application.Terminate
end;

2.用户注册页面代码

在这里插入图片描述

adoquery1 链接到“用户”表,用于实时更新添加用户

//注册
procedure TForm1.Button1Click(Sender: TObject);
var
results:variant;
begin
  ADOTABLE1.Active:=true;
  results:=ADOtable1.Lookup('账号',edit2.text,'账号');
  if(edit1.text='') then
  begin
    showmessage('用户名不能为空!');
  end

  else if(edit2.Text='') then
  begin
    showmessage('账号不能为空!');
  end

  else if(edit3.Text='') then
  begin
    showmessage('密码不能为空!');
  end

  else if(edit4.Text='') then
  begin
    showmessage('请确认密码!');
  end

  else if(edit2.text=results)then
  begin
    showmessage('账号已占用,换一个吧!');
  end

  else if(edit4.Text=edit3.text) then
  begin
//用insert将注册成功的用户插入到数据库“用户”表中,实时更新数据库内容
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into 用户(用户名,账号,密码,余额,总充值金额,vip等级)');
    adoquery1.SQL.add('values(:A,:B,:C,:D,:E,:F)');
    ADOQuery1.Parameters.ParamByName('A').Value:=Edit1.Text;
    ADOQuery1.Parameters.ParamByName('B').Value:=Edit2.Text;
    ADOQuery1.Parameters.ParamByName('C').Value:=Edit3.Text;
    ADOQuery1.Parameters.ParamByName('D').Value:=0;
    ADOQuery1.Parameters.ParamByName('E').Value:=0;
    ADOQuery1.Parameters.ParamByName('F').Value:=0;
    adoquery1.execsql;
    showmessage('注册成功,请返回登录界面');
  end

  else if( edit4.Text<>edit3.text ) then
  begin
    showmessage('前后密码不符,请重新设置密码');
  end
end;

3.用户主页面代码
在这里插入图片描述

adoquery1链接到“用户”表,用于查看相应用户的余额
adoquery3链接到“单车”表,用于更新单车的状态:运行,停车,报修

      //充值中心,转入用户充值页面
procedure TForm2.Button1Click(Sender: TObject);
begin
  form5.show;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  close;
end;
        //显示余额
procedure TForm2.Button3Click(Sender: TObject);
 var
 a:variant;
 b:integer;
begin
    adotable1.Active:=true;
    a:=ADOtable1.Lookup('账号',form6.edit1.text,'余额');
    b:=integer(a);
    showmessage(inttostr(b));
end;
         //转入用户行驶记录页面
procedure TForm2.Button4Click(Sender: TObject);
begin
  form7.Show;
end;
     	//更新单车状态——行驶中
procedure TForm2.Button5Click(Sender: TObject);
begin
        adoquery3.close;
        adoquery3.sql.clear;
        adoquery3.sql.add('update 单车 set 是否在运行=:true where '''+edit1.text+'''=编号');
        adoquery3.execsql;

        showmessage('开车成功!');
end;
     //更新单车状态——停车
procedure TForm2.Button6Click(Sender: TObject);
begin
        adoquery3.close;
        adoquery3.sql.clear;
        adoquery3.sql.add('update 单车 set 是否在运行=:false where '''+edit1.text+'''=编号');
        adoquery3.execsql;

        showmessage('您已成功停车')
end;

    //报修:更新车的状态——需要修理
procedure TForm2.Button7Click(Sender: TObject);
begin
  if(edit1.Text='') then
  begin
    showmessage('请在此页面输入单车编号!');
  end

  else
  begin
       adoquery3.close;
       adoquery3.sql.clear;
       adoquery3.sql.add('update 单车 set 是否可用=0 where(编号='''+edit1.text+''')');
       adoquery3.execsql;
       showmessage('   报修成功!');
  end;
end;
//转入账号注销界面
procedure TForm2.Button8Click(Sender: TObject);
begin
  form8.show;
end;

3.1.用户充值页面代码

在这里插入图片描述

adoquery1链接到“用户”表,用于更新用户的余额

procedure TForm5.Button5Click(Sender: TObject);
var
  a:variant;
  a1:integer;
  b:integer;
  c:integer;
  
begin
    //如果输入的账号与登录页面一致,充值成功
    adotable1.Active:=true;
    a:=ADOtable1.Lookup('账号',edit2.text,'余额');
    if(edit2.Text=form6.Edit1.Text) then
    begin
        a1:=integer(a);
        b:=strtoint(edit1.Text);
        c:=a1+b;
        showmessage(inttostr(c));

        showmessage('充值成功!');

        //实时更新数据库中用户的余额信息
        adoquery1.close;
        adoquery1.sql.clear;
adoquery1.sql.add('update 用户set 余额=:A where(账号='''+edit2.text+''')');
        adoquery1.Parameters.ParamByName('A').Value:=c;
        adoquery1.execsql;
    end

    else
    begin
        showmessage('账号错误,请重新输入');
    end ;

3.2.用户骑行记录页面代码

在这里插入图片描述

adoquery1链接到“运行记录”表,用于查询用户的行驶记录

 //从数据库中筛选出该用户的行驶记录
procedure TForm7.Button1Click(Sender: TObject);
begin
        adoquery1.close;
        adoquery1.sql.clear;
        adoquery1.sql.add('select * from 运行记录 where '''+form6.edit1.text+'''=用户账号');
        adoquery1.open;
end;

3.3.用户注销页面代码

procedure TForm8.Button1Click(Sender: TObject);
var
results:variant;
begin
  ADOTABLE1.Active:=true;
  results:=ADOtable1.Lookup('账号',edit2.text,'账号');
  if(edit1.text='') then
  begin
    showmessage('用户名不能为空!');
  end

  else if(edit2.Text='') then
  begin
    showmessage('账号不能为空!');
  end

  else if(edit3.Text='') then
  begin
    showmessage('密码不能为空!');
  end

  else if(edit4.Text='') then
  begin
    showmessage('请确认密码!');
  end

  else if( edit4.Text<>edit3.text) then
  begin
    showmessage('前后密码不符,请重新设置密码');
  end
//注销成功,从用户表中实时删除该用户信息
  else if(results=edit2.text) then
  begin
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add( 'delete from 用户 where 账号='''+edit2.text+''' and 密码='''+edit3.text+'''');
    adoquery1.execsql;

    showmessage('注销成功,请返回登录界面');
  end;

4.维修员主页面代码

在这里插入图片描述

adoquery1链接到“单车”表,维修员可以实时查询需要维修的单车。并且能够更新已维修的单车

//车被修好,更新数据库
procedure TForm4.Button1Click(Sender: TObject);
var
  a:variant;
begin
  adotable1.Active:=true;
  a:=ADOtable1.Lookup('编号',edit1.text,'是否可用');
  if(edit1.text='') then
  begin
    showmessage('账号不能为空!');
  end;

  if(a=null) then
  begin
    showmessage('输入错误,请重新输入!');
  end

  //更新车的状态——已修好,可用
  else
  begin
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add( 'update 单车 set 是否可用=1  where(编号='''+edit1.text+''')');
    adoquery1.execsql;
  end;
end;
//更新页面中需要维修的单车
procedure TForm4.更新Click(Sender: TObject);
begin
        adoquery1.close;
        adoquery1.sql.clear;
        adoquery1.sql.add('select * from 单车 where 是否可用=0');
        adoquery1.open;
end;

5.管理员主页面代码

在这里插入图片描述

用户查询表连接与DataModule2.adoquery1,该adoquery连接与用户表,
该页面的adoquery1连接与“单车”表,用于查询单车,同时单车表下方链接了一个DBNavigator,用于单车的删减。

//查询用户的表格
procedure TForm3.Button4Click(Sender: TObject);
begin
        DataModule2.adoquery1.close;
        DataModule2.adoquery1.sql.clear;
        DataModule2.adoquery1.sql.add('select * from 用户');
        DataModule2.adoquery1.open;
end;

更多资源:

用Delphi写一个单车管理系统
单车管理系统——1.文档设计及sql代码说明
单车管理系统——2.delphi页面说明
单车管理系统——3.delphi主要代码说明
完整的文件代码及设计文档


更多资源:

北京理工大学—计算机专业课程资源:https://blog.csdn.net/weixin_50836014/article/details/125687455

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只野指针.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值