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

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单车管理系统——3.delphi主要代码说明 的相关文章

  • 实物设计|基于51单片机的温湿度检测报警系统

    目录 具体实现功能 xff1a 设计介绍 51单片机简介 设计方案 资料内容 原理图和PCB xff08 AD19 xff09 仿真实现 xff08 protues8 7 xff09 程序 xff08 Keil5 xff09 全部资料 xf
  • 设计分享|74LS148实现按键控制LED灯

    目录 具体实现功能 xff1a 设计介绍 51单片机简介 设计思路 设计内容 仿真图 xff08 protues8 7 xff09 程序 xff08 Keil5 xff09 具体实现功能 xff1a 74LS148实现按键控制LED灯 设计
  • 版本控制工具GIT and SVN 命令对比

    Git 安装 Debian Ubuntu OS Apt get install libcur14 gnutls dev libexppat1 dev gettext libz dev libssl dev Apt get install g
  • SUMO仿真教程(1) ——安装环境的设置(Windows 10系统)

    SUMO安装环境的设置 目录 一 SUMO下载的官方网址二 下载步骤 xff1a 三 环境设置 xff1a 1 打开设置环境变量的界面2 用户 xff08 Administrator xff09 变量设置3 系统变量设置 四 总述 一 SU
  • SUMO仿真教程(3)—— 仿真运行(net file、rou file、sumocfg file)

    文章目录 一 基本介绍 xff1a 1 简述 xff1a 二 文件说明 xff1a 1 路网文件 net xml 2 自定义编写路由文件 rou xml xff1a 3 生成运行仿真文件 sumocfg xff1a 4 进行运行仿真 xff
  • SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

    文章目录 一 简要介绍1 node file2 edge file3 lane definitions xff08 1 xff09 路段细分 xff08 2 xff09 邻近的对向车道 xff08 3 xff09 删除边或车道 4 type
  • SUMO仿真教程(7)—— 交通需求模型介绍

    文章目录 一 简要介绍 xff1a 二 方式一 xff1a 使用行程定义三 方式二 xff1a 使用交通流定义四 方式三 xff1a 使用随机流定义五 方式四 xff1a 使用OD矩阵定义六 方式五 xff1a 使用交叉口流量和转向比定义七
  • STM32 + UCOSII 操作系统(简单讲解)

    前言 这是我将UCOSII操作系统移植在STM32单片机上后进行UCOSII操作系统学习的一些笔记与理解 xff0c 此文最后会附上我自己在UCOSII操作系统下使用STM32写的ESP8266 43 onenet 43 http协议的程序
  • 地下水监测用设备 5G无线数传终端DTU

    地下水监测用设备5G无线数传终端DTU xff0c 实现地下水水位 温度 电导率 水质 孔隙压力等数据传输入库 远程采集 远程监测 曲线及报表可视化管理 地下水监测用5G无线数传终端DTU功能配置 地下水监测用5G无线数传终端负责连接前端采
  • 图解进程线程、互斥锁与信号量-看完不懂你来打我

    在上学的时候 xff0c 老师讲到进程与线程的时候可能是这样讲的 xff1a 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程 xff0c 是操作系统进行资源分配和调度的一个独立单元 xff0c 是应用程序运行的载体 线程
  • MySQL最左匹配原则,道儿上兄弟都得知道的原则

    自MySQL5 5版本起 xff0c 主流的索引结构转为B 43 树 B 43 树的节点存储索引顺序是从左向右存储 xff0c 在检索匹配的时候也要满足自左向右匹配 目录 一 最左匹配原则的原理二 违背最左原则导致索引失效的情况三 查询优化
  • 在STM32下完成基于FreeRTOS的多任务简单程序

    一 为什么要学习 RTOS 在裸机系统中 xff0c 所有的程序基本都是自己写的 xff0c 所有的操作都是在一个无限的大循环里面实现 现实生活中的很多中小型的电子产品用的都是裸机系统 xff0c 而且也能够满足需求 但是为什么还要学习 R
  • 虚拟机连不上网问题及解决

    虚拟机联网主要涉及四个方面的配合 xff1a 网络和共享中心 xff08 物理机 xff09 虚拟网络编辑器 网络适配器 有线连接的更多设置 xff08 相关配置文件 xff09 网络和共享中心 xff1a 提示 xff1a 需要注意的点是
  • linux命令查看系统硬件的版本(dmidecode)

    dmidecode命令 可以让你在Linux系统下获取有关硬件方面的信息 dmidecode的作用是将DMI数据库中的信息解码 xff0c 以可读的文本方式显示 由于DMI信息可以人为修改 xff0c 因此里面的信息不一定是系统准确的信息
  • git 设置代理和取消代理

    本地开启VPN后 xff0c GIt也需要设置代理 xff0c 才能正常略过GFW xff0c 访问goole code等网站 设置如下 xff08 可复制 xff09 xff1a git config global https proxy
  • 上下文切换理解

    1 上下文的理解 上下文是指 xff0c 每次执行前 xff0c 都会使用需要依赖两个环境 xff0c 分别是CPU寄存器 xff08 cpu中容量小但是速度很快的内存 xff09 和程序计数器 xff08 cpu正在执行的程序位置或者是准
  • debian-11版本虚拟机无法登入root账号

    debian11创建虚拟机时我们设置了root账户密码 xff0c 然而在登入时却在未列出中无法登入root账户 xff0c 如图 1 我们登入普通账号 xff0c 这里不提权是无法保存文件的 enter 输入 i 进入编辑模式 在这个位置
  • 整数加减运算的二进制表示

    两位整数的加减都可看做 一个数加上另一个数 xff0c 首先我们要把数据的二进制表示转化成补码 xff0c 因为在计算机内部 xff0c 数据的加减是按补码进行运算的 A补 43 B补 61 A 43 B 补 xff08 mod 2 n 4
  • TCP服务器端、客户端通讯(赋源码)

    实现通讯 xff0c 我们首先要知道是怎么样的一个流程 xff0c 下图是我画的一个通讯流程图 xff1a 一 Linux服务器端 我是在Ubuntu20 04下进行的 xff0c 使用的是C 43 43 xff0c 引入头文件socket
  • 超详细正点原子STM32F429开发板视频教程笔记01

    文章目录 前言一 GPIO入门知识二 寄存器描述和配置方法1 GPIO寄存器 总结 前言 买了一块正点原子阿波罗stm32f429开发板 xff0c 趁暑假有空看看教学视频 xff0c 之前看过一部分所以从GPIO的原理和配置开始写笔记 提

随机推荐