How to change this data sturucture from vector <int> total; to float total;? because if I change it to float teher is many error....
#include <iostream> // std::cout
#include <fstream>
#include <iomanip>
#include <string> // std::string
#include <vector> // std::vector<>
#include <algorithm> //std::for each()
using namespace std; // import "std" namespace into global namespace
struct exam
{
int examid;
vector <int> total;
};
void SwapMembers (int items[], int index1, int index2)
{
int temp;
temp=items[index1];
items[index1]=items[index2];
items[index2]=temp;
}
int main()
{
ifstream stream1("STA83SOLUTION.txt");
if ( !stream1.is_open())
{
cout << "While opening a file an error is encountered" << endl;
}
else
{
cout << "Fail Di buka....." << endl;
}
vector <exam> exams;
exam aExam;
int tempExamID;
int tempTotal;
stream1 >> tempExamID >> tempTotal;
aExam.examid = tempExamID;
aExam.total.push_back(tempTotal); // add this exam code to current student's vector of exam codes
while (stream1 >> tempExamID >> tempTotal)
{
if(tempExamID != aExam.examid)
{
exams.push_back(aExam); // no more exam codes for this student. Add aStudent to students vector
aExam.total.clear();
aExam.examid = tempExamID;
}
aExam.total.push_back(tempTotal); // add this exam code to current student's vector of exam codes
}
exams.push_back(aExam); // no more exam codes for this student. Add aStudent to students vector
stream1.close(); // We have read the entire file, so time to close it.
{
ofstream myfile;
myfile.open("411.txt");
int temp, flag;
if (myfile.is_open())
{
for (size_t i = 0; i < exams.size(); i++)
{
for (size_t j = 0; j<exams.at(i).total.size(); j++)
{
if (exams.at(i).total.size() < exams.at(i).total.size()+1) // ascending order simply changes to <
{
temp = exams.at(i).total.size(); // swap elements
exams.at(i).total.size() = exams.at(i).total.size()+1;
exams.at(i).total.size()+1 = temp;
flag = 1; // indicates that a swap occurred.
}
cout<<"\n"<<i+1<<":"<<" "<< exams.at (i).total.at(j)<<"\t"; // output list of exam codes for this student
cout<<" "<< exams.at (i).total.at(j)<<"\t";
}
}
}
cin.get();
return 0;
}
}