📄 server.pas
字号:
unit server;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ComCtrls, Menus, ToolWin, ExtCtrls, Grids, ScktComp,
DB, ADODB;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
ToolBar1: TToolBar;
s1: TSpeedButton;
s2: TSpeedButton;
s3: TSpeedButton;
s4: TSpeedButton;
s5: TSpeedButton;
s6: TSpeedButton;
Panel1: TPanel;
stu: TStatusBar;
sg: TStringGrid;
SpeedButton1: TSpeedButton;
ss1: TServerSocket;
qa: TADOQuery;
FASONG: TServerSocket;
cj: TServerSocket;
qd: TADOQuery;
about1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure s1Click(Sender: TObject);
procedure ss1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure N7Click(Sender: TObject);
procedure s2Click(Sender: TObject);
procedure s3Click(Sender: TObject);
procedure s5Click(Sender: TObject);
procedure s4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure s6Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FASONGClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ss1Accept(Sender: TObject; Socket: TCustomWinSocket);
procedure cjClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure about1Click(Sender: TObject);
private
{ Private declarations }
public
i:integer;
xuehao:string;
end;
var
Form1: TForm1;
implementation
uses denglu,unit3,zhuce,kemu,tiku, guanli,cl,juan,chengji,help ;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
sg.Cells[0,0]:='序号';
sg.Cells[1,0]:='学号';
sg.Cells[2,0]:='主机名';
sg.Cells[3,0]:='IP地址';
sg.Cells[4,0]:='本场考试时间';
sg.Cells[5,0]:='剩余时间';
FASONG.Active:=true;
cj.Active:=true;
form1.N4.Enabled:=false;
form1.N6.Enabled:=false;
form1.N13.Enabled:=false;
form1.s1.Enabled:=false;
form1.s2.Enabled:=false;
form1.s3.Enabled:=false;
form1.s4.Enabled:=false;
form1.s5.Enabled:=false;
form1.s6.Enabled:=false;
form1.stu.Panels[0].Text:=' 请 先 登 录 系 统!';
i:=1;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
form2.Visible:=true;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
form2.Visible:=true;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
ch:integer;
begin
ch:= messagedlg('确认要退出系统吗!',mtwarning,[mbyes,mbno],0);
if ch=mrno then
begin
form1.Close;
exit;
end
else
exit;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form3.visible:=true;
end;
procedure TForm1.s1Click(Sender: TObject);
begin
form4.ShowModal;
end;
procedure TForm1.ss1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
xuehao:=socket.ReceiveText;
qa.Close;
qa.SQL.Clear;
qa.SQL.add('select * from student where sno='+chr(39)+xuehao+chr(39));
qa.Open;
if qa.Eof then
begin
socket.SendText('该学生不存在!');
exit;
end
else
begin
qa.Close;
qa.SQL.Clear;
qa.SQL.add('select * from stemp where sno='+chr(39)+xuehao+chr(39));
qa.Open;
if qa.Eof then
begin
qa.Insert;
qa.Fields[0].AsString:=xuehao;
qa.Post;
qa.Close;
qa.SQL.Clear;
qa.SQL.add('select * from temp');
qa.Open;
socket.SendText('登录成功!');
sg.Cells[1,i]:=xuehao;
sg.Cells[2,i]:=socket.RemoteHost;
sg.Cells[3,i]:=socket.RemoteAddress;
sg.Cells[4,i]:=qa.Fields[16].AsString;
i:=i+1;
end
else
begin
socket.SendText('学号有误请仔细核查!');
exit;
end;
end;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
form4.Visible:=true;
end;
procedure TForm1.s2Click(Sender: TObject);
begin
form6.ShowModal;
end;
procedure TForm1.s3Click(Sender: TObject);
begin
form8.ShowModal;
end;
procedure TForm1.s5Click(Sender: TObject);
begin
form9.ShowModal;
end;
procedure TForm1.s4Click(Sender: TObject);
begin
form10.q10.Active:=false;
form10.q10.Active:=true;
form10.ShowModal;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
form6.ShowModal;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
form8.ShowModal;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
form9.ShowModal;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
form10.ShowModal;
end;
procedure TForm1.s6Click(Sender: TObject);
begin
form11.ShowModal;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
qa.Close;
qa.SQL.Clear;
qa.SQL.Add('select * from stemp');
qa.Open;
while not qa.Eof do
begin
qa.Delete;
qa.Next;
end;
end;
procedure TForm1.FASONGClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
qa.Close;
qa.SQL.Clear;
qa.SQL.Add('select * from temp ');
qa.Open;
s:='';
while not qa.Eof do
begin
s:=s+qa.Fields.Fields[0].AsString+chr(1);
s:=s+qa.Fields.Fields[1].AsString+chr(1);
s:=s+qa.Fields.Fields[2].AsString+chr(1);
s:=s+qa.Fields.Fields[3].AsString+chr(1);
s:=s+qa.Fields.Fields[4].AsString+chr(1);
s:=s+qa.Fields.Fields[5].AsString+chr(1);
s:=s+qa.Fields.Fields[6].AsString+chr(1);
s:=s+qa.Fields.Fields[7].AsString+chr(1);
s:=s+qa.Fields.Fields[8].AsString+chr(1);
s:=s+qa.Fields.Fields[9].AsString+chr(1);
s:=s+qa.Fields.Fields[10].AsString+chr(1);
s:=s+qa.Fields.Fields[11].AsString+chr(1);
s:=s+qa.Fields.Fields[12].AsString+chr(1);
s:=s+qa.Fields.Fields[13].AsString+chr(1);
s:=s+qa.Fields.Fields[14].AsString+chr(1);
s:=s+qa.Fields.Fields[15].AsString+chr(1);
s:=s+qa.Fields.Fields[16].AsString+chr(1);
qa.Next;
end;
socket.SendText(s);
end;
procedure TForm1.ss1Accept(Sender: TObject; Socket: TCustomWinSocket);
begin
qa.Close;
qa.SQL.Clear;
qa.SQL.Add('select * from temp ');
qa.Open;
if qa.Eof then
begin
MessageBox(handle, '还未抽取题目!', '提示', mb_IconInformation + mb_Ok);
exit;
end
else
begin
socket.SendText('ksfs');
end;
end;
procedure TForm1.cjClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
score,sno:string;
i,t:integer;
var
xinxi:string;
begin
sno:='';
score:='';
t:=0;
xinxi:=socket.ReceiveText;
for i:=1 to length(xinxi) do
begin
if xinxi[i]=chr(3) then
begin
t:=1;
continue;
end;
if t=0 then
begin
sno:=sno+xinxi[i];
end
else
begin
score:=score+xinxi[i];
end;
end;
//加数据库 sno为学号score为分数
qd.Close;
qd.SQL.Clear;
qd.SQL.Add('select * from score ');
qd.Open;
qd.Insert;
qd.Fields[0].asstring:=sno;
qd.Fields[1].AsString:=form9.cb2.Text;
qd.Fields[2].AsString:=score;
qd.Fields[3].AsString:='jj';
qd.Post;
end;
procedure TForm1.about1Click(Sender: TObject);
begin
form12.Visible:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -