i want to add a selection sort to this code by the id_number and i have the selection code but i cant implement it to my code

#include <iostream>
#include <string>

using namespace std;

struct database {
  int id_number, age;
  float salary;
  string name;
};
void input_data(struct database*data_ptr)
{
  int i_tmp;
  float f_tmp;
  string s_tmp;
  cout<<"enter name:";
  cin >>s_tmp;data_ptr->name = s_tmp;
  cout << "enter id_number :";
  cin >> i_tmp;data_ptr->id_number = i_tmp;
  cout << "enter age :";
  cin >> i_tmp;data_ptr->age = i_tmp;
  cout << "enter salary:";
  cin >> f_tmp;data_ptr->salary = f_tmp;;
  cout<<endl;
}
void output_data(struct database*data_ptr)
{
  cout << "*********************************\n";
  cout << "name = " << data_ptr->name << "\n";
  cout << "id_num = " << data_ptr->id_number << "\n";
  cout << "age = " << data_ptr->age << "\n";
  cout << "salary = " << data_ptr->salary << "\n";
  cout << "*********************************\n";
}

int main()
{
   database*employee ;
   int n;
   cout<<"how many employees do you want to enter?";
   cin >> n ;
   employee = new database[n] ;
   for ( int i = 0 ; i  < n ; i++)
       input_data(employee+i);
   for ( int a = 0 ; a  < n ; a++)
       output_data(employee+a);
   return 0;
}

THE SELECTION SORT CODE IS

void selectionSort(int[] list, int listLength)
 {int index;
int smallestIndex;
int minIndex;
int temp;
for (index = 0; index < listLength –1; index++) {smallestIndex = index;
for (minIndex = index + 1; minIndex < listLength; minIndex++)
if (list[minIndex] < list[smallestIndex])smallestIndex = minIndex;
temp = list[smallestIndex];
list[smallestIndex] = list[index];
list[index] = temp;
}
}

Recommended Answers

All 3 Replies

Probably the simplest way to adopt your selectionSort for int arrays function code is as follows.
Look at the function code. There is temp variable of a sorted array base type (to swap elements). There is a compare ints expression in the loop. And, of course, there is a sorted array parameter declaration in the function header.
Now you want to sort an array of the (struct) database type. Change (wrong) parameter declaration to database list[] . Change the type of temp variable to database. Change the comparing expression to list[minindex].id_number < list[[smallestIndex].id_number .
That's all. Now you have (ineffective ;)) struct database array sort function...

i tried to edit my code as u said but i had alot of errors will u write me the code implemented in the main code

Yes, I can - but I don't want.
I don't like copypasters...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.