#1 03-30-2007 10:29:36

l3niwi3c

Administrator

1584358
Call me!
Skąd: Białystok/Stawiski
Zarejestrowany: 03-07-2007
Posty: 16
Punktów :   

Baza danych

Niestety baza działa prawidłowo tylko pod linuxem...Wykorzystuje w niej opcje dostępne tylko pod linuxem...




Kod:

#include <stdio.h>
#include <string.h>

#define WYSWIETL 1
#define DODAJ 2
#define EDYTUJ 3
#define USUN 4
#define ZAKONCZ 5

#define X0Y0 printf("\033[0;0f");
#define DOMYSLNY "Wybierz Opcję w Menu"

#define czerwony printf("\033[31;48m");
#define czarny printf("\033[30;48m");
#define gotoedycja  {\
                        YX(9,0); \
                        Rysuj(2,4,8,"Podaj wartość? ___________________",52,0,0); \
                        YX(9,29);\
                    }
#define pokaz    {\
                    Rysuj(2,8,11,"Imię : _______________",61,0,0);\
                    Rysuj(2,8,7,"Nazwisko : ____________________",60,0,0);\
                    Rysuj(2,8,1,"Ulica, nr domu : ______________________________",60,0,0);\
                    Rysuj(2,8,3,"Kod Pocztowy : _____",60,0,0);\
                    Rysuj(2,8,9,"Miasto : ____________________",60,0,0);\
                    Rysuj(2,8,8,"Telefon : ______________",60,0,0);\
                    Rysuj(2,8,11,"Płeć : _  (k-Kobieta, m-mężczyzna)",64,0,0);\
                    Rysuj(4,8,0,"",60,0,0);\
                }


/* Prototypy funkcji */
void Cls(void);
void Rysuj (int,int,int,char*,int,int,int);
void Ramka (char*,char*,int);
void YX (int,int);


void wyswietl (int);
int dodaj (int);
void edytuj (int);
int usun (int);

/* Koniec prototypów funkcji */

struct dane
    {
        char imie[15];
        char nazwisko[20];
        char ulica[20];
        char kod[6];
        char miasto[20];
        char tel[9];
        char plec;
        
    
    }id[100];

int ilosc = -1;
char *komunikat = DOMYSLNY;
    
    
/*  Główny kod programu */
main(void)
{
    int wybor;
    
do
{    
    
    
    printf("\033[34;48m");
    Cls();
    printf("\n\n");
    printf("\t╔══════════════════════════════════════════╗\t╔════════════╗\n");
    printf("\t║            KSIĄŻKA ADRESOWA              ║\t║ Aktualnych ║\n");
    printf("\t╠══════════════════════════════════════════╣\t║ Wpisów: %2d ║\n",ilosc+1);
    printf("\t║   Wyświetl Wpisy .................. 1    ║\t╚════════════╝\n");
    printf("\t║   Dodaj Nowy Wpis ................. 2    ║\n");
    printf("\t║   Edytuj Wpis ..................... 3    ║\n");
    printf("\t║   Usuń Wpis ....................... 4    ║\n");
    printf("\t║   Zakończ Działanie Programu ...... 5    ║\n");
    printf("\t╚══════════════════════════════════════════╝\n");    
    printf("\n\n\n");
    printf("    ╔════════ KOMUNIKATY ═════════════════════════════════╦════════╦═╗\n");
    printf("    ║\t %35s\t          ║ Wybór: ║ ║\n",komunikat);
    printf("    ╚═════════════════════════════════════════════════════╩════════╩═╝\n");
    
    YX(16,69);
        wybor = getchar()-48;
    
            switch(wybor)
            {
                case WYSWIETL : wyswietl(ilosc);break;
                case DODAJ : ilosc = dodaj(ilosc); break;
                case EDYTUJ : edytuj(ilosc); break;
                case USUN : ilosc = usun(ilosc); break;
                case ZAKONCZ : ;
                    default :     {
                                    komunikat="Błędny wybór, spróbuj ponownie";
                            
                                }
            }
}while(wybor != ZAKONCZ);    
    
    
    
    return (0);
} // Koniec MAIN

/*    Funkcje  */


void wyswietl (int ilosc)
{
    int i;
    komunikat = DOMYSLNY;
    
    X0Y0;
    printf("\n\n");
    Rysuj(1,5,0,"",70,0,0);
    Rysuj(2,5,24,"AKTUALNE WPISY W BAZIE:",70,0,0);
    Rysuj(3,5,0,"",70,0,0);
    Rysuj(2,5,0,"         Imię              Nazwisko               Miasto     Płeć",73,0,0);
        for (i=0 ; i <=ilosc; i++)
        {
            
            printf("     ║%15s %20s %20s      %c    ║\n",id[i].imie,id[i].nazwisko,
                id[i].miasto,id[i].plec);
        }
    Rysuj(4,5,0,"",70,0,0);
    getchar();
    getchar();
}
int dodaj(int ilosc)
{
    ilosc++;
    komunikat = DOMYSLNY;
    
    YX(4,0);
    Rysuj(6,6,8," DODAWANIE WPISU ",60,0,0);
    Rysuj(2,6,11,"Imię : _______________",61,0,0);
    Rysuj(2,6,7,"Nazwisko : ____________________",60,0,0);
    Rysuj(2,6,1,"Ulica, nr domu : ______________________________",60,0,0);
    Rysuj(2,6,3,"Kod Pocztowy : _____",60,0,0);
    Rysuj(2,6,9,"Miasto : ____________________",60,0,0);
    Rysuj(2,6,8,"Telefon : ______________",60,0,0);
    Rysuj(2,6,11,"Płeć : _  (k-Kobieta, m-Mężczyzna)",64,0,0);
    Rysuj(4,6,0,"",60,0,0);
    
    do{        
        YX(5,0);
        Rysuj(2,6,11,"Imię : _______________",61,0,0);
        YX(5,26);
        gets(id[ilosc].imie);
      }while(((id[ilosc].imie[0] < 'A') || (id[ilosc].imie[0] > 'Z'))
              &&    ((id[ilosc].imie[0] < 'a') || (id[ilosc].imie[0] > 'z')));
    do{        
        YX(6,0);
        Rysuj(2,6,7,"Nazwisko : ____________________",60,0,0);
        YX(6,26);
        gets(id[ilosc].nazwisko);
       }while(((id[ilosc].nazwisko[0] < 'A') || (id[ilosc].nazwisko[0] > 'Z'))
              &&    ((id[ilosc].nazwisko[0] < 'a') || (id[ilosc].nazwisko[0] > 'z')));
       
    do{
        YX(7,0); 
        Rysuj(2,6,1,"Ulica, nr domu : ______________________________",60,0,0);
        YX(7,26);
        gets(id[ilosc].ulica);
      }while(((id[ilosc].ulica[0] < 'A') || (id[ilosc].ulica[0] > 'Z'))
              &&    ((id[ilosc].ulica[0] < 'a') || (id[ilosc].ulica[0] > 'z')));
      
    do{
        YX(8,0); 
        Rysuj(2,6,3,"Kod Pocztowy : _____",60,0,0);
        YX(8,26);
        gets(id[ilosc].kod);        
      }while((id[ilosc].kod[0] < '0') || (id[ilosc].kod[0] > '9'));
        
    do{
        YX(9,0); 
        Rysuj(2,6,9,"Miasto : ____________________",60,0,0);
        YX(9,26);
        gets(id[ilosc].miasto);    
      }while(((id[ilosc].miasto[0] < 'A') || (id[ilosc].miasto[0] > 'Z'))
              &&    ((id[ilosc].miasto[0] < 'a') || (id[ilosc].miasto[0] > 'z')));
      
    do{
        YX(10,0);
        Rysuj(2,6,8,"Telefon : ______________",60,0,0);
        YX(10,26);
        gets(id[ilosc].tel);
      }while((id[ilosc].tel[0] < '0') || (id[ilosc].tel[0] > '9'));
    
    do{
        YX(11,0);
        Rysuj(2,6,11,"Płeć : _  (k-Kobieta, m-mężczyzna)",64,0,0);
        YX(11,26);
        id[ilosc].plec=getchar();
      }while((id[ilosc].plec!= 'k') && (id[ilosc].plec != 'm'));
      
      
    return (ilosc);
}


void edytuj(int ilosc)
{
    int i,edycja;
    komunikat = DOMYSLNY;
    
    X0Y0;
    printf("\n\n\n");
    Rysuj(6,8,12,"EDYTOWANIE WPISU",60,0,0);
    Rysuj(2,8,10,"Który wpis edytować?: __",62,0,0);
    pokaz;
    getchar();
    
    do
    {        
        YX(5,0);
        Rysuj(2,8,10,"Który wpis edytować?: __",62,0,0);
        YX(5,42);
        
        i=getchar()-48;
        
    }while(((i<0) || (i>ilosc)) && (i==ilosc));
    i--;
    YX(6,28);    printf("%s",id[i].imie);
    YX(7,28);    printf("%s",id[i].nazwisko);
    YX(8,28);    printf("%s",id[i].ulica);
    YX(9,28);    printf("%s",id[i].kod);
    YX(10,28);    printf("%s",id[i].miasto);
    YX(11,28);    printf("%s",id[i].tel);
    YX(12,28);    printf("%c",id[i].plec);
    getchar();getchar();
    
    YX(6,0);
    Rysuj(1,4,8,"",50,0,0);
    Rysuj(2,4,2,"    1) Imię  2) Nazwisko  3) Ulica 4) Kod",51,0,0);
    Rysuj(2,4,2,"        5) Miasto  6) Telefon  7)Płeć",52,0,0);
    Rysuj(2,4,8,"    Co mam edytować? _",51,0,0);
    
    Rysuj(4,4,0,"",50,0,0);    
    
    do{
    YX(9,0);
    Rysuj(2,4,8,"    Co mam edytować? _",51,0,0);
    YX(9,35);
    edycja=getchar()-48;
    }while(edycja<1 || edycja>7);
    
    switch(edycja)
    {
        case 1: {
                    gotoedycja;
                    scanf("%s",id[i].imie);
                }break;
        case 2: {
                    gotoedycja;                    
                    scanf("%s",id[i].nazwisko);
                }break;
        case 3: {
                    gotoedycja;
                    scanf("%s",id[i].ulica);
                }break;
        case 4: {
                    gotoedycja;
                    scanf("%s",id[i].kod);
                }break;
        case 5: {
                    gotoedycja;
                    scanf("%s",id[i].miasto);
                }break;
        case 6: {
                    gotoedycja;
                    scanf("%s",id[i].tel);
                }break;
        case 7: {
                    gotoedycja;
                    scanf("%c",id[i].plec);
                }break;
    }
    getchar();
}

int usun(int ilosc)
{
    int i,del;
    komunikat = DOMYSLNY;
    
    X0Y0;
    printf("\n\n\n");
    Rysuj(6,8,12," USUWANIE WPISU ",60,0,0);
    Rysuj(2,8,10,"Który wpis usunąć?: __",63,0,0);
    pokaz;
    getchar();
    do
    {        
        YX(5,0);
        Rysuj(2,8,10,"Który wpis usunąć?: __",63,0,0);
        YX(5,40);
        
        i=getchar()-48;
    }while(((i<0) || (i>ilosc)) && (i==ilosc));
    
    i--;
    YX(6,28);    printf("%s",id[i].imie);
    YX(7,28);    printf("%s",id[i].nazwisko);
    YX(8,28);    printf("%s",id[i].ulica);
    YX(9,28);    printf("%s",id[i].kod);
    YX(10,28);    printf("%s",id[i].miasto);
    YX(11,28);    printf("%s",id[i].tel);
    YX(12,28);    printf("%c",id[i].plec);
    getchar();getchar();
    
    YX(6,0);
    Rysuj(1,4,8,"",50,0,0);
    Rysuj(2,4,8,"    Usunąć wpis (t/n)? _",52,0,0);
    Rysuj(4,4,0,"",50,0,0);    
    
    do
    {
        YX(7,37);
        del=getchar();
    }while((del!= 't') && (del != 'n'));
    if(del=='t') 
    {
        YX(7,0);
        Rysuj(2,4,8,"    Wpis usunieto !",52,0,0);
        strcpy(id[i].imie, id[ilosc].imie);
        strcpy(id[i].nazwisko, id[ilosc].nazwisko);
        strcpy(id[i].ulica, id[ilosc].ulica);
        strcpy(id[i].kod, id[ilosc].kod);
        strcpy(id[i].miasto, id[ilosc].miasto);
        strcpy(id[i].tel, id[ilosc].tel);
        id[i].plec=id[ilosc].plec;
        
        ilosc--;
    }
    return (ilosc);
}




void Rysuj (int kod,int tab,int odstep, char *tekst,int szerokosc,int z1,int z2)
{
    
    int i,dlugosc;
    

    dlugosc = strlen (tekst);
    
    for(i=0 ; i < tab ; i++) printf(" ");
        
    switch(kod)
    {
        case 1: {Ramka ("╔","╗",szerokosc);} break;  
        case 2: {printf("║");
                 for (i=0 ; i <odstep ; i++) printf(" ");
                 printf("%s",tekst);
                 for (i=0 ; i < szerokosc-dlugosc-odstep-2; i++) printf(" ");
                 printf("║\n");
                }break;
        
        case 3: {Ramka ("╠","╣",szerokosc);} break;  
        case 4: {Ramka ("╚","╝",szerokosc);} break;  
        case 6: {printf("╔");
                 for (i=0 ; i <odstep ; i++) printf("═");
                 printf("%s",tekst);
                     if (z1==0) z1=szerokosc;
                 for (i=0 ; i < z1-(odstep+dlugosc+2); i++) printf("═");
                     if (z1!=szerokosc) printf("╦");
                 //printf("╦");
                 if (z2==0) z2=szerokosc;
                 for (i=0 ; i < z2-1-z1; i++) printf("═");
                 if (z2!=szerokosc) printf("╦");
                 for (i=0 ; i < szerokosc-z2-1; i++) printf("═");
                 printf("╗\n");
                }break;                        
                
    }
}

void Ramka (char *a,char *b,int szerokosc)
{    
    int i;
    
    printf("%s",a);
      for (i=2 ; i < szerokosc ; i++) printf("═");
    printf("%s\n",b);
    return;
}


void Cls(void)
{
  printf("\033[2J"); // Czyci ekran
  printf("\033[0;0f"); // Ustawia kursor w lewym, górnym rogu
}// Koniec Cls

void YX (int y,int x)
{
    printf("\033[%d;%df",y,x);
}

http://img.userbars.pl/53/10528.gif
http://img.userbars.pl/78/15480.gif
http://img.userbars.pl/86/17086.jpg
http://img.userbars.pl/78/15594.png

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.pl