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

📄 main_p.pas

📁 考试系统,是一个简单的但是很经典的
💻 PAS
字号:
{
本软件是何文锴(网名:荷塘新月)写的一个三层程序,没有最终完成,但相信它对想写
三层程序的朋友有一定的启发。如有转发,请保留我的这些信息。
这是我的网站:http://www.startor.cn/,做的非常粗糙,请各位朋友多多指教!

荷塘新月   QQ:57151728   EMAIL:htxy99@yahoo.com
2005年4月9日
}

unit main_p;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Menus, ComCtrls, RVStyle,Zlib;

type
  Tf_main = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    stb: TStatusBar;
    N3: TMenuItem;
    N6: TMenuItem;
    N20: TMenuItem;
    RVStyle1: TRVStyle;
    procedure CompressStream(inpStream, outStream: TStream);
    procedure DecompressStream(inpStream, outStream: TStream);
    procedure Compress(var CompressedStream: TMemoryStream);
    procedure UnCompress(const CompressedStream: TMemoryStream);
    procedure N19Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
  private
    { Private declarations }
  public
    dlmc,tkmc,sjmc:string;  //登录人登录名称、当前打开的题库名称和试卷名称
    tkbh,ryqx,sjbh:integer;//当前打开的题库编号、人员权限、当前选择的试卷编号
  end;

var
  f_main: Tf_main;

implementation

{$R *.dfm}

uses dm_p, tkmc_p, login_p, ryqx_p, xgmm_p, jzsz_p, ksgl_p, dfjl_p, bjst_p;

procedure tf_main.CompressStream(inpStream, outStream: TStream); 
var 
  InpBuf, OutBuf: Pointer; 
  InpBytes, OutBytes: Integer; 
begin 
  InpBuf := nil; 
  OutBuf := nil; 
  try 
    GetMem(InpBuf, inpStream.Size); 
    inpStream.Position := 0; 
    InpBytes := inpStream.Read(InpBuf^, inpStream.Size); 
    CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes); 
    outStream.Write(OutBuf^, OutBytes); 
  finally 
    if InpBuf <> nil then FreeMem(InpBuf); 
    if OutBuf <> nil then FreeMem(OutBuf); 
  end; 
end; 


{ Decompress a stream } 
procedure tf_main.DecompressStream(inpStream, outStream: TStream);
var 
  InpBuf, OutBuf: Pointer; 
  OutBytes, sz: Integer; 
begin 
  InpBuf := nil; 
  OutBuf := nil; 
  sz     := inpStream.Size - inpStream.Position; 
  if sz > 0 then  
    try 
      GetMem(InpBuf, sz); 
      inpStream.Read(InpBuf^, sz); 
      DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes);
      outStream.Write(OutBuf^, OutBytes); 
    finally 
      if InpBuf <> nil then FreeMem(InpBuf); 
      if OutBuf <> nil then FreeMem(OutBuf); 
    end; 
  outStream.Position := 0; 
end; 

procedure tf_main.Compress(var CompressedStream: TMemoryStream);
var
  SourceStream: TCompressionStream;
  DestStream: TMemoryStream;
  Count: Integer;
Begin
  Count := CompressedStream.Size;
  DestStream := TMemoryStream.Create;
  SourceStream:=TCompressionStream.Create(clMax, DestStream);
  Try
    CompressedStream.SaveToStream(SourceStream);
    SourceStream.Free;
    CompressedStream.Clear;
    CompressedStream.WriteBuffer(Count, SizeOf(Count));
    CompressedStream.CopyFrom(DestStream, 0);
  finally
    DestStream.Free;
  end;
end;

procedure tf_main.UnCompress(const CompressedStream: TMemoryStream);
var
  SourceStream: TDecompressionStream;
  DestStream: TMemoryStream;
  Buffer: PChar;
  Count: integer;
Begin
  CompressedStream.Seek(0,soFromBeginning);
  CompressedStream.ReadBuffer(Count, SizeOf(Count));
  GetMem(Buffer, Count);
  DestStream := TMemoryStream.Create;
  SourceStream := TDecompressionStream.Create(CompressedStream);
  Try
    SourceStream.ReadBuffer(Buffer^, Count);
    DestStream.WriteBuffer(Buffer^, Count);
    DestStream.Position := 0;//复位流指针
    CompressedStream.LoadFromStream(DestStream);
  finally
    FreeMem(Buffer);
    DestStream.Free;
  end;
end; 

procedure Tf_main.N19Click(Sender: TObject);
begin
   close;
end;

procedure Tf_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   if application.MessageBox('您确定要退出系统吗?','确认信息',4+32)<>6 then canclose:=false
   else canclose:=true;
end;

procedure Tf_main.N2Click(Sender: TObject);
begin
   Application.CreateForm(Tf_tkmc, f_tkmc);
   f_tkmc.showmodal;
   f_tkmc.Free;
   if tkbh>0 then
   begin
      stb.Panels[0].Text:='当前题库:'+tkmc;
      n4.Enabled:=true;
      n5.Enabled:=true;
      n7.Enabled:=true;
   end
   else
   begin
      n4.Enabled:=false;
      n5.Enabled:=false;
      n7.Enabled:=false;
   end;
end;

procedure Tf_main.N3Click(Sender: TObject);
begin
//管理员、教师登录
  if n3.Caption='管理员教师登录' then
  begin
    ryqx:=-1;
    Application.CreateForm(Tf_login, f_login);
    f_login.showmodal;
    f_login.Free;
    if ryqx<0 then exit;
    n20.Enabled:=true;
    n11.Visible:=(ryqx=1);//系统维护权限
    n1.Visible:=(ryqx>=0);//题库管理权限
    n7.Visible:=(ryqx>=0);//考试管理权限
    n7.Enabled:=(tkbh>0);
    n3.Caption:='管理员教师退出';
  end
  else
  begin
    n3.Caption:='管理员教师登录';
    n20.Enabled:=false;
    n1.Visible:=false;
    n7.Visible:=false;
    n7.Enabled:=false;
    n11.Visible:=false;
    tkbh:=0;
    sjbh:=0;
  end;
end;

procedure Tf_main.N6Click(Sender: TObject);
begin
   if sjbh>0 then
   begin
      n16.Enabled:=true;
      n17.Enabled:=true;
   end
   else
   begin
      n16.Enabled:=false;
      n17.Enabled:=false;
   end;
end;

procedure Tf_main.N12Click(Sender: TObject);
begin
//人员权限设置
   Application.CreateForm(Tf_ryqx, f_ryqx);
   f_ryqx.ShowModal;
   f_ryqx.Free;
end;

procedure Tf_main.N20Click(Sender: TObject);
begin
//修改密码
   Application.CreateForm(Tf_xgmm, f_xgmm);
   f_xgmm.showmodal;
   f_xgmm.free;
end;

procedure Tf_main.N4Click(Sender: TObject);
begin
//考察范围设置
   Application.CreateForm(Tf_zjsz, f_zjsz);
   f_zjsz.showmodal;
   f_zjsz.free;
end;

procedure Tf_main.N8Click(Sender: TObject);
begin
//考生管理
   Application.CreateForm(Tf_ksgl, f_ksgl);
   f_ksgl.showmodal;
   f_ksgl.Free;
end;

procedure Tf_main.N14Click(Sender: TObject);
begin
//得分结论设置
   Application.CreateForm(Tf_dfjl, f_dfjl);
   f_dfjl.ShowModal;
   f_dfjl.Free;
end;

procedure Tf_main.N5Click(Sender: TObject);
begin
//编辑试题
    Application.CreateForm(Tf_bjst, f_bjst);
    f_bjst.showmodal;
    f_bjst.Free;
end;

end.

⌨️ 快捷键说明

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