can you please make another soultion for this c++ program? #include #include #include #include #include #include using namespace std; #define ARR_SIZE 10 //read hotels method void readHotels(string names[ARR_SIZE],int rating[ARR_SIZE],int count){ ifstream file; file.open("hotels.txt",ios::in); //change the name of the file if(file.is_open()){ string line; //read file line by line while(getline(file,line)){ int index = 0; int star = 0; stringstream ss(line); string word; //SEPERATE HOTEL AND STARS AND STORE THEM IN ARRAY while(ss >> word){ if(index==0){ names[count] = word; } if(index==1){ //read number of stars string stars = word; for(int i=0;stars[i]!='\0';i++){ star++; } rating[count] = star; } index++; } count++; } file.close(); } else{ cout<<"Error"< visited(ARR_SIZE,false); for(int i=0;i
can you please make another soultion for this c++ program?
#include<iostream>
#include<string>
#include<sstream>
#include<fstream>
#include<iomanip>
#include<vector>
using namespace std;
#define ARR_SIZE 10
//read hotels method
void readHotels(string names[ARR_SIZE],int rating[ARR_SIZE],int count){
ifstream file;
file.open("hotels.txt",ios::in); //change the name of the file
if(file.is_open()){
string line;
//read file line by line
while(getline(file,line)){
int index = 0;
int star = 0;
stringstream ss(line);
string word;
//SEPERATE HOTEL AND STARS AND STORE THEM IN ARRAY
while(ss >> word){
if(index==0){ names[count] = word; }
if(index==1){ //read number of stars
string stars = word;
for(int i=0;stars[i]!='\0';i++){
star++;
}
rating[count] = star;
}
index++;
}
count++;
}
file.close();
}
else{
cout<<"Error"<<endl;
}
}
//displayt method
void display(string names[ARR_SIZE],int rating[ARR_SIZE]){
vector<bool> visited(ARR_SIZE,false);
for(int i=0;i<ARR_SIZE;i++){
//skip element if already visited
if(visited[i]==true)
continue;
int total_rating = rating[i];
int count = 1;
for(int j=i+1;j<ARR_SIZE;j++){
if(names[i].compare(names[j])==0){
visited[j] = true;
total_rating += rating[j];
count++;
}
}
double avg_rate = (double)total_rating/count;
cout<<"\t Hotel name: "<<names[i]<<"\t Rating: "<<avg_rate<<endl;
}
}
//main method
int main(){
string names[ARR_SIZE];
int rating[ARR_SIZE];
int count = 0;
//call readHotels method
readHotels(names,rating,count);
//call display method
display(names,rating);
return 0;
}
Step by step
Solved in 2 steps