Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define MAX 20
- typedef struct
- {
- char jmeno[MAX];
- char prijmeni[MAX];
- char cislo[MAX];
- }zaznam;
- void tisk_tabulky()
- {
- printf("----------------------telefonni seznam----------------------------:\n");
- printf(" | Prijmeni | Jmeno | Cislo |\n");
- }
- void add(int *pocet, zaznam *p)
- {
- if (*pocet == MAX)
- {
- printf("seznam je jiz plny\n");
- }
- else
- {
- printf("zadejte prijmeni\n");
- fflush(stdin);
- gets(p[*pocet].prijmeni);
- printf("zadejte jmeno\n");
- fflush(stdin);
- gets(p[*pocet].jmeno);
- printf("zadejte cislo\n");
- fflush(stdin);
- gets(p[*pocet].cislo);
- *pocet+=1;
- }
- }
- void tisk_seznamu(int *pocet, zaznam *p)
- {
- int i = 0;
- for (i=0; i<*pocet;i++)
- {
- printf("%d. %11s|%10s|%10s\n",i+1,p[i].prijmeni,p[i].jmeno,p[i].cislo);
- }
- printf("-----------------------------------------------------------------------------------------:\n");
- }
- void smaz(int *pocet, zaznam *p)
- {
- int i;
- int lol;
- char prijm[MAX];
- int yay=0;
- int counter =0;
- printf("zadejte prijmeni kontaktu, ktery chcete smazat\n");
- fflush(stdin);
- gets(prijm);
- fflush(stdin);
- for (i =0; i < *pocet; i++)
- {
- if (strcmp(prijm,p[i].prijmeni)==0)
- {
- yay =1;
- lol=i;
- }
- }
- while (yay==0)
- {
- printf("Zadane cislo neexistuje, opakujte zadani cisla\n");
- fflush(stdin);
- gets(prijm);
- fflush(stdin);
- for (i =0; i < *pocet; i++)
- {
- if (strcmp(prijm,p[i].prijmeni)==0)
- {
- yay =1;
- lol=i;
- }
- }
- }
- for (i=lol; i <*pocet-1;i++)
- {
- strcpy(p[i+1].cislo,p[i].cislo);
- strcpy(p[i+1].prijmeni,p[i].prijmeni);
- strcpy(p[i+1].jmeno,p[i].jmeno);
- }
- *pocet=counter+lol;
- }
- void hledat_prijmeni(int pocet, zaznam *p)
- {
- printf("zadejte hledane prijmeni\n");
- char prijm[MAX];
- fflush(stdin);
- gets(prijm);
- fflush(stdin);
- int i;
- int counter=0;
- for(i=0;i<pocet;i++)
- {
- if (strcmp(prijm,p[i].prijmeni)==0)
- {
- tisk_tabulky();
- printf("%d. %11s|%10s|%10s\n",1,p[i].prijmeni,p[i].jmeno,p[i].cislo);
- printf("-----------------------------------------------------------------------------------------:\n");
- counter = 1;
- }
- }
- if (counter ==0)
- {
- printf("prijmeni nenalezeno\n");
- }
- }
- void edit(int pocet, zaznam *p)
- {
- printf("zadejte prijmeni kontaku, ktery chcete editovat\n");
- int i;
- int lol;
- char prijm[MAX];
- int yay=0;
- int counter =0;
- fflush(stdin);
- gets(prijm);
- fflush(stdin);
- for (i =0; i < pocet; i++)
- {
- if (strcmp(p[i].prijmeni,prijm)==0)
- {
- yay =1;
- lol=i;
- }
- }
- while (yay==0)
- {
- printf("Zadane cislo neexistuje, opakujte zadani cisla\n");
- fflush(stdin);
- gets(prijm);
- fflush(stdin);
- for (i =0; i < pocet; i++)
- {
- if (p[i].prijmeni == prijm)
- {
- yay =1;
- lol=i;
- }
- }
- }
- printf("zadejte nove prijmeni\n");
- fflush(stdin);
- gets(p[lol].prijmeni);
- printf("zadejte nove jmeno\n");
- fflush(stdin);
- gets(p[lol].jmeno);
- printf("zadejte nove cislo\n");
- fflush(stdin);
- gets(p[lol].cislo);;
- }
- int main()
- {
- int count=0;
- zaznam p[MAX];
- int pocet = 0;
- char prijmeni2[MAX];
- char jmeno2[MAX];
- char cislo2[MAX];
- FILE *soubor;
- soubor = fopen("seznam.txt", "r");
- int pom=0;
- while (!feof(soubor))
- {
- fgets(prijmeni2,MAX,soubor);
- fgets(jmeno2,MAX,soubor);
- fgets(cislo2,MAX,soubor);
- count++;
- }
- fclose(soubor);
- soubor = fopen("seznam.txt", "r");
- while (!feof(soubor))
- {
- fgets(prijmeni2,MAX,soubor);
- int pom = strlen(prijmeni2);
- pom=pom-1;
- strncpy(p[pocet].prijmeni,prijmeni2,pom);
- p[pocet].prijmeni[pom] = '\0';
- fgets(jmeno2,MAX,soubor);
- pom = strlen(jmeno2);
- pom=pom-1;
- strncpy(p[pocet].jmeno,jmeno2,pom);
- p[pocet].jmeno[pom] = '\0';
- int la =count-1;
- if(pocet==la)
- {
- fgets(cislo2,MAX,soubor);
- pom = strlen(cislo2);
- pom=pom;
- strncpy(p[pocet].cislo,cislo2,pom);
- p[pocet].cislo[pom] = '\0';
- pocet++;
- }
- else
- {
- fgets(cislo2,MAX,soubor);
- pom = strlen(cislo2);
- pom=pom-1;
- strncpy(p[pocet].cislo,cislo2,pom);
- p[pocet].cislo[pom] = '\0';
- pocet++;
- }
- }
- fclose(soubor);
- char x;
- char a;
- printf("vitejte v mem telefonnim seznamu\n");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- do
- {
- printf("stisknete 'p' pro pridani zaznamu, 's' pro smazani zaznamu, 'j' pro hledani dle prijmeni nebo 'e' pro editaci kontaktu\n");
- scanf("%c",&a);
- switch (a)
- {
- case 'p':
- {
- add(&pocet,p);
- system("cls");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- break;
- }
- case 's':
- {
- if (pocet >0)
- {
- system("cls");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- smaz(&pocet,p);
- system("cls");
- printf("novy seznam vypada nasledovne: \n");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- }
- else
- printf("seznam je prazdny, nelze mazat\n");
- break;
- }
- case 'j':
- {
- if(pocet > 0)
- {
- system("cls");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- hledat_prijmeni(pocet,p);
- }
- else
- printf("seznam je prazdny, nelze hledat\n");
- break;
- }
- case 'e':
- {
- if(pocet == 0)
- {
- printf("seznam je prazdny, nelze editovat\n");
- }
- else
- {
- system("cls");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- edit(pocet,p);
- system("cls");
- printf("novy seznam vypada nasledovne:\n");
- tisk_tabulky();
- tisk_seznamu(&pocet,p);
- }
- break;
- }
- }
- printf("chcete pokracovat? 'y'/ 'Y' pro ano\n");
- fflush(stdin);
- scanf("%c",&x);
- fflush(stdin);
- }while (x == 'y' || x == 'Y');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment