Ĺadny brzuch
Witam! Mam napisaną bazę danych. Muszę w niej pozmieniać niektóre wpisy. np zamiast w bazie wpisuje się (Imię, Nazwisko i ocenę). Muszę usunąć wpisywanie oceny i zamienić ją na nr telefonu oraz dodać adres. Niestety z C++ jestem cienki bolek i nie wiem w których liniach tzreba zmeinić wpisy. Nie moge tez znaleść zadnego samouczka na googlach.
Poniżej wklejam kod:
#include <stdio.h> #include <conio.h> struct kolokwia { char imie[20]; char nazwisko[20]; int ocena; } b[100]; void ankieta (struct kolokwia *t) { textcolor(LIGHTBLUE); cprintf("\n\r Podaj imie: "); scanf("%s",(*t).imie); cprintf("\r Podaj nazwisko: "); scanf("%s",(*t).nazwisko); cprintf("\r Podaj ocene: "); scanf("%d",&(*t).ocena); }; void pokaz (struct kolokwia *t) { textcolor(LIGHTGREEN); cprintf("\n Imie: %s\r",(*t).imie); cprintf("\n Nazwisko: %s\r",(*t).nazwisko); cprintf("\n Ocena: %d\n\r",(*t).ocena); }; void czysc() { int n; for(n=0;n<100;n++) { *(b[n].imie)='\0'; *(b[n].nazwisko)='\0'; *(&b[n].ocena)='\0'; }; }; void pauza() { textcolor(WHITE); cprintf("\n\r Nacisnij dowolny klawisz...\n\r"); while(!kbhit()); getch(); clrscr(); }; main() { int znak,nr; FILE *plik; do { textcolor(LIGHTRED); cprintf("\n\n BAZA DANYCH"); textcolor(YELLOW); cprintf("\n\n\r [1] Nowy wpis\r"); cprintf("\n [2] Pokaz\r"); cprintf("\n [3] Zapisz\r"); cprintf("\n [4] Odczyt\r"); cprintf("\n [5] Koniec\r"); cprintf("\n [6] Wyczysc baze danych\r"); cprintf("\n\n Twoj wybor: "); textcolor(CYAN); fflush(stdin); znak=getchar(); switch(znak) { case '1': cprintf("\n Podaj numer wpisu: "); scanf("%d",&nr); ankieta(&b[nr]); pauza(); break; case '2': cprintf("\n Podaj numer wpisu: "); scanf("%d",&nr); pokaz(&b[nr]); pauza(); break; case '3': if((plik=fopen("\\baza.txt","w+t")) == NULL) { textcolor(RED + BLINK); cprintf("\n Nie mozna utorzyc pliku !!!\n\r"); pauza(); break; }; fwrite(b,sizeof(b),1,plik); fclose(plik); cprintf("\r\n Zapisano plik.\n\r"); pauza(); break; case '4': if((plik=fopen("\\baza.txt","r+t")) == NULL) { textcolor(RED + BLINK); cprintf("\n Nie mozna otworzyc pliku !!!\n\r"); pauza(); break; }; fread(b,sizeof(b),1,plik); fclose(plik); cprintf("\r\n Wczytano plik.\n\r"); pauza(); break; case '5': cprintf("\n\r Czy chcesz zakonczyc program ? (t/n) "); fflush(stdin); znak=getchar(); if(znak=='t' || znak=='T') { clrscr(); return 0; } else { clrscr(); break; }; case '6': czysc(); cprintf("\n\r Wyczyszczono baze danych.\n"); pauza(); break; default: clrscr(); }; } while(znak!=EOF); return 0; };
Czy mogł by mi ktoś zaznaczyć na czerwono w których miejscach należy wprowadzić zmiany?
Najlepiej jak znajdziesz w sieci dobry kurs C albo C++ i troszkę przy nim posiedzisz. Wystarczy minuta z google.pl :)
To forum nie jest stworzone do tego by pisać komuś od razu cały kod. Trzeba choć trochę własnej inicjatywy, a ta przykładowa baza na pewno nie jest napisana przez Ciebie. <_<
struct kolokwia { char imie[20]; char nazwisko[20]; char adres[30]; int numer_telefonu; } b[100];
przerabiasz strukturę (swoją drogą ten program raczej jest w C pisany niż w C++), a w funkcjach poszczególnych tam gdzie masz ocenę to przerabiasz na wpisywanie numeru i adresu. :)
Fakt kod nie mój. Posiedziałem, poczytałem, naumiałem się przerobiłem, działa w C++.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Poniżej wklejam kod:
#include <stdio.h> #include <conio.h> struct kolokwia { char imie[20]; char nazwisko[20]; int ocena; } b[100]; void ankieta (struct kolokwia *t) { textcolor(LIGHTBLUE); cprintf("\n\r Podaj imie: "); scanf("%s",(*t).imie); cprintf("\r Podaj nazwisko: "); scanf("%s",(*t).nazwisko); cprintf("\r Podaj ocene: "); scanf("%d",&(*t).ocena); }; void pokaz (struct kolokwia *t) { textcolor(LIGHTGREEN); cprintf("\n Imie: %s\r",(*t).imie); cprintf("\n Nazwisko: %s\r",(*t).nazwisko); cprintf("\n Ocena: %d\n\r",(*t).ocena); }; void czysc() { int n; for(n=0;n<100;n++) { *(b[n].imie)='\0'; *(b[n].nazwisko)='\0'; *(&b[n].ocena)='\0'; }; }; void pauza() { textcolor(WHITE); cprintf("\n\r Nacisnij dowolny klawisz...\n\r"); while(!kbhit()); getch(); clrscr(); }; main() { int znak,nr; FILE *plik; do { textcolor(LIGHTRED); cprintf("\n\n BAZA DANYCH"); textcolor(YELLOW); cprintf("\n\n\r [1] Nowy wpis\r"); cprintf("\n [2] Pokaz\r"); cprintf("\n [3] Zapisz\r"); cprintf("\n [4] Odczyt\r"); cprintf("\n [5] Koniec\r"); cprintf("\n [6] Wyczysc baze danych\r"); cprintf("\n\n Twoj wybor: "); textcolor(CYAN); fflush(stdin); znak=getchar(); switch(znak) { case '1': cprintf("\n Podaj numer wpisu: "); scanf("%d",&nr); ankieta(&b[nr]); pauza(); break; case '2': cprintf("\n Podaj numer wpisu: "); scanf("%d",&nr); pokaz(&b[nr]); pauza(); break; case '3': if((plik=fopen("\\baza.txt","w+t")) == NULL) { textcolor(RED + BLINK); cprintf("\n Nie mozna utorzyc pliku !!!\n\r"); pauza(); break; }; fwrite(b,sizeof(b),1,plik); fclose(plik); cprintf("\r\n Zapisano plik.\n\r"); pauza(); break; case '4': if((plik=fopen("\\baza.txt","r+t")) == NULL) { textcolor(RED + BLINK); cprintf("\n Nie mozna otworzyc pliku !!!\n\r"); pauza(); break; }; fread(b,sizeof(b),1,plik); fclose(plik); cprintf("\r\n Wczytano plik.\n\r"); pauza(); break; case '5': cprintf("\n\r Czy chcesz zakonczyc program ? (t/n) "); fflush(stdin); znak=getchar(); if(znak=='t' || znak=='T') { clrscr(); return 0; } else { clrscr(); break; }; case '6': czysc(); cprintf("\n\r Wyczyszczono baze danych.\n"); pauza(); break; default: clrscr(); }; } while(znak!=EOF); return 0; };
Czy mogł by mi ktoś zaznaczyć na czerwono w których miejscach należy wprowadzić zmiany?
Najlepiej jak znajdziesz w sieci dobry kurs C albo C++ i troszkę przy nim posiedzisz. Wystarczy minuta z google.pl :)
To forum nie jest stworzone do tego by pisać komuś od razu cały kod. Trzeba choć trochę własnej inicjatywy, a ta przykładowa baza na pewno nie jest napisana przez Ciebie. <_<
struct kolokwia { char imie[20]; char nazwisko[20]; char adres[30]; int numer_telefonu; } b[100];
przerabiasz strukturę (swoją drogą ten program raczej jest w C pisany niż w C++), a w funkcjach poszczególnych tam gdzie masz ocenę to przerabiasz na wpisywanie numeru i adresu. :)
Fakt kod nie mój. Posiedziałem, poczytałem, naumiałem się przerobiłem, działa w C++.