Обновить cv6/a_station.h
This commit is contained in:
		
							parent
							
								
									f13083c856
								
							
						
					
					
						commit
						8ff72ee527
					
				| @ -1,28 +1,91 @@ | |||||||
| #ifndef STATION_H | #ifndef STATION_H | ||||||
| #define STATION_H | #define STATION_H | ||||||
| 
 | // Pocet trati k dispozicii
 | ||||||
| #define STATION_SIZE 10 | #define STATION_SIZE 10 | ||||||
| 
 | // Maximalny pocet znakov pre ulozenie nazvu cielovej stanice
 | ||||||
| #define TARGET_SIZE 36 | #define TARGET_SIZE 36 | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * Jeden zaznam o kapacite do cielovej stanice | ||||||
|  |  */ | ||||||
| struct car { | struct car { | ||||||
|     char value[TARGET_SIZE];   |     // Cielova stanica / nazov
 | ||||||
|     int capacity;           |     char value[TARGET_SIZE]; | ||||||
|     struct car* next;        |     // Pocet cestujuchich
 | ||||||
|  |     int capacity; | ||||||
|  |     // Smernik na dalsi zaznam
 | ||||||
|  |     struct car* next; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| 
 | /**
 | ||||||
|  |  * Cela databaza zaznamov | ||||||
|  |  */ | ||||||
| struct station { | struct station { | ||||||
|     struct car** tracks;     |     // Dynamicke pole smernikov na zaznamy
 | ||||||
|     int track_count;           |     // jeden zaznam ma typ struct car*
 | ||||||
|  |     struct car** tracks; | ||||||
|  |     // Velkost pola tracks
 | ||||||
|  |     int track_count; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct station* create_station(); |  | ||||||
| void destroy_station(struct station* station); |  | ||||||
| int select_track(struct station* station, const char* target); |  | ||||||
| void add_target_capacity(struct station* station, const char* target, int capacity); |  | ||||||
| int get_target_capacity(struct station* station, const char* target); |  | ||||||
| int count_targets(struct station* station); |  | ||||||
| int count_capacity(struct station* station); |  | ||||||
| 
 | 
 | ||||||
| #endif  | /**
 | ||||||
|  |  * Vytvori prazdnu stanicu. | ||||||
|  |  * Alokuje pole smernikov tracks na pociatocnu kapacitu STATION_SIZE | ||||||
|  |  * nastavi velkost capacity na STATION_SIZE | ||||||
|  |  * @return smernik na prazdnu stanicu | ||||||
|  |  */ | ||||||
|  | struct station* create_station(); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Uvolni pamat | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  */ | ||||||
|  | void destroy_station(struct station* station); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Vyberie poziciu v poli station->tracks pre ulozenie zaznamu target | ||||||
|  |  * | ||||||
|  |  * Proces vyberu by mal splnat kriteria pre hash funkciu: | ||||||
|  |  * - rovnaky retazec by mal vzdy mat rovnaky vysledok | ||||||
|  |  * - pre rozne retazce by mali byt vysledky co najviac rozne | ||||||
|  |  * | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  * @param nazov cielovej stanice | ||||||
|  |  * @return cislo v intervale 0 az N-1, kde N je  station->track_count | ||||||
|  |  */ | ||||||
|  | int select_track(struct station* station, const char* target); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Zvysi zaznam o pocte cestujucich do danej cielovej stanice. | ||||||
|  |  * | ||||||
|  |  * Najprv sa vyberie cielova trat pomocou select_track(). Ak zaznam neexistuje,  | ||||||
|  |  * vytvori sa novy. Ak zaznam na danej trati (spojkovom zozname) existuje, cislo sa pripocita. | ||||||
|  |  * V databaze nesmu byt dva zaznamy s rovnakou cielovou stanicou. | ||||||
|  |  * | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  * @param nazov cielovej stanice | ||||||
|  |  */ | ||||||
|  | void add_target_capacity(struct station* station,const char* target, int capacity); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Ziska zaznam o cielovej stanici. | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  * @param nazov cielovej stanice | ||||||
|  |  * | ||||||
|  |  * @return kapacitu do cielovej stanice. Ak sa zaznam nenachedza, vrati nula. | ||||||
|  |  */ | ||||||
|  | int get_target_capacity(struct station* station,const char* target); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Spocita pocet cielovych stanic | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  */ | ||||||
|  | int count_targets(struct station* station); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Spocita kapacitu vo vsetkych zaznamoch | ||||||
|  |  * @param smernik na databazu | ||||||
|  |  */ | ||||||
|  | int count_capacity(struct station* station); | ||||||
|  | #endif | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user