Baza danych w języku C.

Odpowiedz Nowy wątek
2019-01-29 21:28
0

Witam !
Czy ktoś mógłby mi opisać działanie tej bazy danych ? Dostałem ja od kolegi i chciałbym wiedzieć jak działa, coś rozumiem ale nie w 100%. Chodzi mi o opis funkcji, pętli itp. co wykonują. Poniżej wrzucam kod.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <windows.h>
#include <time.h>

char Imie[20][10];
char Nazwisko[20][10];
char Adres[50][10];
char Miasto[20][10];
char Telefon[9][10];
char Pesel[11][10];
char pesel[11],telefon[9],imie[20],nazwisko[20],miasto[20];
int ilosc=0,i,wybor;
bool brak=true;

void Wyswietl()
{
printf("Wszyscy uzytkownicy systemu:\n");
for(i=0;i<ilosc;i++)
{
printf("-------------\nIndeks:%d\nImie:%s\nNazwisko:%s\nAdres:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Imie[i],Nazwisko[i],Adres[i],Miasto[i],Telefon[i],Pesel[i]);
if(i) brak=false;
}
if(brak) printf("Brak uzytkownikow w bazie\n");

}

int Zamien(char a)
{
int liczba=0;
liczba=liczba*10+a-'0';
return liczba;

}
bool Sprawdz_pesel( char pesel[])
{
int wagi[10]={1,3,7,9,1,3,7,9,1,3};
int suma=0;
for(i=0;i<10;i++)
suma+=Zamien(pesel[i])*wagi[i];

int kontrolna=Zamien(pesel[10]);
int sumakontr=suma%10;
if( (sumakontr==0 && kontrolna==0) || (sumakontr+kontrolna==10) ) return true;
else return false;

}
bool Przeszukaj(char pesel[])
{
for(i=0;i<ilosc;i++)
if(!strcmp(pesel,&Pesel[i])) return true;
return false;
}
bool Sprawdz_nr(char numer[])
{
for(i=0;i<strlen(numer);i++)
if(numer[i]<48 || numer[i]>57) return false;
return true;
}
bool Sprawdz_tekst(char tekst[])
{
for(i=0;i<strlen(tekst);i++)
{
if(tekst[i]==32) continue;
else if( tekst[i]<65 || ((tekst[i]>90) && (tekst[i]<97) ) || tekst[i]>122 ) return false;
}

return true;

}

void Dodaj()
{
printf("Podaj PESEL: ");
scanf("%s",&pesel);
if(Sprawdz_pesel(pesel))
{
if( !Przeszukaj(pesel) )
{
printf("Podaj Nr.Telefonu: "); scanf("%s",&telefon);
if(strlen(telefon)==9 && Sprawdz_nr(telefon))
{
printf("Podaj Imie: "); scanf("%s",&imie);
printf("Podaj Nazwisko: "); scanf("%s",&nazwisko);
printf("Podaj Adres: "); scanf(" %[^\n]s",&Adres[ilosc][0]);
printf("Podaj Miasto: "); scanf(" %[^\n]s",&miasto);
if(Sprawdz_tekst(imie) && Sprawdz_tekst(nazwisko) && Sprawdz_tekst(miasto))
{
for(i=0;i<20;i++)
{
Imie[ilosc][i]=imie[i];
Nazwisko[ilosc][i]=nazwisko[i];
Miasto[ilosc][i]=miasto[i];
if(i<11)Pesel[ilosc][i]=pesel[i];
if(i<9)Telefon[ilosc][i]=telefon[i];
}
ilosc++;
printf("Pomyslnie dodano %d rekord.\n",ilosc);
}
else printf("Wprowadzono niedozwolone znaki w nieodpowiednich miejscach\n");
}

      else printf("Podany niepoprawny numer telefonu\n");
    }
    else printf("Podany PESEL jest juz w bazie\n");
}
else printf("Podany PESEL jest nieprawidlowy\n");

}
void Wyszukaj()
{
char filter[50];
printf("Wyszukaj po:\n1.Imieniu\n2.Nazwisku\n3.Ulicy\n4.Miescie\n5.Telefonie\n6.PESELU\n7.Plci\n8.Wszystkich\n");
printf("Moj wybor: ");
scanf("%d",&wybor);
switch(wybor)

{
    case 1:

        printf("Podaj imie do filtrowania: "); scanf("%s",&filter);
        for(i=0;i<ilosc;i++)
            if(!strcmp(filter,&Imie[i]))
            {
                printf("-------------\nIndeks:%d\nImie:%s\nNazwisko:%s\nAdres:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Imie[i],Nazwisko[i],Adres[i],Miasto[i],Telefon[i],Pesel[i]);
                brak=false;
            }
            if(brak) printf("Brak wyszukan w bazie\n");
            break;
    case 2:
        printf("Podaj nazwisko do filtrowania: "); scanf("%s",&filter);
        for(i=0;i<ilosc;i++)
            if(!strcmp(filter,&Nazwisko[i]))
            {
                printf("-------------\nIndeks:%d\nNazwisko:%s\nImie:%s\nAdres:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Nazwisko[i],Imie[i],Adres[i],Miasto[i],Telefon[i],Pesel[i]);
                brak=false;
            }
            if(brak) printf("Brak wyszukan w bazie\n");
            break;
    case 3:
        printf("Podaj adres do filtrowania: "); scanf("%s",&filter);
        for(i=0;i<ilosc;i++)
            if(!strcmp(filter,&Adres[i]))
            {
                printf("-------------\nIndeks:%d\nAdres:%s\nNazwisko:%s\nImie:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Adres[i],Nazwisko[i],Imie[i],Miasto[i],Telefon[i],Pesel[i]);
                brak=false;
            }
            if(brak) printf("Brak wyszukan w bazie\n");
                break;
    case 4:
        printf("Podaj Miasto do filtrowania: "); scanf("%s",&filter);
        for(i=0;i<ilosc;i++)
            if(!strcmp(filter,&Miasto[i]))
            {
                printf("-------------\nIndeks:%d\nMiasto:%s\nAdres:%s\nNazwisko:%s\nImie:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Miasto[i],Adres[i],Nazwisko[i],Imie[i],Telefon[i],Pesel[i]);
                brak=false;
            }
            if(brak) printf("Brak wyszukan w bazie\n");
                break;
    case 5:
        printf("Podaj Nr.telefonu do filtrowania: "); scanf("%s",&filter);
            for(i=0;i<ilosc;i++)
                if(!strcmp(filter,&Telefon[i]))
                {
                    printf("-------------\nIndeks:%d\nTelefon:%s\Nazwisko:%s\nImie:%s\nMiasto:%s\nAdres:%s\nPesel:%s\n-------------\n",i+1,Telefon[i],Nazwisko[i],Imie[i],Miasto[i],Adres[i],Pesel[i]);
                    brak=false;
                }
                if(brak) printf("Brak wyszukan w bazie\n");
                break;
    case 6:
        printf("Podaj PESEL ktory chcesz wyszukac: "); scanf("%s",&filter);
        if(Sprawdz_pesel(filter))
        {
            for(i=0;i<ilosc;i++)
                if(!strcmp(filter,&Pesel[i]))
                {
                    printf("-------------\nIndeks:%d\nPesel:%s\nNazwisko:%s\nImie:%s\nTelefon:%s\nMiasto:%s\nAdres:%s\n-------------\n",i+1,Pesel[i],Nazwisko[i],Imie[i],Telefon[i],Miasto[i],Adres[i]);
                    brak=false;
                }
                if(brak) printf("Brak wyszukan w bazie\n");
        }
        else printf("Podany PESEL jest nieprawidlowy\n");
                break;
    case 7:
            printf("1.Mezczyzni\n2.Kobiety\n");
            printf("Moj wybor: "); scanf("%d",&wybor);
                switch(wybor)
                {
                    case 1:
                        for(i=0;i<ilosc;i++)
                            if( Zamien(Pesel[i][9])%2!=0 )
                            {
                                printf("-------------\nIndeks:%d\nImie:%s\nNazwisko:%s\nAdres:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Imie[i],Nazwisko[i],Adres[i],Miasto[i],Telefon[i],Pesel[i]);
                                brak=false;
                            }
                            if(brak) printf("Brak wyszukan w bazie\n");
                            break;
                    case 2:
                        for(i=0;i<ilosc;i++)
                            if( Zamien(Pesel[i][9])%2==0 )
                            {
                                printf("-------------\nIndeks:%d\nImie:%s\nNazwisko:%s\nAdres:%s\nMiasto:%s\nTelefon:%s\nPesel:%s\n-------------\n",i+1,Imie[i],Nazwisko[i],Adres[i],Miasto[i],Telefon[i],Pesel[i]);
                                brak=false;
                            }
                            if(brak) printf("Brak wyszukan w bazie\n");
                            break;
                    default:
                        printf("Wybrano zla opcje wybierania\n"); break;

                }
                break;

    default:
        printf("Wybrano zla opcje wybierania\n"); break;
}

}

int main()
{
char znak;
while(znak!='Q' && znak!='q')
{
printf("Menu:\n1.Dodaj rekord \n2.Wyszukaj\n3.Pokaz wszystkich\nMoj wybor: ");
scanf("%d",&wybor);

        switch(wybor)
        {
            case 1: Dodaj(); break;
            case 2: Wyszukaj();break;
            case 3: Wyswietl(); break;
            default: printf("Wybrano zla opcje wybierania\n"); break;
        }
        printf("Aby wyjsc z programu wcisnij Q i zatwierdz lub dowolny przycisk aby kontynuowac\n");
        printf("Moj wybor: ");
        scanf(" %c",&znak);
        system("cls");
}
return 0;

}

Pozostało 580 znaków

2019-01-29 22:06
0

Napisz czego konkretnie nie rozumiesz. No i miej litość i sformatuj ten kod.


W tym problem, ze nie rozumiem praktycznie całości, tylko pojedyncze linijki a to nic mi nie daje. Niestety, ale nie mam pojęcia jak sformatować :/, taki dostałem i wole z nim nie kombinować. Chciałbym wiedzieć co robi po kolei. - O MÓJ BOŻE KUBIII 2019-01-29 23:00

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0