Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VAFER
2 / 2 / 0
Регистрация: 08.01.2011
Сообщений: 47
#1

Структурные файлы. Найти все события, произошедшие в данный промежуток времени. - C++

22.01.2011, 17:36. Просмотров 491. Ответов 0
Метки нет (Все метки)

Доброе время суток! Выручите пожалуйста, еще раз.

/*Дан файл, содержащий сведения об исторических событиях :
название события, число, месяц и год. Найти все события,
произошедшие в данный промежуток времени. Границы промежутка
задаются числом, месяцем и годом.*/
На форуме где-то находил подобную задачу (потому и слизал), переделал под себя отчасти.
Как то не получается у самого(((.

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <locale.h>
#include <iostream.h>
#pragma pack(1)
struct block{
        int Number [2];
        int month[2];
        int year[4];
        char Event[500];
};
#pragma pack(1)
 
FILE *f;
char ss[21];
void open(void);
void menu(void);
void add(void);
void view(void);
void f3(void);
int main(){
        cout<< " Дан файл, содержащий сведения об исторических событиях :\n\
        название события, число, месяц и год. Найти все события,\n \
        произошедшие в данный промежуток времени. Границы промежутка\n \
        задаются числом, месяцем и годом\n";
    cout<< "-------------------------------------------------------------------------------\n";
        
        open();
        menu();
        while(true){
                printf("\r Vyberite punkt menyu: ");
                char c;
                c = getche();
                switch(c){
                        case '1': add(); menu(); break;
                        case '2': view(); menu(); break;
                        case '3': f3(); menu(); break;
                        case '4': fclose(f); exit(0);
                }
        }
}
 
void menu(void){
        cout<<"\n";
        cout<<"1. Dobavlenie zapisi\n";
        cout<<"2. Prosmotr bazy\n";
        cout<<"3. Poisk poisk sobytiya po date\n";
        cout<<"4. Exit\n";
}
 
void open(void){
        f=fopen("Event.dat","rb+");
        if (f==NULL){
                cout<<"Ne mogu otkryt' \"Event.dat\".\n";
                getch();
                exit(-1);
        }
}
 
void add(void){
        int n;
        cout<<"\n Dobavlenie \n Exit - 0\n\n";
        block a;
        while(true){
                cout<<"Vvedite chislo : ";
                n = scanf ("%20[^\n]s", a.Number, 2);
                fflush(stdin);
                if (n!=1) a.Number[0]='\0';
                if(a.Number[0]=='0'||a.Number[0]==0) break;
 
                cout<<"Vvedite mesyac : ";
                n = scanf("%11[^\n]s", a.month, 2);
                fflush(stdin);
                if (n!=1) a.month[0]='\0';
                if(a.month[0]=='0'||a.month[0]==0) break;
 
                cout<<"Vvedite god : ";
                n = scanf("%20[^\n]s", a.year, 4);
                fflush(stdin);
                if (n!=1) a.year[0]='\0';
                if(a.year[0]=='0'||a.year[0]==0) break;
 
                cout<<"Vvedite sobytie : ";
                n = scanf("%20[^\n]s", a.Event, 500);
                fflush(stdin);
                if (n!=1) a.Event[0]='\0';
                if(a.Event[0]=='0'||a.Event[0]==0) break;
 
                fwrite(&a,sizeof(block),1,f);
        }
}
 
void view(void){
        fseek(f,0,SEEK_SET);
        cout<<"\n Prosmotr bazy...\n";
        cout<< "\t Chislo: \t Mesyac: \t God: \t Sobytie:\n";
       block a;
        while(true){
                if(fread(&a,sizeof(block),1,f)<1) break;
                printf("\t%s  \t\t%s \t\t%s \t%s\n",a.Number,a.month,a.year,a.Event);
        }
}
 
void f3(void){
        int n=0, result=0, cmpr=0;
        cout<<"Vvedite datu sobytiya(v formate: chislo mesyac god ):\n";
        n = scanf("%20[^\n]s", ss, 21);
        fflush(stdin);
        if (n!=1) ss[0]='\0';
        fseek(f,0,SEEK_SET);
        cout<<"Поиск...\n";
        block a;
        while(true){
               
                
                }
        //setlocale (LC_ALL,".1251");
        if (result==0) printf("\nПо Вашему запросу ничего не найдено.\n");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 17:36     Структурные файлы. Найти все события, произошедшие в данный промежуток времени.
Посмотрите здесь:

Найти промежуток времени, в течение которого в музее одновременно находилось максимальное число посетителей - C++
помогите пожалуйста исправить ошибки в коде: #include &lt;iostream&gt; using namespace std; void main() { int N,i,C,...

Вычислить промежуток времени - C++
линейные алгоритмы Заданы моменты начала и конца некоторого периода времени в часах, минутах и секундах. Найти продолжительность этого...

Определить промежуток времени - C++
Добрый вечер, уважаемые форумчане. Никак не могу сдвинуться с места со свое задачей: &quot;Известные данные о статьях.Каждая статья...

Промежуток времени, включающий полночь - C++
Вечер добрый, Задача такая : Start = 19:52:35; h:m:s Stop = 22:15:15; while(1) { now = rtc.now(); if(now&lt;Stop &amp;&amp; now...

Таймер - получить промежуток времени - C++
есть форма с таймером и 2 кнопками :&quot;старт&quot;и &quot;стоп&quot; ну и тест. при нажатиии на старт запускается таймер и пользователь начинает отвечать...

Выполнение действий через заданный промежуток времени - C++
Нужен самый простой пример програмки на си++ (работаю в вижуал студио), которая будет каждый равный промежуток времени выполнять какоето...

Бесконечный цикл с повторением через промежуток времени - C++
как создать бесконечный цикл с повторением через промежуток времени? вот цикл, который надо повторять: #include&lt;iostream&gt; ...

Перелистывание картинок через определённый промежуток времени - C++
К примеру, мне нужно что-бы при запуске конвертировании программы, 5 картинок менялись собой местами беспрерывно.Можно это сделать в C++...

Таймер (выполнение кода через заданный промежуток времени) - C++
Всем привет, подскажите, как создать внутренний таймер, то есть через что бы через некоторое количество секунд, программа опять выполняла...

Определить сколько амёб будет через заданный промежуток времени, если известна скорость деления амёбы - C++
Нужно решить задачу: Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определите сколько амёб будет через 3, 6, 9, 12 ... 24 часа. ...

Записать в данный массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования - C++
Здравствуйте! Прошу вас о помощи! Помогите пожалуйста написать код программы! &quot;Дан массив чисел, содержащий n элементов. Записать в этот...

Есть промежуток от [1, n]. Требуется вывести все простые числа - C++
Вот есть промежуток от 1 до n. Нужно вывести все простые числа на этом промежутке. Вопрос у меня лишь в том, как выполнить проверку на...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru