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

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

Восстановить пароль Регистрация
 
VAFER
2 / 2 / 0
Регистрация: 08.01.2011
Сообщений: 47
22.01.2011, 17:36     Структурные файлы. Найти все события, произошедшие в данный промежуток времени. #1
Доброе время суток! Выручите пожалуйста, еще раз.

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

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     Структурные файлы. Найти все события, произошедшие в данный промежуток времени.
Посмотрите здесь:

как кинуть messagebox и при этом все остановить все события основного окна C++
Таймер - получить промежуток времени C++
Есть промежуток от [1, n]. Требуется вывести все простые числа C++
C++ Записать в данный массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования
C++ Бесконечный цикл с повторением через промежуток времени
C++ Определить, сколько времени прошло от одного события до другого
C++ Найти временной промежуток в часах, минутах и секундах
C++ Промежуток времени, включающий полночь

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

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

Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru