poniedziałek, 18 maja 2020

Arrays and saving data to a files (C++ fstream)

#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <fstream>


#define min_S 10
#define max_S 1000

using namespace std;


struct date_Tab
{
    int min_T;
    int max_T;
    int sum_T;
    double aver_T;
};

fstream file_Tab,file_Report;
string name_Files[2]={"f_Tab.txt","f_Report.txt"};
int** main_Tab;

int first_Values[max_S];


void sort_Tab(int* tab, int size_Tab)
{
    int i,j,k;
    for(i=1;i<size_Tab;i++)
    {
        j=i;
        k=tab[j];
        while((j>0) && (tab[j-1]>k))
        {
            tab[j]=tab[j-1];
            j--;
        }
        tab[j]=k;
    }
}
bool is_First(int value)
{
    int i,sum=0;
    for(i=1;i<value+1;i++)
        if(value%i==0)
        ++sum;
    if(sum==2)
        return true;
    else
        return false;
}

void write_first_Tab()
{
    int i,j;
    i=0;
    j=2;
    do
    {
        if(is_First(j))
        {
            first_Values[i]=j;
            ++i;
        }
        ++j;

    }while(i<max_S);
}
int sum_Tab(int* tab, int size_T)
{
    int i,sum=0;
    for(i=0;i<size_T;i++)
        sum+=tab[i];
    return sum;
}
double aver_Tab(int* tab, int size_T)
{
    double aver;
    aver=(1.00*sum_Tab(tab,size_T))/(1.00*size_T);
    return aver;
}
int min_Tab(int* tab, int size_T)
{
    int i,min_T;
    min_T=tab[0];
    for(i=1;i<size_T;i++)
        if(min_T>tab[i])
         min_T=tab[i];
    return min_T;
}
int max_Tab(int* tab, int size_T)
{
    int i,max_T;
    max_T=tab[0];
    for(i=1;i<size_T;i++)
        if(max_T<tab[i])
         max_T=tab[i];
    return max_T;

}

int main()
{
   int i,j,k;
   struct date_Tab* values_Tab=new struct date_Tab[max_S];
   main_Tab=new int *[max_S];
    for(i=0;i<max_S;i++)
        main_Tab[i]=new int[min_S];
    srand(time(NULL));
    write_first_Tab();

    i=0;
    do
    {
        for(j=0;j<min_S;j++)
        {
            k=rand()%max_S;
            main_Tab[i][j]=first_Values[k];
        }
        ++i;

    }while(i<max_S);

    for(i=0;i<max_S;i++)
        sort_Tab(main_Tab[i],min_S);
    for(i=0;i<max_S;i++)
    {
        values_Tab[i].min_T=min_Tab(main_Tab[i],min_S);
        values_Tab[i].max_T=max_Tab(main_Tab[i],min_S);
        values_Tab[i].sum_T=sum_Tab(main_Tab[i],min_S);
        values_Tab[i].aver_T=aver_Tab(main_Tab[i],min_S);
    }
    file_Tab.open(name_Files[0].c_str(),ios::out);
    for(i=0;i<max_S;i++)
    {
        for(j=0;j<min_S;j++)
        {
            file_Tab<<main_Tab[i][j]<<"  ";
        }
        file_Tab<<"\n";
    }
    file_Tab.close();
    file_Report.open(name_Files[1].c_str(),ios::out);
    for(i=0;i<max_S;i++)
    {
        file_Report<<values_Tab[i].min_T<<" "<<values_Tab[i].max_T<<" "
        <<values_Tab[i].sum_T<<" "<<values_Tab[i].aver_T;
        file_Report<<"\n";
    }
    file_Report.close();

    for(i=0;i<max_S;i++)
        delete[] main_Tab[i];
    delete [] main_Tab;
    delete [] values_Tab;
    getch();
    return 0;
}


YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL

Brak komentarzy:

Prześlij komentarz