Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <string.h>
- FILE *fp;
- typedef struct ARTICOLE {
- char produs[25];
- char material[25];
- int codProdus;
- int anFabricare;
- float pret;
- };
- ARTICOLE products[50];
- void menu() {
- printf("\n1. Adauga un produs nou");
- printf("\n2. Afisati produsele");
- printf("\n3. Iesiti si salvati modificarile");
- printf("\n4. Iesiti\n");
- }
- ARTICOLE addNewEntry() {
- ARTICOLE p;
- while (getchar() != '\n');
- printf("Introduceti numele produsului: \n");
- gets_s(p.produs);
- printf("Introduceti materialul principal din care este realiza produsul: \n");
- gets_s(p.material);
- printf("Introduceti codul produsului: \n");
- scanf_s("%d", &p.codProdus);
- printf("Introduceti anul de fabricare al produsului: \n");
- scanf_s("%d", &p.anFabricare);
- printf("Introduceti pretul produsului in USD: \n");
- scanf_s("%f", &p.pret);
- return p;
- }
- void write(int countNrProduse, ARTICOLE products[]) {
- if ((fp = fopen("database.txt", "a+")) == NULL) {
- printf("\nEroare!");
- }
- int i;
- for (i = 0; i < countNrProduse; i++) {
- fprintf(fp,"\nProdus: %s",products[i].produs);
- fprintf(fp,"\nMaterial: %s", products[i].material);
- fprintf(fp,"\nCod: %x", products[i].codProdus);
- fprintf(fp,"\nAn Fabricare: %d", products[i].anFabricare);
- fprintf(fp,"\nPret: %.2f $\n", products[i].pret);
- }
- fclose(fp);
- }
- void display() {
- if ((fp = fopen("database.txt", "r")) == NULL) {
- printf("Eroare!");
- }
- char linie[20];
- int c;
- while (fgets(linie, 20, fp) != NULL) {
- printf("%s", linie);
- }
- fclose(fp);
- }
- void displayTheNewProducts(int countNrProduse, ARTICOLE products[]) {
- int i;
- for (i = 0; i < countNrProduse; i++) {
- printf("\nProdus: %s", products[i].produs);
- printf("\nMaterial: %s", products[i].material);
- printf("\nCod: %x", products[i].codProdus);
- printf("\nAn Fabricare: %d", products[i].anFabricare);
- printf("\nPret: %.2f $\n", products[i].pret);
- }
- }
- void main() {
- int countNrProduse = 0;
- int chose;
- int oneOrTwo;
- int c, i = 0;
- do {
- do {
- BACK:
- menu();
- scanf_s("%d", &chose);
- system("CLS");
- } while (chose < 1 || chose > 4);
- switch (chose) {
- case 1:
- products[countNrProduse] = addNewEntry();
- countNrProduse++;
- printf("\nApasa o tasta pentru a continua...\n");
- _getch();
- system("CLS");
- break;
- case 2:
- printf("\n1. Produsele noi adaugate");
- printf("\n2. Produsele salvate in baza de date");
- printf("\n3. Mergi inapoi");
- scanf_s("\n%d", &oneOrTwo);
- system("CLS");
- if (oneOrTwo == 1) {
- if (countNrProduse == 0) {
- printf("\nNu exista produse noi adaugate...");
- printf("\nApasa o tasta pentru a continua...");
- _getch();
- system("CLS");
- }
- else {
- displayTheNewProducts(countNrProduse, products);
- printf("\nApasa o tasta pentru a continua...");
- _getch();
- system("CLS");
- }
- }
- else
- if (oneOrTwo == 2) {
- fp = fopen("database.txt", "r");
- while ((c = fgetc(fp)) != EOF) {
- i++;
- }
- if (i == 0) {
- printf("\nFisierul este gol!");
- printf("\nApasa o tasta pentru a continua");
- _getch();
- fclose(fp);
- system("CLS");
- }
- else {
- display();
- printf("\nApasa o tasta pentru a continua...\n");
- _getch();
- fclose(fp);
- system("CLS");
- }
- }
- else
- if (oneOrTwo == 3) {
- system("CLS");
- goto BACK;
- }
- break;
- case 3:
- write(countNrProduse, products);
- printf("\nSe salveaza datele...");
- printf("\nApasa o tasta pentru a continua");
- _getch();
- exit(0);
- break;
- case 4: exit(0);
- break;
- }
- } while (chose != 4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement