Advertisement
Cryston13

ProjectC

Mar 4th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. /** Sa se realizeze un program care actualizeaza evidenta unei
  2. grupe de studenti.Datele despre studenti -nume varsta ,medie
  3. se pastreaza sub forma unui fisier text. Programul trebuie
  4. sa permita urm.optiuni:
  5. -adaugarea unui nou student in fisier
  6. - listarea datelor tuturor studentilor
  7. - modificarea datelor unui student
  8. - terminarea programului
  9. **/
  10.  
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <conio.h>
  14. #include <ctype.h>
  15. #include <string.h>
  16. #define LNUME 20 /* Lungime maxim nume*/
  17.  
  18.  
  19. char fisier[30]="db_user_struct.txt"; /**Numele fisierului **/
  20. char db_file[30]="user_account.txt"; /**MEMBERS APLICATION**/
  21.  
  22. typedef struct{
  23. char nume[LNUME];
  24. int varsta;
  25. float medie;
  26. }student;
  27.  
  28. typedef struct{
  29. char user_name[LNUME];
  30. char pass[LNUME];
  31. char status[LNUME];
  32. }login;
  33.  
  34. void LogIn(void){
  35.  
  36. FILE *f;
  37. login adm;
  38. char name_member[LNUME],password[LNUME];
  39. int exist=0,connect=0;
  40. if(!(f=fopen(db_file,"r"))){
  41. puts("\nFisierul nu poate fi deschis.");
  42. return;
  43. }
  44.  
  45.  
  46.  
  47. while(connect==0){
  48.  
  49. system("cls");
  50. printf("Procedura de logare in cont initializata !\n");
  51. printf("--------------------------------------------");
  52. printf("\nUsername : ");
  53. fgets(name_member,LNUME,stdin);
  54. printf("Password : ");
  55. fgets(password,LNUME,stdin);
  56.  
  57. name_member[strlen(name_member)-1]='\0';
  58. password[strlen(password)-1]='\0';
  59.  
  60. while(fscanf(f,"%s %s %s",adm.user_name,adm.pass,adm.status)!=EOF)
  61. if(!strcmp(name_member,adm.user_name)){ /**Student gasit - se afiseaza datele**/
  62. exist=1;
  63.  
  64. printf("Pass str :%s\nPass file :%s\nUser str:%s\nUser file:%s",password,adm.pass,name_member,adm.user_name);
  65. if(!strcmp(name_member,adm.user_name)&&!strcmp(password,adm.pass)){
  66. connect=1;
  67. break;
  68. }
  69. break;
  70. }
  71.  
  72. if(!exist){
  73. printf("\nMembrul : %s nu exista !\n",name_member);
  74. system("pause");
  75. }else{
  76. if(connect)
  77. {
  78. printf("Conectare cu succes!\n");
  79.  
  80. }else{
  81. printf("Parola este incorecta !\n");
  82. system("pause");
  83.  
  84. }
  85. }
  86.  
  87. }
  88.  
  89. fclose(f);
  90. }
  91.  
  92.  
  93. void AddStudent(void){
  94. FILE *f;
  95. student s;
  96. if(!(f=fopen(fisier,"a"))){
  97. puts("\nFisierul nu poate fi deschis.");
  98. return;
  99. }
  100. printf("\nNume,varsta,media:");
  101. scanf("%s %d %f",s.nume,&s.varsta,&s.medie);
  102. fflush(stdin); /*Se goleste buffer-ul tastaturii*/
  103. fprintf(f,"%20s %2d %6.2f\n",s.nume,s.varsta,s.medie);
  104. fclose(f);
  105. }
  106. void ListStudenti(void){
  107. FILE *f;
  108. student s;
  109. if(!(f=fopen(fisier,"r"))){
  110. puts("\nFisierul nu poate fi deschis.");
  111. return;
  112. }
  113. while(fscanf(f,"%s %d %f",s.nume,&s.varsta,&s.medie)!=EOF)
  114. printf("\n%-20s %2d %6.2f\n",s.nume,s.varsta,s.medie);
  115. fclose(f);
  116. }
  117.  
  118. void ModifStudent(void){
  119. int gasit=0;
  120. FILE *f;
  121. student s;
  122. char n[LNUME];/*Numele stud. ale carui date se modifica*/
  123. if(!(f=fopen(fisier,"r+"))){
  124. puts("\nFisierul nu poate fi deschis.");
  125. return;
  126. }
  127. printf("\nNume student: ");
  128. fgets(n,LNUME,stdin);
  129. n[strlen(n)-1]='\0';
  130. while(fscanf(f,"%s %d %f",s.nume,&s.varsta,&s.medie)!=EOF)
  131. if(!strcmp(n,s.nume)){ /**Student gasit - se afiseaza datele**/
  132. printf("\n%-20s %2d %6.2f",s.nume,s.varsta,s.medie);
  133. gasit=1;
  134. break;
  135. }
  136. if(!gasit)
  137. printf("\nStudentul %s nu exista in fisier.",n);
  138. else{
  139. printf("\nNumele ,varsta ,media:");
  140. scanf("%s %d %f",s.nume,&s.varsta,&s.medie);
  141. fflush(stdin);
  142. /**POZITIONARE LA INCEPUTUL INREGISTRARI**/
  143. fseek(f,-32,SEEK_CUR);
  144. fprintf(f,"%20s %2d %6.2f",s.nume,s.varsta,s.medie);
  145. }
  146. fclose(f);
  147. }
  148.  
  149.  
  150. void ShowMeniu(void){
  151. system("color 0a");
  152. printf("#--------------------------------#");
  153. puts("\na,A -----Adaugare Student.");
  154. puts("\nm,M -----Modifica date Student.");
  155. puts("\nl,L -----Listare Studenti.");
  156. puts("\nx,X -----Iesire din program.");
  157. printf("#--------------------------------#\nSelecteaza o optiune ! :");
  158. }
  159.  
  160. void main(void){
  161. LogIn();
  162.  
  163. char opt;
  164. // puts("Nume fisier :");
  165. //fgets(fisier,30,stdin);
  166. while(1){
  167. ShowMeniu();
  168. opt=tolower(getche());
  169. switch(opt){
  170. case 'a':AddStudent();break;
  171. case 'm':ModifStudent();break;
  172. case 'l':ListStudenti();break;
  173. case 'x':exit(0);
  174. default:puts("\nComanda Invalida\n");
  175. }
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement