0% found this document useful (0 votes)
27 views3 pages

Task 1 Lab 13 and 14.cpp

Uploaded by

latif qasim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views3 pages

Task 1 Lab 13 and 14.cpp

Uploaded by

latif qasim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

#include <iostream>

#include <fstream>
using namespace std;

// template 1
template <typename T>
void get_input( T* arr, int size )
{
cout << "\nEnter the data: \n";
for ( int i = 0; i < size; i++ )
{
cout << "\tData value " << i+1 << ": ";
cin >> arr[i];
}
cout << "\nThe values have been saved" << endl;
}

// template 2
template <typename T>
void print_smallest_and_second_smallest_values( T* arr, int size )
{
T max = arr[0], second_max = arr[0];
for (int i = 1; i < size; i++)
{
if (arr[i] > max)
{
second_max = max;
max = arr[i];
}
else if (arr[i] > second_max && arr[i] != max)
{
second_max = arr[i];
}
}
cout << "\nHighest value: " << max << ", second highest value: " << second_max
<< endl;
}

// template 3
template <typename T>
void sort( T* arr, int size )
{
T temp;
for ( int i = 0; i < size; i++ )
{
for ( int j = i+1; j < size; j++ )
{
if ( arr[i] < arr[j] )
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
cout << "\nArray has been sorted in descending order\nValues: \n\t";
for ( int i = 0; i < size; i++ )
{
cout << arr[i] << " ";
}
cout << endl;
}

// tempplate 4
template <typename T>
void save_data_to_file( T* arr, int size, const string& file_name )
{
ofstream out(file_name);
for ( int i = 0; i < size; i++ )
{
out << arr[i] << " ";
}
out.close();
}

// template no.5
template <typename T>
void retrieve_data_from_file( T* arr, int size, const string& file_name )
{
T* temp = new T[size];
ifstream in(file_name);
for ( int i = 0; i < size; i++ )
{
in >> temp[i];
}
cout << "\nSuccessfully retrieved data from file '" << file_name << "'\
nValues:\n\t";
for ( int i = 0; i < size; i++ )
{
cout << temp[i] << " ";
}
delete[] temp;
}

int main ()
{
int int_arr_size, double_arr_size, string_arr_size;

cout << "enter size for integer array: ";


cin >> int_arr_size;
cout << "enter size for double array: ";
cin >> double_arr_size;
cout << "enter size for string array: ";
cin >> string_arr_size;

int* int_arr = new int[int_arr_size];


double* double_arr = new double[double_arr_size];
string* string_arr = new string[string_arr_size];

string file_names[3] = { "integer_array_file.txt", "double_array_file.txt",


"string_array_file.txt" };

get_input( int_arr, int_arr_size );


get_input( double_arr, double_arr_size );
get_input( string_arr, string_arr_size );

print_smallest_and_second_smallest_values( int_arr, int_arr_size );


print_smallest_and_second_smallest_values( double_arr, double_arr_size );
print_smallest_and_second_smallest_values( string_arr, string_arr_size );

sort( int_arr, int_arr_size );


sort( double_arr, double_arr_size );
sort( string_arr, string_arr_size );

save_data_to_file( int_arr, int_arr_size, file_names[0] );


save_data_to_file( double_arr, double_arr_size, file_names[1] );
save_data_to_file( string_arr, string_arr_size, file_names[2] );

retrieve_data_from_file( int_arr, int_arr_size, file_names[0] );


retrieve_data_from_file( double_arr, double_arr_size, file_names[1] );
retrieve_data_from_file( string_arr, string_arr_size, file_names[2] );

delete[] int_arr;
delete[] double_arr;
delete[] string_arr;

You might also like