Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define LIBRARIE "librarie.txt"
- #define FISIERDATE "date.db"
- #include <GL/GLUT.h>
- int numarareCarti();
- int verificareBiblioteca();
- int bun_venit();
- int cereParola();
- int adaugareCarte();
- int afisareLista();
- int cautareCarte();
- void grafica();
- int informatiiGrafic();
- char parola[32] = "muie";
- struct carti{
- char nume[32];
- char autor[32];
- int secol;
- };
- struct carti virtuale;
- int main(int argc, char** argv){
- verificareBiblioteca();
- cereParola();
- glutInit(&argc, argv);
- glutInitWindowSize(1000, 600);
- glutInitWindowPosition(50, 50);
- glutCreateWindow("STATISTICA DUPA SECOL (GRAFIC)");
- glutDisplayFunc(grafica);
- glutMainLoop();
- return 0;
- }
- int verificareBiblioteca(){
- int raspuns = 0;
- FILE *librarie;
- librarie = fopen(LIBRARIE, "r+");
- if (!librarie){
- printf("Libraria pentru biblioteca este inexistenta\nDoriti sa creati una (1-da;0-nu) ?\n");
- fflush(stdout);
- scanf("%d", &raspuns);
- if (raspuns == 1){
- librarie = fopen(LIBRARIE, "w");
- printf("Libraria a fost creata\n");
- printf("Terminare program\n"); //debug
- return 0;
- } else {
- printf("Terminare program\n");
- return 0;
- }
- }
- raspuns = 0;
- FILE *fisierdate;
- fisierdate = fopen(FISIERDATE, "r+");
- if (!fisierdate){
- printf("Baza de date pentru biblioteca este inexistenta\nDoriti sa creati una (1-da;0-nu) ?\n");
- fflush(stdout);
- scanf("%d", &raspuns);
- if (raspuns == 1){
- fisierdate = fopen(FISIERDATE, "w");
- fisierdate = fopen(FISIERDATE, "r+");
- fprintf(fisierdate, "%s", parola);
- printf("Baza de date a fost creata\n");
- return 0;
- } else {
- printf("Shut down");
- return 0;
- }
- }
- return 1;
- }
- int numarareCarti(){
- int linii = 0;
- FILE *librarie;
- librarie = fopen("librarie.txt", "r+");
- char numarare;
- while((numarare=fgetc(librarie))!=EOF){
- if(numarare=='\n'){
- linii++;
- }
- }
- return linii;
- }
- int bun_venit(){
- int raspuns;
- printf("Momentan avem %d de carti!\n", numarareCarti());
- printf("\nOptiuni: \n");
- printf("1. Adaugare carti\n");
- printf("2. Cautare carte\n");
- printf("3. Afisare lista\n");
- printf("4. Statistica dupa secol (grafic)\n");
- printf("5. Terminare program\n");
- printf("6. Informatii Grafic\n");
- printf("\n Alegerea ta: ");
- fflush(stdout);
- scanf("%d", &raspuns);
- switch(raspuns){
- case 1:
- adaugareCarte();
- break;
- case 2:
- cautareCarte();
- break;
- case 3:
- afisareLista();
- break;
- case 4:
- grafica();
- break;
- case 5:
- printf("Program terminat\n");
- break;
- case 6:
- informatiiGrafic();
- break;
- default:
- printf("Valoare gresita\n");
- break;
- }
- return 1;
- }
- int cereParola(){
- char parolaCitita[32];
- char parolaCeruta[32];
- int verificareParola;
- FILE *fisierdate;
- fisierdate = fopen(FISIERDATE, "r");
- fscanf(fisierdate, "%s", parolaCitita);
- printf("Bun venit in libraria virtuala\n");
- printf("Introduceti parola: ");
- fflush(stdout);
- scanf("%s", parolaCeruta);
- verificareParola = strcmp(parolaCitita, parolaCeruta);
- if (verificareParola == 0){
- bun_venit();
- } else {
- printf("Parola este gresita\n");
- return 0;
- }
- return 1;
- }
- int adaugareCarte(){
- FILE *librarie;
- printf("Nume: ");
- fflush(stdout);
- scanf("%s", virtuale.nume);
- printf("Autor: ");
- fflush(stdout);
- scanf("%s", virtuale.autor);
- printf("Secol: ");
- fflush(stdout);
- scanf("%d", &virtuale.secol);
- librarie = fopen(LIBRARIE, "a");
- fprintf(librarie, "%s %s %d\n", virtuale.nume, virtuale.autor, virtuale.secol);
- fclose(librarie);
- printf("Cartea a fost adaugata\n");
- bun_venit();
- return 1;
- }
- int afisareLista(){
- int raspuns;
- FILE *librarie;
- librarie = fopen(LIBRARIE, "r");
- for(int i=1; i<=numarareCarti(); i++){
- printf("#%d: ", i);
- fflush(stdout);
- fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
- printf("%s %s %d\n", virtuale.nume, virtuale.autor, virtuale.secol);
- }
- fclose(librarie);
- printf("Doresti sa revii?: ");
- fflush(stdout);
- scanf("%d", &raspuns);
- if (raspuns == 1){
- bun_venit();
- } else {
- return 0;
- }
- return 1;
- }
- int cautareCarte(){
- int raspunsSecol;
- int numarare = 0;
- FILE *librarie;
- librarie = fopen(LIBRARIE, "r");
- printf("Ce secol de carti cauti: \n");
- fflush(stdout);
- scanf("%d", &raspunsSecol);
- for(int i=0; i<numarareCarti(); i++){
- fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
- if(raspunsSecol == virtuale.secol){
- printf("Numele cartii: %s , Autorul: %s\n", virtuale.nume, virtuale.autor);
- numarare++;
- }
- }
- printf("Exista %d carti\n", numarare);
- fclose(librarie);
- return 1;
- }
- int informatiiGrafic(){
- int carti[21];
- carti[15] = 0;
- carti[16] = 0;
- carti[17] = 0;
- carti[18] = 0;
- carti[19] = 0;
- carti[20] = 0;
- carti[21] = 0;
- FILE *librarie;
- for(int secol=14;secol<=21;secol++){
- librarie = fopen(LIBRARIE, "r");
- for(int i=0; i<numarareCarti();i++){
- fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
- if(virtuale.secol == secol){
- carti[secol]++;
- }
- }
- printf("Secolul %d are %d carti\n", secol, carti[secol]);
- fclose(librarie);
- }
- return 1;
- }
- void grafica(){
- FILE *librarie;
- librarie = fopen(LIBRARIE, "r");
- glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- glClear(GL_COLOR_BUFFER_BIT);
- glBegin(GL_LINES);
- glColor3f(1.0f, 1.0f, 1.0f);
- glVertex3f(-1.0,-1.0,0.0);
- //
- int carti[21];
- carti[15] = 0;
- carti[16] = 0;
- carti[17] = 0;
- carti[18] = 0;
- carti[19] = 0;
- carti[20] = 0;
- carti[21] = 0;
- for(int secol=14;secol<=21;secol++){
- float distX = 0.33;
- float nouaCoordX = -1;
- librarie = fopen(LIBRARIE, "r");
- for(int i=0; i<numarareCarti();i++){
- fscanf(librarie ,"%s %s %d", virtuale.nume, virtuale.autor, &virtuale.secol);
- if(virtuale.secol == secol){
- carti[secol]++;
- }
- }
- //printf("Secolul %d are %d carti\n", secol, carti[secol]);
- nouaCoordX = nouaCoordX + distX;
- printf("%.2f\n", nouaCoordX);
- glVertex3f(nouaCoordX,carti[secol],0.0);
- fclose(librarie);
- }
- //
- glEnd();
- glFlush();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement