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

📄 unit1.cpp

📁 学生档案管理系统
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include<iostream> 
#include<string>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TTreeNode *view_select,*view_insert;
String str1,picture1,str10;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
 //定义及初始化
 String str,str1,a,b,english4,english6,computer2,computer3;
 int i=0,j,k=0,count1;
 float t=0,s=0;  //t为总学分,s为通过的学分
 CheckBox1->Checked=false;
 CheckBox2->Checked=false;
 CheckBox3->Checked=false;
 CheckBox4->Checked=false;
 view_select=TreeView1->Selected;
 str10=view_select->Text;

 //学生基本信息
 str="select * from 学生基本信息表 where 学号='"+view_select->Text+"'";
 Query1->Active=false;
 Query1->SQL->Text=str;
 Query1->Active=true;

 //照片
 str=Query1->FieldByName("照片")->AsString;
 if(str!="")
 {
  Image1->Show();
  Image1->Picture->LoadFromFile(str);
  Button25->Enabled=true;
 }
 else
   {
    Image1->Hide();
    Button25->Enabled=false;
   }
   
 //学习概况
 str="select * from 学习情况表 where 学号='"+view_select->Text+"'";
 Query2->Active=false;
 Query2->SQL->Text=str;
 Query2->Active=true;
 str=Query2->FieldByName("学号")->AsString;
 if(str!="")
  {
   count1=Query2->Fields->Count;
   for(j=2;j<=count1;j++)
    {
     a=Query2->Fields->FieldByNumber(j)->AsString;//获得课程是否通过
     if(j==2) english4=a;
     if(j==3) english6=a;
     if(j==4) computer2=a;
     if(j==5) computer3=a;
     if(j>=6)
       {
        if(a=="是") i++; //i为通过门数
        if(a=="否") k++; //k为未通过门数
        b=Query2->Fields->Fields[j-1]->FieldName; //获取列名
        str1="select * from 课程表 where 课程名='"+b+"'";
        Query4->Active=false;
        Query4->SQL->Text=str1;
        Query4->Active=true;
        if(Query2->Fields->FieldByNumber(j)->AsString!="")//求总的所修学分数
         t=t+StrToFloat(Query4->Fields->FieldByName("学分")->AsString);
        if(Query2->Fields->FieldByNumber(j)->AsString=="是")//求总的通过的学分数
         s=s+StrToFloat(Query4->Fields->FieldByName("学分")->AsString);
       }
    }
   if(english4=="是") CheckBox1->Checked=true;
   if(english6=="是") CheckBox2->Checked=true;
   if(computer2=="是") CheckBox3->Checked=true;
   if(computer3=="是") CheckBox4->Checked=true;
   Edit2->Text=IntToStr(i+k);
   Edit3->Text=FloatToStr(t);
   Edit4->Text=IntToStr(i);
   Edit5->Text=FloatToStr(s);
   Edit6->Text=IntToStr(k);
  }

 //在校信息
 str="select * from 在校信息表 where 学号='"+view_select->Text+"'";
 Query3->Active=false;
 Query3->SQL->Text=str;
 Query3->Active=true;

 if(DBEdit1->Text!="")
  {
   Button5->Enabled=true;
   Button3->Enabled=true;
   Button23->Enabled=true;
  }
 if(DBEdit1->Text=="")
  {
   Button5->Enabled=false;
   Button3->Enabled=false;
   Edit2->Text="";
   Edit3->Text="";
   Edit4->Text="";
   Edit5->Text="";
   Edit6->Text="";
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 int i;
 String str;
 mainview->Visible=true;
 studentview->Visible=false;
 learnview->Visible=false;
 workview->Visible=false;
 basechange->Visible=false;
 studentchange->Visible=false;
 learnchange->Visible=false;
 workchange->Visible=false;
 lessonchange->Visible=false;
 main->Enabled=false;
 details->Enabled=true;
 learn->Enabled=true;
 work->Enabled=true;
 N11->Enabled=true;
 N12->Enabled=true;
 N13->Enabled=true;
 N14->Enabled=true;
 N15->Enabled=true;
 Button10->Enabled=false;
 Button13->Enabled=false;
 Button9->Enabled=false;
 Button12->Enabled=false;
 Button23->Enabled=false;
 Query2->Active=false;
 Button25->Enabled=false;
 str="select * from 学习情况表";
 Query2->Active=true;
 for(i=2;i<Query2->Fields->Count;i++)
   {
    ComboBox1->Items->Add(Query2->Fields->Fields[i]->FieldName);
    ComboBox3->Items->Add(Query2->Fields->Fields[i]->FieldName);
   }
 Query2->Active=false;

 int j=0,s,p=1,q=1,m=0,l=0,t=0,r=0,n=1,k=0,h=0,y=0,z=0,u=0,v=0,w=0;
 String grade1,class1,numb1,str1;
 str1="select 学号 from 学生基本信息表 order by 学号 asc";

 Query5->Active=false;
 Query5->SQL->Text=str1;
 Query5->Active=true;
 s=Query5->RecordCount;
 for(i=0;i<s;i++)
   {
    Query5->First();
    Query5->MoveBy(i);
    if(i==0)
      {
       grade1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2);
       class1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6);
      }
    if(grade1!=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2))
       {
        p++; //年级数
        grade1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2);
       }
    if(class1!=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6))
       {
        q++; //班级数
        class1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6);
       }
   }
    Query5->First();
    Query5->MoveBy(0);
    grade1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2);

   TTreeNode *Node1,*Node2,*Node3;//Node1指向年级,Node2指向班级,Node3指向成员
   TreeView1->Items->Clear();
   TreeView1->Items->Add(NULL, grade1);
   Node1=TreeView1->Items->Item[0];
   for(i=0;i<p;i++)
     {
      Node2=TreeView1->Items->Item[m];
      l=0;
      if(i==0)
        {
         for(j=t;j<q;j++)
           {
            Query5->First();
            Query5->MoveBy(r);//指向第h个学号
            if(grade1==DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2))
               class1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6); //如果为该年级,则将班级放入该年级子目录中
            else break;
            TreeView1->Items->AddChild(Node2,class1);
            Node3=TreeView1->Items->Item[n];
            for(k=r;k<s;k++)
               {
                Query5->First();
                Query5->MoveBy(k);
                if(class1==DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6))
                  {
                   TreeView1->Items->AddChild(Node3,DBGrid9->Columns->Items[0]->Field->AsString);//如果为该班级,则将对应学号放入该班级子目录中
                   l++;
                   h++;
                  }
                else break;
               }
            r=k;
            n=n+l+1;
            l=0;
            t=j;
           }
        }
      else
        {
         n++;
         for(j=t;j<q;j++)
           {
            Query5->First();
            Query5->MoveBy(r);//指向第h个学号
            if(grade1==DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2))
               class1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6); //如果为该年级,则将班级放入该年级子目录中
            else break;
            TreeView1->Items->AddChild(Node2,class1);
            Node3=TreeView1->Items->Item[n];
            for(k=r;k<s;k++)
               {
                Query5->First();
                Query5->MoveBy(k);
                if(class1==DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,6))
                  {
                   TreeView1->Items->AddChild(Node3,DBGrid9->Columns->Items[0]->Field->AsString);//如果为该班级,则将对应学号放入该班级子目录中
                   l++;
                   h++;//向下指数据表中一个学号
                  }
                else break;
               }
            r=k;
            n=n+l+1;
            l=0;
            t=j;
           }
     }
     m=n;

     for(y=j;y<s;y++)
      {
       Query5->First();
       Query5->MoveBy(y);
       if(grade1!=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2))
        {
         grade1=DBGrid9->Columns->Items[0]->Field->AsString.SubString(1,2);
         break;
        }
     }
     TreeView1->Items->Add(Node1,grade1);
   }
   for(i=0;i<p;i++)
      TreeView1->Items->Item[m-i]->Delete();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::mainClick(TObject *Sender)
{
 mainview->Visible=true;
 studentview->Visible=false;
 learnview->Visible=false;
 workview->Visible=false;
 basechange->Visible=false;
 studentchange->Visible=false;
 learnchange->Visible=false;
 workchange->Visible=false;
 lessonchange->Visible=false;
 main->Enabled=false;
 details->Enabled=true;
 learn->Enabled=true;
 work->Enabled=true;
 N11->Enabled=true;
 N12->Enabled=true;
 N13->Enabled=true;
 N14->Enabled=true;
 N15->Enabled=true;
 Image1->Hide();
 DBEdit1->Text="";
 DBComboBox1->ItemIndex=-1;
 DBEdit3->Text="";
 DBEdit4->Text="";
 DBEdit5->Text="";
 DBEdit6->Text="";
 DBEdit7->Text="";
 DBEdit8->Text="";
 DBEdit9->Text="";
 DBEdit10->Text="";
 DBEdit11->Text="";
 DBEdit12->Text="";
 DBEdit13->Text="";
 Edit2->Text="";
 Edit3->Text="";
 Edit4->Text="";
 Edit5->Text="";
 Edit6->Text="";
 CheckBox1->Checked=false;
 CheckBox2->Checked=false;
 CheckBox3->Checked=false;
 CheckBox4->Checked=false;
 Button3->Enabled=false;
 Button5->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N7Click(TObject *Sender)
{
 mainview->Visible=false;
 studentview->Visible=true;
 learnview->Visible=false;
 workview->Visible=false;
 basechange->Visible=false;
 studentchange->Visible=false;
 learnchange->Visible=false;
 workchange->Visible=false;
 lessonchange->Visible=false;
 main->Enabled=true;
 details->Enabled=false;
 learn->Enabled=true;
 work->Enabled=true;
 Query4->Active=false;
 N11->Enabled=true;
 N12->Enabled=true;
 N13->Enabled=true;
 N14->Enabled=true;
 N15->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N5Click(TObject *Sender)
{
 int a;
 a=Application->MessageBoxA("你要退出吗?","关闭程序",65);
 if(a==1)
   {Close();}
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{
   String str;
   mainview->Visible=false;
   studentview->Visible=false;
   learnview->Visible=true;
   workview->Visible=false;
   main->Enabled=true;
   details->Enabled=true;
   learn->Enabled=false;
   work->Enabled=true;
   Edit11->Text=view_select->Text;

⌨️ 快捷键说明

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