Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <conio.h>
- #include <string.h>
- FILE *f;
- typedef struct stud {
- char* nume[20], data_n[10];
- char* matricola[6];
- char* adr[30];
- }
- studenti; //numele tipului
- studenti a[50];
- /*Problema Laorator 2: intr-un fisier aveti inregistrari cu datele personale ale studentilor*/
- /*Fiecare inregistrare este memorata pe un rand din fisier si contine urmatoarele campuri: nume prenume de tipul char[20], nr matricol string[6]*/
- /*data nasterii de tip char, adresa de tip char[30]*/
- /*data nasterii zz/ll/aaaa*/
- /*se face validarea inregistrarilor fara cifre in nume si fara litere in numarul matricol, ;itere in data nasterii*/
- /*daca validarea este ok, datele se salveaza intr-un alt fisier, daca nu este ok se da mesaj de eroare pentru campul respectiv si se trece la urmatoarea*/
- /*inregistrare din fisierul de intrare*/
- void Salvare (char x[70], int i)
- {
- char * parte, pozitie = 0;;
- FILE *o;
- parte = strtok (x,",");
- *a[i].nume = parte;
- while (parte != NULL)
- {
- parte = strtok (NULL, ",");
- if(pozitie == 0) *a[i].data_n = parte;
- if(pozitie == 1) *a[i].matricola = parte;
- if(pozitie == 2) *a[i].adr = parte;
- }
- o = fopen("studenti.out","wt");
- fputs(a[i].nume, o);
- fputs(a[i].data_n, o);
- fputs(a[i].matricola, o);
- fputs(a[i].adr, o);
- fclose(o);
- }
- void validare(char x[70], int i)
- {
- const char *invalid_characters_nume = "1234567890";
- const char *invalid_characters_date = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
- char * parte, pozitie = 0;
- char valid = 0;
- parte = strtok(x,",");
- while (parte != NULL)
- {
- parte = strtok (NULL,",");
- char *c = parte;
- while (*c)
- {
- if(pozitie == 0){
- if (strchr(invalid_characters_nume, *c))
- {
- printf("Sunt interzise cifre in nume.");
- valid = 0;
- return;
- }
- }
- else
- if (strchr(invalid_characters_date, *c))
- {
- printf("Sunt interzise litere in matricol/data nasterii.");
- valid = 0;
- return;
- }
- c++;
- valid = 1;
- }
- }
- if(valid) Salvare(x,i);
- return;
- }
- void Citire()
- {
- int n = 0;
- char* x;
- f = fopen("studenti.in","rt");
- if (f == NULL) printf("Eroare de deschidere a fisierului.");
- else {
- while ( fgets (x , 70 , f) != NULL )
- {
- x = fgets(x,70,f);
- validare(x,n);
- n++;
- }
- fclose (f);
- }
- return;
- }
- int main()
- {
- int alegere = -1;
- do{
- printf("\n--------------------------------------Gestiune studenti------------------------------------------");
- printf("\n\nMENIU");
- printf("\n1. Citire");
- printf("\n2. Iesire");
- printf("\n\n Optiune:");
- scanf("%d",&alegere);
- switch(alegere)
- {
- case 1:
- Citire();
- break;
- case 2:
- break;
- default:
- printf("EROARE :P");
- break;
- }
- } while(alegere!=2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement