salary_r.cpp

来自「C++Builde5程序设计—基础教学篇程序源代码1。」· C++ 代码 · 共 72 行

CPP
72
字号
//-------------------  salary_r  --------------------------------------------------------
#include <stdio.h>
#include<io.h>
#include "salary_r.h"
#include "salary_m.h"
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
struct employee_struct
{
  int order;
  char name[12];
  int salary;
  int add;
};
employee_struct employee;
int total_record;
FILE *file1;
TfrmSalaryRecord *frmSalaryRecord;
//---------------------------------------------------------------------------
__fastcall TfrmSalaryRecord::TfrmSalaryRecord(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSalaryRecord::FormActivate(TObject *Sender)
{
  char *file_name="a:/ch14/salary.mny";
  file1=fopen(file_name,"a+");
  total_record=filelength(fileno(file1))/sizeof(employee)+1;
  edtOrder->Text=IntToStr(total_record);
  edtName->Text="";
  edtSalary->Text="";
  edtAdd->Text="";
  edtName->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSalaryRecord::btnNextClick(TObject *Sender)
{
   employee.order=total_record;
   strcpy(employee.name,edtName->Text.c_str());
   employee.salary=StrToInt(edtSalary->Text);
   employee.add=StrToInt(edtAdd->Text);
   fseek(file1,sizeof(employee)*(total_record-1),SEEK_SET);
   fwrite(&employee,sizeof(employee),1,file1);
   total_record++;
   edtOrder->Text=IntToStr(total_record);
   edtName->Text="";
   edtSalary->Text="";
   edtAdd->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmSalaryRecord::btnExitClick(TObject *Sender)
{
  if(edtName->Text !="")
  {
    employee.order=total_record;
    strcpy(employee.name,edtName->Text.c_str());
    employee.salary=StrToInt(edtSalary->Text);
    employee.add=StrToInt(edtAdd->Text);
    fseek(file1,sizeof(employee)*(total_record-1),SEEK_SET);
    fwrite(&employee,sizeof(employee),1,file1);
  }
  fclose(file1);
  frmSalaryRecord->Hide();
  frmSalaryMain->Show();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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