Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Скоморошкин ⇐ ПредыдущаяСтр 2 из 2 Иванович Гольф
4. Реализация проекта.
Данный проект реализован на языке программирования С++ с использованием компилятора C++ Builder 2009 и представляет собой Windows приложение. Вариант:консольное приложение.
Код программы состоит из нескольких файлов: «Kursovaya.h» «Kursovaya.cpp»
«Kursovaya.h»
#ifndef KursovayaH #define KursovayaH
#include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <vector.h> #include <algorith.h> #include <stdio.h> #include <Dialogs.hpp> #include <Menus.hpp> #include <ComCtrls.hpp> #include <ImgList.hpp> #include <ToolWin.hpp> struct sport{ char name[20]; char Surname[20]; char Otchestvo[20]; char VidSporta[20]; int razr; friend bool operator<(const sport& a,const sport& b) { return a.razr<b.razr; } // for sort by razr friend bool operator==(const sport& a,const sport& b) { return a.razr==b.razr; } // for search by razr }; using namespace std; extern vector <sport> team; extern int iMax,iCur;
class TForm1: public TForm { __published: // IDE-managed Components TEdit *NameEdit; TEdit *SurnameEdit; TEdit *OtchestvoEdit; TLabel *Label1; TLabel *Surname; TLabel *Otchestvo; TEdit *VidSportaEdit; TLabel *VidSporta; TEdit *razrEdit; TLabel *Razr; TGroupBox *GroupBox1; TButton *PrevB; TButton *NextB; TGroupBox *GroupBox2; TButton *AddB; TButton *DeleteB; TButton *ChangeB; TGroupBox *GroupBox3; TButton *SortB; TGroupBox *GroupBox4; TButton *OpenB; TButton *SaveB; TGroupBox *GroupBox5; TButton *OkB; TButton *ExitB; TGroupBox *GroupBox7; TEdit *SearchEdit; TButton *SearchB; TLabel *LabelNum; TSaveDialog *SaveDialog1; TOpenDialog *OpenDialog1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TMenuItem *N3; TMenuItem *N4; TMenuItem *N5; TMenuItem *N6; TMenuItem *N7; TMenuItem *N8; TMenuItem *N9; TMenuItem *N10; TMenuItem *N11; TMenuItem *N12; TImageList *ImageList1; TToolBar *ToolBar1; TToolButton *ToolButton2; TToolButton *ToolButton3; TToolButton *ToolButton1; void __fastcall AddBClick(TObject *Sender); void __fastcall PrevBClick(TObject *Sender); void __fastcall NextBClick(TObject *Sender); void __fastcall SaveBClick(TObject *Sender); void __fastcall OpenBClick(TObject *Sender); void __fastcall SortBClick(TObject *Sender); void __fastcall SearchBClick(TObject *Sender); void __fastcall DeleteBClick(TObject *Sender); void __fastcall ExitBClick(TObject *Sender); void __fastcall OkBClick(TObject *Sender); void __fastcall ChangeBClick(TObject *Sender); void __fastcall N2Click(TObject *Sender); void __fastcall N3Click(TObject *Sender); void __fastcall N5Click(TObject *Sender); void __fastcall N6Click(TObject *Sender); void __fastcall N7Click(TObject *Sender); void __fastcall N9Click(TObject *Sender); void __fastcall N10Click(TObject *Sender); void __fastcall N11Click(TObject *Sender); void __fastcall N12Click(TObject *Sender); void __fastcall ToolButton2Click(TObject *Sender); void __fastcall ToolButton3Click(TObject *Sender); void __fastcall ToolButton1Click(TObject *Sender); private: // User declarations public: // User declarations void __fastcall ShowRecord(); __fastcall TForm1(TComponent* Owner); };
extern PACKAGE TForm1 *Form1;
#endif
«Kursovaya.cpp»
#include <vcl.h> #pragma hdrstop
#include "Kursovaya.h"
#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; vector <sport> team; int iMax=0,iCur=0;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { }
void __fastcall TForm1::AddBClick(TObject *Sender) { team.push_back(sport()); strcpy(team[iMax].name,NameEdit->Text.t_str()); strcpy(team[iMax].Surname,SurnameEdit->Text.t_str()); strcpy(team[iMax].Otchestvo,OtchestvoEdit->Text.t_str()); strcpy(team[iMax].VidSporta,VidSportaEdit->Text.t_str()); team[iMax].razr=razrEdit->Text.ToIntDef(0); iCur=iMax; iMax++; LabelNum->Caption= IntToStr(iMax);
}
void __fastcall TForm1::ShowRecord() { NameEdit->Text=team[iCur].name; SurnameEdit->Text=team[iCur].Surname; OtchestvoEdit->Text=team[iCur].Otchestvo; VidSportaEdit->Text=team[iCur].VidSporta; razrEdit->Text=IntToStr(team[iCur].razr); LabelNum->Caption=IntToStr(iCur+1); }
void __fastcall TForm1::PrevBClick(TObject *Sender) { if(iCur<=0) return; iCur--; ShowRecord();
}
void __fastcall TForm1::NextBClick(TObject *Sender) { if(iCur>=iMax-1) return; iCur++; ShowRecord();
}
void __fastcall TForm1::SaveBClick(TObject *Sender) { SaveDialog1->Execute(); FILE *f=fopen(SaveDialog1->FileName.t_str(),"wb"); // t_str() for Builder 2009 if(f)fwrite(&team[0],sizeof(sport),iMax,f); else ShowMessage("file error"); fclose(f);
}
void __fastcall TForm1::OpenBClick(TObject *Sender) { OpenDialog1->Execute(); FILE *f=fopen(OpenDialog1->FileName.t_str(),"rb"); // t_str() for Builder 2009 if(f==0){ ShowMessage("file error");return; } for(int i=0;i<team.max_size();i++){ sport s; fread(&s,sizeof(sport),1,f); if(feof(f)) break; team.push_back(s); } fclose(f); iMax=team.size(); iCur=0; ShowRecord();
}
void __fastcall TForm1::SortBClick(TObject *Sender) { if(iCur!=0){ sort(team.begin(),team.end()); iCur=0; ShowRecord(); } }
void __fastcall TForm1::SearchBClick(TObject *Sender) { if(team.empty()){ShowMessage("Empty"); return;}
sport s; vector <sport>::iterator p; s.razr=SearchEdit->Text.ToIntDef(0); p=find(team.begin(),team.end(),s);
if (p!=team.end()) { iCur=p-team.begin(); ShowRecord(); } else ShowMessage("Такой записи нет"); }
void __fastcall TForm1::DeleteBClick(TObject *Sender) { if(iCur!=0){ if (iMax<=0) { team.push_back(sport()); NameEdit->Text = ""; SurnameEdit->Text = ""; OtchestvoEdit->Text = ""; VidSportaEdit->Text = ""; razrEdit->Text = ""; return;} if(iCur==iMax){iCur--;} else{ for(int i=iCur;i<iMax-1;i++) team[i]=team[i+1]; } iMax--; ShowRecord();
} }
void __fastcall TForm1::ExitBClick(TObject *Sender) { Form1->Close(); }
void __fastcall TForm1::OkBClick(TObject *Sender) { SaveDialog1->Execute(); FILE *f=fopen(SaveDialog1->FileName.t_str(),"wb"); // t_str() for Builder 2009 if(f)fwrite(&team[0],sizeof(sport),iMax,f); else ShowMessage("file error"); fclose(f); Form1->Close(); }
void __fastcall TForm1::ChangeBClick(TObject *Sender) { team.push_back(sport()); strcpy(team[iCur].name,NameEdit->Text.t_str()); strcpy(team[iCur].Surname,SurnameEdit->Text.t_str()); strcpy(team[iCur].Otchestvo,OtchestvoEdit->Text.t_str()); strcpy(team[iCur].VidSporta,VidSportaEdit->Text.t_str()); team[iCur].razr=razrEdit->Text.ToIntDef(0);
}
void __fastcall TForm1::N2Click(TObject *Sender) { OpenDialog1->Execute(); FILE *f=fopen(OpenDialog1->FileName.t_str(),"rb"); // t_str() for Builder 2009 if(f==0){ ShowMessage("file error");return; } for(int i=0;i<team.max_size();i++){ sport s; fread(&s,sizeof(sport),1,f); if(feof(f)) break; team.push_back(s); } fclose(f); iMax=team.size(); iCur=0; ShowRecord();
}
void __fastcall TForm1::N3Click(TObject *Sender) { SaveDialog1->Execute(); FILE *f=fopen(SaveDialog1->FileName.t_str(),"wb"); // t_str() for Builder 2009 if(f)fwrite(&team[0],sizeof(sport),iMax,f); else ShowMessage("file error"); fclose(f);
}
void __fastcall TForm1::N5Click(TObject *Sender) { team.push_back(sport()); strcpy(team[iMax].name,NameEdit->Text.t_str()); strcpy(team[iMax].Surname,SurnameEdit->Text.t_str()); strcpy(team[iMax].Otchestvo,OtchestvoEdit->Text.t_str()); strcpy(team[iMax].VidSporta,VidSportaEdit->Text.t_str()); team[iMax].razr=razrEdit->Text.ToIntDef(0); iCur=iMax; iMax++; LabelNum->Caption= IntToStr(iMax);
}
void __fastcall TForm1::N6Click(TObject *Sender) { if (iMax<=0) { team.push_back(sport()); NameEdit->Text = ""; SurnameEdit->Text = ""; OtchestvoEdit->Text = ""; VidSportaEdit->Text = ""; razrEdit->Text = ""; return;} if(iCur==iMax){iCur--;} else{ for(int i=iCur;i<iMax-1;i++) team[i]=team[i+1]; } iMax--; ShowRecord(); }
void __fastcall TForm1::N7Click(TObject *Sender) { team.push_back(sport()); strcpy(team[iCur].name,NameEdit->Text.t_str()); strcpy(team[iCur].Surname,SurnameEdit->Text.t_str()); strcpy(team[iCur].Otchestvo,OtchestvoEdit->Text.t_str()); strcpy(team[iCur].VidSporta,VidSportaEdit->Text.t_str()); team[iCur].razr=razrEdit->Text.ToIntDef(0);
}
void __fastcall TForm1::N9Click(TObject *Sender) { SaveDialog1->Execute(); FILE *f=fopen(SaveDialog1->FileName.t_str(),"wb"); // t_str() for Builder 2009 if(f)fwrite(&team[0],sizeof(sport),iMax,f); else ShowMessage("file error"); fclose(f); Form1->Close(); }
void __fastcall TForm1::N10Click(TObject *Sender) { Form1->Close(); }
void __fastcall TForm1::N11Click(TObject *Sender) { if(iCur<=0) return; iCur--; ShowRecord();
}
void __fastcall TForm1::N12Click(TObject *Sender) { if(iCur>=iMax-1) return; iCur++; ShowRecord(); }
void __fastcall TForm1::ToolButton2Click(TObject *Sender) { OpenDialog1->Execute(); FILE *f=fopen(OpenDialog1->FileName.t_str(),"rb"); // t_str() for Builder 2009 if(f==0){ ShowMessage("file error");return; } for(int i=0;i<team.max_size();i++){ sport s; fread(&s,sizeof(sport),1,f); if(feof(f)) break; team.push_back(s); } fclose(f); iMax=team.size(); iCur=0; ShowRecord();
}
void __fastcall TForm1::ToolButton3Click(TObject *Sender) { SaveDialog1->Execute(); FILE *f=fopen(SaveDialog1->FileName.t_str(),"wb"); // t_str() for Builder 2009 if(f)fwrite(&team[0],sizeof(sport),iMax,f); else ShowMessage("file error"); fclose(f); }
void __fastcall TForm1::ToolButton1Click(TObject *Sender) { Form1->Close(); }
5. Перспективы доработки. В дальнейшем возможна доработка алгоритмов сортировки, поиска. Возможно добавление новых параметров в базу путем модернизации класса и его функций, а также переработка интерфейса программы.
|