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

Переделать программу, чтобы вывод осуществлялся в текстовый файл - C++

Восстановить пароль Регистрация
 
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 25
03.03.2013, 18:52     Переделать программу, чтобы вывод осуществлялся в текстовый файл #1
Здравствуйте. Помогите, пожалуйста, переделать программу, чтобы ввод и вывод данных осуществлялся в текстовые файлы (input, output). Вот задание:
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:
- номер рейса;
- тип автобуса;
- пункт назначения;
- время отправления;
- время прибытия на конечный пункт.
Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт на-значения раньше заданного времени.
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
#include <iostream>
#include <string.h>
#include <iomanip>
using namespace std;
struct Trip                                         
{                                                   
          
    int      number;                                   
    char*    type;                             
    char*     destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
int main() {
    char* type = new char[20];
 
struct Trip indexes[100];
 char dPoint[20];
    double time = 0.0;
    int  q,i;
 
 
 
cout << "Vvedite kolichestvo reisov: ";
cin >> q;
for ( i = 0; i < q; i++)
{
    indexes[i].destination = new char[20];
        indexes[i].type = new char[20];
}
for ( i = 0; i < q; i++) 
{
cout << "-------------------------------" << endl;
cout << "Nomer reisa: "; 
cin >> indexes[i].number;
cout << "Tip reisa: "; 
cin >> indexes[i].type;
cout << "Mesto nazhacheniya: ";
cin >> indexes[i].destination;
cout << "Vremya otpravleniya: "; 
cin >> indexes[i].otTime;
cout << "Vremya pribitiya: "; 
cin >> indexes[i].prTime;
cout << "-------------------------------" << endl;
 
}
 
 cout <<"Vvedite mesto naznacheniya: "<<endl;
   cin.get();
   cin.getline(dPoint, 20);
    cout<<"Vvedite vremya pribitiya(hours.minutes): ";
    cin >> time;
    cout<<endl<<"-----------------------------------------------" <<endl;
    for( i=0; i < q; i++)
    {
    char *str  = indexes[i].destination;
        if(strcmp(dPoint, str) == 0)
        if(indexes[i].prTime < time)
        {
           cout.width(21);
           cout <<"Nomer reysa: "<<indexes[i].number<<endl;
           cout.width(21);
           cout<<"Tip reysa: "<<indexes[i].type<<endl;
           cout.width(21);
           cout<<"Mesto nazhacheniya: "<<indexes[i].destination<<endl;
           cout.width(19);
           cout<<"Vremia otpravleniya: "<<fixed<<setprecision(2)<<indexes[i].otTime<<endl;
           cout.width(21);
           cout<<"Vremya pribitiya: "<<fixed<<setprecision(2)<<indexes[i].prTime << endl;
           cout <<"-----------------------------------------------" << endl;
            
        }
 
    }
 
    return 0;
}
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
03.03.2013, 19:48     Переделать программу, чтобы вывод осуществлялся в текстовый файл #2
делаешь
C++
1
#include <fstream>
в main
C++
1
std::ofstream ofs("filename.txt");
заменяешь все cout на ofs
после вывода добавляешь
C++
1
ofs.close();
и будет тебе счастье))
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 25
05.03.2013, 13:25  [ТС]     Переделать программу, чтобы вывод осуществлялся в текстовый файл #3
Кудаив, Сделал всё, как вы сказали, но почему-то не записывает она результаты в текстовый файл, она его создаёт, но он оказывается пустым
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 04:22     Переделать программу, чтобы вывод осуществлялся в текстовый файл #4
Цитата Сообщение от Dark Illusion Посмотреть сообщение
Кудаив, Сделал всё, как вы сказали, но почему-то не записывает она результаты в текстовый файл, она его создаёт, но он оказывается пустым
Код покажите.
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 25
06.03.2013, 12:52  [ТС]     Переделать программу, чтобы вывод осуществлялся в текстовый файл #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Код покажите.
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
#include <iostream>
#include <string.h>
#include <iomanip>
#include <fstream>
using namespace std;
struct Trip                                         
{                                                   
          
    int      number;                                   
    char*    type;                             
    char*     destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
int main() {
    char* type = new char[20];
    std::ofstream ofs("filename.txt");
struct Trip indexes[100];
 char dPoint[20];
    double time = 0.0;
    int  q,i;
 
 
 
cout << "Vvedite kolichestvo reisov: ";
cin >> q;
for ( i = 0; i < q; i++)
{
    indexes[i].destination = new char[20];
        indexes[i].type = new char[20];
}
for ( i = 0; i < q; i++) 
{
cout << "-------------------------------" << endl;
cout << "Nomer reisa: ";
cin >> indexes[i].number;
cout << "Tip reisa: ";
cin >> indexes[i].type;
cout << "Mesto nazhacheniya: ";
cin >> indexes[i].destination;
cout << "Vremya otpravleniya: ";
cin >> indexes[i].otTime;
cout << "Vremya pribitiya: ";
cin >> indexes[i].prTime;
cout << "-------------------------------" << endl;
 
}
 
 cout <<"Vvedite mesto naznacheniya: "<<endl;
   cin.get();
   cin.getline(dPoint, 20);
    cout<<"Vvedite vremya pribitiya(hours.minutes): ";
    cin >> time;
    ofs<<endl<<"-----------------------------------------------" <<endl;
    for( i=0; i < q; i++)
    {
    char *str  = indexes[i].destination;
        if(strcmp(dPoint, str) == 0)
        if(indexes[i].prTime < time)
        {
           ofs.width(21);
           ofs <<"Nomer reysa: "<<indexes[i].number<<endl;
           ofs.width(21);
           ofs<<"Tip reysa: "<<indexes[i].type<<endl;
           ofs.width(21);
           ofs<<"Mesto nazhacheniya: "<<indexes[i].destination<<endl;
           ofs.width(19);
           ofs<<"Vremia otpravleniya: "<<fixed<<setprecision(2)<<indexes[i].otTime<<endl;
           ofs.width(21);
           ofs<<"Vremya pribitiya: "<<fixed<<setprecision(2)<<indexes[i].prTime << endl;
           ofs <<"-----------------------------------------------" << endl;
           ofs.close();
        }
 
    }
 
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 14:01     Переделать программу, чтобы вывод осуществлялся в текстовый файл #6
Цитата Сообщение от Dark Illusion Посмотреть сообщение
не записывает она результаты в текстовый файл
Записывает, если правильные данные вводить. Введённый пункт назначения должен совпадать с имеющимся и введённое время должно быть больше, чем вермя прибытия для этого рейса. Тогда будет запись в файле. Но всё это не так делается.
В файл нужно записывать все рейсы, и писать только значения, без названий полей структуры и пр. Для поиска нужного рейса из файла, считывать структуры из файла и анализировать нужные поля.

Добавлено через 26 минут
Как-то так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
 
struct Trip                                         
{                                                   
    int      number;                                   
    char*    type;                             
    char*    destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
 
int main() 
{
 cout << "Vvedite kolichestvo reisov: ";
 int q;
 cin >> q;
 
 Trip *indexes = new Trip[q];
 
 int i;
 for ( i = 0; i < q; i++)
 {
    indexes[i].destination = new char[20];
    indexes[i].type        = new char[20];
 }
 
 for ( i = 0; i < q; i++) 
 {
    cout << "-------------------------------" << endl;
    cout << "Nomer reisa: ";
    cin >> indexes[i].number;
    cout << "Tip reisa: ";
    cin >> indexes[i].type;
    cout << "Mesto nazhacheniya: ";
    cin >> indexes[i].destination;
    cout << "Vremya otpravleniya: ";
    cin >> indexes[i].otTime;
    cout << "Vremya pribitiya: ";
    cin >> indexes[i].prTime;
    cout << "-------------------------------" << endl;
 }
 
 ofstream ofs("filename.txt");
 
 for( i = 0; i < q; i++)
 {
    ofs << indexes[i].number      << endl;
    ofs << indexes[i].type        << endl;
    ofs << indexes[i].destination << endl;
    ofs << indexes[i].otTime      << endl;
    ofs << indexes[i].prTime      << endl;
 }
 ofs.close();
 
// здесь ввод данных для поиска и: вариант 1) поиск нужного рейса в массиве indexes, вывод результатов
                                 
 for ( i = 0; i < q; i++)
 {
    delete indexes[i].destination;
    delete indexes[i].type;        
 }    
 delete [] indexes;
 
 // вариант 2) чтение из файла структур во временную структуру, анализ нужных полей, вывод результата  
 
 system("pause");
 return 0;
 }


Добавлено через 12 минут
А лучше так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
#include <fstream>
using namespace std;
 
struct Trip                                         
{                                                   
    int      number;                                   
    string   type;                             
    string   destination;                          
    double   otTime;                                
    double   prTime;                            
} reis; 
 
int main() 
{
 cout << "Vvedite kolichestvo reisov: ";
 int q;
 cin >> q;
 
 vector <Trip> vecTrip;
 
 int i;
 for ( i = 0; i < q; i++) 
 {
    cout << "-------------------------------" << endl;
    
    cout << "Nomer reisa: ";
    cin >> reis.number;
    cout << "Tip reisa: ";
    cin >> reis.type;
    cout << "Mesto nazhacheniya: ";
    cin >> reis.destination;
    cout << "Vremya otpravleniya: ";
    cin >> reis.otTime;
    cout << "Vremya pribitiya: ";
    cin >> reis.prTime;
    
    vecTrip.push_back(reis);
    
    cout << "-------------------------------" << endl;
 }
 
 ofstream ofs("filename.txt");
 
 for( i = 0; i < q; i++)
 {
    ofs << vecTrip[i].number      << endl;
    ofs << vecTrip[i].type        << endl;
    ofs << vecTrip[i].destination << endl;
    ofs << vecTrip[i].otTime      << endl;
    ofs << vecTrip[i].prTime      << endl;
 }
 ofs.close();
 
// здесь ввод данных для поиска и: вариант 1) поиск нужного рейса в векторе, вывод результатов
//                                 вариант 2) чтение из файла структур во временную структуру reis, анализ нужных полей, вывод результата  
 
 system("pause");
 return 0;
 }
Yandex
Объявления
06.03.2013, 14:01     Переделать программу, чтобы вывод осуществлялся в текстовый файл
Ответ Создать тему
Опции темы

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