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

Чтение из файла в классе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа, которая выполняет поиск в упорядоченном по возрастанию массиве http://www.cyberforum.ru/cpp-beginners/thread846801.html
Задача 2: Написать программу,которая использует метод поиска выполняет поиск в упорядоченном по возрастанию массиве
C++ Как записать алгоритм для данной функции Не как не могу придумать http://www.cyberforum.ru/cpp-beginners/thread846792.html
C++ Алгоритм сжатия аудио !
Нужна реализация алгоритма Райса для сжатия аудио файлов на С++ (наличие коментов приветствуется). Надо до конца недели разобраться в коде, теорию более менее понял, но сам не напишу код... Найти не могу, везде только описание алгоритма ... если у кого-то имеется скиньте пожалуйста... Добавлено через 22 часа 36 минут Или назовите пожалуйста эффективные алгоритмы сжимания аудио файлов
Дополните загрузку с текстового файла (Шахматы) C++
Помогите добавить в прорамму загрузку с файла нужно что бы с файла считывались переменные fig, posb,posc. файл фыглядит ввиде h B 4 #include<iostream> #include <fstream> #include <string.h> #include <stdio.h> #include <stdlib.h>
C++ Вычисление двойного факториала http://www.cyberforum.ru/cpp-beginners/thread846778.html
Код определяет четность или нечетность числа. Как в этой же программе вычислить двойной факториал введенного числа? #include "math.h" #include "stdafx.h" #include <iostream>; #include <string> ; #include <conio.h>; using namespace std; void main()
C++ Выдает ошибку Ошибка на строчке с scanf! #include "stdafx.h" #include <stdio.h> #include <iostream> #include <math.h> void main() { const float e = 2.71828183; подробнее

Показать сообщение отдельно
Ghost_Inq
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 65
24.04.2013, 12:40     Чтение из файла в классе
Доброе время суток! Нужна помощь более опытных товарищей! Необходима работа с файлом(запись в файл, чтение из файла, удаление из файла конкретной записи, добавление новой, корректировка старых записей). Как реализовать данное задание через Структуру знаю, а вот как это же сделать с помощью Класса не пойму. Реализовал самое просто это запись в файл, а дальше все нечего не могу сделать.

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

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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include<fstream>
#include<iostream>
#include<stdlib.h>
#include<string>
#include<iomanip>
using namespace std;
char imfile[12];
 
class productivity
{
public:
    char enterprise[6]; //предприятие
    int VP; //валовая продукция
    int NumWork; //число работников
    float product; //продуктивность  
 
    ifstream in; 
    ofstream out;
    int n;
    char ch;
    char enter[10], VVP[10], NW[10], pr[10];
 
    void Header()
    {
        cout<<setw(70)<<"__________________________________________________________________"<<endl;
        cout<<setw(70)<<"| № п/п | Предприятие |  ВВП, грн  |   Число    | Продуктивность |"<<endl;
        cout<<setw(70)<<"|       |             |            | работников |     грн/чел    |"<<endl;
        cout<<setw(70)<<"__________________________________________________________________"<<endl;
    }
 
    void Input()
    {
        int i=0;
        cout<<"Введите название предприятия: "<<endl;
        cin>>enterprise;
        cout<<"Введите ВВП: "<<endl;
        cin>>VP;
        cout<<"Введите число работников: "<<endl;
        cin>>NumWork;
    }
 
    void Filing()
    {
        int i=0;
        out.open(imfile);
        do
        {
            Input();
            out<<enterprise<<endl<<VP<<endl<<NumWork<<endl<<(product=(VP/NumWork))<<endl;
            cout<<"Записать еще? Y/N"<<endl;
            cin>>ch;
        }while(toupper(ch)=='Y');
        out.close();
    }
 
    void Readf()
    { 
        int i=0;
        in.open(imfile);
        while(!in.eof())
        {
                in>>enter>>VVP>>NW>>pr;
        }
        in.close();
    }
 
    void Review()
    {
        int i=0;
        Header();
        Readf();
        for(i=0; i<n; i++)
        {
 
            cout<<setw(5)<<"|"<<setw(4)<<(i+1)<<setw(4)<<"|"<<setw(10)<<enter<<setw(4)<<"|"<<setw(9)<<VVP<<setw(4)<<"|"<<setw(8)<<NW<<setw(5)<<"|"<<setw(10)<<pr<<setw(7)<<"|"<<endl;
            cout<<setw(70)<<"__________________________________________________________________"<<endl;
        }
        cout<<endl;
    }
 
    void Addition()
    {
        int i=0;
        out.open(imfile, ios::app);
        do
        {
            Input();
            out<<enterprise<<endl<<VP<<endl<<NumWork<<endl<<(product=(VP/NumWork))<<endl;
            cout<<"Ввести еще? Y/N"<<endl;
            cin>>ch;
        }while(toupper(ch)=='Y');
        out.close();
    }
 
    void Deletion()
    {
        int i=0, z;
        Review();
        do
        {
            cout<<"Введите номер удаляемой записи: ";
            cin>>z;
            enterprise[0]='*';
            cout <<"Удалить еще? Y/N"<<endl;
            cin>>ch;
        }while(toupper(ch)=='Y');
        out.open(imfile);
        for(i=0; i<n; i++)
        {
            if (enterprise[0]!='*')
            {
                out<<enterprise<<endl<<VP<<endl<<NumWork<<endl<<(product=(VP/NumWork))<<endl;
            }
        }
        out.close();
    }
 
    void Correction()
    {
        int i, z;
        Review();
        do
        {
            Input();
            cout<<"Введите номер корректируемой записи: ";
            cin>>z;
            strcpy_s(enterprise, enterprise);
            cout<<"Корректировать еще? Y/N "<<endl;
            cin>>ch;
        }while(ch=='Y');
        out.open(imfile);
        for(i=0; i<n; i++)
        {
            out<<enterprise<<endl<<VP<<endl<<NumWork<<endl<<(product=(VP/NumWork))<<endl;
        }
        out.close();
    }
};
 
int main()
{
    setlocale(LC_ALL, ".1251");
    char pm; productivity P;
    cout<<"Введите имя файла"<<endl;
    cin>>imfile;
    do
    {
        cout<<"1. Запись"<<endl;
        cout<<"2. Просмотр"<<endl;
        cout<<"3. Добавление"<<endl;
        cout<<"4. Удаление"<<endl;
        cout<<"5. Обновление"<<endl;
        cout<<"6. Выход"<<endl;
        cout<<"Введите пункт меню"<<endl;
        cin>>pm;
        switch(pm)
        {
        case '1':
            P.Filing();
            break;
        case '2': 
            P.Review();
            break;
        case '3':
            P.Addition();
            break;
        case '4':
            P.Deletion();
            break;
        case '5':
            P.Correction();
            break;
        case '6':
            return 0;
        }
        cout<<"Меню Y/N"<<endl;
        cin>>pm;
    }while(toupper(pm)=='Y');
    return 0;
}
Добавлено через 2 часа 12 минут
апп

Добавлено через 11 часов 21 минуту
апп
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru