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

📄 card.cpp

📁 校园刷卡系统
💻 CPP
字号:
#include"PassWord.h"
#include"Query2_0.h"
#include"Query2_1.h"
#include"Query2_2.h"

#ifndef HIS
#include"../ClassHead/User.hpp"
#include"../ClassHead/Hospitalize.hpp"
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Card.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"


extern void HISQuery(TQuery*qPtr,String&s,bool b);
extern void logout(User*u,TForm*form,TQuery*query);
extern User*currentUser;

static Cards currEmp;
static int recordNo;
static unsigned IDMax=0;
static unsigned CardSum=0;

static TQueryForm2_0* QForm0=NULL;
static TQueryForm2_1* QForm1=NULL;
static TQueryForm2_2* QForm2=NULL;

bool isInteger(AnsiString str,bool minus)
{
bool b=false;
str=str.TrimLeft().TrimRight();
if(!str.IsEmpty())
{
int i=1,l=str.Length();
char c;
if(str[1]=='-'&&l>1&&minus==true)
{i=2;}
while(i<=l)
{
c=str[i];
if(c>47&&c<58)++i;
else break;
}
if(i>l)b=true;
}
return b;
}

static void ClearPage2(TCardForm*fp)
{
fp->schoolno->Text="";
fp->sex->Text="";
fp->ID->Text="";
fp->phone->Text="";
fp->indate->Text="";
fp->indate->Text="";
fp->delflag->ItemIndex=0;
}

void __fastcall TCardForm::clearStudentInfo()
{
LabeledEdit1->Text="";
LabeledEdit2->Text="";
LabeledEdit3->Text="";
LabeledEdit4->Text="";
LabeledEdit5->Text="";
LabeledEdit6->Text="";
}

void __fastcall TCardForm::clearCardInfo()
{
schoolno->Text="";
name->Text="";
sex->Text="";
ID->Text="";
phone->Text="";
code->Text="";
}

void __fastcall TCardForm::clearcode()
{
LabeledEdit7->Text="";
LabeledEdit8->Text="";
LabeledEdit9->Text="";
LabeledEdit10->Text="";
LabeledEdit11->Text="";
LabeledEdit12->Text="";
LabeledEdit13->Text="";
}

void __fastcall TCardForm::clearcode2()
{
LabeledEdit11->Text="";
LabeledEdit12->Text="";
LabeledEdit13->Text="";
}

TCardForm *CardForm;
//---------------------------------------------------------------------------
__fastcall TCardForm::TCardForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::FormCreate(TObject *Sender)
{
QForm0=new TQueryForm2_0(this);
QForm1=new TQueryForm2_1(this);
QForm2=new TQueryForm2_2(this);
}
//---------------------------------------------------------------------------



void __fastcall TCardForm::FormActivate(TObject *Sender)
{
if(currEmp.getEmpID()==0)
{
String name=currentUser->getName();
currEmp.setData(currentUser->getEmpID(),name);
showname->Caption=IntToStr(currentUser->getEmpID())+" "+name;
}
currentUser->setStartTime();
indate->Text=Now().CurrentDate();
String sql="select Max(schoolID) from Card",s;
HISQuery(Query1,sql,true);
s=Query1->Fields->Fields[0]->FieldName;
IDMax=Query1->FieldByName(s)->AsInteger;
cardno->Text=IDMax+1;
GroupBox2->Visible=false;
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::RadioGroup1Click(TObject *Sender)
{
TDataSet*DSPtr=DBGrid1->DataSource->DataSet;
recordNo=DBGrid1->DataSource->DataSet->RecNo;
int choice=RadioGroup1->ItemIndex;

if(choice==1)
{DBNavigator1->VisibleButtons=TButtonSet()<<nbPost<<nbCancel;}
else
{
DBGrid1->ReadOnly=true;
DBNavigator1->VisibleButtons=TButtonSet()<<nbFirst<<nbPrior<<nbNext<<nbLast;
switch(choice)
{
case 0:PageControl1->ActivePage=TabSheet2;
       break;
case 2:DBNavigator1->BtnClick(nbDelete);
       break;
case 3:
case 4:DSPtr->Edit();
       if(choice==3)DSPtr->FieldValues["delFlag"]="1";
       else         DSPtr->FieldValues["delFlag"]="0";
       DSPtr->Post();
       break;
case 5:ClearPage2(this);
       break;
}
}
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::DBNavigator1Click(TObject *Sender,
      TNavigateBtn Button)
{
if(Button==nbPost)
{RadioGroup1->ItemIndex=-1;}
DBGrid1->ReadOnly=true;
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::DBGrid1CellClick(TColumn *Column)
{
int index=RadioGroup1->ItemIndex,recNo=DBGrid1->DataSource->DataSet->RecNo;
if(index==1&&recNo==recordNo)
{DBGrid1->ReadOnly=false;}
else
{DBGrid1->ReadOnly=true;}
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::schoolnoKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
TField*fp,*f1,*f2,*f3,*f4;
if(Key==13)
{
if(schoolno->Text!="")
{
if(isInteger(schoolno->Text,false))
{
String s1=schoolno->Text;
String sql="select*from Student where schoolID="+s1;
HISQuery(Query1,sql,true);
if(Query1->IsEmpty())
{ShowMessage("此学号不存在!");}
else
{
f1=Query1->FieldByName("name");
f2=Query1->FieldByName("sex");
f3=Query1->FieldByName("ID");
f4=Query1->FieldByName("phone");
name->Text=f1->AsString;
sex->Text=f2->AsString;
ID->Text=f3->AsString;
phone->Text=f4->AsString;
cardno->Text=IDMax+1;
}
Query1->Close();
}
else
{ShowMessage("学号非法,必须是整型数!");}
}
else
{ShowMessage("学号不能为空!");}
}
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::Button2Click(TObject *Sender)
{
if(schoolno->Text!="")
{
if(isInteger(schoolno->Text,false))
{
String s=schoolno->Text;
int sameName=0;
String sql="select schoolID from Card";
HISQuery(Query1,sql,true);
if(Query1->IsEmpty())
{ShowMessage("此学号不存在!");clearStudentInfo();Query3->Close();}
else
{
while(!Query1->Eof)
{
if(s==Query1->FieldByName("schoolID")->AsString)
{sameName=1;break;}
else Query1->Next();
}
if(sameName==0)
{
if(code->Text!="")
{
if(isInteger(code->Text,false))
{
String s1=cardno->Text;
String s2=schoolno->Text;
String s3=indate->Text;
String s4="0";
String s5=code->Text;
if(delflag->ItemIndex==1)s4="1";
String sql="insert into Card(cardID,schoolID,inDate,delFlag,moneyLeft,code) values("+s1+",'"+s2+"','"+s3+"','"+s4+"','"+"0"+"','"+s5+"')";
HISQuery(Query2,sql,false);
ShowMessage("此学生卡已建立!");
IDMax+=1;
cardno->Text=IDMax;
clearCardInfo();
Query2->Close();
}
else{ShowMessage("本卡密码必须为整型数!");}
}
else{ShowMessage("请输入本卡密码!");}
}
else
{ShowMessage("以此学号建立的学生卡已存在,不得再建!");}
}
}
else
{ShowMessage("学号非法,必须是整型数!");}
}
else
{ShowMessage("学号不能为空!");}
}

//---------------------------------------------------------------------------


void __fastcall TCardForm::LabeledEdit1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
TField*f,*f1,*f2,*f3,*f4;
if(Key==13)
{
if(LabeledEdit1->Text!="")
{
if(isInteger(LabeledEdit1->Text,false))
{
String s1=LabeledEdit1->Text;
String sql="select*from Card where cardID="+s1;
HISQuery(Query3,sql,true);
if(Query3->IsEmpty())
{ShowMessage("此卡号不存在!");clearStudentInfo();Query3->Close();}
else
{
f=Query3->FieldByName("schoolID");
String s2=f->AsString;
sql="select*from Student where schoolID="+s2;
HISQuery(Query2,sql,true);
f1=Query2->FieldByName("name");
f2=Query2->FieldByName("id");
f3=Query2->FieldByName("sex");
f4=Query3->FieldByName("moneyLeft");
LabeledEdit2->Text=f1->AsString;
LabeledEdit3->Text=f2->AsString;
LabeledEdit4->Text=f3->AsString;
LabeledEdit5->Text=f4->AsString;
Query2->Close();
Query3->Close();
++CardSum;
}
}
else
{ShowMessage("学号非法,必须是整型数!");}
}
else{ShowMessage("卡号不能为空!");}
}
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::Button4Click(TObject *Sender)
{
TField*f;
if(LabeledEdit2->Text!="")
{
if(isInteger(LabeledEdit6->Text,false))
{
String s1=LabeledEdit1->Text;
String sql="select*from Card where cardID="+s1;
HISQuery(Query3,sql,true);
double num=(LabeledEdit6->Text).ToDouble();
sql="update Card set moneyLeft=moneyLeft+("+LabeledEdit6->Text+") where cardID='"+s1+"'";
HISQuery(Query3,sql,false);
sql="insert into Record(cardID,useTime,shop,inType,inMoney)values('"+s1+"','"+Now().CurrentDateTime()+"','"+"1"+"','"+"1"+"','"+LabeledEdit6->Text+"')";
HISQuery(Query4,sql,false);
currEmp.addStudentSum();
currEmp.addMoneySum(num);
{ShowMessage("充值已完成!");}
sql="select*from Card where cardID="+s1;
HISQuery(Query3,sql,true);
f=Query3->FieldByName("moneyLeft");
LabeledEdit5->Text=f->AsString;
}
else
{ShowMessage("请正确输入金额!");}
}
else
{ShowMessage("请先输入卡号后按回车确定!");}
Query3->Close();
Query4->Close();
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::LabeledEdit7KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
TField*f,*f1,*f2;
if(Key==13)
{
if(LabeledEdit7->Text!="")
{
if(isInteger(LabeledEdit7->Text,false))
{
String s1=LabeledEdit7->Text;
String sql="select*from Card where cardID="+s1;
HISQuery(Query3,sql,true);
if(Query3->IsEmpty())
{ShowMessage("此卡号不存在!");}
else
{
f=Query3->FieldByName("schoolID");
String s2=f->AsString;
sql="select*from Student where schoolID="+s2;
HISQuery(Query2,sql,true);
f1=Query2->FieldByName("name");
f2=Query2->FieldByName("sex");
LabeledEdit8->Text=f1->AsString;
LabeledEdit9->Text=f->AsString;
LabeledEdit10->Text=f2->AsString;
Query2->Close();
Query3->Close();
GroupBox2->Visible=true;
}
}
else
{ShowMessage("卡号必须为整型数!");}
}
else{ShowMessage("卡号不能为空!");}
}
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::Button3Click(TObject *Sender)
{
TField*f;
String s1=LabeledEdit7->Text;
String sql="select*from Card where cardID="+s1;
HISQuery(Query3,sql,true);
f=Query3->FieldByName("code");
String s2=f->AsString;
String s3=LabeledEdit11->Text;
String s4=LabeledEdit12->Text;
String s5=LabeledEdit13->Text;
if(s3!=""&&s4!=""&&s5!="")
{
if(s3==s2)
{
if(s4!=s3)
{
if(s4==s5)
{
sql="update Card set code=("+LabeledEdit13->Text+") where cardID='"+s1+"'";
HISQuery(Query3,sql,false);
{ShowMessage("密码已修改!");clearcode();}
GroupBox2->Visible=false;
}
else
{ShowMessage("新密码两次输入必须相同!");clearcode2();}
}
else
{ShowMessage("新密码不能与原密码相同!");clearcode2();}
}
else
{ShowMessage("原密码错误!");clearcode2();}
}
else
{ShowMessage("密码不能为空!");clearcode2();}
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::Timer1Timer(TObject *Sender)
{
showtime->Caption=Now().CurrentDateTime();
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::N4Click(TObject *Sender)
{
logout(currentUser,this,PassWordForm->Query1);
clearStudentInfo();
clearCardInfo();
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N6Click(TObject *Sender)
{
PassWordForm->Close();
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N7Click(TObject *Sender)
{
ShowMessage("开始工作时间:"+currentUser->getStartTime().TimeString());
}
//---------------------------------------------------------------------------



void __fastcall TCardForm::N9Click(TObject *Sender)
{
ShowMessage("充值人数:"+IntToStr(currEmp.getSSum()));
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N10Click(TObject *Sender)
{
ShowMessage("充值总金额:"+String(currEmp.getMSum()));
}

//---------------------------------------------------------------------------


void __fastcall TCardForm::N13Click(TObject *Sender)
{
QForm0->Show();
}
//---------------------------------------------------------------------------


void __fastcall TCardForm::N14Click(TObject *Sender)
{
QForm1->Show();
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N15Click(TObject *Sender)
{
QForm2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N11Click(TObject *Sender)
{
Application->HelpContext(6);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N12Click(TObject *Sender)
{
Application->HelpContext(7);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N16Click(TObject *Sender)
{
Application->HelpContext(8);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N17Click(TObject *Sender)
{
Application->HelpContext(9);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N18Click(TObject *Sender)
{
Application->HelpContext(10);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N19Click(TObject *Sender)
{
Application->HelpContext(11);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N20Click(TObject *Sender)
{
Application->HelpContext(12);
}
//---------------------------------------------------------------------------

void __fastcall TCardForm::N22Click(TObject *Sender)
{
Application->HelpContext(27);
}
//---------------------------------------------------------------------------






⌨️ 快捷键说明

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