📄 学籍管理系统00.txt
字号:
//---------------------------------------------------------------------------
二.重要成绩输入与管理子模块
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "AppConsts.h"
#include "AppTypes.h"
#include "GlobalVar.h"
#include "DataU.h"
#include "StartTermU.h"
#include "GlobalVar.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmStartTerm *frmStartTerm;
//---------------------------------------------------------------------------
__fastcall TfrmStartTerm::TfrmStartTerm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::FormCreate(TObject *Sender)
{
TStringList *stlSchoolName=new TStringList;
stlSchoolCode=new TStringList;
stlClassCode = new TStringList;
stlClassName = new TStringList;
bFlagSaved=false;
if(iEdition==Education)
{
if(frmData->ReadSchoolInfo(stlSchoolCode,stlSchoolName))
cbxSchoolName->Items->Assign(stlSchoolName);
else
ShowMessage("没有学校,请注意填写!");
}
else
{
edClassNewName->ReadOnly=false;
cbxSchoolName->Enabled=false;
cbxSchoolName->Style = csDropDown;
cbxSchoolName->Text=gbSysPara.stSchoolName;
SchCode=gbSysPara.stSchoolCode;
if(frmData->ReadClassInfo(SchCode,stlClassCode,stlClassName))
{
int iClassCount=stlClassCode->Count ;
if(iClassCount!=0)
{
edClassCode->Text =stlClassCode->Strings [0];
edClassName->Text =stlClassName->Strings [0];
edClassCodeChange(edClassCode);
iCurIndex= 1;
btnPre->Enabled =false;
btnNext->Enabled =true;
}
stgChangeClassName->RowCount =iClassCount+1;
for(int i=0;i<iClassCount;i++)
{
stgChangeClassName->Cells [0][i+1]=stlClassCode->Strings [i];
stgChangeClassName->Cells [1][i+1]=stlClassName->Strings [i];
stgChangeClassName->Cells [2][i+1]="";
}
}
else
{
ShowMessage("我校暂时没有班级,请插入后再填写!");
Close();
}
delete stlClassName;
}
edClassCode->ReadOnly =true;
edClassName->ReadOnly =true;
cxbGratuated->Checked =false;
btnSave->Enabled =false;
btnReset->Enabled =false;
btnPre->Enabled =false;
btnNext->Enabled =false;
btnConfirm->Enabled =false;
stgChangeClassName->Cells [0][0]="班级代码";
stgChangeClassName->Cells [1][0]="班级名称";
stgChangeClassName->Cells [2][0]="班级新名称";
delete stlSchoolName;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::FormDestroy(TObject *Sender)
{
delete stlSchoolCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnResetClick(TObject *Sender)
{
edClassNewName->Clear ();
btnSave->Enabled =false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::cbxSchoolNameChange(TObject *Sender)
{
if(cbxSchoolName->ItemIndex ==-1)
{
ShowMessage("请选择学校名称!");
return;
}
SchCode=stlSchoolCode->Strings[cbxSchoolName->ItemIndex];
if(frmData->ReadClassInfo(SchCode,stlClassCode,stlClassName))
{
int iClassCount=stlClassCode->Count ;
if(iClassCount!=0)
{
edClassCode->Text =stlClassCode->Strings [0];
edClassName->Text =stlClassName->Strings [0];
edClassCodeChange(edClassCode);
iCurIndex= 1;
btnPre->Enabled =false;
btnNext->Enabled =true;
}
stgChangeClassName->RowCount =iClassCount+1;
for(int i=0;i<iClassCount;i++)
{
stgChangeClassName->Cells [0][i+1]=stlClassCode->Strings [i];
stgChangeClassName->Cells [1][i+1]=stlClassName->Strings [i];
stgChangeClassName->Cells [2][i+1]="";
}
}
else
{
ShowMessage("该学校没有班级,请插入后再填写!");
Close();
}
delete stlClassName;
edClassNewName->ReadOnly=false;
}
//---------------------------------------------------------------------------
String __fastcall TfrmStartTerm::ChangeClassName(String strClassCode)
{
String strCnn = "";
String strTmp = edClassCode->Text ;
int iSubCode=StrToInt(strTmp.SubString(2,2))-1;
String strNewCode = IntToStr((int)(iSubCode/10)) + IntToStr(iSubCode%10);
strNewCode = strTmp.SubString(0,2) + strNewCode + strTmp.SubString(4,4);
for(int i=0;i<stlClassCode->Count;i++)
{
if(strNewCode==stlClassCode->Strings[i])
{
strCnn = stlClassName->Strings[i];
break;
}
}
return strCnn;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::edClassCodeChange(TObject *Sender)
{
edClassNewName->Text = ChangeClassName(edClassCode->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnPreClick(TObject *Sender)
{
if(iCurIndex<=1) {btnPre->Enabled =false; return;}
iCurIndex=iCurIndex-1;
btnNext->Enabled=true;
edClassCode->Text=stgChangeClassName->Cells[0][iCurIndex];
edClassName->Text=stgChangeClassName->Cells[1][iCurIndex];
if(!stgChangeClassName->Cells[2][iCurIndex].IsEmpty())
edClassNewName->Text =stgChangeClassName->Cells [2][iCurIndex];
bFlagSaved=false;
cxbGratuated->Checked=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnNextClick(TObject *Sender)
{
if(iCurIndex>=stlClassCode->Count) {btnNext->Enabled =false;return;}
iCurIndex=iCurIndex+1;
btnPre->Enabled=true;
edClassCode->Text=stgChangeClassName->Cells[0][iCurIndex];
edClassName->Text=stgChangeClassName->Cells[1][iCurIndex];
if(!stgChangeClassName->Cells[2][iCurIndex].IsEmpty())
edClassNewName->Text =stgChangeClassName->Cells [2][iCurIndex];
bFlagSaved=false;
cxbGratuated->Checked=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnSaveClick(TObject *Sender)
{
if(!cxbGratuated->Checked)
{
if(cbxSchoolName->Text==""||edClassCode->Text ==""||edClassNewName->Text=="")
{
ShowMessage("请将信息填写完整!");
return;
}
if(frmData->SaveNewClass(stlSchoolCode->Strings[cbxSchoolName->ItemIndex],edClassCode->Text,edClassNewName->Text))
{
ShowMessage("信息存储成功!");
bFlagSaved=true;
stgChangeClassName->Cells[2][iCurIndex]=edClassNewName->Text;
btnNextClick(btnSave);
}
else
{
ShowMessage("信息存储失败!");
return;
}
}
else//选择该班级已经毕业,则改变该班级的所有毕业生状态
{
if(frmData->SetGraduate(SchCode,edClassCode->Text))
{
stgChangeClassName->Cells[2][iCurIndex]="已毕业";
btnNextClick(btnSave);
ShowMessage("已经将本班的全部学生设置为毕业生");
}
else
ShowMessage("对不起,数据库修改出现错误,请重试!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::btnConfirmClick(TObject *Sender)
{
if(bFlagSaved) Close();
else
{
frmData->SaveNewClass(stlSchoolCode->Strings[cbxSchoolName->ItemIndex],edClassCode->Text,edClassNewName->Text);
Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::edClassNewNameChange(TObject *Sender)
{
if(edClassNewName->Text!="")
{
btnSave->Enabled=true;
btnReset->Enabled=true;
}
else
{
btnSave->Enabled=false;
btnReset->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmStartTerm::cxbGratuatedClick(TObject *Sender)
{ if(cxbGratuated->Checked)
{
edClassNewName->Text="";
edClassNewName->ReadOnly=true;
btnSave->Enabled=true;
}
else
{
edClassNewName->ReadOnly=false;
btnSave->Enabled=false;
}
}
//---------------------------------------------------------------------------
第六章 参考文献
1.洪国胜 张建原 洪月里。C++ Builder 程序设计轻松上手。北京:清华大学出版社,2001
2.Reisdorph,k。Borland C++ Builder 实用培训教程。北京:宇航出版社,1998
3.萨师煊 王珊。数据库系统概论(第三版)。北京:高等教育出版社,2000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -