Question & Answer: I have a program here with a text file below the code. How can I show a output that shows the Unique Idenifiers…..

I have a program here with a text file below the code. How can I show a output that shows the Unique Idenifiers in a text file (Items bought once only such as gum and Icecream) and the Frequencies of each item from the text file.

#include

using namespace std;

int main()

{

string line; // variable used to read a line from file

int lines =0; // variable conatining the number of transactions

 

ifstream myfile(“/Users/TheKid/Library/Mobile Documents/com~apple~TextEdit/Documents/en.lproj/marketdata.txt”); //opening market.data file in read mode using ifstream and providing the path to the file. Either keep the file in the same path where the cpp file is else specify the full path of market.data

if (myfile.is_open()) // checking if the file was opened

{

while(getline(myfile,line)) //read the file line by line until end of file is reached

{

lines ++; // calculating the transactions

}

cout<

myfile.close(); //closing the file

 

ifstream myfile(“/Users/TheKid/Library/Mobile Documents/com~apple~TextEdit/Documents/en.lproj/marketdata.txt”); // re-opening the file

while(getline(myfile,line)) //read the file line by line until end of file is reached

{

cout<

}

myfile.close(); // closing the file

}else

cout<<“Unable to open file”;

return 0;

} // end of main

Text File

7 \number of transactions

1, 3, gum,bread,fish Transactions ID, #of Items, gum,bread,fish

2, 2, fish,bread

3, 1, juice

4, 3, bread, mangos fish

5, 2, bread,mangos

6, 3, Icecream,bread,fish

7, 1, fish

Expert Answer

 

main.cpp:

#include <iostream>

#include <map>

#include <iterator>

#include <algorithm>

#include <string>

#include <cstdlib>

#include <fstream>

#include <sstream>

using namespace std;

string toLower(string s) {

string data = s;

std::transform(data.begin(), data.end(), data.begin(), ::tolower);

return data;

}

string trim(string str){

stringstream trimmer;

trimmer << str;

str.clear();

trimmer >> str;

return str;

}

int main()

{

map<string, int> item_count;

 

string line; // variable used to read a line from file

int lines =0; // variable conatining the number of transactions

 

ifstream myfile(“../itemdata.txt”);

if (myfile.is_open()) // checking if the file was opened

{

getline(myfile,line); // to ignore the first line which contains number of transactions

while(getline(myfile,line)) //read the file line by line until end of file is reached

{

// now we are processign each line

stringstream ss(line);

int i;

string item;

int count;

// ignore Transactions ID, #of Items

getline(ss, item, ‘,’);

getline(ss, item, ‘,’);

count = atoi(item.c_str());

while (count– && getline(ss, item, ‘,’)) {

item = trim(toLower(item));

// Now the item variable is containing the item name

map<string,int>::iterator itr = item_count.find(item);

if (itr == item_count.end() ) {

// means the element is not present

item_count.insert(pair<string,int>(item,1));

} else {

// increment the count

itr->second = 1 + itr->second;

}

}

}

// now traverse in the array and print entries which have count 1

cout << “unique items: ” << endl;

for( map<string,int>::const_iterator it = item_count.begin(); it != item_count.end(); ++it ) {

if(it->second == 1) {

cout << it->first << endl;

}

}

cout << endl << “Items frequencies: ” << endl;

for( map<string,int>::const_iterator it = item_count.begin(); it != item_count.end(); ++it ) {

cout << it->first << “:” << it->second << endl;

}

myfile.close(); //closing the file

} else{

cout << “Unable to open input file.” << endl;

return 1;

}

return 0;

}

itemdata.txt:
7 \number of transactions
1, 3, gum,bread,fish Transactions ID, #of Items, gum,bread,fish
2, 2, fish,bread
3, 1, juice
4, 3, bread, mangos fish
5, 2, bread,mangos
6, 3, Icecream,bread,fish
7, 1, fish

Please adjust the file location in ifstream myfile(“../itemdata.txt”);  line.. Otherwise program will report that it is unable to find the file.

Still stressed from student homework?
Get quality assistance from academic writers!