📄 stu_use.pas
字号:
unit stu_use;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DB, Grids, DBGrids, ADODB, DBCtrls, Mask,
QRCtrls, QuickRpt, CheckLst, jpeg;
type
TForm4 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
PossionalInf: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Image1: TImage;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Panel8: TPanel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
DBText1: TDBText;
DBText2: TDBText;
DBComboBox1: TDBComboBox;
Label3: TLabel;
DBEdit1: TDBEdit;
Label4: TLabel;
DBEdit2: TDBEdit;
Label6: TLabel;
DBComboBox2: TDBComboBox;
Label7: TLabel;
DBEdit3: TDBEdit;
Label8: TLabel;
DBEdit4: TDBEdit;
Button1: TButton;
Button10: TButton;
Label9: TLabel;
Edit1: TEdit;
Label10: TLabel;
Edit2: TEdit;
Label11: TLabel;
Edit3: TEdit;
Label12: TLabel;
Edit4: TEdit;
Button2: TButton;
Button11: TButton;
Label13: TLabel;
ComboBox1: TComboBox;
Button12: TButton;
Button13: TButton;
Edit5: TEdit;
Label14: TLabel;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Label15: TLabel;
Edit6: TEdit;
Label16: TLabel;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Button14: TButton;
Button15: TButton;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Edit7: TEdit;
Label21: TLabel;
ComboBox4: TComboBox;
Button16: TButton;
Label22: TLabel;
Label23: TLabel;
Edit8: TEdit;
Label24: TLabel;
ComboBox5: TComboBox;
Button17: TButton;
Button18: TButton;
Button19: TButton;
DBGrid3: TDBGrid;
QuickRep1: TQuickRep;
QRLabel1: TQRLabel;
QRShape1: TQRShape;
QRShape2: TQRShape;
QRShape4: TQRShape;
QRShape5: TQRShape;
QRShape6: TQRShape;
QRShape8: TQRShape;
QRShape9: TQRShape;
QRShape10: TQRShape;
QRShape13: TQRShape;
QRShape14: TQRShape;
QRShape15: TQRShape;
QRShape16: TQRShape;
QRShape17: TQRShape;
QRShape12: TQRShape;
QRShape7: TQRShape;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
M11: TQRMemo;
M12: TQRMemo;
M13: TQRMemo;
M14: TQRMemo;
M15: TQRMemo;
M16: TQRMemo;
M17: TQRMemo;
M21: TQRMemo;
M22: TQRMemo;
M23: TQRMemo;
M24: TQRMemo;
M25: TQRMemo;
M26: TQRMemo;
M27: TQRMemo;
M31: TQRMemo;
M32: TQRMemo;
M33: TQRMemo;
M34: TQRMemo;
M35: TQRMemo;
M36: TQRMemo;
M37: TQRMemo;
M41: TQRMemo;
M42: TQRMemo;
M43: TQRMemo;
M44: TQRMemo;
M45: TQRMemo;
M46: TQRMemo;
M47: TQRMemo;
M61: TQRMemo;
M62: TQRMemo;
M63: TQRMemo;
M64: TQRMemo;
M65: TQRMemo;
M66: TQRMemo;
M67: TQRMemo;
QRShape3: TQRShape;
QRBand1: TQRBand;
QRBand2: TQRBand;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
ComboBox6: TComboBox;
ComboBox7: TComboBox;
Button20: TButton;
DBGrid2: TDBGrid;
Button21: TButton;
Image2: TImage;
Image3: TImage;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
procedure Button10Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure PossionalInfClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure ComboBox5Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox4Change(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Button15Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure ComboBox6Change(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Button21Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
user_no:string ;
enroll_time:integer;
implementation
uses stu_enroll,qiehuan,unit1 ;
{$R *.dfm}
procedure ChangetermToInt(index:integer;var Text:string); //日期转换
begin
case Index of
0: Text := '20001' ;
1: Text := '20002' ;
2: Text := '20011' ;
3: Text := '20012' ;
4: Text := '20021' ;
5: Text := '20022' ;
6: Text := '20031' ;
7: Text := '20032' ;
8: Text := '20041' ;
9: Text := '20042' ;
10:Text := '20051' ;
11:Text := '20052' ;
12:Text := '20061' ;
13:Text := '20062' ;
14:Text := '20071' ;
15:Text := '20072' ;
16:Text := '20081' ;
17:Text := '20082' ;
end ;
end;
procedure SelectCourse; //查询选课
var
str,term:string;
begin
with Form4 do
begin
ADOQuery1.Close ; //日期转为学期
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT enrol_time FROM student WHERE stu_no='''+user_no+'''');
ADOQuery1.Open;
str:=ADOQuery1.FieldByName('enrol_time').AsString;
enroll_time:=strtoint(copy(str,1,4));
if ((ComboBox7.Text = '') and (Edit7.Text = '')) then
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT X.c_id AS 课程号,c_name AS 课程名称,c_time AS 学时,');
ADOQuery2.SQL.Add('credit_hour AS 学分,t_name AS 老师,department_pro AS 专业,');
ADOQuery2.SQL.Add('start_term AS 学期,arrange AS 时间和地点');
ADOQuery2.SQL.Add('FROM course AS X,teach_info AS Y');
ADOQuery2.SQL.Add('WHERE X.c_id=Y.c_id and');
ADOQuery2.SQL.Add('x.c_id NOT IN (SELECT c_id FROM select_info WHERE stu_no='''+user_no+''')');
ADOQuery2.Open;
end
else if ComboBox7.Text = '' then
begin
term:=inttostr((strtoint(copy(Edit7.Text,1,4))-enroll_time)*2+strtoint(copy(Edit7.Text,5,1)));
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT X.c_id AS 课程号,c_name AS 课程名称,c_time AS 学时,');
ADOQuery2.SQL.Add('credit_hour AS 学分,t_name AS 老师,department_pro AS 专业,');
ADOQuery2.SQL.Add('start_term AS 学期,arrange AS 时间和地点');
ADOQuery2.SQL.Add('FROM course AS X,teach_info AS Y');
ADOQuery2.SQL.Add('WHERE X.c_id=Y.c_id and start_term='''+term+''' and');
ADOQuery2.SQL.Add('x.c_id NOT IN (SELECT c_id FROM select_info WHERE stu_no='''+user_no+''')');
ADOQuery2.Open;
end
else if Edit7.Text = '' then
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT X.c_id AS 课程号,c_name AS 课程名称,c_time AS 学时,');
ADOQuery2.SQL.Add('credit_hour AS 学分,t_name AS 老师,department_pro AS 专业,');
ADOQuery2.SQL.Add('start_term AS 学期,arrange AS 时间和地点');
ADOQuery2.SQL.Add('FROM course AS X,teach_info AS Y');
ADOQuery2.SQL.Add('WHERE X.c_id=Y.c_id and department_pro='''+ComboBox7.Text+''' and');
ADOQuery2.SQL.Add('x.c_id NOT IN (SELECT c_id FROM select_info WHERE stu_no='''+user_no+''')');
ADOQuery2.Open;
end
else
begin
term:=inttostr((strtoint(copy(Edit7.Text,1,4))-enroll_time)*2+strtoint(copy(Edit7.Text,5,1)));
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT X.c_id AS 课程号,c_name AS 课程名称,c_time AS 学时,');
ADOQuery2.SQL.Add('credit_hour AS 学分,t_name AS 老师,department_pro AS 专业,');
ADOQuery2.SQL.Add('start_term AS 学期,arrange AS 时间和地点');
ADOQuery2.SQL.Add('FROM course AS X,teach_info AS Y');
ADOQuery2.SQL.Add('WHERE X.c_id=Y.c_id and department_pro='''+ComboBox7.Text+''' and start_term='''+term+''' and');
ADOQuery2.SQL.Add('x.c_id NOT IN (SELECT c_id FROM select_info WHERE stu_no='''+user_no+''')');
ADOQuery2.Open;
end;
end;
end;
procedure TForm4.Button10Click(Sender: TObject);
begin
Panel2.Hide ;
end;
procedure TForm4.Button6Click(Sender: TObject);//退出系统
begin
if (Application.MessageBox(' 是否退出','提示',MB_OKCANCEL) = IDOK) then
close;
end;
procedure TForm4.Button9Click(Sender: TObject); //切换身份
begin
Panel2.Hide ;
Panel4.Hide ;
Panel5.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel3.Hide ;
Form4.Hide ;
popForm.ShowModal ;
end;
procedure TForm4.Button11Click(Sender: TObject);
begin
Panel8.Hide ;
end;
procedure TForm4.Button5Click(Sender: TObject); //显示修改口令框
begin
Panel2.Hide ;
Panel4.Hide ;
Panel5.Hide ;
Panel6.Hide ;
Panel3.Hide ;
Panel8.Show ;
Edit1.Text:=user_no;
end;
procedure TForm4.PossionalInfClick(Sender: TObject); // 显示个人信息框
begin
Panel3.Hide ;
Panel4.Hide ;
Panel5.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel2.Show ;
DataModule1.ADOTable2.Open ;
if DataModule1.ADOTable2.Locate('stu_no',user_no,[locaseinsensitive]) then
begin
DataModule1.ADOTable2.Edit ;
DataModule1.ADOTable2.Refresh ;
end
else
ShowMessage('没有这个学号') ;
end;
procedure TForm4.Button1Click(Sender: TObject); //修改个人基本信息
begin
with DataModule1 do
begin
ADOTable2.Open ;
ADOTable2.Edit ;
ADOTable2.Refresh ;
ShowMessage('已成功修改');
end ;
end;
procedure TForm4.Button2Click(Sender: TObject); //修改 口令
var
results:boolean;
begin
with DataModule1 do
begin
ADOTable1.Close ;
ADOTable1.Open;
ADOTable1.Active;
results:=ADOTable1.Locate('users'+';'+'password',VarArrayOf([Edit1.Text,Edit2.Text]),[locaseinsensitive]);
end ;
if edit1.Text='' then
application.MessageBox('用户名不能为空','提示',mb_ok)
else if edit2.Text='' then
application.messagebox('密码不能为空','警告',mb_ok)
else if results then
begin
if Edit3.Text = Edit4.Text then
begin
with DataModule1 do
begin
ADOTable1.Edit ;
ADOTable1.FieldByName('password').Value := Edit3.Text ;
ADOTable1.Post ;
ShowMessage('修改成功');
end;
end
else
begin
ShowMessage ('两次密码不符');
end ;
end
else
showmessage('密码错误或用户不存在');
Edit3.Clear ;
Edit2.Clear ;
Edit4.Clear ;
end;
procedure TForm4.Button13Click(Sender: TObject);
begin
Edit5.Clear ;
end;
procedure TForm4.Button8Click(Sender: TObject);
begin
DBGrid1.Visible:=FALSE;
Panel2.Hide ;
Panel4.Hide ;
Panel5.Hide ;
Panel3.Hide ;
Panel8.Hide ;
Panel6.Show ;
end;
procedure TForm4.Button3Click(Sender: TObject);//显示选课框
begin
button20.Hide ;
DBGrid2.Hide ;
Panel2.Hide ;
Panel4.Hide ;
Panel5.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel3.Show ;
ComboBox6.Items.Clear ;
ADOQuery1.Close ; //院系添加
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('SELECT DISTINCT institute_dep FROM dep_pro');
ADOQuery1.Open ;
while not ADOQuery1.Eof do
begin
ComboBox6.Items.Add(ADOQuery1.FieldByName('institute_dep').AsString);
ADOQuery1.Next;
end;
end;
procedure TForm4.Button4Click(Sender: TObject); //显示学生选课表框
begin
Panel2.Hide ;
Panel3.Hide ;
Panel5.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel4.Show ;
end;
procedure TForm4.Button7Click(Sender: TObject);
begin
DBGrid3.Visible:=FALSE;
BUTTON18.Visible:=FALSE;
Panel2.Hide ;
Panel4.Hide ;
Panel3.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel5.Show ;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
Panel2.Hide ;
Panel4.Hide ;
Panel3.Hide ;
Panel6.Hide ;
Panel8.Hide ;
Panel5.Hide ;
end;
procedure TForm4.Button12Click(Sender: TObject);//查询成绩
begin
DBGrid1.Visible:=TRUE;
if Edit5.Text='' then
begin //查询所有
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('SELECT select_info.achieve_time AS 学期,course.c_name AS 课程名称,');
ADOQuery1.SQL.Add('course.credit_hour AS 学分,select_info.score AS 分数');
ADOQuery1.SQL.Add('FROM course,select_info');
ADOQuery1.SQL.Add('where course.c_id=select_info.c_id and stu_no='''+user_no+'''');
ADOQuery1.Open ;
end
else
begin
case ComboBox1.ItemIndex of
0: //按课程号
begin
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('SELECT select_info.achieve_time AS 学期,course.c_name AS 课程名称,');
ADOQuery1.SQL.Add('course.credit_hour AS 学分,select_info.score AS 分数');
ADOQuery1.SQL.Add('FROM course,select_info');
ADOQuery1.SQL.Add('where course.c_id=select_info.c_id and stu_no='''+user_no+''' and select_info.c_id='''+Edit5.Text+'''');
ADOQuery1.Open ;
end;
1://按课程名称
begin
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('SELECT select_info.achieve_time AS 学期,course.c_name AS 课程名称,');
ADOQuery1.SQL.Add('course.credit_hour AS 学分,select_info.score AS 分数');
ADOQuery1.SQL.Add('FROM course,select_info');
ADOQuery1.SQL.Add('where course.c_id=select_info.c_id and stu_no='''+user_no+''' and course.c_name='''+Edit5.Text+'''');
ADOQuery1.Open ;
end;
2://按老师
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -