Sunteți pe pagina 1din 19

Proiect la disciplina Programare orientate pe obiecte

Anul universitar 2015/2016

Student : Nitu Ionel Alin

Grupa : 10207-Electronica Aplicata

Profesor coordonator : Bogdan Popa


Numarul temei: 32

Descriere:
Se cere realizarea unui proiect care sa asigure gestiunea unui magazin de componente PC(procesoare,
plăci de bază, memorii, hdd-uri etc).
Se cere realizarea unui proiect pentru o firma care face rezervari de locuri pentru curse aeriene.
Pentru fiecare rezervare se considera informatiile:
La pornirea aplicatiei va fi afisat urmatorul meniu:
1. Încărcare din fişier a componentelor din magazin.
2. Adăugare produs nou la o anumită componentă introdusă de la tastatură.
3. Vânzare produs (stoc = stoc - 1).
4. Ştergere anumit produs după cod_produs.
5. Încărcare stoc (refacerea stocului la un anumit produs, căutat în prealabil după cod).
6. Să se calculeze totalul în lei pentru o anumită categorie (suma produselor stoc*preţ de la o
anumită componentă).
7. Afişare preţ pentru anumite produse căutate după marcă.
8. Salvare componente în fişier.
9. Ieşire

Aplicatia va fi implementata folosind clase sablon.


Cuprins:
Capitolul 1. Introducere................................................................4
Capitolul 2. Analiza cerintelor......................................................5
Capitolul 3.Aspecte teoretice utilizate…………………………..6
Capitolul 4 .Codul sursa si metoda de implementare...................7
Capitolul 5. Testarea aplicatiei si studii asupra rezultatelor........14
Capitolul 1.
Introducere.

Programarea orientată pe obiecte este o tehnologie modernă in domeniul


programării calculatoarelor, care a rezultat din necesitatea realizării de
aplicaţii   din ce în ce mai complexe. Programarea clasica si structurata avea
urmatoarele dezavantaje: control greoi al programelor de dimensiuni mari,
dificultati cu privire la reutilizarea codurilor de programe si inflexibiliatea adaptarii
si extinderii unor module de program deja realizate.

Programarea Orientata pe Obiecte, POO, se fundamenteaza pe conceptul de obiect,


care este definit printr-o multime de date, numite proprietati, si o multime
de proceduri sau functiide prelucrare ale acestor date, numite metode.
Capitolul 2.

Analiza cerintelor

1. Adaugare produs

In aceasta operatiune se introduce toate datele necesare pentru adaugarea unui nou
produs in gestiune (cod_produs, preţ, marca, an_fabricaţie, garanţie, producător,
ţară_provenienţă).

2. Lista produse
In aceasta operatiune ne este afisata lista cu toate produsele din gestiune precum si
detalii ale acestora (cod_produs, preţ, marca, an_fabricaţie, garanţie, producător,
ţară_provenienţă, daca se afla sau nu in stoc)

3. Reincarcare stoc

4. Sterge produs

5. Cauta produs

6. Calculator Pret

7. Vanzare Produs
8. Iesire

Capitolul 3.

Aspecte teoretice utilizate

-Folosirea claselor

-Variabile de diverse tipuri [ char, long int ]

-Citire [ cin ] si afisare [ cout ]

-Instructiuni repetitive [ while ]

-Instructiuni conditionale [ if ]

-Instructiuni de salt [ goto, break, return, getch, fclose ]


Capitolul 4
Codul sursa si metoda de implementare.
#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"conio.h"

#include"iomanip.h"

main()

{clrscr();

FILE *fp, *ft;

int q,w,r,t,S;

char a,c;

//-------------------------------------------------------------------------------------------------------------------

//Declararea Claselor

//-------------------------------------------------------------------------------------------------------------------
class detalii{

public:

char cod_produs[50];char pret[50];char marca[50];char an_fabricatie[50];char garantie[50];char


producator[50];char categorie[50];

char tara[50];char stoc[50];char numeprodus[50];};

class nume{

public:

char codprodus[50];char cod_produs1[50];char marca1[50];};

//--------------------------------------------------------------------------------Clasa client----//

class

comparare{

public:

char furnizor[50];char produse[50];char codprodus[50];char numeprodus1[50];};

struct nume m;

struct detalii e;

struct comparare n;

long int recsize;

fp=fopen("c:/nitu.txt","rb+");

if(fp==NULL) {

fp=fopen("c:/nitu.txt","wb+");

if(fp==NULL)

{puts("Cannot open file");

return 0;}}
recsize=sizeof(e);

while(1)

//-------------------------------------------------------------------------------------------------------------------

//Meniul de la 1-7 Orice optiune duce catre un alt meniu

//-------------------------------------------------------------------------------------------------------------------

clrscr();

gotoxy(23,5);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(23,6);cout<<"³ þþþþþþ WELCOME þþþþþþ ³";

gotoxy(23,7);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(23,9);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(23,10);cout<<"³ 1. Adaugare produs ³";

gotoxy(23,11);cout<<"³ 2. Lista produse ³";

gotoxy(23,12);cout<<"³ 3. Reincarcare stoc ³";

gotoxy(23,13);cout<<"³ 4. Sterge produs ³";

gotoxy(23,14);cout<<"³ 5. Cauta produs ³";

gotoxy(23,15);cout<<"³ 6. Calculator Pret ³";

gotoxy(23,16);cout<<"³ 7. Vanzare Produs ³";

gotoxy(23,17);cout<<"³ 8. Iesire ³";

gotoxy(23,18);cout<<"³ ³";

gotoxy(23,19);cout<<"³ Introduce optiunea ta : ³";

gotoxy(23,20);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

fflush(stdin);

gotoxy(45,19);c=getche();

clrscr();

switch(c)
{case'1':

fseek(fp,0,SEEK_END);

a='Y';

while(a=='Y'||a=='y')

//-------------------------------------------------------------------------------------------------------------------

// Inregistrarea unei produs

//-------------------------------------------------------------------------------------------------------------------

{clrscr();

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ þþþþ Adaugare Produs þþþþ ³";

gotoxy(20,12);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(20,13);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,14);cout<<"³ Nume Produs : ³";

gotoxy(20,15);cout<<"³ Cod Produs : ³";

gotoxy(20,16);cout<<"³ Pret: ³";

gotoxy(20,17);cout<<"³ Marca: ³";

gotoxy(20,18);cout<<"³ An Fabricatie : ³";

gotoxy(20,19);cout<<"³ Garantie : ³";

gotoxy(20,20);cout<<"³ Producator: ³";

gotoxy(20,21);cout<<"³ Tara Provenienta: ³";

gotoxy(20,22);cout<<"³ Stoc: ³";

gotoxy(20,23);cout<<"³ ³";

gotoxy(20,24);cout<<"³ Inregistraza alt produs(y/n): ³";

gotoxy(20,25);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(38,14);gets(e.numeprodus);

gotoxy(37,15);gets(e.cod_produs);
gotoxy(30,16);gets(e.pret);

gotoxy(31,17);cin>>e.marca;

gotoxy(40,18);gets(e.an_fabricatie);

gotoxy(36,19);gets(e.garantie);

gotoxy(34,20);cin>>e.producator;

gotoxy(42,21);cin>>e.tara;

gotoxy(29,22);cin>>e.stoc;

fwrite(&e,recsize,1,fp); //scrierea in fisierul fp

fflush(stdin); //refresh

gotoxy(53,23);a=getche();}

break;

case'2':

//Afisarea atribuita fiecarei proprietati (Cod_produs , Marca ,Producator)

clrscr();

rewind(fp);

cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";

cout<<"\n";

cout<<"Cod_Produs";

cout<<"\t\tMarca";

cout<<"\t\tProducator";

cout<<endl;

cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";

while(fread(&e,recsize,1,fp)==1){

cout<<e.cod_produs;

cout<<"\t\t"<<e.marca;

cout<<"\t\t"<<e.producator<<"\n";}
cout<<"\n";

getch();

break;

case'3' :

//Reincarcare stoc , Compararea codului produs , apoi daca este bine scris apare mesajul

clrscr();

a='Y';

while(a=='Y'||a=='y')

{clrscr();

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ þþþþ Renincarcare Stoc þþþþ ³";

gotoxy(20,12);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,13);cout<<"³ Cod Produs: ³";

gotoxy(20,14);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(34,13);cin>>m.codprodus;

rewind(fp);

while(fread(&e,recsize,1,fp)==1)

{if(strcmp(m.codprodus,e.cod_produs)==0)

gotoxy(20,15);cout<<"³ Stoc Disponibil: 100 ³";

gotoxy(20,16);cout<<"³ Stoc maxim Disponibil: 100 ³";

gotoxy(20,17);cout<<"³ ³";

gotoxy(20,18);cout<<"³ Reincarca alt stoc (y/n): ³";

gotoxy(20,19);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(20,17);cout<<"³ Stoc Este Full!!!!!! ³";

}}
fflush(stdin);

gotoxy(48,18);a=getche();

break;

case'4':

//Stergerea unui produs , Foloseste strcmp pentru compararea codului de produs apoi sterge copiaza din
nitu.txt in temp.data

//unde sterge codul cautat cu proprietatile apoi sterge nitu.txt urmat de copierea temp in nitu

clrscr();

a='Y';

while (a=='Y'||a=='y')

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ þþþþ Stergerea unui produs þþþþ ³";

gotoxy(20,12);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,13);cout<<"³ Cod Produs: ³";

gotoxy(20,14);cout<<"³ ³";

gotoxy(20,15);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(34,13);gets(m.cod_produs1);

ft=fopen("c:/temp.dat","wb");

rewind(fp);

while(fread(&e,recsize,1,fp)==1)

if(strcmp(m.cod_produs1,e.cod_produs)!=0)

{fwrite(&e,recsize,1,ft);}

fclose(fp);

fclose(ft);

remove("c:/nitu.txt");
rename("c:/temp.dat","c:/nitu.txt");

fp=fopen("c:/nitu.txt","rb+");

gotoxy(22,14);cout<<"Delete Another Member (y/n):";

fflush(stdin);

gotoxy(50,14);a=getche();

break;

case'5':

// Comparare prin strcm cautare si afisare din nitu.txt produsele asa cum cere , marca,produs,pret,etc

clrscr();

a='Y';

while (a=='Y'||a=='y')

{clrscr();

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ Cautare pret Produs ³";

gotoxy(20,12);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,13);cout<<"³ Marca : ³";

gotoxy(20,14);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,15);cout<<"³ Produs: ³";

gotoxy(20,16);cout<<"³ Pret : ³";

gotoxy(20,17);cout<<"³ Produse in stoc: ³";

gotoxy(20,18);cout<<"³ Cauta alt produs(Da/Nu): ³";

gotoxy(20,19);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(34,13);cin>>m.marca1;

rewind(fp);

while(fread(&e,recsize,1,fp) == 1)
{if(strcmp(m.marca1,e.marca) == 0)

{gotoxy(34,15);cout<<e.numeprodus;

gotoxy(34,16);cout<<e.pret;

gotoxy(40,17);cout<<e.stoc;

}}

fflush(stdin);

gotoxy(50,21);a=getche();

break;

case'6':

//Calculator de produse , Introducere categorie Introducerea produselor din stoc , apoi pretul se face
inmultirea produse-

//lor din stoc cu pret iar totalul in lei va fi afisat

{clrscr();

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ þþþþ Calculator þþþþ ³";

gotoxy(20,12);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,13);cout<<"³ Categorie : ³";

gotoxy(20,14);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,15);cout<<"³ Suma Produselor din stoc: ³";

gotoxy(20,16);cout<<"³ Pret: ³";

gotoxy(20,17);cout<<"³ ³";

gotoxy(20,18);cout<<"³ ³";

gotoxy(20,19);cout<<"³ Totalul in Lei: ³";

gotoxy(20,20);cout<<"³ ³";

gotoxy(20,21);cout<<"³ Calculeaza alta categorie(y/n): ³";


gotoxy(20,22);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(34,13);cin>>e.categorie;

gotoxy(50,15);cin>>q;

gotoxy(30,16);cin>>w;

gotoxy(40,19);S=q*w;

cout<<S;

fflush(stdin);

gotoxy(50,21);a=getche();}

break;

case'7':

//Vanzarea unui produs se tipareste categoria marca pret , va fi afisat cate sunt in stoc apoi se introduce
cate bucati

//se vad, Pe linia mai sunt disponibile va fi afisat cate au mai ramas.

{ clrscr();

gotoxy(20,10);cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿";

gotoxy(20,11);cout<<"³ þþþþ Vanzare Produs þþþþ ³";

gotoxy(20,12);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,13);cout<<"³ Categorie : ³";

gotoxy(20,14);cout<<"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´";

gotoxy(20,15);cout<<"³ Marca: ³";

gotoxy(20,16);cout<<"³ Pret: ³";

gotoxy(20,17);cout<<"³ In Stoc: ³";

gotoxy(20,18);cout<<"³ ³";

gotoxy(20,19);cout<<"³ Cate Bucati? ³";

gotoxy(20,20);cout<<"³ Mai sunt Disponibile: ³";

gotoxy(20,21);cout<<"³ ³";

gotoxy(20,22);cout<<"³ Vinde alt produs (y/n): ³";


gotoxy(20,23);cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ";

gotoxy(36,13);cin>>e.categorie;

gotoxy(32,15);cin>>e.categorie;

gotoxy(30,16);cin>>e.categorie;

gotoxy(33,17);cin>>q;

gotoxy(37,19);cin>>r;

gotoxy(46,20);S=q-r;

cout<<S;

fflush(stdin);

gotoxy(50,22);a=getche();

break;

case'8':

//Inchiderea programului

fclose(fp);

exit(0);}}

getch();

}
Capitolul 5

Testarea aplicatiei si studii asupra rezultatelor.

1.Meniul principal
2.Afisarea produselor
3.Cautare produs
4.Calculare pret.
5.Vanzare produs
Referinte bibliografice:
1.www.wikipedia.com
2.software.ucv.ro

S-ar putea să vă placă și