consolidate all repos to one for archive
This commit is contained in:
3
semester_2/podatkovne_strukture/naloga_4/.gitignore
vendored
Normal file
3
semester_2/podatkovne_strukture/naloga_4/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.idea/*
|
||||
cmake-build-debug/*
|
||||
CMakeLists.txt
|
1
semester_2/podatkovne_strukture/naloga_4/README.md
Normal file
1
semester_2/podatkovne_strukture/naloga_4/README.md
Normal file
@@ -0,0 +1 @@
|
||||
Navodila v folder navodila
|
98
semester_2/podatkovne_strukture/naloga_4/main.cpp
Normal file
98
semester_2/podatkovne_strukture/naloga_4/main.cpp
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <assert.h> /* assert */
|
||||
|
||||
using namespace std;
|
||||
|
||||
struct Oseba
|
||||
{
|
||||
string Ime;
|
||||
string Priimek;
|
||||
int IDUM; // 9-mestna unikatna številka
|
||||
|
||||
void print(){
|
||||
cout << Ime << " " << Priimek << " " << to_string(IDUM) << "\n";
|
||||
}
|
||||
};
|
||||
|
||||
// prototipi
|
||||
void dobi_prvo_crko(Oseba, char &);
|
||||
void dobi_slovar_s_crko(map<char, map<int, Oseba>>, char, map<int, Oseba> &);
|
||||
void vstavi_osebo_v_slovar_oseb(map<int, Oseba> &, Oseba);
|
||||
void posodobi_slovar_oseb_v_slovarju(map<char, map<int, Oseba>> &, char, map<int, Oseba>);
|
||||
void napolni_slovar(Oseba [], int, map<char, map<int, Oseba>> &);
|
||||
|
||||
void dobi_prvo_crko(Oseba oseba, char &prva_crka)
|
||||
{
|
||||
// TODO
|
||||
prva_crka = oseba.Priimek[0];
|
||||
}
|
||||
|
||||
void dobi_slovar_s_crko(map<char, map<int, Oseba>> slovar, char prva_crka, map<int, Oseba> &slovar_oseb)
|
||||
{
|
||||
// TODO
|
||||
slovar_oseb = slovar[prva_crka];
|
||||
}
|
||||
|
||||
void vstavi_osebo_v_slovar_oseb(map<int, Oseba> &slovar_oseb, Oseba os)
|
||||
{
|
||||
// TODO
|
||||
slovar_oseb.insert(std::pair<int,Oseba>(os.IDUM, os));
|
||||
}
|
||||
|
||||
void posodobi_slovar_oseb_v_slovarju(map<char, map<int, Oseba>> &slovar, char prva_crka, map<int, Oseba> slovar_oseb)
|
||||
{
|
||||
// TODO
|
||||
slovar[prva_crka].swap(slovar_oseb);
|
||||
}
|
||||
|
||||
void napolni_slovar(Oseba seznam[], int N, map<char, map<int, Oseba>> &slovar)
|
||||
{
|
||||
for (int i = 0; i < N; i++)
|
||||
{
|
||||
// pridobimo prvo črko
|
||||
char prva_crka;
|
||||
dobi_prvo_crko(seznam[i], prva_crka);
|
||||
|
||||
// pridobimo slovar oseb s prvo črko
|
||||
map<int, Oseba> slovar_oseb;
|
||||
dobi_slovar_s_crko(slovar, prva_crka, slovar_oseb);
|
||||
|
||||
// vstavimo osebo v slovar
|
||||
vstavi_osebo_v_slovar_oseb(slovar_oseb, seznam[i]);
|
||||
|
||||
// posodobi slovar
|
||||
posodobi_slovar_oseb_v_slovarju(slovar, prva_crka, slovar_oseb);
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
Oseba seznam[] = {
|
||||
Oseba {"Jani", "Dugonik", 123456789 },
|
||||
Oseba{"Nikola", "Petrov", 1002525225},
|
||||
Oseba{"Nikollll", "Petttr", 1223625123},
|
||||
Oseba{"Ozan", "Zef",1001234567},
|
||||
Oseba{"Zan", "Burger", 1002345678},
|
||||
Oseba{"Marko", "Novak", 1003456789}
|
||||
};
|
||||
int N = sizeof(seznam) / sizeof(Oseba);
|
||||
map<char, map<int, Oseba>> slovar;
|
||||
napolni_slovar(seznam, N, slovar);
|
||||
map<int,Oseba> slovarOseb;
|
||||
Oseba tmp;
|
||||
|
||||
for (auto it=slovar.begin(); it!=slovar.end(); ++it) {
|
||||
slovarOseb = it->second;
|
||||
cout << it->first << endl;
|
||||
for (auto at=slovarOseb.begin(); at!=slovarOseb.end(); ++at) {
|
||||
at->second.print();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user