3. Number.cpp
#include <vcl.h>
#pragma hdrstop
#include "Number.h"
void Number::save(FILE *f)
{char s[1000];
char s1[1000];
char s2[1000];
sprintf(s,"%s",str.c_str());
sprintf(s1,"%s",str1.c_str());
sprintf(s2,"%s",str2.c_str());
for(int i=0;s[i];i++) if(s[i]==' ') s[i]='_';
fprintf(f,"%d %s %s %s %d %d %d ",d,s,s1,s2,day,month,year);
}
void Number::zvit(FILE *f)
{
char s[1000];
char s1[1000];
char s2[1000];
sprintf(s,"%s",str.c_str());
sprintf(s1,"%s",str1.c_str());
sprintf(s2,"%s",str2.c_str());
fprintf(f,"%5d %10s %10s %10s %2d %2d %4d ",d,s,s1,s2,day,month,year);
fprintf(f,"\n");
}
int Number::load(FILE *f)
{ char s[1000];
char s1[1000];
char s2[1000];
int rez = fscanf(f,"%d %s %s %s %d %d %d",&d,s,s1,s2,&day,&month,&year);
if(rez==7)
{ for(int i=0;s[i];i++) if(s[i]=='_') s[i]=' ';
for(int i=0;s1[i];i++) if(s1[i]=='_') s1[i]=' ';
for(int i=0;s2[i];i++) if(s2[i]=='_') s2[i]=' ';
str = AnsiString(s);
str1 = AnsiString(s1);
str2 = AnsiString(s2);
}
return rez;
}
4. Number.h
#ifndef NumberH
#define NumberH
#include "Table.h"
#include "Date.h"
#include "My_date.h"
class Number : public Table::Data
{
public: int d;
int day; // число випуска
int year; // год випуска
int month; // месяц випуска
AnsiString str; // название мебели
AnsiString str1; // производитель
AnsiString str2; // вид мебели
void save(FILE *f);
void zvit(FILE *f);
int load(FILE *f);// 0 - помилка завантаження; EOF - кінець файла; >0 - завантаження успішне
};
5. Date.cpp
#include <vcl.h>
#pragma hdrstop
#include "Date.h"
bool Date::load(int d,int m,int y)
{ if(y>=1900)
{ switch(m)
{
case 1:// січень 31 день
case 3:// березень 31 день
case 5:// травень 31 день
case 7:// липень 31 день
case 8:// серпень 31 день
case 10:// жовтень 31 день
case 12:// грудень 31 день
if((d<1)||(d>31)) return false;
break;
case 2:// лютий 28-29 день
if(y%4)
{
if((d<1)||(d>29)) return false;
}
else
{
if((d<1)||(d>28)) return false;
}
break;
case 4:// квітень 30 день
case 6:// червень 30 день
case 9:// вересень 30 день
case 11:// листопад 30 день
if((d<1)||(d>30)) return false;
break;
default: return false;
}
Day = d;
Month = m;
Year = y;
X = d + m*100 + year*10000;
Name = StrToInt(d)+"."+StrToInt(m)+"."+StrToInt(y);
}
else return false;
}
bool Date::load(const AnsiString &s)
{
int x = s.Pos(".");
if(x)
{
AnsiString str = s.SubString(1,x-1);
int d = StrToInt(str);
str = s.SubString(x+1,s.Lenth-x);
int y = str.Pos(".");
if(y)
{
str = s.SubString(x+1,y+x-1);
int m = StrToInt(str);
str = s.SubString(y+x+1,s.Lenth-x-y);
int y = StrToInt(str);
return load(d,m,y);
}
else return false;
}
else return false;
}
6. Date.h
#ifndef DateH
#define DateH
class Date
{ int Day;
int Month;
int Year;
long X;
AnsiString Name;
public: bool load(int d,int m,int y);
bool load(const AnsiString &s);
int day(){return Day;}
int month(){return Month;}
int year(){return Year;}
const char& str(){return Str.c_str();}
const Date& operator=(const Date &D){Day = D.Day; Month = D.Month; Year = D.Year;}
bool operator>(const Date &D){return X>D.X;}
bool operator>=(const Date &D){return X>=D.X;}
bool operator<(const Date &D){return X<D.X;}
bool operator<=(const Date &D){return X<=D.X;}
bool operator==(const Date &D){return X==D.X;}
bool operator!=(const Date &D){return X==D.X;}
};
7. Main.cpp
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
#include "My_date.h"
#include "Date.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------------------void __fastcall TMainForm::Add(TObject *Sender)
{
Ptr p = list.record();
p->d = StrToInt(NewInt->Text);
p->day = StrToInt(Day->Text);
p->year = StrToInt(Year->Text);
p->month = StrToInt(Month->Text);
//p->x = StrToFloat(NewDouble->Text);
p->str = String->Text;
p->str1 = FirmaString->Text;
p->str2 = WidString->Text;
redraw();
}
void TMainForm::redraw()
{ List->Clear();
StrList->Clear();
for(Ptr p = list.first();p.valid();++p)
{
List->Items->Add(IntToStr(p->d));
StrList->Items->Add(p->str);
}
}
//------------------------------------------------------------------------void __fastcall TMainForm::Del(TObject *Sender)
{ int n = List->ItemIndex;
int i;
Ptr p;
for(i=0,p=list.first();p.valid()&&(i<n);++i,++p);
if((i==n)&&p.valid())
{
p.remove();
redraw();
}
}
//------------------------------------------------------------------------void __fastcall TMainForm::Find(TObject *Sender)
{ int x = StrToInt(NewInt->Text);
Ptr p;
int i;
for(i=0,p=list.first();p.valid()&&(p->d!=x);++p,++i);
if(p.valid())
{ List->ItemIndex = i;
StrList->ItemIndex = i;
NewInt->Text = IntToStr(p->d);
Day->Text = IntToStr(p->day);
Year->Text = IntToStr(p->year);
Month->Text = IntToStr(p->month);
//NewDouble->Text = FloatToStr(p->x);
String->Text = p->str;
FirmaString->Text = p->str1;
WidString->Text = p->str2;
}
else List->ItemIndex = -1;
}
//------------------------------------------------------------------------
void __fastcall TMainForm::Sort(TObject *Sender)
{
Ptr t,p,q;
for(t=list.first().next();t.valid();t=q)
{
q = t.next();
for(p=t.prev();p.valid()&&(p->d>t->d);--p);
p>>t;
}
redraw();
}
//------------------------------------------------------------------------
void __fastcall TMainForm::Save(TObject *Sender)
{
FILE *f;
if(SaveDialog->Execute())
{
f = fopen(SaveDialog->FileName.c_str(),"w");
if(f!=NULL)
{
list.save(f);
fclose(f);
}
}
}
//------------------------------------------------------------------------
void __fastcall TMainForm::ZvitClick(TObject *Sender)
{
FILE *f;
if(SaveDialog->Execute())
{
f= fopen(SaveDialog->FileName.c_str(),"w");
if(f!=NULL)
{
list.zvit(f);
fclose(f);
}
}
}
void __fastcall TMainForm::Open(TObject *Sender)
{
FILE *f;
if(OpenDialog->Execute())
{
f = fopen(OpenDialog->FileName.c_str(),"r");
if(f!=NULL)
{
list.clear();
String->Text="";
NewInt->Text="";
list.load(f);
redraw();
fclose(f);
}
}
}
//------------------------------------------------------------------------void __fastcall TMainForm::Clear(TObject *Sender)
{
list.clear();
redraw();
}
//------------------------------------------------------------------------
void __fastcall TMainForm::Select(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
TPoint point;
point.x = X;
point.y = Y;
int sel = List->ItemAtPos(point,true);
int i;
Ptr t;
if(sel>=0)
{
List->ItemIndex = sel;
StrList->ItemIndex = sel;
for(t=list.first(),i=0;t.valid()&&(i<sel);++i,++t);
if(t.valid())
{
NewInt->Text = IntToStr(t->d);
Day->Text = IntToStr(t->day);
Year->Text = IntToStr(t->year);
Month->Text = IntToStr(t->month);
//NewDouble->Text = FloatToStr(t->x);
String->Text = t->str;
FirmaString->Text = t->str1;
WidString->Text = t->str2;
}
}
}
//------------------------------------------------------------------------
void __fastcall TMainForm::Update(TObject *Sender)
{
Ptr t;
int i;
int sel;
sel = List->ItemIndex;
if(sel>=0)
{ for(t=list.first(),i=0;t.valid()&&(i<sel);++i,++t);
if(t.valid())
{
t->d = StrToInt(NewInt->Text);
t->day = StrToInt(Day->Text);
t->year = StrToInt(Year->Text);
t->month = StrToInt(Month->Text);
t->str = String->Text;
t->str1 = FirmaString->Text;
t->str2 = WidString->Text;
//t->x = StrToFloat(NewDouble->Text);
redraw();
}
}
}
//------------------------------------------------------------------------
void __fastcall TMainForm::SelectStr(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
TPoint point;
point.x = X;
point.y = Y;
int sel = StrList->ItemAtPos(point,true);
int i;
Ptr t;
if(sel>=0)
{
List->ItemIndex = sel;
StrList->ItemIndex = sel;
or(t=list.first(),i=0;t.valid()&&(i<sel);++i,++t);
if(t.valid())
{
NewInt->Text = IntToStr(t->d);
Day->Text = IntToStr(t->day);
Year->Text = IntToStr(t->year);
Month->Text = IntToStr(t->month);
String->Text = t->str;
FirmaString->Text = t->str1;
WidString->Text = t->str2;
}
}
}
//------------------------------------------------------------------------
void __fastcall TMainForm::SortNum(TObject *Sender)
{
Ptr t,p,q;
for(t=list.first().next();t.valid();t=q)
{
q = t.next();
for(p=t.prev();p.valid()&&(p->d>t->d);--p);
p>>t;
}
redraw();
}
//------------------------------------------------------------------------
void __fastcall TMainForm::SortStr(TObject *Sender)
{
Ptr t,p,q;
for(t=list.first().next();t.valid();t=q)
{
q = t.next();
for(p=t.prev();p.valid()&&(p->str>t->str);--p);
p>>t;
}
redraw();
}
//------------------------------------------------------------------------
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
Close();
}
8. Main.h
#ifndef MainH
#define MainH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "Number.h"
#include <Dialogs.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <jpeg.hpp>
#include "Date.h"
#include "My_date.h"
//------------------------------------------------------------------------
typedef MyTable<Number> Data;
typedef MyTable<Number>::Iterator Ptr;
class TMainForm : public TForm
{
__published:// IDE-managed Components
TEdit *NewInt;
TLabel *NewIntLabel;
TButton *AddButton;
TListBox *List;
TButton *DelButton;
TButton *FindButton;
TButton *SortButton;
TButton *SaveButton;
TButton *OpenButton;
TButton *Button3;
TButton *Zvit;
TSaveDialog *SaveDialog;
TOpenDialog *OpenDialog;
TEdit *String;
TLabel *Label1;
TButton *ChangeButton;
TListBox *StrList;
TLabel *NumLabel;
TLabel *StrLabel;
TEdit *FirmaString;
TEdit *WidString;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TLabel *Label8;
TEdit *Day;
TEdit *Month;
TEdit *Year;
TButton *Button1;
TImage *Image1;
void __fastcall Add(TObject *Sender);
void __fastcall Del(TObject *Sender);
void __fastcall Find(TObject *Sender);
void __fastcall Sort(TObject *Sender);
void __fastcall Save(TObject *Sender);
oid __fastcall Open(TObject *Sender);
void __fastcall Clear(TObject *Sender);
void __fastcall Select(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y);
void __fastcall Update(TObject *Sender);
void __fastcall SelectStr(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y);
void __fastcall SortNum(TObject *Sender);
void __fastcall SortStr(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private:// User declarations
Data list;
void redraw();
public:// User declarations
__fastcall TMainForm(TComponent* Owner);
};
9. Magazin.cpp
#include <vcl.h>
#include "Date.h"
#pragma hdrstop
USERES("Magazin.res");
USEFORM("Main.cpp", MainForm);
USEUNIT("Table.cpp");
USEUNIT("Number.cpp");
USEUNIT("Date.cpp");
USEFILE("Date.h");
USEUNIT("My_date.cpp");
USEUNIT("data.cpp");
//------------------------------------------------------------------------WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
&ProgramForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
... Чарка, стакан 4 320 2 80 400 Столові прибори (комплект) 4 320 2 80 400 Далі наведемо характеристику посуду, який будуть використовувати в комплексному закладі ресторанного господарства (табл. 2.8–2.11). Таблиця 2.8. Характеристика та призначення класичного вітчизняного порцелянового та фаянсового посуду Найменування Розміри, мм Місткість, см3, порцій Призначення ...
... , що в свою чергу призводить до збільшення прибутку. Об’єктом дослідження в курсовій роботі виступає логістична система розподілу продукції на ЖКУВП “Біатрон-3”. Предметом дослідження є сукупність методичних та практичних проблем управління логістичною системою розподілу продукції. Метою написання курсової роботи є вивчення теоретичних аспектів управління логістичною системою розподілу та дослі ...
... кількість робочих місць, та незначний обсяг пенсійних виплат за віком, тиснуть на свідомість, та впливають на поведінку людей. Це має велике значення на становлення та теоретичні аспекти ділових взаємовідносин саме в апараті управління. Тому, перше місце, на нашу думку, займає саме вплив особистісної характеристики керівника (групи, підрозділу, відділу і т. інш.). У зв’язку з цим, ми вважаємо, ...
... для проведення перетворень. Але при такому підході може виникнути ситуація, при якій проведення перетворень нічого не дасть. Справа в тому, що в силу різночасовості змін подій, що відбуваються в параметрах, що впливають на конкурентоспроможність підприємства в стадії загальної зрілості деякі з них будуть знаходитись в стані занепаду, і на їх зміни буде потрібно багато часу. Тому у відповідності з ...
0 комментариев