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

📄 unit4.~pas

📁 小型图书管理系统,仅仅适用于小型院校的图书管理.
💻 ~PAS
字号:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, ExtCtrls, Db, DBTables, Buttons, Mask, DBCtrls;

type
  TForm4 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    verifyBT: TButton;
    Label2: TLabel;
    snameEdit: TEdit;
    oldcreditEdit: TEdit;
    Label3: TLabel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    selectBT: TButton;
    delBT: TButton;
    searchcnoEdit: TEdit;
    Label7: TLabel;
    searchBT: TButton;
    Query1: TQuery;
    returnBT: TBitBtn;
    Table1: TTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Query2: TQuery;
    Query3: TQuery;
    Query4: TQuery;
    Query5: TQuery;
    Label8: TLabel;
    DataSource3: TDataSource;
    DBedit1: TDBEdit;
    DBEdit2: TDBEdit;
    snoedit: TEdit;
    Label9: TLabel;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Table1Cno: TStringField;
    Table1Cname: TStringField;
    Table1Credit: TSmallintField;
    Table1Quota: TSmallintField;
    Table1Ctime: TSmallintField;
    Query2Cno: TStringField;
    Query2Cname: TStringField;
    Query2Credit: TSmallintField;
    Query2Quota: TSmallintField;
    Query2Ctime: TSmallintField;
    procedure verifyBTClick(Sender: TObject);
    procedure searchBTClick(Sender: TObject);
    procedure snoeditEnter(Sender: TObject);
    procedure selectBTClick(Sender: TObject);
    procedure delBTClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);

    private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.DFM}

var
col,row :integer;
acno :array[1..5,1..4] of string ;
snum : integer ;


procedure TForm4.verifyBTClick(Sender: TObject);
begin
table1.open;
try
   snum:=strtoint(snoedit.text);
except
   begin
   showmessage('输入有误');
   exit ;
   end
end ;
Query1.close;
query1.sql.Clear;
query1.sql.add('select sname from student');
query1.sql.add('where sno='+snoedit.text);
query1.open;
if query1.fieldbyname('sname').asstring='' then
   showmessage('学号有误')
else
  begin
   snameEdit.text:=query1.fieldbyname('sname').value;
   query1.close;
   query1.sql.Clear;
   query1.sql.add('select sum(credit) from sc,course');
   query1.sql.add('where sno=' + snoedit.text);
   query1.sql.add('and sc.cno=course.cno and grade>=60');
   query1.open;
   oldcreditedit.text:=query1.Fields[0].asstring;
   query5.close;
   query5.ParamByName('sno').value:=snum;
   query5.open;
   query2.close;
   query2.ParamByName('sno').value:=snum;
   query2.open;
   While not query2.EOF do
   Begin
       col:=query2ctime.value div 10;
       row:=query2ctime.value-col*10 ;
       stringGrid1.Cells[col,row]:=query2cname.value ;
       acno[col,row]:=query2cno.value;
       query2.Next;
   End;
  selectBT.enabled:=true;
   delBT.enabled:=true; 
 end ;
end;

procedure TForm4.searchBTClick(Sender: TObject);
begin
if  not table1.locate('Cno', SearchCnoEdit.text,[ ]) then
   showmessage('指定的课号不存在');
SearchCnoEdit.text:='';
end;

procedure TForm4.FormShow(Sender: TObject);
begin
stringGrid1.Cells[0,1]:= '第一节' ;
stringGrid1.Cells[0,2]:= '第二节' ;
stringGrid1.Cells[0,3]:= '第三节' ;
stringGrid1.Cells[0,4]:= '第四节' ;
stringGrid1.Cells[1,0]:= '星期一' ;
stringGrid1.Cells[2,0]:= '星期二' ;
stringGrid1.Cells[3,0]:= '星期三' ;
stringGrid1.Cells[4,0]:= '星期四' ;
stringGrid1.Cells[5,0]:= '星期五' ;
snoedit.SetFocus;
end;

procedure TForm4.snoeditEnter(Sender: TObject);
begin
snoedit.text:='';
snameedit.text:='';
oldcreditedit.text:='';
query2.close;
query5.close;
selectBT.enabled:=false;
delBt.enabled:=false;
end;

procedure TForm4.selectBTClick(Sender: TObject);
begin
 if table1quota.value=0 then
  begin 
           showmessage('没有名额');   exit;
  end ;
 col:=table1ctime.value div 10;
 row:=table1ctime.value - col*10 ;
 if stringGrid1.Cells[col,row]<>'' then
  begin 
       showmessage('时间冲突');    exit;
  end ;
 try
 query3.close;
 query3.parambyname('sno').value:=snum ;

query3.parambyname('cno').value:=table1cno.value;
 query3.execsql;
except
  showmessage('该课程已修');
  exit;
 end;
 stringGrid1.Cells[col,row]:=table1cname.value;
 acno[col,row]:=table1cno.value;
 Table1.Edit ;
 Table1quota.value:=table1quota.value-1;
 Table1.Post ;
 query5.close;
 query5.open;
end;

procedure TForm4.delBTClick(Sender: TObject);
begin
 if stringGrid1.Cells[col,row]='' then
  begin showmessage('请选择退选课程');
 exit;
 end ;
 query4.close;
 query4.parambyname('sno').value:=snum;
 query4.parambyname('cno').value:=acno[col,row];
 query4.execsql;
 table1.locate('cno',acno[col,row],[]);
 Table1.Edit ;
 Table1quota.value:=table1quota.value+1;
 Table1.Post ;
 stringGrid1.Cells[col,row]:='' ;
 acno[col,row]:='' ;
 query5.close;
 query5.open;
end;

procedure TForm4.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
col:=acol;
row:=arow;
end;

end.



⌨️ 快捷键说明

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