Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #define MAX_SIZE 512
- #define MEGFIGYELO_MAX_MERET 100
- #define TELEPULES_MAX_MERET 70
- #define KOR_MAX_MERET 70
- #define IDO_MAX_MERET 80
- typedef enum { false, true } bool;
- typedef struct{
- char megfigyelo_neve[MEGFIGYELO_MAX_MERET];
- char telepules_nev[TELEPULES_MAX_MERET];
- int nyuszi_db;
- char nyuszi_kor[KOR_MAX_MERET];
- char megfigyelesi_ido[IDO_MAX_MERET];
- }megfigyeles;
- void menu();
- void get_time(char* buffer);
- void read_megfigyelesek_from_file(megfigyeles* megfigyelesek, int* megfigyelesek_size);
- void append_megfigyeles(megfigyeles* uj_megfigyeles);
- void uj_megfigyeles();
- void megfigyeles_modositas();
- void megfigyeles_torlese();
- void teljes_lista();
- void megfigyelo_alapjan_lista();
- void telepules_alapjan_lista();
- void ido_fuggvenyeben_darab();
- int main(int argc, const char * argv[]) {
- menu();
- return 0;
- }
- void menu() {
- char input[MAX_SIZE];
- while(true){
- printf("Menu:\n");
- printf("1\t - Nyuszimegfigyelés adatainak rögzítése.\n");
- printf("2\t - Megfigyelési adat modositása.\n");
- printf("3\t - Megfigyelési adat törlése.\n");
- printf("4\t - Megfigyelt adatok teljes listája.\n");
- printf("5\t - Megfigyelő alapján szűrt listája.\n");
- printf("6\t - Település alapján szűrt listája.\n");
- printf("7\t - Idő függvényében a nyuszik darabszáma.\n");
- printf("Kilépes:\t\t\tPress CTRL + C to exit!\n");
- scanf("%s",&input);
- if (strcmp(input, "1") == 0) {
- uj_megfigyeles();
- }
- if (strcmp(input, "2") == 0) {
- megfigyeles_modositas();
- }
- if (strcmp(input, "3") == 0) {
- megfigyeles_torlese();
- }
- if (strcmp(input, "4") == 0) {
- teljes_lista();
- }
- if (strcmp(input, "5") == 0) {
- megfigyelo_alapjan_lista();
- }
- if (strcmp(input, "6") == 0) {
- telepules_alapjan_lista();
- }
- if (strcmp(input, "7") == 0) {
- ido_fuggvenyeben_darab();
- }
- }
- }
- void get_time(char* buffer) {
- time_t rawtime;
- struct tm * timeinfo;
- time (&rawtime);
- timeinfo = localtime (&rawtime);
- strftime (buffer,80,"%Y.%m.%d.-%H:%M:%S",timeinfo);
- }
- void append_megfigyeles(megfigyeles* uj_megfigyeles) {
- FILE *f_megfigyelesek;
- f_megfigyelesek = fopen("MEGFIGYELESEK", "a");
- fprintf(f_megfigyelesek, "%s %s %d %s %s\n",
- uj_megfigyeles->megfigyelo_neve,
- uj_megfigyeles->telepules_nev,
- uj_megfigyeles->nyuszi_db,
- uj_megfigyeles->nyuszi_kor,
- uj_megfigyeles->megfigyelesi_ido);
- fclose(f_megfigyelesek);
- }
- void read_megfigyelesek_from_file(megfigyeles* megfigyelesek, int* megfigyelesek_size) {
- FILE *f_megfigyelesek;
- *megfigyelesek_size = 0;
- f_megfigyelesek = fopen("MEGFIGYELESEK", "r");
- char output[MAX_SIZE];
- while (fgets(output, 100, f_megfigyelesek) != NULL) {
- megfigyeles mf;
- sscanf (output, "%s %s %d %s %s",
- mf.megfigyelo_neve,
- mf.telepules_nev,
- &mf.nyuszi_db,
- mf.nyuszi_kor,
- mf.megfigyelesi_ido);
- megfigyelesek[*megfigyelesek_size] = mf;
- ++(*megfigyelesek_size);
- }
- fclose(f_megfigyelesek);
- }
- void teljes_lista() {
- megfigyeles megfigyelesek[MAX_SIZE];
- int megfigyelesek_size;
- int* megfigyelesek_size_p = &megfigyelesek_size;
- read_megfigyelesek_from_file(megfigyelesek, megfigyelesek_size_p);
- int i;
- for (i = 0; i < megfigyelesek_size; ++i) {
- printf("%s %s %d %s %s\n",
- megfigyelesek[i].megfigyelo_neve,
- megfigyelesek[i].telepules_nev,
- megfigyelesek[i].nyuszi_db,
- megfigyelesek[i].nyuszi_kor,
- megfigyelesek[i].megfigyelesi_ido);
- }
- printf("\n");
- }
- void uj_megfigyeles(){
- char input[MAX_SIZE];
- bool done = false;
- while (!done) {
- printf("Kérem adja meg az új megfigyeles adatait.\n");
- printf("<megfigyelo_neve> <telepules_nev> <nyuszi_db> <nyuszi_kor>\n");
- printf("<nyuszi_kor> értékei:\n0 - fiatal\n1 - felnott\n2 - oreg\n");
- megfigyeles uj_mf;
- int uj_mf_kor;
- scanf("%s %s %d %d",
- uj_mf.megfigyelo_neve,
- uj_mf.telepules_nev,
- &uj_mf.nyuszi_db,
- &uj_mf_kor);
- bool valid = false;
- if (uj_mf_kor == 0) {
- strcpy(uj_mf.nyuszi_kor, "fiatal");
- valid = true;
- }else if (uj_mf_kor == 1) {
- strcpy(uj_mf.nyuszi_kor, "felnott");
- valid = true;
- }else if (uj_mf_kor == 2) {
- strcpy(uj_mf.nyuszi_kor, "oreg");
- valid = true;
- }
- if (valid == true) {
- get_time(uj_mf.megfigyelesi_ido);
- append_megfigyeles(&uj_mf);
- printf("\nFelvitel sikerült!\n");
- }else{
- printf("\nFelvitel nem sikerült! Rosszul adta meg a <nyuszi_kor> értékét!\n");
- }
- fseek(stdin,0,SEEK_END);
- printf("\nAkar újabb megfigyelest felvenni? (y/n)\t");
- scanf("%s", input);
- if (strcmp(input, "n") == 0) {
- done = true;
- }
- }
- }
- void megfigyeles_modositas() {
- megfigyeles mfek[MAX_SIZE];
- int mfek_size;
- char t_megfigyelo_neve[MEGFIGYELO_MAX_MERET];
- char t_telepules_nev[TELEPULES_MAX_MERET];
- printf("Kérem adja meg a modositani kivánt megfigyelés adatait.\n");
- printf("<megfigyelo_neve> <telepules_nev>\n");
- scanf("%s %s", t_megfigyelo_neve, t_telepules_nev);
- read_megfigyelesek_from_file(mfek, &mfek_size);
- FILE *f_mf;
- f_mf = fopen("MEGFIGYELESEK", "w");
- int i;
- int seged = 0;
- for (i = 0; i < mfek_size; ++i) {
- if (strcmp(mfek[i].megfigyelo_neve, t_megfigyelo_neve) == 0 &&
- strcmp(mfek[i].telepules_nev, t_telepules_nev) == 0) {
- ++seged;
- printf("Kérem adja meg az megfigyeles új adatait.\n");
- printf("<nyuszi_db> <nyuszi_kor>\n");
- printf("<nyuszi_kor> értékei:\n0 - fiatal\n1 - felnott\n2 - oreg\n");
- int uj_mf_db;
- int uj_mf_kor;
- scanf("%d %d",
- &uj_mf_db,
- &uj_mf_kor);
- mfek[i].nyuszi_db = uj_mf_db;
- bool valid = false;
- if (uj_mf_kor == 0) {
- strcpy(mfek[i].nyuszi_kor, "fiatal");
- valid = true;
- }else if (uj_mf_kor == 1) {
- strcpy(mfek[i].nyuszi_kor, "felnott");
- valid = true;
- }else if (uj_mf_kor == 2) {
- strcpy(mfek[i].nyuszi_kor, "oreg");
- valid = true;
- }
- if (valid == true) {
- fprintf(f_mf, "%s %s %d %s %s\n",
- mfek[i].megfigyelo_neve,
- mfek[i].telepules_nev,
- mfek[i].nyuszi_db,
- mfek[i].nyuszi_kor,
- mfek[i].megfigyelesi_ido);
- }else{
- printf("\nModositas nem sikerült! Rosszul adta meg a <nyuszi_kor> értékét!\n");
- }
- }
- else {
- fprintf(f_mf, "%s %s %d %s %s\n",
- mfek[i].megfigyelo_neve,
- mfek[i].telepules_nev,
- mfek[i].nyuszi_db,
- mfek[i].nyuszi_kor,
- mfek[i].megfigyelesi_ido);
- }
- }
- if(seged==0){
- printf("Modositas sikertelen. Nem találhato ilyen bejegyzes.\n\n");
- }
- else{
- printf("Modositas sikerult.\n\n");
- }
- fclose(f_mf);
- }
- void megfigyeles_torlese() {
- megfigyeles mfek[MAX_SIZE];
- int mfek_size;
- char t_megfigyelo_neve[MEGFIGYELO_MAX_MERET];
- char t_telepules_nev[TELEPULES_MAX_MERET];
- printf("Kérem adja meg a törölni kivánt megfigyelés adatait.\n");
- printf("<megfigyelo_neve> <telepules_nev>\n");
- scanf("%s %s", t_megfigyelo_neve, t_telepules_nev);
- read_megfigyelesek_from_file(mfek, &mfek_size);
- FILE *f_mf;
- f_mf = fopen("MEGFIGYELESEK", "w");
- int i;
- int seged = 0;
- for (i = 0; i < mfek_size; ++i) {
- if (strcmp(mfek[i].megfigyelo_neve, t_megfigyelo_neve) != 0 ||
- strcmp(mfek[i].telepules_nev, t_telepules_nev) != 0) {
- fprintf(f_mf, "%s %s %d %s %s\n",
- mfek[i].megfigyelo_neve,
- mfek[i].telepules_nev,
- mfek[i].nyuszi_db,
- mfek[i].nyuszi_kor,
- mfek[i].megfigyelesi_ido);
- }
- else{
- ++seged;
- }
- }
- if(seged==0){
- printf("Törlés sikertelen. Nem találhato ilyen bejegyzes.\n\n");
- }
- else{
- printf("Törlés sikerult.\n\n");
- }
- fclose(f_mf);
- }
- void megfigyelo_alapjan_lista(){
- megfigyeles megfigyelesek[MAX_SIZE];
- int megfigyelesek_size;
- char megfigyelo_neve[MEGFIGYELO_MAX_MERET];
- int* megfigyelesek_size_p = &megfigyelesek_size;
- read_megfigyelesek_from_file(megfigyelesek, megfigyelesek_size_p);
- printf("Kérem adja meg a megfigyelo nevet.\n");
- scanf("%s", megfigyelo_neve);
- int i;
- for (i = 0; i < megfigyelesek_size; ++i) {
- if (strcmp(megfigyelesek[i].megfigyelo_neve, megfigyelo_neve) == 0) {
- printf("%s %s %d %s %s\n",
- megfigyelesek[i].megfigyelo_neve,
- megfigyelesek[i].telepules_nev,
- megfigyelesek[i].nyuszi_db,
- megfigyelesek[i].nyuszi_kor,
- megfigyelesek[i].megfigyelesi_ido);
- }
- }
- printf("\n");
- }
- void telepules_alapjan_lista(){
- megfigyeles megfigyelesek[MAX_SIZE];
- int megfigyelesek_size;
- char telepules_nev[TELEPULES_MAX_MERET];
- int* megfigyelesek_size_p = &megfigyelesek_size;
- read_megfigyelesek_from_file(megfigyelesek, megfigyelesek_size_p);
- printf("Kérem adja meg a telepules nevet.\n");
- scanf("%s", telepules_nev);
- int i;
- for (i = 0; i < megfigyelesek_size; ++i) {
- if (strcmp(megfigyelesek[i].telepules_nev, telepules_nev) == 0) {
- printf("%s %s %d %s %s\n",
- megfigyelesek[i].megfigyelo_neve,
- megfigyelesek[i].telepules_nev,
- megfigyelesek[i].nyuszi_db,
- megfigyelesek[i].nyuszi_kor,
- megfigyelesek[i].megfigyelesi_ido);
- }
- }
- printf("\n");
- }
- void ido_fuggvenyeben_darab(){
- megfigyeles megfigyelesek[MAX_SIZE];
- int megfigyelesek_size;
- char* parts;
- char ido[IDO_MAX_MERET];
- char telepules_nev[TELEPULES_MAX_MERET];
- char ido2[IDO_MAX_MERET];
- int db = 0;
- int i;
- int j = 0;
- int* megfigyelesek_size_p = &megfigyelesek_size;
- read_megfigyelesek_from_file(megfigyelesek, megfigyelesek_size_p);
- printf("Kérem adja meg a telepules nevet.\n");
- scanf("%s", telepules_nev);
- while(j < megfigyelesek_size){
- if (strcmp(megfigyelesek[j].telepules_nev, telepules_nev) == 0){
- parts = strtok(megfigyelesek[j].megfigyelesi_ido, ".");
- strcpy(ido2, &parts[0]);
- parts = strtok(&parts[5], ".");
- strcat(ido2, parts);
- break;
- }
- j++;
- }
- for (i = 0; i < megfigyelesek_size; ++i) {
- parts = strtok(megfigyelesek[i].megfigyelesi_ido, ".");
- strcpy(ido, &parts[0]);
- parts = strtok(&parts[5], ".");
- strcat(ido, parts);
- if (strcmp(megfigyelesek[i].telepules_nev, telepules_nev) == 0) {
- if(strcmp(ido2, ido) == 0){
- db += megfigyelesek[i].nyuszi_db;
- }
- else{
- printf("%s. %d darab nyuszi volt megfigyelve.\n",
- ido2,
- db);
- db = megfigyelesek[i].nyuszi_db;
- strcpy(ido2,ido);
- }
- }
- }
- printf("%s. %d darab nyuszi volt megfigyelve.\n",
- ido2,
- db);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement