urbic.com logotip

Naloga:

Napišite program, ki prebere rezultate analize barve oči. V datoteki eyes.txt so podatki o spolu osebe in barvi oči. Program na ugotovi, koliko je osebkov (moških in žensk skupaj) z določeno barvo oči in naj rezultate zapiše v datoteko. Z gnuplotom narišite histogram. Ugotovite še, če imajo moški in ženske različne barve oči.

#include <iostream>
#include <cmath>
#include <fstream>
#include <iomanip>
using namespace std;

int main ()
{
  int i,j;
  int brown=0,blue=0,hazel=0,green=0,brownf=0,bluef=0,hazelf=0,greenf=0;
  int m,f;
  string x,y;
  ofstream mf;
  mf.open ("hist2.txt");
  ifstream eyes;
  eyes.open ("eyes.txt");
  while (!eyes.eof()){
  eyes >> j >> x >> y;
   if (!eyes.eof()) {
   i=i+1;
   if ((x=="m")&&(y=="brown")) 
    brown=brown+1;
   if ((x=="m")&&(y=="blue")) 
    blue=blue+1;
   if ((x=="m")&&(y=="hazel")) 
    hazel=hazel+1;
   if ((x=="m")&&(y=="green")) 
    green=green+1;
   if ((x=="f")&&(y=="brown")) 
    brownf=brownf+1;
   if ((x=="f")&&(y=="blue")) 
    bluef=bluef+1;
   if ((x=="f")&&(y=="hazel")) 
    hazelf=hazelf+1;
   if ((x=="f")&&(y=="green")) 
    greenf=greenf+1;
   }
  }
  m=brown+blue+green+hazel;
  f=brownf+bluef+greenf+hazelf;
  mf << 1 << " "<< brown+brownf<< " "<< brown<< " "<< brownf<< " "<< m<< " "<< f<< " brown"<< endl;
  mf << 2 << " "<< blue+bluef<< " "<< blue<< " "<< bluef<< " "<< m<< " "<< f<< " blue"<< endl;
  mf << 3 << " "<< hazel+hazelf<< " "<< hazel<< " "<< hazelf<< " "<< m<< " "<< f<< " hazel"<< endl;
  mf << 4 << " "<< green+greenf<< " "<< green<< " "<< greenf<< " "<< m<< " "<< f<< " green"<< endl;
  mf.close();
  eyes.close();  
  cout << "histogram je narejen.";
}

Tekst sedaj shranimo kot datoteko oci.cpp in prevedemo.

Tu je sedaj še print screen postopka prevajanja, postopka risanja z gnuplotom in narisana grafa v pdf datoteki. V kolikor vam kakšna podrobnost ni jasna, mi sporočite. Histogram je narisan v naslednji PDF datoteki.

Ter podatki za histogram v hist2.txt

Nazaj na osnovno stran za predmet Uporaba numeričnih metod v kemiji.