Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Builder C++ / 4 сообщений из 4, страница 1 из 1
21.05.2014, 18:34
    #38647986
asyulya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Builder C++
Здравствуйте! Нужна помощь, дали задание написать программу "автомат по продаже продуктов" с обязательным использованием классов. я ее написала на Builder c++, только не смогла найти применение классов, помогите пожалуйста, какие можно добавить классы и куда?
Код программы:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
float sum = 0;
float ost = 0;
float opl = 0;
//Zakaz vybor;
float ch2,ch9,ch10,ch11,ch12,ch13,ch14;
float ch1,ch3,ch4,ch5,ch6,ch7,ch8;
int flg = 0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
ch1=StrToFloat(Form1->Edit1->Text);
if(Form1->CheckBox1->Checked)
sum=sum+ch1;
else
sum=sum-ch1;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

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

void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
ch2=StrToFloat(Form1->Edit2->Text);
if(Form1->CheckBox2->Checked)
sum = sum + ch2;
else sum=sum-ch2;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

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

void __fastcall TForm1::CheckBox3Click(TObject *Sender)
{
ch3=StrToFloat(Form1->Edit3->Text);
if(Form1->CheckBox3->Checked)
{
sum=sum+ch3;
}
else sum=sum-ch3;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox4Click(TObject *Sender)
{
ch4=StrToFloat(Form1->Edit4->Text);
if(Form1->CheckBox4->Checked)
{
sum=sum+ch4;
}
else sum=sum-ch4;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);
}

//---------------------------------------------------------------------------

void __fastcall TForm1::CheckBox5Click(TObject *Sender)
{
ch5=StrToFloat(Form1->Edit5->Text);
if(Form1->CheckBox5->Checked)
{
sum=sum+ch5;
}
else sum=sum-ch5;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

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

void __fastcall TForm1::CheckBox6Click(TObject *Sender)
{
ch6=StrToFloat(Form1->Edit6->Text);
if(Form1->CheckBox6->Checked)
{
sum=sum+ch6;
}
else sum=sum-ch6;
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

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

void __fastcall TForm1::CheckBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
ch1=StrToFloat(Form1->Edit1->Text);
Form1->Label4->Caption="В сумме";
Form1->Label3->Caption=FloatToStr(sum);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->CheckBox1->Checked=false;
Form1->CheckBox2->Checked=false;
Form1->CheckBox3->Checked=false;
Form1->CheckBox4->Checked=false;
Form1->CheckBox5->Checked=false;
Form1->CheckBox6->Checked=false;
/*Form1->CheckBox7->Checked=false;
Form1->CheckBox8->Checked=false;
Form1->CheckBox9->Checked=false;
Form1->CheckBox10->Checked=false;
Form1->CheckBox11->Checked=false;
Form1->CheckBox12->Checked=false;
Form1->CheckBox13->Checked=false;
Form1->CheckBox14->Checked=false; */
Form1->Label12->Caption="";
Form1->Label3->Caption="";
Form1->Label4->Caption="";
Form1->Label5->Caption="";
Form1->Label6->Caption="";
Form1->Label7->Caption="";
Form1->Label8->Caption="";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(flg == 1)
{
randomize();
opl = random(100000);
}
else
opl=StrToFloat(Form1->Edit15->Text);
if (opl>sum)
{
ost=opl-sum;
Form1->Label7->Caption="К оплате:" ;
Form1->Label8->Caption=FloatToStr(opl) ;
Form1->Label5->Caption="Возьмите сдачу:" ;
Form1->Label6->Caption=FloatToStr(ost);
Form1->Label12->Caption = "Спасибо за покупку!";
}
if (opl<sum)
{
Form1->Label7->Caption="К оплате" ;
Form1->Label8->Caption=FloatToStr(opl) ;
Form1->Label5->Caption="Доплатите" ;
Form1->Label6->Caption=FloatToStr(sum-opl);
}
if (opl==sum)
{
Form1->Label7->Caption="К оплате" ;
Form1->Label8->Caption=FloatToStr(opl) ;
Form1->Label5->Caption="Прямо в точку" ;
Form1->Label6->Caption="";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
...
Рейтинг: 0 / 0
21.05.2014, 21:13
    #38648100
Builder C++
asyulya,
Я так думаю, что необходимымй минимум будет состоять:
первый класс - описатель продуктов. Там должна быть обязательно цена продукта и остаток в автомате (чтобы не продать то, чего нет в наличии), а также методы по вводу параметров (цены и начального количества) и продаже товара.

второй класс - буфер-накопитель, который хранит выбор пользователя и возвращает итоговую сумму заказа.

третий класс - расчет за продукты, где анализируется переданная сумма и сравнивается с тем, на какую сумму сохранено товаров в накопителе.

Сначала нужно прописать алгоритм взаимодействия этих классов. И только потом навешивать всякие "рюшечки" в виде форм, кнопочек, обработчиков нажатия клавиш мыши и т.д.

Перечень классов может быть расширен и ограничен только Вашей фантазией...
...
Рейтинг: 0 / 0
21.05.2014, 21:44
    #38648120
asyulya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Builder C++
Станислав С...кий, спасибо, что ответили, но не могли бы вы, пожалуйста в примере как-то описать, с классами у меня туго, к сожалению. Мне главное присутствие классов в коде, может есть какие-то "бесполезные", чтобы код не переписывать, а просто добавить для количества, сроки поджимают(
...
Рейтинг: 0 / 0
22.05.2014, 07:31
    #38648316
Builder C++
asyulyaСтанислав С...кий, спасибо, что ответили, но не могли бы вы, пожалуйста в примере как-то описать, с классами у меня туго, к сожалению. Мне главное присутствие классов в коде, может есть какие-то "бесполезные", чтобы код не переписывать, а просто добавить для количества, сроки поджимают(

Во-первых, "просто так" делать ничего не нужно.
Во-вторых, если Вы пошли учиться, то это был Ваш собственный выбор, никто под дулом автомата Вас не заставлял. Так что, ноги в руки и "Учиться, учиться, учиться! И еще раз учиться!", как говорил великий Ленин (умный был человек)

Набросок одного из классов (нужно проверять, убирать ошибки и т.д.):

class Product {
private:
int ostatok;
double cena;

public:
//Конструкторы (перегруженные)
product() {ostatok = (int)0; price = (double)0;}
product(double price, int kol) {
if kol >= 0
ostatok = kol;
else
ostatok = (int)0;

if price >=(double)0
cena = price;
else
cena = (double)0;
}
// надо добавить еще конструктор копирования.

// сервисные функции
double getprice () {return cena;}
int getrest() {return ostatok;}
void setrest(int kol) {ostatok = kol;}
void setprice(double price) {cena = price;}
int add (int kol) {ostatok +=kol; return ostatok;}
int sale () {
if ostatok = (int)0
return 0;
else
{
ostatok -=1;
return 1;
}
}
...
}
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Builder C++ / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]