Delphi7第八天---小型图书管理系统

这篇博客讲述了作者利用Delphi7开发一个小型图书管理系统的经历,包括登录、管理员控制和读者服务三大模块的实现。系统由8个窗体组成,遇到的问题包括SQL服务未启动、数据显示和修改等问题,作者通过查阅资料和实践找到了相应的解决方案。
摘要由CSDN通过智能技术生成

前两天试着玩GitHub,熟悉了英语,却把头脑给弄大了。

文件夹上传到GitHub总不成功,启动Gitshell后,不到一会,系统就崩了,explorer.exe无法工作,只得重启。

昨天关机、开机试了不少于10次,问题还没解决,先搁在那,等心缓一缓再弄。

有收获的是知道怎么从GitHub中拷贝别人的项目文件。

今天终于把搁置了几天的图书管理系统搞定了,完成了图书查询借阅功能和还书功能两大功能。

现在对这个小型系统做一个总结。

该系统由8个窗体构成,如下表所示:


窗体设计对照表
窗体名称 Unit文件 窗体功能
Welcomeform welcome.pas 用户登录
Masterform Master.pas 图书管理界面
updatebookform Updatebook.pas 修改图书记录
updatepasswordform updatepassword.pas 修改密码
updatereaderform updatereader.pas 修改读者记录
readerform reader.pas 读者服务界面
readerselectform readerselect.pas 图书查询与借阅
readerbackform readerback.pas 图书归还

一、登录功能模块的实现

1、登录模块窗体的设计

radiogroup控件的边框没找到方法隐藏,如果你知道,麻烦在回复中告知。

2、登录模块的代码设计

unit Welcome;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, ExtCtrls;
//uses master;
type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    RadioGroup1: TRadioGroup;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses master, reader;    //引用加在实现部分。

{$R *.dfm}
var
  time:Integer=0;
procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  results:variant; //16字节可变类型
begin
   ADOTable1.Active:=true;
   {
   if (edit2.Text='admin') and (edit1.Text='123456') then
      showmessage('登陆成功!')
   }
   str:=Edit2.Text;

   results:=ADOTable1.Lookup('LoadName',edit2.Text,'LoadPassword');
   //showmessage(BoolToStr(results=edit1.Text,true));
   if edit2.Text='' then
      begin
         Application.MessageBox('用户名不能为空!','提示',mb_ok);
         edit2.SetFocus;
      end
   else
   if  not ADOTable1.Locate('LoadName',str,[loCaseInsensitive]) then
     begin
        Application.MessageBox('用户名不存在!','提示',mb_ok);
        edit2.Text:='';
        edit1.Text:='';
        edit2.SetFocus;
     end
   else
   if edit1.Text='' then
        Application.MessageBox('密码不能为空!','提示',mb_ok)
   else
   if (results=edit1.Text) then        //重建数据表才验证成功(开始以为是类型转化不对,其实不然)
      begin
        //showmessage('登陆成功!')
        case RadioGroup1.ItemIndex of    //RadioGroup的使用方法
        0:
             masterform.show;
            //form1.Visible:=false;
        1:
            readerform.show;
        end;
      end
   else
      begin
        time:=time+1;
        if time<5 then
          begin
            showmessage('密码错误,请重新输入!');
            edit1.Text:='';
            //edit2.Text:='';
            edit1.SetFocus;  //焦点重新回到edit2
          end
        else
          begin
            messageDlg('对不起,密码输入错误达到5次!请退出。',mtInformation,[mbok],0);
            application.Terminate;
          end;
      end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   close;   //关闭登陆窗口
end;

end.

二、管理员控制模块的实现

1、主界面

1.1、主界面窗体设计


1.2、代码设计


                
  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
5.4 用户登录窗体的的实现 本窗体是为三种不同的用户(一般用户,工作人员,管理员)提供选择以进入不同的模块,满足不同用户的 需求。源代码比较简单,略。 5.5 用户密码认证窗体的的实现 本窗体是为了让工作人员或图书馆管理员按照用户名和密码进行登录,并且跟据用户名检查Keyer表中的“权限”字段,以分辩进入图书馆管理人员模块还是进入工作人员模块。窗体界面、源代码见附录。 5.6 借阅者服务模块的实现 借阅者服务窗体的功能主要是图书的查询,个人借阅情况查看及个人部分信息的修改。 5.6.1 图书查询功能的实现 在这个本系统中,是由本人负责图书查询功能,在系统中任何人都有权限使用查询功能,不做任何限制。由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找,还有按多个条件进行逻辑与或是逻辑或的多条件查找。其中实现的方法者差不多。 5.6.2 借阅者登录功能的实现 这个功能的实现与工作人员和管理人员登录功能实现的方法大致一样,并且还要简单。是从User表中查到到借阅证号与密码,看与用户输入的是否一致。如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。源代码与借阅者登录界面都略。 5.6.3 借阅者借阅情况功能的实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值