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

📄 unit3.pas

📁 初学DELPHI编写的“奖学金评定系统”
💻 PAS
字号:
{**
函数
包括数据拆分 function ChaiFen(T:String;Line:Byte):TChengJi;
        计算 procedure JiSuan( XueSheng: TZongChengJi;
                      KeMuShu:  Byte);
}
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
    TChengJi =  Record
    KeCheng,Fenshu:    String;
    XueFen:    Real;
    end;

    TZongChengJi = class
    ChengJi: array[1..150] of TChengJi;
    procedure clear();
    end;

    function ChaiFen( T:String;LineNo:Byte):TChengJi;

    procedure JiSuan( XueSheng: TZongChengJi;
                      KeMuShu:  Byte);

var
    XueSheng:   TZongChengJi;
    ZXJ,    //总学分积
    ZXS,    //总学分数(xuefen)
    ZC,     //总成绩
    PXJ,    //平均学分积 (zhiyu)
    PC: Real;//平均成绩
    GuaKeShu: Byte;//挂科数 (GuaKeBX)
    ClmMin:Byte= 10;

implementation

function ChaiFen( T:String;LineNo:Byte):TChengJi;
Var
    I,J,L,M:Byte;
    K:Char;
    U:array[1..3] of array[0..40] of char;

begin
    xuesheng:= tzongchengji.Create;
    I:= 1;
    J:= 1;
    L:= 0;

    if T[length(T)]= '?' then
      M:= Length(T)-1
    else M:= Length(T);

    if M>= ClmMin then
    begin
    while J<= M  do
    begin
        K:= T[J];
        if K<> #9 then  //#9表示空格
          begin
            U[I][L]:= K;
            L:= L+1;
          end
        else
          begin
            U[I][L]:= char(0);
            I:= I+1;
            L:= 0;
          end;
    J:= J+1;
    end;
     U[I][L]:= char(0);

     XueSheng.ChengJi[LineNo].KeCheng:= U[1];
     XueSheng.ChengJi[LineNo].Fenshu:=  U[2];
     XueSheng.ChengJi[LineNo].XueFen:=  StrToFloat(U[3]);
     Result:= XueSheng.chengji[LineNo];
     end;

end;

procedure JiSuan( XueSheng: TZongChengJi;
                  KeMuShu:  Byte);
Var
    I: Byte;
    fenshusz: real;
begin
    ZXJ:= 0;
    ZXS:= 0;
    ZC:= 0;
    GuaKeShu:= 0;
if kemushu<> 0 then begin
    for I:= 1 to KeMuShu do
    begin
      if XueSheng.chengji[I].FenShu= '不及格' then XueSheng.chengji[I].FenShu:= '50';
      if XueSheng.chengji[I].FenShu= '及格' then XueSheng.chengji[I].FenShu:= '60';
      if XueSheng.chengji[I].FenShu= '合格' then XueSheng.chengji[I].FenShu:= '60';
      if XueSheng.chengji[I].FenShu= '良好' then XueSheng.chengji[I].FenShu:= '75';
      if XueSheng.chengji[I].FenShu= '优良' then XueSheng.chengji[I].FenShu:= '85';
      if XueSheng.chengji[I].FenShu= '优秀' then XueSheng.chengji[I].FenShu:= '95';
      if XueSheng.chengji[I].FenShu= '中等' then XueSheng.chengji[I].FenShu:= '80';

      fenshusz:= strtofloat(XueSheng.chengji[I].FenShu);
        ZXJ :=  ZXJ + fenshusz * XueSheng.chengji[I].XueFen;
        ZXS :=  ZXS + XueSheng.chengji[I].XueFen;
        ZC  :=  ZC  + fenshusz;
        if fenshusz< 60 then
          GuaKeShu:= GuaKeShu+ 1;
    end;
    if zxs<> 0 then
      PXJ := ZXJ/ZXS;
      PC  := ZC/KeMuShu;
end;
end;

procedure TZongChengJi.clear();
var i:byte;
begin
  for i:= 1 to 150 do begin
    ChengJi[i].kecheng:= '';
    ChengJi[i].Fenshu:= '0';
    chengji[i].XueFen:= 0;
  end;
end;
end.

⌨️ 快捷键说明

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