Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Sa se realizeze un program care actualizeaza evidenta unei
- grupe de studenti.Datele despre studenti -nume varsta ,medie
- se pastreaza sub forma unui fisier text. Programul trebuie
- sa permita urm.optiuni:
- -adaugarea unui nou student in fisier
- - listarea datelor tuturor studentilor
- - modificarea datelor unui student
- - terminarea programului
- **/
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <ctype.h>
- #include <string.h>
- #define LNUME 20 /* Lungime maxim nume*/
- char fisier[30]="db_user_struct.txt"; /**Numele fisierului **/
- char db_file[30]="user_account.txt"; /**MEMBERS APLICATION**/
- typedef struct{
- char nume[LNUME];
- int varsta;
- float medie;
- }student;
- typedef struct{
- char user_name[LNUME];
- char pass[LNUME];
- char status[LNUME];
- }login;
- void LogIn(void){
- FILE *f;
- login adm;
- char name_member[LNUME],password[LNUME];
- int exist=0,connect=0;
- if(!(f=fopen(db_file,"r"))){
- puts("\nFisierul nu poate fi deschis.");
- return;
- }
- while(connect==0){
- system("cls");
- printf("Procedura de logare in cont initializata !\n");
- printf("--------------------------------------------");
- printf("\nUsername : ");
- fgets(name_member,LNUME,stdin);
- printf("Password : ");
- fgets(password,LNUME,stdin);
- name_member[strlen(name_member)-1]='\0';
- password[strlen(password)-1]='\0';
- while(fscanf(f,"%s %s %s",adm.user_name,adm.pass,adm.status)!=EOF)
- if(!strcmp(name_member,adm.user_name)){ /**Student gasit - se afiseaza datele**/
- exist=1;
- printf("Pass str :%s\nPass file :%s\nUser str:%s\nUser file:%s",password,adm.pass,name_member,adm.user_name);
- if(!strcmp(name_member,adm.user_name)&&!strcmp(password,adm.pass)){
- connect=1;
- break;
- }
- break;
- }
- if(!exist){
- printf("\nMembrul : %s nu exista !\n",name_member);
- system("pause");
- }else{
- if(connect)
- {
- printf("Conectare cu succes!\n");
- }else{
- printf("Parola este incorecta !\n");
- system("pause");
- }
- }
- }
- fclose(f);
- }
- void AddStudent(void){
- FILE *f;
- student s;
- if(!(f=fopen(fisier,"a"))){
- puts("\nFisierul nu poate fi deschis.");
- return;
- }
- printf("\nNume,varsta,media:");
- scanf("%s %d %f",s.nume,&s.varsta,&s.medie);
- fflush(stdin); /*Se goleste buffer-ul tastaturii*/
- fprintf(f,"%20s %2d %6.2f\n",s.nume,s.varsta,s.medie);
- fclose(f);
- }
- void ListStudenti(void){
- FILE *f;
- student s;
- if(!(f=fopen(fisier,"r"))){
- puts("\nFisierul nu poate fi deschis.");
- return;
- }
- while(fscanf(f,"%s %d %f",s.nume,&s.varsta,&s.medie)!=EOF)
- printf("\n%-20s %2d %6.2f\n",s.nume,s.varsta,s.medie);
- fclose(f);
- }
- void ModifStudent(void){
- int gasit=0;
- FILE *f;
- student s;
- char n[LNUME];/*Numele stud. ale carui date se modifica*/
- if(!(f=fopen(fisier,"r+"))){
- puts("\nFisierul nu poate fi deschis.");
- return;
- }
- printf("\nNume student: ");
- fgets(n,LNUME,stdin);
- n[strlen(n)-1]='\0';
- while(fscanf(f,"%s %d %f",s.nume,&s.varsta,&s.medie)!=EOF)
- if(!strcmp(n,s.nume)){ /**Student gasit - se afiseaza datele**/
- printf("\n%-20s %2d %6.2f",s.nume,s.varsta,s.medie);
- gasit=1;
- break;
- }
- if(!gasit)
- printf("\nStudentul %s nu exista in fisier.",n);
- else{
- printf("\nNumele ,varsta ,media:");
- scanf("%s %d %f",s.nume,&s.varsta,&s.medie);
- fflush(stdin);
- /**POZITIONARE LA INCEPUTUL INREGISTRARI**/
- fseek(f,-32,SEEK_CUR);
- fprintf(f,"%20s %2d %6.2f",s.nume,s.varsta,s.medie);
- }
- fclose(f);
- }
- void ShowMeniu(void){
- system("color 0a");
- printf("#--------------------------------#");
- puts("\na,A -----Adaugare Student.");
- puts("\nm,M -----Modifica date Student.");
- puts("\nl,L -----Listare Studenti.");
- puts("\nx,X -----Iesire din program.");
- printf("#--------------------------------#\nSelecteaza o optiune ! :");
- }
- void main(void){
- LogIn();
- char opt;
- // puts("Nume fisier :");
- //fgets(fisier,30,stdin);
- while(1){
- ShowMeniu();
- opt=tolower(getche());
- switch(opt){
- case 'a':AddStudent();break;
- case 'm':ModifStudent();break;
- case 'l':ListStudenti();break;
- case 'x':exit(0);
- default:puts("\nComanda Invalida\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement