Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Borland C++ Builder

4.8K
01 мая 2007 года
anty
89 / / 29.10.2006
Народ помогите поправить программку!

Программа должна вычислять день недели и разницу между двумя датами. В консоле я ее уже написал, но вот с формами есть проблемы.

if (RadioButton1=Checked), то выполняется 1-е задание. Данные берутся с Edit1,Edit2,Edit3. А Edit4,Edit5,Edit6- становятся недоступными для заполнения.

else
Все доступно..но с этим я разобрался.

Еще после переключения RadioButton1 и RadioButton2, нужно чтоб все поля очищялись.

2-а дня назад все работала, но сейчас почему то 1-е задание не работает, незнаю даже почему.

Помогите чем можете :(

Исходник:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int d,m,y,day,a,n;
int d2,m2,y2;
int F1,F2;

     d=StrToInt(Edit1->Text);
     m=StrToInt(Edit2->Text);
     y=StrToInt(Edit3->Text);

    d2=StrToInt(Edit4->Text);
    m2=StrToInt(Edit5->Text);
    y2=StrToInt(Edit6->Text);


        if(RadioButton1->Checked)      //переключатель "Узнать День Недели"
     {


         a=(14-m)/12;
         y=y-a;
         n=m+12*a-2;
         day=(7000+(d+y+y/4-y/100+y/400+(31*n)/12))%7;

         switch(day)
         { case 0:  Label10->Caption="Воскресенье";      break;
           case 1:  Label10->Caption="Понедельник";      break;
           case 2:  Label10->Caption="Вторник";          break;
           case 3:  Label10->Caption="Среда";            break;
           case 4:  Label10->Caption="Четверг";          break;
           case 5:  Label10->Caption="Пятница";          break;
           case 6:  Label10->Caption="Суббота";          break;
           }
        }

       else                                //переключатель "Узнать разницу между датами"
       {

       try{
        if (m==1 || m==2)
        {
                F1=365*y+d+31*(m-1)+int((y-1)/4)-int(3/4*(int(y-1)/100+1));
                        }
   else
        {
                F1=365*y+d+31*(m-1)-int(0.4*m+2.3)+int(y/4)-int(3/4*(int(y/100)+1));
                        }

        if (m2==1 || m2==2)
        {
        F2=365*y2+d2+31*(m2-1)+int((y2-1)/4)-int(3/4*(int(y2-1)/100+1));
                        }
   else
       { F2=365*y2+d2+31*(m2-1)-int(0.4*m2+2.3)+int(y2/4)-int(3/4*(int(y2/100)+1));
                        }

        }
       catch (EInvalidOp &e)
       {
                ShowMessage ("Необходимо ввеси данные");
                }

      }


      Label10->Caption=abs(F1-F2);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
Label10->Caption= " ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Label10->Caption= " ";
}
//---------------------------------------------------------------------------
930
01 мая 2007 года
Sash1k
115 / / 27.04.2007
очищаем все поля:
 
Код:
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
 Label10->Caption= " ";
 Edit1 -> Clear();
 Edit2 -> Clear();
 Edit3 -> Clear();
 Edit4 -> Clear();
 Edit5 -> Clear();
 Edit6 -> Clear();
}


и для RadioButton2Click аналогично.
4.8K
01 мая 2007 года
anty
89 / / 29.10.2006
Все почти работает, только вместо Дней недели, выводит числа =\
подскажите в чем дело!?
930
01 мая 2007 года
Sash1k
115 / / 27.04.2007
anty, кинь исходники своей программы, доведу её до ума.
2.1K
01 мая 2007 года
mainigor
151 / / 21.10.2005
а тебе нужно было бы
Label - ы в массив :
 
Код:
char* day[7] = {"Понедельник","Вторник"..... и т.д. }
TLabel label[7];
for(int i=0; i<7; i++)
{
  label = new TLabel(this);
  label->Caption = day[abs(F1-F2)];
}

було бы веселей
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог