//ṵ̀5Ԫļֱ£
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls,Unit2,Unit3,Unit4,Unit5, DB, DBTables;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
    Form2.Show;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
    Form3.Show;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
    Form4.Show;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
    Form5.Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    self.Close;
end;

end.
////////////////////////////////////////////////////////////////
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, ComCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Table1: TTable;
    UpDown1: TUpDown;
    Edit1: TEdit;
    Label1: TLabel;
    UpDown2: TUpDown;
    Edit2: TEdit;
    Label2: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Button1Click(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
    procedure FormCreate(Sender: TObject);
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;  

implementation

{$R *.dfm}

procedure TForm2.UpDown1Click(Sender: TObject; Button: TUDBtnType); //ƽʱɼİٷ
begin

    Edit1.Text := IntToStr(UpDown1.Position);
    UpDown2.Position := 100-UpDown1.Position;
    Edit2.Text := IntToStr(UpDown2.Position);
end;

procedure TForm2.FormCreate(Sender: TObject);//ʼEdit1Edit2
begin
    Edit1.Text := IntToStr(UpDown1.Position);
    Edit2.Text := IntToStr(UpDown2.Position);
end;

procedure TForm2.UpDown2Click(Sender: TObject; Button: TUDBtnType); //ɼİٷ
begin
    Edit2.Text := IntToStr(UpDown2.Position);
    UpDown1.Position := 100-UpDown2.Position;
    Edit1.Text := IntToStr(UpDown1.Position); 
end;

procedure TForm2.Edit1Exit(Sender: TObject);  // Edit1ʧȥʱUpDown1UpDown2positonֵԼEdit2Textֵ
begin
    UpDown1.Position := StrToInt(Edit1.Text);
    UpDown2.Position := 100-UpDown1.Position;
    Edit2.Text := IntToStr(UpDown2.Position);
end;

procedure TForm2.Edit2Exit(Sender: TObject); // Edit2ʧȥʱUpDown1UpDown2positonֵԼEdit1Textֵ
begin
    UpDown2.Position := StrToInt(Edit2.Text);
    UpDown1.Position := 100-UpDown2.Position;
    Edit1.Text := IntToStr(UpDown1.Position);
end;

procedure TForm2.Button1Click(Sender: TObject); //ɸѧɼ
var pea_x,fin_x,ave_x:Real;
    pea_per,fin_per:integer;
begin
    table1.First;
    while not table1.Eof do
    begin
        Table1.Edit;
        pea_x := table1.FieldValues['pea_resu'];
        fin_x := table1.FieldValues['fin_resu'];
        pea_per := StrToInt(Edit1.Text);
        fin_per := StrToInt(Edit2.Text);
        ave_x := (pea_per/100.0)*pea_x + (fin_per/100.0)*fin_x;
        Table1.FieldByName('ave_resu').AsFloat := ave_x;
        Table1.Post;
        table1.Next;
    end; 
end;

procedure TForm2.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,  //ƵEdit1Ϸʱеֱѡ
  Y: Integer);
begin
    Edit1.SelectAll;
end;

procedure TForm2.Edit2MouseMove(Sender: TObject; Shift: TShiftState; X, //ƵEdit2Ϸʱеֱѡ
  Y: Integer);
begin
    Edit2.SelectAll;
end;

procedure TForm2.Button2Click(Sender: TObject);   //رմ壨ϵͳ棩
begin
    close;
end;

end.

////////////////////////////////////////////////////////////////
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;

type
  TForm3 = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Table1: TTable;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);  // ɾǰ¼
begin
    table1.Delete;
end;

procedure TForm3.Button2Click(Sender: TObject); // ɾм¼
begin 
 if MessageDlg('ȷҪɾеļ¼?', mtWarning, [mbYes,mbNo],0)=mrYes then
 begin
     while not table1.IsEmpty do  table1.delete;
 end;
end;

procedure TForm3.Button3Click(Sender: TObject);
begin
    close;
end;

end.
////////////////////////////////////////////////////////////////

unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;

type
  TForm4 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Query1: TQuery;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    ComboBox1: TComboBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;


implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject); //ʵϲѯ
var SqlStr,StrVal,ComStr:string;
    flag:integer;
begin
     Memo1.Clear;
     Memo1.Lines.Add('ѧ,                 ');
     Memo1.Lines.Add('-------------------------------');

     flag:=0;

     StrVal := trim(Edit1.Text);
     if StrVal <> '' then
     begin
         SqlStr := 'select * from student where (stu_id ='+ ''''+StrVal+ ''')';
         flag := 1;
     end;

     StrVal := trim(Edit2.Text);
     if StrVal <> '' then
     begin
         if flag = 0 then
         begin
             SqlStr := 'select * from student where (name ='+ ''''+StrVal+ ''')';
             flag := 1;
         end
         else
         begin
             SqlStr := SqlStr + ' and (name = '+ ''''+StrVal+ ''')';
         end;
     end;

     StrVal := trim(Edit3.Text);
     if StrVal <> '' then
     begin
         if flag = 0 then
         begin
             SqlStr := 'select * from student where (class ='+ ''''+StrVal+ ''')';
             flag := 1;
         end
         else
         begin
             SqlStr := SqlStr + ' and (class = '+ ''''+StrVal+ ''')';
         end;
     end;

     StrVal := trim(ComboBox1.Text);

     if StrVal = '(90-100)'  then  ComStr := ' (ave_resu >= 90) and (ave_resu <= 100)';
     if StrVal = '(80-89)'   then  ComStr := ' (ave_resu >= 80) and (ave_resu < 90)';
     if StrVal = 'е(70-79)'   then  ComStr := ' (ave_resu >= 70) and (ave_resu < 80)';
     if StrVal = '(60-69)'   then  ComStr := ' (ave_resu >= 60) and (ave_resu < 70)';
     if StrVal = '(60)'then  ComStr := ' (ave_resu >= 0) and (ave_resu < 60)';

     if StrVal <> '(ֵ)' then
     begin
         if flag = 0 then
         begin
             SqlStr := 'select * from student where '+ ComStr;
             flag := 1;
         end
         else
         begin
             SqlStr := SqlStr + ' and ' + ComStr;
         end;
     end;

     if flag = 0 then
     begin
         ShowMessage('ѡѯ');
         exit;
     end;

     query1.Close;
     query1.sql.Text := SqlStr;
     query1.open;

     flag := 0;     //flag
     while not query1.Eof do   //ʾѯѧź
     begin
         SqlStr := query1.FieldByName('stu_id').AsString;
         SqlStr := SqlStr +', '+ query1.FieldByName('name').AsString;
         Memo1.Lines.Add(SqlStr);
         query1.Next;
         flag := flag + 1;
     end;
       Memo1.Lines.Add('-------------------------------');
     Memo1.Lines.Add('һ  ' + IntToStr(flag) + ' ϲѯ');
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
    ComboBox1.ItemIndex := 0;
end;

procedure TForm4.Button2Click(Sender: TObject);
begin
     query1.Close;
     query1.sql.Text := 'select * from student';
     query1.open; 
end;

procedure TForm4.Button3Click(Sender: TObject);
begin
    close;
end;

end.

////////////////////////////////////////////////////////////////
unit Unit5;

interface

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

type
  TForm5 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Table1: TTable;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    procedure Button3Click(Sender: TObject);
    procedure Edit6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit4MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;  

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);  //
begin

    table1.Edit;

    Table1.FieldByName('stu_id').AsString := Edit1.Text;
    Table1.FieldByName('name').AsString := Edit2.Text;
    Table1.FieldByName('pea_resu').AsFloat := StrToFloat(Edit3.Text);
    Table1.FieldByName('fin_resu').AsFloat := StrToFloat(Edit4.Text);
    //Table1.FieldByName('ave_resu').AsString := Edit5.Text;
    Table1.FieldByName('class').AsString := Edit6.Text;

    table1.Post;
    button1.Enabled := false;
    button2.Enabled := true;
    button3.Enabled := true;
    DBGrid1.Enabled := true;


    Edit1.Enabled := false; Edit1.Text := '';
    Edit2.Enabled := false; Edit2.Text := '';
    Edit3.Enabled := false; Edit3.Text := '';
    Edit4.Enabled := false; Edit4.Text := '';
    Edit6.Enabled := false; Edit6.Text := '';
   
end;

procedure TForm5.Button2Click(Sender: TObject);  //ڵǰλò
begin
    table1.Insert;

    Edit1.Text := 'ѧ'; Edit1.Enabled := true;
    Edit2.Text := '';  Edit2.Enabled := true;
    Edit3.Text := IntToStr(0); Edit3.Enabled := true;
    Edit4.Text := IntToStr(0);  Edit4.Enabled := true;
    Edit5.Text := '';  //Edit1.Enabled := true;
    Edit6.Text := '༶';  Edit6.Enabled := true;

    button2.Enabled := false;
    button1.Enabled := true;
    button3.Enabled := false;
    DBGrid1.Enabled := false;

end;

procedure TForm5.Button4Click(Sender: TObject);  //رϵͳ
begin
    self.close;
end;

procedure TForm5.FormCreate(Sender: TObject);  //ʼ
begin
    Edit1.Text := Table1.FieldByName('stu_id').AsString;
    Edit2.Text := Table1.FieldByName('name').AsString;
    Edit3.Text := Table1.FieldByName('pea_resu').AsString;
    Edit4.Text := Table1.FieldByName('fin_resu').AsString;
    Edit5.Text := Table1.FieldByName('ave_resu').AsString;
    Edit6.Text := Table1.FieldByName('class').AsString;

    Edit1.Enabled := false;    //øEdit
    Edit2.Enabled := false;
    Edit3.Enabled := false;
    Edit4.Enabled := false;
    Edit6.Enabled := false;

    button1.Enabled := false;
   
end;

procedure TForm5.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; //ʹõݼ¼ʱ༭ԶʾӦļ¼
  Shift: TShiftState; X, Y: Integer);
begin
    Edit1.Text := Table1.FieldByName('stu_id').AsString;
    Edit2.Text := Table1.FieldByName('name').AsString;
    Edit3.Text := Table1.FieldByName('pea_resu').AsString;
    Edit4.Text := Table1.FieldByName('fin_resu').AsString;
    Edit5.Text := Table1.FieldByName('ave_resu').AsString;
    Edit6.Text := Table1.FieldByName('class').AsString;
end;

procedure TForm5.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, //Ƶõı༭ʱݱɱѡ״̬Աڱ༭
  Y: Integer);
begin
    Edit1.SelectAll;
end;

procedure TForm5.Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   Edit2.SelectAll;
end;

procedure TForm5.Edit3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    Edit3.SelectAll;
end;

procedure TForm5.Edit4MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    Edit4.SelectAll;
end;

procedure TForm5.Edit6MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    Edit6.SelectAll;
end;

procedure TForm5.Button3Click(Sender: TObject);  //ĩβ
begin
    table1.Append;

    Edit1.Text := 'ѧ'; Edit1.Enabled := true;
    Edit2.Text := '';  Edit2.Enabled := true;
    Edit3.Text := IntToStr(0); Edit3.Enabled := true;
    Edit4.Text := IntToStr(0);  Edit4.Enabled := true;
    Edit5.Text := '';  //Edit1.Enabled := true;
    Edit6.Text := '༶';  Edit6.Enabled := true;

    button2.Enabled := false;
    button1.Enabled := true;
    button3.Enabled := false;
    DBGrid1.Enabled := false;

end;

end.
