#include <iostream>
#include <string>
#include <fstream>
using namespace std;
//Listans struktur
typedef struct lista{
string namn;
string ort;
lista *next;
};
int main(){
int antal = 0,antalspara=0,antallika=0,antalPerson=0;
int langd;
string namn, ort;
bool bfinns;
ifstream fil;
string filnamn;
//För första listan
lista *afirst, *alast, *node, *itt;
afirst = NULL;
alast = NULL;
//-----------------
//För andra listan
lista *ufirst, *ulast,*uitt;
ufirst = NULL;
ulast = NULL;
cout<<"Vad heter filen: ";
cin>>filnamn;
fil.open(filnamn);
if(fil.good() == false){
cout<<"Filen gick ej att oppna";
exit(EXIT_SUCCESS);
}
//Läser in alla namn till en lista
while(fil.good()){
node = new lista;
node->next = NULL;
getline(fil,node->namn);
getline(fil,node->ort);
langd = node->namn.length();
if(langd == 0){
break;
}
antalPerson++;
if(afirst == NULL){
afirst = node;
alast = node;
}
else{
alast->next = node;
alast = node;
}
}
//Kollar efter unika namn med hjälp av en andra lista
itt = afirst;
while(itt != NULL){
bfinns = false;
//kollar om namn finns i listan redan
uitt = ufirst;
while(uitt != NULL){
if(uitt->namn.compare(itt->namn)==0 && uitt->ort.compare(itt->ort)==0){
bfinns = true;
break;
}
uitt = uitt->next;
}
//annars skriver den in namnet i listan
if(bfinns == false){
node = new lista;
node->next = NULL;
node->namn = itt->namn;
node->ort = itt->ort;
if(ufirst == NULL){
ufirst = node;
ulast = node;
antal++; //När den skriver in i listan så plussar jag antal med 1 för då har vi fått en unik person
}
else{
ulast->next = node;
ulast = node;
antal++; //När den skriver in i listan så plussar jag antal med 1 för då har vi fått en unik person
}
}
itt = itt->next;
}
itt = afirst;
while(itt != NULL){
antallika = 0;
uitt = afirst;
while(uitt != NULL){
if(uitt->namn.compare(itt->namn)==0 && uitt->ort.compare(itt->ort)==0){
antallika++;
}
uitt = uitt->next;
}
if(antalspara<antallika){
antalspara = antallika;
namn = itt->namn;
ort = itt->ort;
}
itt = itt->next;
}
cout<<"Antal olika personer "<<antal<<endl<<"Personen som uppkom mest: "<<namn<<" fran: "<<ort<<endl;
cout<<"Han uppkom: "<<antalspara<<" ganger"<<endl;
system("PAUSE");
return 0;
}
lifuno 0 Newbie Poster
deceptikon 1,790 Code Sniper Team Colleague Featured Poster
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.