c++ operacje na plikach

Problemy i ich rozwiązania w C++.
tomekg55
Nowicjusz
Posty: 2
Dołączył(a): sobota, 17 marca 2012, 14:48

c++ operacje na plikach

Post przez tomekg55 »

Witam czy ktoś pomoże mi zrobić to zadanie ? potrzebne na dzis !!!!

W pliku temp.txt znajduje się wykaz średnich temperatur w poszczególnych miesiącach w latach 1779-2006. W każdej linii zapisany jest rok i średnie miesięczne temperatury. Każda informacja jest oddzielona spacją. Napisz program który:
obliczy i wyświetli średnie temperatury w poszczególnych latach
wskaże rok, w którym był najcieplejszy styczeń
wskaże rok, w którym był najzimniejszy styczeń
wskaże rok, w którym była najwyższa średnia temperatura roczna
wskaże rok, w którym była najniższa średnia temperatura roczna
dla każdego miesiąca poda najwyższą, najniższą temperaturę występującą w zestawieniu oraz lata, w których te skrajne wartości wystąpiły.
Wyniki mają być wyświetlane na ekranie i zapisywane do pliku.
Program ma być tak napisany, aby działał poprawnie dla każdego pliku o takim samym układzie danych w wierszu.

operacje tylko na <string> <fstream> <iostream>
tomekg55
Nowicjusz
Posty: 2
Dołączył(a): sobota, 17 marca 2012, 14:48

Re: c++ operacje na plikach

Post przez tomekg55 »

podaję trzy linijki zawartosci pliku temp
1779 -4.9 2.2 3.8 9.5 15.4 16.4 17.9 19.5 14.7 9.3 4.1 1.4
1780 -5.1 -4.3 4.4 5.9 14.2 17.2 19.4 17.9 13.1 9.4 2.8 -4.6
1781 -4.0 -1.9 1.5 9.1 13.8 19.2 20.1 22.8 16.2 6.0 4.0 -3.6
Protected_48
Początkujący
Początkujący
Posty: 7
Dołączył(a): sobota, 26 maja 2012, 14:08

Re: c++ operacje na plikach

Post przez Protected_48 »

Zadanie nie wydaje się trudne. po prostu musisz wczytywać za pomocą chociażby fstream, liczbę podaną do chociażby vector'a

Mniej więcej to powinno wyglądać tak :

Code: Zaznacz cały

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

class file
{
    private : string filename;
              int i;
              float f;
              vector<float> v;
              ifstream in;
              static const unsigned int r = 2;
              float tab_st[r];
    public : file()
             {
                filename = "temp.txt";
                i = 0;
             };
             ~file()
             {

             };
             void open_file();
             void show_vector();
};

void file::open_file()
{
    in.open(filename.c_str());
    while(!in.eof())
    {
        in >> f;
        if((i % 13) != 0)
            v.push_back(f);
        ++i;
    }
    in.close();
};

void file::show_vector()
{
    for(unsigned int i = 0; i < v.size();++i)
    {
        if(i % 12 == 0)
            cout << endl;
        cout << v[i] << " ";
    }
};

int main()
{
    file q;
    q.open_file();
    q.show_vector();
    cin.sync();
    cin.get();
    return 0;
}
Styczeń można pobrać poprzez operację modulo ;)
Post Reply