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