📄 unit18.pas
字号:
unit Unit18;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons, Menus, DB, DBTables;
type
Tpaperautoform = class(TForm)
MainMenu1: TMainMenu;
N5: TMenuItem;
N19: TMenuItem;
N6: TMenuItem;
N21: TMenuItem;
FontDialog1: TFontDialog;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
Label3: TLabel;
ProgressBar1: TProgressBar;
BitBtn2: TBitBtn;
ComboBox2: TComboBox;
Query1: TQuery;
ListBox1: TListBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
ListBox2: TListBox;
N1: TMenuItem;
N3: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N4: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
procedure definediff(a:integer);
procedure N19Click(Sender: TObject);
procedure U1Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ComboBox2Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
public
// tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
thao: array[1..800] of integer;
havetake: array[1..800] of integer;
diff: array[1..5] of integer;
{ Public declarations }
// tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
end;
var
paperautoform: Tpaperautoform;
tmno: array[1..5] of string=('一、','二、','三、','四、','五、');
TF:array[1..9] of string=('f','f','f','f','f','f','f','f','f');
paperallnumber,choosenumber,judgenumber,filltextnumber,readpronumber,procedurenumber:integer;
implementation
uses printers, Unit10, Unit22, Unit3, Unit4;
{$R *.dfm}
procedure Tpaperautoform.definediff(a:integer);
var
g:integer;
begin
case a of
1:
begin
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[1]:=1
else
diff[1]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1) );
if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
then
diff[2]:=1
else
diff[2]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));
if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
then
diff[3]:=1
else
diff[3]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[4]:=1
else
diff[4]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));
diff[5]:=0;
end;
2:
begin
if (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='')
or (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='0')
then
diff[1]:=1
else
diff[1]:=strtoint(copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1) );
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[2]:=1
else
diff[2]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));
if (copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1)='')
or (copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1)='0')
then
diff[3]:=1
else
diff[3]:=strtoint(copy(floattostr(paperallnumber*0.7),1,pos('.',floattostr(paperallnumber*0.7))-1));
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[4]:=1
else
diff[4]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));
if (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='')
or (copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1)='0')
then
diff[5]:=1
else
diff[5]:=strtoint(copy(floattostr(paperallnumber*0.05),1,pos('.',floattostr(paperallnumber*0.05))-1));
diff[5]:=0;
end;
3:
begin
diff[1]:=0;
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[2]:=1
else
diff[2]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));
if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
then
diff[3]:=1
else
diff[3]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));
if (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='')
or (copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1)='0')
then
diff[4]:=1
else
diff[4]:=strtoint(copy(floattostr(paperallnumber*0.4),1,pos('.',floattostr(paperallnumber*0.4))-1));
if (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='')
or (copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1)='0')
then
diff[5]:=1
else
diff[5]:=strtoint(copy(floattostr(paperallnumber*0.1),1,pos('.',floattostr(paperallnumber*0.1))-1));
end;
end;
end;
procedure Tpaperautoform.N19Click(Sender: TObject);
begin
if fontdialog1.Execute then
begin
memo1.Font:=fontdialog1.Font;
end;
end;
procedure Tpaperautoform.U1Click(Sender: TObject);
begin
memo1.Undo;
end;
procedure Tpaperautoform.N12Click(Sender: TObject);
begin
Memo1.PasteFromClipboard;
end;
procedure Tpaperautoform.N13Click(Sender: TObject);
begin
memo1.SelectAll;
paperautoform.N11.Enabled:=true;
paperautoform.N12.Enabled:=true;
end;
procedure Tpaperautoform.N14Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure Tpaperautoform.N16Click(Sender: TObject);
begin
memo1.SelectAll;
//paperautoform.N14.Enabled:=true;
//paperautoform.N13.Enabled:=true;
end;
procedure Tpaperautoform.N2Click(Sender: TObject);
//var lines :integer;
// prntext:system.text;
begin
Screen.Cursor:=crHourGlass;
try
print;
ShowMessage('打印完毕');
finally
Screen.Cursor:=crDefault;
end;
{
if printdialog1.Execute then
assignprn(prntext);
rewrite(prntext);
printer.canvas.Font:=memo1.font;
for lines:=0 to memo1.Lines.Count-1 do
begin
writeln(prntext,memo1.lines[lines]);
system.Close(prntext);
end; }
end;
procedure Tpaperautoform.BitBtn1Click(Sender: TObject);
var
tt,pp,cc,mm,ii,n,diffnum,temp,m,r,ran,q,i,j:integer;
t,hade:boolean;
c,f,ju,re,p:integer;
begin
pp:=1;
//ListBox2.Enabled:=false;
if ComboBox2.Text='' then
begin
showmessage('请选择试卷难度!');
exit;
end;
//Label3.Caption:='';
//Label3.Caption:='试卷正在提取中,请耐心等待... ';
//Label3.Show;
c:=choosenumber;
f:=filltextnumber;
ju:=judgenumber;
re:=readpronumber;
p:=procedurenumber;
progressbar1.Position:=0;
progressbar1.Max:=paperallnumber+10;
progressbar1.Position:=10;
randomize;
temp:=0;
i:=1;
t:=false;
definediff(ComboBox2.ItemIndex+1);
// showmessage(inttostr(choosenumber));
for ii:=ListBox2.Items.Count-1 downto 0 do
begin
if ListBox2.Items[ii]='第一章 C语言基础知识' then TF[1]:='t';
if ListBox2.Items[ii]='第二章 数据类型、运算符与表达式' then TF[2]:='t';
if ListBox2.Items[ii]='第三章 顺序结构' then TF[3]:='t';
if ListBox2.Items[ii]='第四章 选择结构' then TF[4]:='t';
if ListBox2.Items[ii]='第五章 循环控制' then TF[5]:='t';
if ListBox2.Items[ii]='第六章 数组指针' then TF[6]:='t';
if ListBox2.Items[ii]='第七章 函数 结构体与共用体' then TF[7]:='t';
if ListBox2.Items[ii]='第八章 预处理命令' then TF[8]:='t';
if ListBox2.Items[ii]='第九章 常用算法设计' then TF[9]:='t';
end;
//选择题
//TF存放的是要考的与不考的章,标号就是代表第几章
paperautoform.Memo1.Text:='';
paperautoform.Memo1.Text:=' '+definepaperform.DBEdit1.Text+' '+'总分:'+definepaperform.DBEdit2.Text+#13#10#13#10#13#10;
paperautoform.Memo1.Text:=paperautoform.Memo1.Text+'学校__________班级__________姓名__________得分________'+#13#10#13#10;
autoanswerform.Memo1.Text:='';
autoanswerform.Memo1.Text:=' '+definepaperform.DBEdit1.Text+'答案'+#13#10#13#10;
if definepaperform.DBEdit3.Text<>'0' then
begin
tt:=0;
paperautoform.Memo1.Text:=paperautoform.Memo1.Text+''+#13#10+tmno[pp]+'选择题'+'(共'+definepaperform.DBEdit3.Text+'小题,每题'+definepaperform.DBEdit6.Text+'分,小计'+definepaperform.DBEdit9.Text+'分).'+#13#10+'';
autoanswerform.Memo1.Text:=autoanswerform.Memo1.Text+''+#13#10+tmno[pp]+'选择题: '+#13#10+'';
pp:=pp+1;
end;
// showmessage('cb');
//----------------------------------------------------------------
//------------------------------------------------------------
while choosenumber<>0 do
begin
// if ListBox2.Items.Text='' then
//
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select tno from ti_choose') ;
if ListBox2.Count>=1 then
begin
// if ListBox2.Count=1 then
for mm:=1 to 9 do
begin
if TF[mm]='t' then
begin
query1.SQL.Add(' where tno not like '''+inttostr(mm)+'%''');
break;
end;
end;
if listBox2.Count>1 then
begin
for mm:=1 to 9 do
if TF[mm]='t' then
begin
query1.SQL.Add(' and tno not like '''+inttostr(mm)+'%''');
// showmessage(query1.SQL.Text);
end;
end;
end;
query1.Open;
query1.First;
{
if ComboBox1.ItemIndex=-1 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=0 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''1%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=1 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''2%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=2 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''3%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=3 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''4%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=4 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''5%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=5 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''6%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=6 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''7%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=7 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select tno from ti_choose where tno not like ''8%%%''');
query1.Open;
query1.First;
end;
if ComboBox1.ItemIndex=8 then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -