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

📄 averagetoolunit.pas

📁 一个功能完美的学生成绩管理系统   使用ACCESS数据库在DATA文件夹中 功能强大
💻 PAS
字号:
unit AverageToolUnit;

interface

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

type
  TAverageToolForm = class(TForm)
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Bevel1: TBevel;
    Label1: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    DBNavigator1: TDBNavigator;
    ComboBox3: TComboBox;
    Label3: TLabel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Label4: TLabel;
    SpeedButton1: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AverageToolForm: TAverageToolForm;

implementation
uses chartunit, datamoduleUnit;



{$R *.dfm}

procedure TAverageToolForm.FormCreate(Sender: TObject);
var year,month,day:word;
     n:integer;
     thisyear:integer;
begin
  DecodeDate(now, Year, Month, Day);
  thisyear:=round(year);
for n:=1 to 20 do
   begin
    combobox1.Items.Add(inttostr(thisyear));
    thisyear:=thisyear-1;
   end;
 combobox1.ItemIndex:=0;
 with datamodule1.queryall do
   begin
     close;
     SQL.Clear;
     sql.Add('select distinct cname from grade where year=:year');
     Parameters.ParamByName('year').Value:=strtoint(combobox1.Text);
     prepared;
     open;
     if RecordCount=0 then
      combobox2.Items.Add('<无记录>')
     else
       begin
            while  not eof  do
              begin
                  combobox2.Items.Add( FieldByName('cname').AsString);
                  next;
              end;
       end;
     close;
   end;
dbgrid1.Columns[0].FieldName:='sno' ;
dbgrid1.Columns[1].FieldName:='cname' ;
dbgrid1.Columns[2].FieldName:='tname' ;
dbgrid1.Columns[3].FieldName:='grade';
dbgrid1.Columns[4].FieldName:='year';
dbgrid1.Columns[5].FieldName:='term';


end;


procedure TAverageToolForm.ComboBox1Change(Sender: TObject);
begin
combobox2.Text:='';
combobox2.Items.Clear;
  with datamodule1.queryall do
    begin
    DisableControls;
    close;
    SQL.Clear;
    sql.Add('select Distinct cname from grade where year=:year');
    Parameters.ParamByName('year').Value:=strtoint(combobox1.Text);
    prepared;
    open;
     if RecordCount=0 then
      combobox2.Items.Add('<无记录>')
     else
     while  not eof  do
        begin
         combobox2.Items.Add( FieldByName('cname').AsString);
         next;
        end;
     close;
     enableControls;
     end;
   
end;

procedure TAverageToolForm.ComboBox2Change(Sender: TObject);
begin
combobox3.Text:='';
combobox3.Items.Clear;
  with datamodule1.queryall do
    begin
    DisableControls;
    close;
    SQL.Clear;
    sql.Add('select Distinct tname from grade where year=:year and cname=:cname');
    Parameters.ParamByName('year').Value:=strtoint(combobox1.Text);
     Parameters.ParamByName('cname').Value:=combobox2.Text;
    prepared;
    open;
     if RecordCount=0 then
      combobox3.Items.Add('<无记录>')
     else
     while  not eof  do
        begin
         combobox3.Items.Add( FieldByName('tname').AsString);
         next;
        end;
     close;
     enableControls;
     end;
if  combobox3.Text=''then
    speedbutton1.Enabled:=false;     
end;

procedure TAverageToolForm.ComboBox3Change(Sender: TObject);
var sum:real;
    you,liang,zhong,jige,bujige:integer;
    tempgrade:real;
begin
sum:=0;
you:=0;
liang:=0;
zhong:=0;
jige:=0;
bujige:=0;
 with datamodule1.queryall do
    begin
    close;
    SQL.Clear;
    sql.Add('select sno,cname,tname,grade,year,term from grade where year=:year and cname=:cname and tname=:tname');
    Parameters.ParamByName('year').Value:=strtoint(combobox1.Text);
    Parameters.ParamByName('cname').Value:=combobox2.Text;
    Parameters.ParamByName('tname').Value:=combobox3.Text;
    prepared;
    open;
     while  not eof  do
        begin
         tempgrade:=datamodule1.mystrtofloat(FieldByName('grade').AsString);
         sum:=sum+tempgrade;
         if tempgrade>=90 then
             you:=you+1
         else if tempgrade>=80 then
                 liang:=liang+1
               else if tempgrade>=70 then
                       zhong:=zhong+1
                     else if tempgrade>=60 then
                             jige:=jige+1
                           else bujige:=bujige+1;
         next;
        end;
    if recordcount<>0 then
       sum:=sum/RecordCount;
    end;
label4.Caption:=combobox1.Text+'年'+#13+combobox3.Text+#13+combobox2.Text+#13+
'平均分为:'+floattostr(sum)+'         ';
with datamodule1.tabletemp do
  begin
   open;
   edit;
   locate('area','1.优(90-100)',[]);
   edit;
   fieldbyname('count').AsInteger:=you;
   locate('area','2.良(80-89)',[]);
   edit;
   fieldbyname('count').AsInteger:=liang;
   locate('area','3.中(70-79)',[]);
   edit;
   fieldbyname('count').AsInteger:=zhong;
   locate('area','4.及格(60-69)',[]);
   edit;
   fieldbyname('count').AsInteger:=jige;
   locate('area','5.不及格(<59)',[]);
   edit;
   fieldbyname('count').AsInteger:=bujige;
   post;
   close;
  end;
speedbutton1.Enabled:=true;

end;

procedure TAverageToolForm.SpeedButton1Click(Sender: TObject);
begin
chartform:=tchartform.Create(application);
chartform.Show;
with chartform do
   begin
    dbchart1.Foot.Text[1]:=combobox1.text+'年 '+'教师:'+combobox3.text+'  '+combobox2.text;
     dbchart2.Foot.Text[1]:=combobox1.text+'年 '+'教师:'+combobox3.text+'  '+combobox2.text;
     dbchart3.Foot.Text[1]:=combobox1.text+'年 '+'教师:'+combobox3.text+'  '+combobox2.text;
     dbchart4.Foot.Text[1]:=combobox1.text+'年 '+'教师:'+combobox3.text+'  '+combobox2.text;
   end;
end;

procedure TAverageToolForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
datamodule1.queryall.Close;
end;

end.

⌨️ 快捷键说明

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