С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
1

Структура: фамилия, дата , время

13.12.2011, 15:53. Показов 1329. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уже который день пытаюсь сделать код чтоб вводилась структура, фамилия, дата , время и как то попытки не увенчались успехом, понятно что из за малого знания языка с++ и знания функций самого билдера, и понятно что надо изучать потихоньку начал читать учебник Архангельского, но его по количеству страниц буду долго читать учитывая маленькое количество свободного времени, а сдавать надо сейчас задание, нашел код который полностью соответствует моему заданию, но хочу понять весь код, часть у кода уже была с комментариями, где то я добавил к каждой строке как понимал код, но может я не правильно написал, у меня просьба посмотрите код, если можно поставьте комментарии если поймете как выполняется программа, если можно на против каждой строки, или хотя бы блоков...
Вот код Модуля он понадобится я так думаю для понимания
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <FileCtrl.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TGroupBox *GroupBox1;
        TMemo *Spisok;
        TDateTimePicker *DateTimePicker1;
        TLabeledEdit *FIO1;
        TDateTimePicker *DateTimePicker2;
        TButton *Button1;
        TGroupBox *GroupBox2;
        TLabeledEdit *FIO2;
        TButton *Button2;
        TLabel *Label1;
        TLabel *Count;
        TLabel *Label2;
        TLabel *Rec;
        TMemo *db;
        TMemo *Search;
        TMemo *buf;
        TFileListBox *FileListBox1;
        TButton *Button3;
        void __fastcall SaveRec(AnsiString Dname,AnsiString Fname,AnsiString time);
        void __fastcall SearchRec(AnsiString Dname);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Вот код самой реализации
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <vcl.h>
#pragma hdrstop
#include <io.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
struct man
{
        AnsiString fio;
        AnsiString date;
        AnsiString time;
} m[1000];
 
