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

📄 main_form.pas

📁 软件实现了以下主要功能:1.手动生成试卷;2.自动生成试卷;3.抽取现有试卷;4.用户管理;5.数据库管理。
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        begin
          TempZJ.ZJID:=HaveZJ[i].ZJID;
          TempZJ.ZJName:=HaveZJ[i].ZJName;
          HaveZJ[i].ZJID:=HaveZJ[k].ZJID;
          HaveZJ[i].ZJName:=HaveZJ[k].ZJName;
          HaveZJ[k].ZJID:=TempZJ.ZJID;
          HaveZJ[k].ZJName:=TempZJ.ZJName;
        end;
    end;
  SDTN:=nil;
  ZDTN:=nil;
  for i:=0 to MaxNum do  //输出到ZJ_CT里
    begin
      temp:=FloatToStr(HaveZJ[i].ZJID);
      if Pos('.',temp)=0 then
        begin
          SDTN:=SDZJ_CT.Items.AddChild(nil,temp+'  '+HaveZJ[i].ZJName);
          ZDTN:=ZDZJ_CT.Items.AddChild(nil,temp+'  '+HaveZJ[i].ZJName)
        end
      else begin
        SDZJ_CT.items.AddChild(SDTN,temp+'  '+HaveZJ[i].ZJName);
        ZDZJ_CT.items.AddChild(ZDTN,temp+'  '+HaveZJ[i].ZJName);
      end;
    end;
  HaveZJ:=nil;    //释放动态数组

  JS_L.Caption:='教师: '+YH;

  STTypeID:=TStringList.Create;    //用于保存试题类型
  STBH:=TStringList.Create;        //用于保存试题编号
  STND:=TStringList.Create;        //用于保存试题难度
  SJDA:=TStringList.Create;

  XYSJ_FBtnClick(XYSJ_FBtn);       //初始化现在试卷界面
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnClick(Sender: TObject);           //现有试卷
begin
  SJ_PC.ActivePage:=XYSJ_TS;
  XYSJ_FBtn.ColorBorder:=clBlue;        //界面控制
  ZDSJ_FBtn.ColorBorder:=clMoneyGreen;
  SDSJ_FBtn.ColorBorder:=clMoneyGreen;
  TKLR_FBtn.ColorBorder:=clMoneyGreen;
  TKWH_FBtn.ColorBorder:=clMoneyGreen;
  XXSZ_FBtn.ColorBorder:=clMoneyGreen;
  label1.Caption:='抽 取 现 有 试 卷';
  XYSJ_FBtn.ColorHighLight:=clBlue;
  XYSJ_FBtn.ColorShadow:=clBlue;
  ZDSJ_FBtn.ColorHighLight:=clWhite;
  ZDSJ_FBtn.ColorShadow:=clBlack;
  SDSJ_FBtn.ColorHighLight:=clWhite;
  SDSJ_FBtn.ColorShadow:=clBlack;
  TKLR_FBtn.ColorHighLight:=clWhite;
  TKLR_FBtn.ColorShadow:=clBlack;
  TKWH_FBtn.ColorHighLight:=clWhite;
  TKWH_FBtn.ColorShadow:=clBlack;
  XXSZ_FBtn.ColorHighLight:=clWhite;
  XXSZ_FBtn.ColorShadow:=clBlack;

  SJ_ADOQ.Close;                         //查出现有的试卷
  SJ_ADOQ.SQL.Clear;
  SJ_ADOQ.SQL.Add('SELECT SJDH AS 试卷代号,CJLS AS 试卷创建者,ND AS 试卷难度 FROM SJ');
  SJ_ADOQ.Open;

  if not SJ_DBG.Fields[0].IsNull then SJDH:=SJ_DBG.Fields[0].AsString;

  if SJDH<>'' then
    begin
      SJT_ADOQ.Close;
      SJT_ADOQ.SQL.Clear;
      SJT_ADOQ.SQL.Add('SELECT SJDH AS 试卷代号,Type.TypeName AS 题型,');
      SJT_ADOQ.SQL.Add('BH AS 试题编号,FZ AS 试题分值 FROM SJT,Type ');
      SJT_ADOQ.SQL.Add('WHERE SJDH=:SJDH AND SJT.TypeID=Type.TypeID');
      SJT_ADOQ.Parameters.ParamByName('SJDH').Value:=SJDH;
      SJT_ADOQ.Open;
    end;
  if (SJDA<>nil)and(SJDA.Count>0) then SJDA.Clear;     //清掉试卷答案
end;
//****************************************************************************************
procedure TMain_F.ZDSJ_FBtnClick(Sender: TObject);            //自己组卷
var
  RY,ZD,Nan:integer;
begin
  SJ_PC.ActivePage:=ZDSJ_TS;
  XYSJ_FBtn.ColorBorder:=clMoneyGreen;
  ZDSJ_FBtn.ColorBorder:=clBlue;
  SDSJ_FBtn.ColorBorder:=clMoneyGreen;
  TKLR_FBtn.ColorBorder:=clMoneyGreen;
  TKWH_FBtn.ColorBorder:=clMoneyGreen;
  XXSZ_FBtn.ColorBorder:=clMoneyGreen;
  label1.Caption:='自 动 生 成 试 卷';
  XYSJ_FBtn.ColorHighLight:=clWhite;
  XYSJ_FBtn.ColorShadow:=clBlack;
  ZDSJ_FBtn.ColorHighLight:=clBlue;
  ZDSJ_FBtn.ColorShadow:=clBlue;
  SDSJ_FBtn.ColorHighLight:=clWhite;
  SDSJ_FBtn.ColorShadow:=clBlack;
  TKLR_FBtn.ColorHighLight:=clWhite;
  TKLR_FBtn.ColorShadow:=clBlack;
  TKWH_FBtn.ColorHighLight:=clWhite;
  TKWH_FBtn.ColorShadow:=clBlack;
  XXSZ_FBtn.ColorHighLight:=clWhite;
  XXSZ_FBtn.ColorShadow:=clBlack;

  ZDZJ_CT.SetAllNodes(csChecked);        //选中所有章节

  SJTXX_ADOQ.Close;      //查选择题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  XZTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  XZTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  XZTN_L.Caption:=IntToStr(Nan);
  XZTG_L.Caption:=IntToStr(RY+ZD+Nan);

  SJTXX_ADOQ.Close;      //查填空题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  TKTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  TKTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  TKTN_L.Caption:=IntToStr(Nan);
  TKTG_L.Caption:=IntToStr(RY+ZD+Nan);

  SJTXX_ADOQ.Close;      //查简答题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  JDTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  JDTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  JDTN_L.Caption:=IntToStr(Nan);
  JDTG_L.Caption:=IntToStr(RY+ZD+Nan);

  SJTXX_ADOQ.Close;      //查原理论述题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  YLLSTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  YLLSTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  YLLSTN_L.Caption:=IntToStr(Nan);
  YLLSTG_L.Caption:=IntToStr(RY+ZD+Nan);

  SJTXX_ADOQ.Close;      //查系统设计题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  XTSJTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  XTSJTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  XTSJTN_L.Caption:=IntToStr(Nan);
  XTSJTG_L.Caption:=IntToStr(RY+ZD+Nan);

  SJTXX_ADOQ.Close;      //查系统操作题的信息
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=12');
  SJTXX_ADOQ.Open;
  RY:=SJTXX_ADOQ.RecordCount;
  XTCZTRY_L.Caption:=IntToStr(RY);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=13');
  SJTXX_ADOQ.Open;
  ZD:=SJTXX_ADOQ.RecordCount;
  XTCZTZD_L.Caption:=IntToStr(ZD);
  SJTXX_ADOQ.Close;
  SJTXX_ADOQ.SQL.Clear;
  SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=14');
  SJTXX_ADOQ.Open;
  Nan:=SJTXX_ADOQ.RecordCount;
  XTCZTN_L.Caption:=IntToStr(Nan);
  XTCZTG_L.Caption:=IntToStr(RY+ZD+Nan);

  ZDST:=nil;
end;
//****************************************************************************************
procedure TMain_F.SDSJ_FBtnClick(Sender: TObject);
var
  temp:string;
begin
  SJ_PC.ActivePage:=SDSJ_TS;
  XYSJ_FBtn.ColorBorder:=clMoneyGreen;
  ZDSJ_FBtn.ColorBorder:=clMoneyGreen;
  SDSJ_FBtn.ColorBorder:=clBlue;
  TKLR_FBtn.ColorBorder:=clMoneyGreen;
  TKWH_FBtn.ColorBorder:=clMoneyGreen;
  XXSZ_FBtn.ColorBorder:=clMoneyGreen;
  label1.Caption:='手 动 生 成 试 卷';
  XYSJ_FBtn.ColorHighLight:=clWhite;
  XYSJ_FBtn.ColorShadow:=clBlack;
  ZDSJ_FBtn.ColorHighLight:=clWhite;
  ZDSJ_FBtn.ColorShadow:=clBlack;
  SDSJ_FBtn.ColorHighLight:=clBlue;
  SDSJ_FBtn.ColorShadow:=clBlue;
  TKLR_FBtn.ColorHighLight:=clWhite;
  TKLR_FBtn.ColorShadow:=clBlack;
  TKWH_FBtn.ColorHighLight:=clWhite;
  TKWH_FBtn.ColorShadow:=clBlack;
  XXSZ_FBtn.ColorHighLight:=clWhite;
  XXSZ_FBtn.ColorShadow:=clBlack;
  
  STTypeID.Clear;;    //清除数据
  SDZJ_CT.SetAllNodes(csUnChecked);

  STBH.Clear;
  STND.Clear;
  XZTSL_FSE.Value:=0;       //设置选择题数量为0
  TKTSL_FSE.Value:=0;
  JDTSL_FSE.Value:=0;
  YLLSTSL_FSE.Value:=0;
  XTSJTSL_FSE.Value:=0;
  XTCZTSL_FSE.Value:=0;

  XZTFZ_FSE.Value:=0;       //设置选择题分值为0
  TKTFZ_FSE.Value:=0;
  JDTFZ_FSE.Value:=0;
  YLLSTFZ_FSE.Value:=0;
  XTSJTFZ_FSE.Value:=0;
  XTCZTFZ_FSE.Value:=0;
  ZF_FSE.Value:=100;
  BCSJ_P.Enabled:=false;
  //题型ID与题型按钮对应
  ST_ADOQ.Close;
  ST_ADOQ.SQL.Clear;
  ST_ADOQ.SQL.Add('SELECT * FROM Type');
  ST_ADOQ.Open;
  while not ST_ADOQ.Eof do
    begin
      temp:=ST_ADOQ.FieldValues['TypeName'];
      if temp='选择题' then XZT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      if temp='填空题' then TKT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      if temp='简答题' then JDT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      if temp='系统设计题' then XTSJT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      if temp='原理论述题' then YLLST_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      if temp='系统操作题' then XTCZT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
      
      ST_ADOQ.Next;
    end;

  ST_ADOQ.Close;                //只是把显示清空
  ST_ADOQ.SQL.Clear;
  ST_ADOQ.SQL.Add('SELECT BH AS 编号,TypeID as 类型,TM as 题目,CZ AS 出自章节,');
  ST_ADOQ.SQL.Add('NY AS 难易度 FROM XuanZeTi WHERE CZ=''1''');
  ST_ADOQ.Open;
  
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnMouseEnter(Sender: TObject);
begin
  if (Sender is TFlatButton) then (Sender as TFlatButton).Font.Color:=clMaroon;
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnMouseLeave(Sender: TObject);
begin
  if (Sender is TFlatButton) then (Sender as TFlatButton).Font.Color:=clBlack;
end;
//****************************************************************************************
procedure TMain_F.ShowXJ(TypeID:integer;XiaoJie:string); //用于指定小节的试题
var
  TableName:string;
begin
  case TypeID of
    0: TableName:='XuanZeTi';
    1: TableName:='TianKong';
    2: TableName:='JianDaTi';
    3: TableName:='YuanLiLunShu';
    4: TableName:='XiTongSheJi';
    5: TableName:='XiTongCZ';
  end;
  ST_ADOQ.Close;
  ST_ADOQ.SQL.Clear;
  ST_ADOQ.SQL.Add('SELECT A.BH AS 编号,TypeID as 类型,TM as 题目,CZ AS 出自章节,');
  ST_ADOQ.SQL.Add('B.NYD AS 难易度 FROM '+TableName+' AS A,NYD AS B');
  ST_ADOQ.SQL.Add('WHERE TRIM(CZ)=:char AND A.NY=B.BH');
  //ST_ADOQ.Parameters.ParamByName('TypeName').Value:=TypeName;
  //不能用参数传,否则FROM后的表名出错。
  ST_ADOQ.Parameters.ParamByName('char').Value:=XiaoJie;
  ST_ADOQ.Open;
end;
//****************************************************************************************
procedure TMain_F.ShowZZ(TypeID:integer;ZhengZhang:string); //用于指定整章的试题
var
  TableName:string;
begin
  case TypeID of
    0: TableName:='XuanZeTi';
    1: TableName:='TianKong';
    2: TableName:='JianDaTi';
    3: TableName:='YuanLiLunShu';
    4: TableName:='XiTongSheJi';
    5: TableName:='XiTongCZ';
  end;
  ST_ADOQ.Close;
  ST_ADOQ.SQL.Clear;
  ST_ADOQ.SQL.Add('SELECT A.BH AS 编号,TypeID as 类型,TM as 题目,CZ AS 出自章节,');
  ST_ADOQ.SQL.Add('B.NYD AS 难易度 FROM '+TableName+' AS A,NYD AS B');
  ST_ADOQ.SQL.Add('WHERE LEFT(CZ,:num)=:char AND A.NY=B.BH');
  ST_ADOQ.Parameters.ParamByName('num').Value:=Length(ZhengZhang);
  ST_ADOQ.Parameters.ParamByName('char').Value:=ZhengZhang;
  ST_ADOQ.Open;
end;
//****************************************************************************************
procedure TMain_F.ShowST;                 //自定义的函数用于显示试题
var
  ZJID:string;
begin

⌨️ 快捷键说明

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