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

Считать числа из файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 77, средняя оценка - 4.61
Rilanor
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 5
04.03.2012, 01:30     Считать числа из файла #1
Приветствую всех.

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

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

Вот алгоритм, по которому я пытался провернуть сие начинание:
1)считываю первое слово, конверчу в числовой вид, считываю второе слово, конверчу, умножаю первое на второе, и прибавляю к отдельной переменной summary, которая изначально равна нулю, повторять с каждой строкой, пока не кончится файл, результат вывести на экран.
2) считываю первое слово, отбрасываю его, считываю второе слово, конверчу, прибавляю его к отдельной переменной summary, и увеличиваю счетчик count на единицу, повторить для каждой строки пока не кончится файл, когда кончится, поделить summary на count, вывести результат на экран.
Кто может помочь с прогой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
04.03.2012, 03:47     Считать числа из файла #2
Добавлено через 20 минут
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream fin("c:\\f.txt");
    int col = 0, col_tmp;
    double sum = 0, sum_tmp;
 
    if (fin.is_open())
    {
        while (fin >> col_tmp && fin >> sum_tmp)
        {
            col += col_tmp;
            sum += sum_tmp*col_tmp;
        }
        cout << "col = " << col << "; sum = " << sum << endl;
        if (col)
                               cout << "average: " << sum/col << endl;
        
    }
    fin.close();      
}
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
04.03.2012, 03:49     Считать числа из файла #3
Ну раз одно решение есть то пусть будет ещё такое
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
#include <iostream>
#include <fstream>
using namespace std;
 
class Product
{
private:
    double sum;
    int count;
 
public:
    Product():sum(0),count(0){}
 
    void consider(const char* fileName)
    {
        ifstream file(fileName);
        if(!file)
        {
            cerr<<("\nCan't open file ")<<fileName;
            exit(1);
        }
        int a,b;
        while(!file.eof())
        {
            if(!file.good())
            {
                cerr<<endl<<"something wrong with "<<fileName;
                exit (2);
            }
            file>>a>>b;
            sum+=a*b;
            count+=a;
        }
    }
 
    double getSum(){return sum;}
    double averagePrice(){return sum/count;}
};
 
 
int main()
{
    Product pr;
    pr.consider("test.txt");
    cout<<pr.getSum();
 
}
Konstantin_D
 Аватар для Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
04.03.2012, 04:01     Считать числа из файла #4
только b лучше объявить как double (см. стр 22)
и count может быть равен нулю
Rilanor
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 5
04.03.2012, 13:49  [ТС]     Считать числа из файла #5
Большое спасибо, все работает.
Yandex
Объявления
04.03.2012, 13:49     Считать числа из файла
Ответ Создать тему
Опции темы

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