int C = 0;
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SearchRec(AnsiString Dname) // ищет сколько раз и когда отмечался человек
{
        if (DirectoryExists("List\\" + Dname))   // проверка. если человек есть в базе - то у него должна быть папка в List. если она есть то выполнять следующее
        {
                Button3->Show(); // показать кнопку "подробнее"
                FileListBox1->Mask = "List\\" + Dname + "\\*.*"; // меняем маску  ФайлЛистБокса для того чтобы попасть в каталок человека. Dname - это сокращенно DirName . тоесть каждый новий человек. будет иметь свою папку в List. а в ней будут его данные - в какой день и в какое время был отмечен.
                for (int i=0,k=0; i < FileListBox1->Items->Count; i++) // начало цикла от І=0 до количества файлов в папке Dname
                {
                        Search->Lines->Add("Дата: " + FileListBox1->Items->Strings[i]); // выводим дату
                        buf->Lines->LoadFromFile("List\\" + Dname + "\\" + FileListBox1->Items->Strings[i]); // загружаем в буфер  файл даты
                        Search->Lines->Add("Посещений: " + (AnsiString)buf->Lines->Count); // выводим количество посещений
                        k += buf->Lines->Count;//cчетчик  общего количества посещений
                        Search->Lines->Add(buf->Lines->Text);//вывод всего времени в определенный день
                        Search->Lines->Delete(Search->Lines->Count-1); //удаление предпоследней строки
                        Search->Lines->Add("=================================");
                        Count->Caption = k;  //обновляем общий счетчик
                }
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SaveRec(AnsiString Dname,AnsiString Fname,AnsiString time)
{
        CreateDir("List\\" + Dname);//  создание каталога с файлом внутри
        Fname = "List\\" + Dname + "\\" + Fname;
        buf->Clear();//  очистка буфера
        if (access(Fname.c_str(),0) == 0)
        {
                buf->Lines->LoadFromFile(Fname); //  помещение в буфер
                buf->Lines->Add(time); // загрузка в буфер
                buf->Lines->SaveToFile(Fname); // сохранение файла с информацие из буфера
        }
        else
        {
                buf->Lines->Add(time); // загрузка в буфер
                buf->Lines->SaveToFile(Fname); // сохранение файла с информацией из буфера
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        MkDir("List");
        if ((access("List\\db.txt",0)) == 0)
        {
                db->Lines->LoadFromFile("List\\db.txt");
                Rec->Caption = db->Lines->Count/3;
                for (int i=0,j=0; j < db->Lines->Count;i++,j+=3)
                {
                        m[i].fio = db->Lines->Strings[j];
                        m[i].date = db->Lines->Strings[j+1];
                        m[i].time = db->Lines->Strings[j+2];
                        Spisok->Lines->Add("Ф.И.О: " + m[i].fio);
                        Spisok->Lines->Add("Дата: " + m[i].date);
                        Spisok->Lines->Add("Время: " + m[i].time);
                        Spisok->Lines->Add("=================================");
                }
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        if (FIO1->Text == "")
                ShowMessage("Введите Ф.И.О!");
        else
        {
                C = (db->Lines->Count/3);
                m[C].fio = FIO1->Text;
                m[C].date = DateTimePicker1->Date.DateString();
                m[C].time = DateTimePicker2->Time.TimeString();
                Spisok->Lines->Add("Ф.И.О: " + m[C].fio);
                Spisok->Lines->Add("Дата: " + m[C].date);
                Spisok->Lines->Add("Время: " + m[C].time);
                Spisok->Lines->Add("=================================");
                db->Lines->Add(FIO1->Text);
                db->Lines->Add(DateTimePicker1->Date.DateString());
                db->Lines->Add(DateTimePicker2->Time.TimeString());
                Rec->Caption = db->Lines->Count/3;
                db->Lines->SaveToFile("List\\db.txt");
                SaveRec(m[C].fio,m[C].date,m[C].time);
                FIO1->Clear();
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        Button3->Hide();
        Count->Caption = 0;
        Search->Clear();
        if (FIO2->Text == "")
                ShowMessage("Введите Ф.И.О!");
        else
                SearchRec(FIO2->Text);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        if (Button3->Caption == "Подробно=>")
        {
                Form1->ClientWidth = 730;
                Search->Show();
                Button3->Caption = "<=Скрыть";
        }
        else
        {
                Form1->ClientWidth = 500;
                Search->Hide();
                Button3->Caption = "Подробно=>";
        }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2011, 15:53
Ответы с готовыми решениями:

Время и дата. Время жизни программы
Сделал вывод даты в Edit, но столкнулся с проблемой, время не &quot;идёт&quot;. AnsiString Days =...

Дата и время
Здравствуйте!!! Мне нужно записать дату и время в файл *ini. Как это сделать???

Дата и время в имени файла
День добрый, есть программа вычисляющая 2 функции, необходимо сохранить результаты из поля memo в...

MaskEdit(дата и время). иди Edit
Привет всем. Я использую два MaskEditа. В одном мне нужно в водить дату, а в другом время... Я их...

1
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 3
13.12.2011, 19:13 2
 Комментарий модератора 
lexflax, Правила
3.3. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Изначальное название темы: "помогите понять пожалуйста".


Добавлено через 32 минуты
чтобы понять представленный вами так называемый код, достаточно было карманного англо-русского словарика
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <vcl.h>
#pragma hdrstop
#include <io.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
// собственно, структура и ее алименты :)
struct man
{
  AnsiString fio;
  AnsiString date;
  AnsiString time;
} m[1000];
 
int C = 0;
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SearchRec(AnsiString Dname) // ищет сколько раз и когда отмечался человек
{
  if (DirectoryExists("List\\" + Dname))   // проверка. если человек есть в базе - то у него должна быть папка в List. если она есть то выполнять следующее
  {
    Button3->Show(); // показать кнопку "подробнее"
    FileListBox1->Mask = "List\\" + Dname + "\\*.*"; // меняем маску  ФайлЛистБокса для того чтобы попасть в каталок человека. Dname - это сокращенно DirName . тоесть каждый новий человек. будет иметь свою папку в List. а в ней будут его данные - в какой день и в какое время был отмечен.
    for (int i=0,k=0; i < FileListBox1->Items->Count; i++) // начало цикла от І=0 до количества файлов в папке Dname
    {
      Search->Lines->Add("Дата: " + FileListBox1->Items->Strings[i]); // выводим дату
      buf->Lines->LoadFromFile("List\\" + Dname + "\\" + FileListBox1->Items->Strings[i]); // загружаем в буфер  файл даты
      Search->Lines->Add("Посещений: " + (AnsiString)buf->Lines->Count); // выводим количество посещений
      k += buf->Lines->Count;//cчетчик  общего количества посещений
      Search->Lines->Add(buf->Lines->Text);//вывод всего времени в определенный день
      Search->Lines->Delete(Search->Lines->Count-1); //удаление предпоследней строки
      Search->Lines->Add("=================================");
      Count->Caption = k;  //обновляем общий счетчик
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SaveRec(AnsiString Dname,AnsiString Fname,AnsiString time)
{
  CreateDir("List\\" + Dname);//  создание каталога с файлом внутри
  Fname = "List\\" + Dname + "\\" + Fname;
  buf->Clear();//  очистка буфера
  if (access(Fname.c_str(),0) == 0)
  {
    buf->Lines->LoadFromFile(Fname); //  помещение в буфер
    buf->Lines->Add(time); // загрузка в буфер
    buf->Lines->SaveToFile(Fname); // сохранение файла с информацие из буфера
  }
  else
  {
    buf->Lines->Add(time); // загрузка в буфер
    buf->Lines->SaveToFile(Fname); // сохранение файла с информацией из буфера
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  MkDir("List");
  if ((access("List\\db.txt",0)) == 0)
  {
    db->Lines->LoadFromFile("List\\db.txt"); // загрузка в мемо строк из файла 
    Rec->Caption = db->Lines->Count/3; // отображение в лябель количества строк в меме
    for (int i=0,j=0; j < db->Lines->Count;i++,j+=3) // цикл по мтрокам мемы
    {
      m[i].fio = db->Lines->Strings[j]; // присвоение элементам структуры
      m[i].date = db->Lines->Strings[j+1]; // значения строк мемо
      m[i].time = db->Lines->Strings[j+2];
      Spisok->Lines->Add("Ф.И.О: " + m[i].fio); // добавление в другое мемо 
      Spisok->Lines->Add("Дата: " + m[i].date); // элементов структуры
      Spisok->Lines->Add("Время: " + m[i].time);
      Spisok->Lines->Add("=================================");
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (FIO1->Text == "") // LabeledEdit если пуст
    ShowMessage("Введите Ф.И.О!"); // показ сообщения
  else // иначе
  {
    C = (db->Lines->Count/3); // присваиваем значение переменной 
    m[C].fio = FIO1->Text; // присваиваем элементу структуры текст LabeledEdit
    m[C].date = DateTimePicker1->Date.DateString(); // присваиваем элементу структуры значение
    m[C].time = DateTimePicker2->Time.TimeString(); // присваиваем элементу структуры значение
    Spisok->Lines->Add("Ф.И.О: " + m[C].fio); // добавляем строки в мемо
    Spisok->Lines->Add("Дата: " + m[C].date); // добавляем строки в мемо
    Spisok->Lines->Add("Время: " + m[C].time); // добавляем строки в мемо
    Spisok->Lines->Add("=================================");
    db->Lines->Add(FIO1->Text); // добавляем строки в мемо
    db->Lines->Add(DateTimePicker1->Date.DateString()); // добавляем строки в мемо
    db->Lines->Add(DateTimePicker2->Time.TimeString()); // добавляем строки в мемо
    Rec->Caption = db->Lines->Count/3; // добавляем строки в мемо
    db->Lines->SaveToFile("List\\db.txt"); // сохраняем мемо в файл
    SaveRec(m[C].fio,m[C].date,m[C].time); // самописная функция
    FIO1->Clear(); // очищаем мему
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Button3->Hide(); // прячем кнопку
  Count->Caption = 0; // сбрасываем значение в метке в 0
  Search->Clear(); // очищаем еще одно мемо (с мемами - полный дурдом)
  if (FIO2->Text == "") // если LabeledEdit пустой
    ShowMessage("Введите Ф.И.О!"); // показываем сообщение
  else // иначе
    SearchRec(FIO2->Text); // самописная функция
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  if (Button3->Caption == "Подробно=>") // если заголовок третьей кнопки
  {
    Form1->ClientWidth = 730; // ширина клентской части формы
    Search->Show(); // показать мему
    Button3->Caption = "<=Скрыть"; // надпись на третьей кнопке
  }
  else // иначе
  {
    Form1->ClientWidth = 500; // ширина клентской части формы
    Search->Hide(); // спрятать мему
    Button3->Caption = "Подробно=>"; // надпись на третьей кнопке
  }
}
0
13.12.2011, 19:13
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2011, 19:13
Помогаю со студенческими работами здесь

DateTimePicker изменяем время меняется дата
Увааемые коллеги возник такой вопрос! В ВСВ с++ 6.0 использую стандартный DateTimePicker из...

Как найти элемент дата и время в C++ Builder?
В какой вкладке Borland C++ 6.0 , найти DateTimePicker? Не могу найти

Получение полной даты (дата и время) из двух DateTimePicker
Нужно ввести дату и время. Делаю таким образом: TDateTime dates,times,result; dates =...

Организовать хранение данных в файле в следущую структуру, фио, дата, время
Задание Организовать хранение данных в файле в следущую структуру, фио, дата, время 1) Написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru