0% au considerat acest document util (0 voturi)
2 vizualizări48 pagini

Proiect de Programare C++

Acest document descrie un proiect pentru a dezvolta un sistem de gestionare pentru a genera un rol de plată pentru compania de supermarketuri Santa María folosind C++. Sistemul va permite introducerea, modificarea, consultarea și afișarea informațiilor legate de rolul de plată. Proiectul urmează modelul de dezvoltare în cascade și aplică concepte de programare structurată și orientată pe obiect învățate în clasă. Sistemul va agiliza procesele legate de rolul de plată pentru utilizatorii companiei.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
2 vizualizări48 pagini

Proiect de Programare C++

Acest document descrie un proiect pentru a dezvolta un sistem de gestionare pentru a genera un rol de plată pentru compania de supermarketuri Santa María folosind C++. Sistemul va permite introducerea, modificarea, consultarea și afișarea informațiilor legate de rolul de plată. Proiectul urmează modelul de dezvoltare în cascade și aplică concepte de programare structurată și orientată pe obiect învățate în clasă. Sistemul va agiliza procesele legate de rolul de plată pentru utilizatorii companiei.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

ESCOLA SUPERIOARĂ POLITECNICĂ DE CHIMBORAZO

SEMESTRU OCTOMBRIE 2016 - MARTIE 2017

INFORME ALE PROIECTULUI

IDENTIFICARE
Facultate: Informatică ș i Electronică

Carieră: Inginerie în Sisteme

Materia: Programare Structurată

semestre Secunda „B”

Cadre didactice:Ing. Blanca Hidalgo

Integranț i: Guamán Romero Lourdes María (6256)


Minina Anastasia (6229)
Jumbo Cando Leidy Lucia(6286)

Fecha 24 Ianuarie 2017

Revizuit
Clasificare
Cuprins

1. Tema ...................................................................................................................... 3
2. Obiective ...............................................................................................................3
Obiectiv General .................................................................................................... 3
Obiective specifice .......................................................................................... 3
3. Descrierea problemei ........................................................................... 3
4. Domeniu ...................................................................................................................4
5. Justificare sau propunere de soluț ie ................................................. 5
6. Marco Teórico .................................................................................................... 6
7. Proiectarea proiectului .....................................................................................19
8. Codificare în C++ .................................................................................... 20
Mod Grafic ....................................................................................................... 20
Cod General .................................................................................................. 23
9. Ecranul principal al programului .......................................................... 46
10. Concluzii ........................................................................................ 47
11. Recomandări ............................................................................. 47
12. Bibliografie ............................................................................................ 48

2
1. TEMA: Rol de plata pentru compania de supermarketuri Santa María.

2. OBIECTIVE

Obiectiv general
Dezvoltarea unui sistem de gestionare care să permită generarea unui Rol de

Plă ț i pentru compania de supermarketuri Santa María folosind


limbajul C++.

b. Obiective specifice
Analiza ț i fiecare dintre cerin ț ele solicitate de
utilizator
Proiectarea unei structuri globale a func ț ionării
programa, specificaț i ce trebuie să facă fiecare dintre ele
părț ile ș i cum se vor relaț iona.
Dezvoltarea ș i implementarea algoritmilor necesari pentru
îndeplinirea cerin ț elor utilizatorului pe baza
ceea ce am învăț at în clasă.

Verificaț i dacă programul funcț ionează corect ș i că


îndeplineș te cerinț ele.

3. DESCRIEREA PROBLEMELOR

În prezent, avansul tehnologiei a provocat ca anumite


companiile caută o modalitate sau o formă de a fi actualizate fie
ca metodă de inovaț ie sau ca o strategie pentru a putea diminua
timpul în sarcinile sale zilnice, pentru aceasta se dezvoltă anumite
programe care le facilitează îmbunătăț irea muncii lor zilnice, cum ar fi de exemplu

un rol de plăț i, acesta implică multe calcule ș i introducerea de informaț ii,


care, odată cu trecerea timpului, se poate pierde sau răsfoi făcând
aș a de dificilă localizarea unor anumite informaț ii.

3
La compania de supermarketuri Santa María generează un rol de plă ț i
includ multă birocraț ie ș i timp, prin urmare, persoanele responsabile de
Acest demers solicită să li se uș ureze puț in munca.
În realizarea anumitor cercetări despre func ț ionarea acesteia
s-a detectat o problemă mai mare în rolul plă ț ilor în
pe ce s-a axat acest subiect de cercetare.

4. AMBITO

Acest proiect va contribui la îmbunătă ț irea unei entită ț i sau a unei companii.

funcț ionarea în ceea ce priveș te zona pe care o gestionează Rol de plăț i, deoarece

În acest mod, se va putea accesa eficient anumite informa ț ii.


ceea ce înainte era foarte greu de găsit, fie din lipsă de timp
o multă birocraț ie.
S-a concentrat pe o companie care distribuie ș i comercializează produse
pentru acasă, în care scopul este de a realiza un program care să faciliteze
gestiunea care lună de lună se desfă ș oară, cum ar fi un rol de plă ț i în
acest proiect se va permite:

introduceț i date în registru


Efectuarea de consultaț i

Obț ineț i o listă generală


Modifica
Eliminare înregistrări

Afisează totalul de plată


Va oferi ajutor utilizatorului ș i
Ieș i

Agilizando în acest fel manipularea ș i modificarea datelor.


Acest program nu va fi online, adică nu este accesibil prin
internetul ș i de asemenea nu va permite obț inerea informaț iilor tipărite.

4
5. JUSTIFICAREA SAU PROPUNEREA DE SOLU ȚIE

Odată cu realizarea acestui proiect se va reuș i să se concretizeze cunoș tinț ele

teoretice ș i practice obț inute în clasă, la fel se va obț ine


o experien ț ă adevărată cu care se vor dobândi cuno ș tinț ele
necesare pentru un bun randament în ramura noastră ș i a fi competitivi
în tot ceea ce vom face ulterior.

Prezentul proiect se va concentra pe realizarea unui program care


permite utilizatorului să introducă, să modifice, să consulte, etc. Diferit

informa ț ii cu privire la un rol de plă ț i, fiind principalele


beneficiarii utilizatorii care completează aceea ș i, reducând de o
maniera semnificativă timpul petrecut pentru a umple ș i a stoca aceasta
informaț ie.

Pentru ca acest proiect să fie realizat se vor urma paș ii modelului


cascadă pentru dezvoltarea de software, în acelaș i mod se va obț ine
informaț ii necesare despre gestionarea rolului de plăț i ș i în final
se vor aplica cuno ș tinț ele ș i abilită ț ile pe care le avem fiecare dintre noi

noi.

5
6. MARCO TEORIC
Borland C++

Figura 1. Logo Borland C++

C++ este un limbaj de programare conceput la mijlocul anilor


1980 de Bjarne Stroustrup. Intenț ia sa de a fi creat a fost de a extinde
limbajul de programare C de succes cu mecanisme care permit
manipularea obiectelor. În acest sens, din punct de vedere al
Limbajele orientate pe obiecte, C++ este un limbaj hibrid.
Ulterior, s-au adăugat facilită ț i de programare generică, care
s-a alăturat celorlalte două paradigme care erau deja acceptate
(programare structurată ș i programare orientată pe obiecte). De
se spune adesea că C++ este un limbaj de programare
multiparadigmă.
Actualmente există un standard, denumit ISO C++, la care s-au
aderat la majoritatea producătorilor de compilatoare mai moderne.
Există ș i câț iva interpreț i, cum ar fi ROOT.
O particularitate a C++ este posibilitatea de a redefini operatorii
(supracarcare de operatori), si de a putea crea tipuri noi care se
comportă-te ca niș te tipuri fundamentale.

Numele C++ a fost propus de Rick Mascitti în anul 1983, când


limbajul a fost folosit pentru prima dată în afara unui laborator

6
ș tiinț ific. Înainte s-a folosit numele „C cu clase”. În C++,
expresia "C++" înseamnă "incrementul lui C" ș i se referă la faptul că C++ este

o extensie a C.

Ce este un limbaj de programare?

Unlimbaj de programareeste un limbaj artificial care poate fi folosit


pentru a defini sau a pregăti instruc ț iuni care vor fi apoi executate de către

PC.

Limbajul utilizat deprocesorse denumeste limbaj de ma ș ină.


Se referă la datele a ș a cum ajung la procesor, care constau într-o
serie de 0 ș i 1 (date binare).

Limbajul de maşină, prin urmare, nu este comprehensibil pentru fiinţe


umani, motiv pentru care au fost dezvoltate limbi intermediare
comprensibile pentru om. Codul scris în acest tip de limbaj
se transformă în cod ma ș ină pentru ca procesorul să poată
procesa-l.

Prin urmare, un limbaj de programare are mai multe avantaje:

este mult mai uș or de înț eles decât un limbaj de maș ină:

permite o portabilitate mai mare, adică se poate adapta uș or


pentru a se executa pe diferite tipuri de echipamente.

Ce este un algoritm?

Un algoritm poate fi definit ca o sequenț ă de instrucț iuni care


reprezintă un model de soluț ie pentru un anumit tip de probleme.
O bine ca un set de instruc ț iuni care sunt realizate în ordine
conduc la ob ț inerea solu ț iei unei probleme. Prin urmare, putem
a spune că este un set ordonat ș i finit de pa ș i care ne permite
soluț iona o problemă.
Algoritmii sunt independenț i de limbajele de programare. În
fiecare problemă algoritmul poate fi scris ș i apoi executat într-un

7
limbaj de programare diferit. Algoritmul este infrastructura de
orice soluț ie, scrisă ulterior în orice limbaj de programare.

PARTELE UNUI ALGORITM

Orice algoritm trebuie să aibă următoarele părț i:

Introducerea datelor, sunt datele necesare pe care algoritmul


necesită pentru a fi executat.
Procesul este secvenț a de paș i pentru a executa algoritmul.
Ieşirea rezultatelor, sunt datele ob ț inute după
execuț ia algoritmului.

Figura 2. Părț i ale unui algoritm.

TEHNICI DE REPREZENTARE

Pentru reprezentarea unui algoritm, înainte de a fi convertit în


limbaj de programare, se utilizează unele metode de
reprezentare scrisă, grafică sau matematică. Cele mai multe metode
cunoscuț i sunt:

Diagramare liberă (Diagramă de flux).


Diagramas Nassi-Shneiderman.
Pseudocod.
Limbaj natural (spaniol, englez, etc.).
Caracteristicile fundamentale ale algoritmului

8
Elalgoritms-a terminat: Algoritmul pe care noi îl elaborăm
necesar va trebui să aibă un anumit set de
instrucț iuni.
Algoritmul este precis: Algoritmul este constituit dintr-un
un set de instrucț iuni care vor fi executate pas cu pas.
Algoritmul este definit: Algoritmul urmat de două sau mai multe ori
arată rezultate similare.

Sentinț e

Instrucț iunea if

Permite o ac ț iune predefinită de către


programator, care se va îndeplini dacă condiț ia are valoare logică
adevărat (potrivit tabelei de adevăr este 1) sau valoare logică falsă
(conform tabelului de adevăr este 0).

Su sintaxă:
dacă (expresie) {

sentinț ă_1;

altfel /* Opț ional */

sentinț ă_2;

Comutator:

Este o instrucț iune de selecț ie multiplă în C. Se foloseș te pentru a alege

un drum între mai multe căi alternative de execuț ie a


programa.

Sintaxa sa este:

switch (variabila) {

caz 1:

9
secvenț ă de sentinț e;

ruptura;

default

secvenț ă de declaraț ii;

pauză;

În timp ce

Această structură de repetare permite programatorului să specifiche.


de câte ori se repetă o ac ț iune atâta timp cât o condi ț ie se
menț ine adevărat.

Figura 3. bucle while


Sintaxa sa este:

while (condiț ie)

Bloc de instrucț iuni

};

Fă în timp ce

10
Este vorba despre repetarea corpului buclei (grupul de instruc ț iuni),

până când condiț ia devine falsă (valoare nulă), adică,


vom executa grupul de instruc ț iuni atâta timp cât condi ț ia
dacă este adevărat (valoare nenulă), atunci, cel pu ț in întotdeauna

vom executa corpul buclei cel puț in o dată.

Sintaxa sa este:
fă{

Bloc de operaț iuni;

} în timp ce (digito <= n);

Ciclul for
Un ciclu for este o structură de control iterativă, care ne permite
executa în mod repetitiv un bloc de instruc ț iuni,
cunoscând anterior un valoare de început, un dimensiune de pas ș i
o valoare finală pentru ciclu.

Registre în C++

Figura 4. Exemple de înregistrare.

Un registru, în programare, este un tip de date structurat


formată din unirea mai multor elemente sub aceea ș i
structură. Aceste elemente pot fi, fie date elementare

11
(întreg, real, caracter), sau alte structuri de date. Fiecărui
unul dintre aceste elemente se numeș te câmp.

Fiș iere în C++

Conjunto de informa ț ii înrudite, tratate ca o unitate de


stocare în memorie organizată în mod structurat pentru
facilitarea căutării datelor individuale.
Un fi ș ier este compus din registre omogene care con ț in
informaț ii organizate în câmpuri.
Câmpul este cea mai mică unitate de procesare cu înț eles propriu.

Într-un limbaj de nivel înalt, fiș ierul nu este gestionat direct de


nu programul în sine, ci de către Sistemul de Operare. Aceasta facilitează ca
programe transportabile.

DEFINIȚII DE BAZĂ

Date: Practic se referă la mărturiile individuale


legate de fapte, fie că sunt caracteristici ale anumitor obiecte de
studiu sau condiț ii particulare ale situaț iilor date.

Registro: Este este ansamblul complet de date corelate care aparț in


o intrare.

În termeni computa ț ionali, un fi ș ier este o colec ț ie de date care


are un nume ș i sunt stocate pe dispozitive de stocare
secundar, care pot fi magnetici, optici, electronici, etc.

Apertura de fiș iere


Inainte de a scrie sau a citi date dintr-un fiș ier, este necesar să-l deschizi. La deschiderea

fi ș ierul stabile ș te comunicarea între program ș i sistem


operativ despre cum să accesa ț i acest lucru. Este necesar ca programul să vă

12
furniza ț i sistemului de operare numele complet al fi ș ierului ș i
inten ț ia de utilizare (a citi sau a scrie date), atunci se definesc zone de
comunicare între ei.

Clasificarea fiș ierelor pe tip de conț inut

Figura 5. Clasificarea fiș ierelor după conț inut

Fiș iere text


Sunt aceia care pot con ț ine orice tip de date ș i de astfel
modul în care sunt „înț elese” de către oameni. Datele dintr-un fiș ier de
textul este stocat folosind codul ASCII, în care fiecare caracter este
reprezentat de un simplu byte.
Fiș iere binare
Acest tip de fi ș iere stochează datele numerice cu al său
reprezentare binară. Pot fi fiș iere care conț in instrucț iuni
în limbaj de maşină pregătite pentru a fi executate.

Clasificarea fiș ierelor după tipul de acces

Figura 6. Clasificarea fiș ierelor după tipul de acces.

Arhive secvenț iale


A ș a cum îi sugerează numele, în acest tip de fi ș iere, înregistrările se
sunt înregistrate în secven ț ă sau consecutiv ș i trebuie accesate în acest fel

13
acela ș i mod, adică, pe măsură ce se introduc noi înregistrări,
acestea sunt stocate la sfârș itul ultimului înregistrări stocate;
Fiș iere directe (relative, de acces direct sau aleator)
Spre deosebire de fiș ierele secvenț iale, în fiș ierele directe nu este
necesar să-l parcurgem complet pentru a accesa un registru în
în particular, dacă nu se poate plasa indicatorul intern al fi ș ierului
direct în registrul dorit, permi ț ând astfel o mai mare
rapiditate de acces.

FUNCIONES
Funcț iefopen:

Sintaxă:

FILE *fopen(char *nume, char *mod);

Această funcț ie serveș te pentru a deschide ș i crea fiș iere pe disc. Valoarea de retur este un
mmipuntero la o structurăFIȘ IER.

Figura 7. Funcț ii pentru deschiderea unui fiș ier

Funcț ieînchide fiș ierul:

Sintaxă:

int fclose(FILE *fichero);

14
Este important să închizi fi ș ierele deschise înainte de a părăsi
fffaplica ț ie. Această func ț ie serve ș te pentru asta.

Funcț iefwrite:

Sintaxă:

size_t fwrite(void *puntero, size_t tamaño, size_t nregistros, FILE


*fiș ier);

Această funcț ie este, de asemenea, destinată să lucreze cu registre de lungime


constante ș i formă pereche cu fread. Este capabil să scrie într-un fiș ier
uno sau mai multe înregistrări de aceeaș i lungime stocate pe baza unei
adresă de memorie determinată.

Lectura de registre folosind fread()


Funcț ia fread permite „încărcarea” tuturor câmpurilor unui registru într-un
fi ș ier, adică, cite ș te un registru ș i îl copiază în memoria RAM. Aceasta
funcț ia are aceleaș i argumente ca funcț ia fwrite.
Punctele de referinț ă ale funcț iei fseek()
Ultimul argument al func ț iei fseek este cunoscut sub numele de punctul de
referin ț ă la modul ș i se referă de unde va începe numărătoarea de
bytes determinaț i de adresa fizică

15
Figura 8. Funcț ia fseek
Funcț ieftell:

Sintaxă:

long int ftell(FILE *fichero);

Func ț ia ftell serve ș te pentru a afla pozi ț ia actuală a cursorului de


citirea/scrierea unui fiș ier.

MOD DE GRAFIC

Figura 9. Exemplu de mod grafic


Func ț iile pe care le îndeplinesc graficele în C este de a permite generarea
desene ș i prezentări ale programelor în general (adică, forma
în care apar utilizatorului).

Pentru a realiza grafice în C++, trebuie să setăm sistemul în modul


grafic. Pentru aceasta trebuie să include ț i în programul nostru biblioteca de

grafice GRAPHICS.H

#include<grafică.h>

Pentru a ini ț ializa modul grafic se folose ș te func ț ia initgraph() ș i pentru


opre ș te-l func ț ia closegraph ().

16
Funcț ii cele mai utilizate:
• dreptunghi (int X1, int Y1, int X2, int Y2);
Desenează un dreptunghi fără umplutură pe ecran marcat de
punctele (X1, Y1) ș i (X2, Y2), unde X1 este extremitatea stângă a
dreptunghi, Y1 este capătul superior, X2 este capătul drept ș i
Y2 capătul inferior al dreptunghiului.

• cerc (int X, int Y, int radio);


Desenează un cerc (al cărui dimensiune a razei este dată de variabilă
radio) pe ecran cu centru în punctele (X, Y). cerc (100, 100,
10);

•linie (int X1, int Y1, int X2, int Y2);


Desenează o linie dreaptă începând de la punctele X1, Y1; încheind la
Linie X2, Y2 (100, 200, 300, 400);

• elipsă (int X, int Y, int unghiînat, int unghifinal, int razăx, int
yradius);
Desenează o elipsă cu centrul în punctele X, Y. stangle ș i endangle
indică unghiul iniț ial ș i final al arcului eliptic de desenat.

CULORI DISPONIBILE

17
Figura 10. Culori în modul grafic
Stabilirea dimensiunii ș i stilului textului

Pentru a indica formatul textului care va apărea pe ecran în timpul


în modul grafic se utilizează funcț ia settextstyle:
settextstyle(int font, int direction, int charsize);

Valoarea Font este o constantă care indică sursa de utilizat.

Constantele disponibile sunt:


FONT_IMPLICIT
FONT_TRIPLEX
FONT_MIC
FONT SANS SERIF
FONT_GOTIC

Direcț ia este o constantă care indică orientarea textului, poate fi


HORIZ_DIR (textul se afiș ează orizontal de la stânga la dreapta)
o VERT_DIR (textul se afi ș ează cu sens vertical de jos în sus
sus).
Charsize corespunde cu un număr întreg care indică dimensiunea
sursa. Valorile variază de la zero în sus, mărind dimensiunea
de la literă. Urmează stabilirea formatului pentru a desena un text.
settextstyle(SANS_SERIF_FONT, HORIZ_DIR, 4);

Odată ce a fost indicat formatul textului, putem prezenta pe ecran


o legendă prin funcț ia outtextxy():
outtextxy(int x, int y, char *textstring);

Valorile dexy de y stabilesc coordonatele în care textul


va fi desenat. Textstring se referă la ș irul de caractere care se
va afiș a pe ecran.

18
outtextxy (100,200,"Acesta este modul grafic");
7. PROIECTUL DE DESIGN
Programul are un ecran de început, pe care se va solicita
utilizator ș i parolă, pentru accesul la meniul principal.
În meniul principal va fi afi ș ată o ecran care va dispune de
opț iuni următoare:
Introduceț i datele în registru
Consultarea unui registru

Listă
Modifică un registru
Eliminarea unui registru
Afiș aț i totalul de plată
Ajutor ș i instrucț iuni pentru program
Ieș i
Submeniul următor se găse ș te în op ț iunea de a consulta un registru,
cu următoarele opț iuni:
Consulta după numărul de cedulă
Consulta după nume de familie

Consulta pentru departament


Înapoi la meniul principal

19
8. CODIFICARE ÎN C++
8.1. MODUL GRAFIC

# include<graphics.h>
#include<conio.h>
#include<dos.h>
#include<stdio.h>
#include <stdlib.h>
main()
{

int gd = DETECT, gm, x, y, culoare, unghi = 0, i = 0; // Iniț ializează variabilele locale


struct arccoordstype a, b;
initgraph(&gd, &gm, "C:\TC\BGI"); // Initializează variabilele grafice
întârziere(2000);
while(angle<=360) /* Controlează cercurile care apar */
{
setcolor(15);
outtextxy(0,0,"0.....___________...___________._____...0."); //marco
outtextxy(0,450,"0.....___________...___________._____...0.");
setează culoarea(NEGRU);
arc(getmaxx()/2,getmaxy()/2,unghi,unghi+2,200); /* Desenează un arc */
setcolor(ROȘ U);
getarccoords(&a); /* coordonate */
cerc([Link],[Link],5); /* Desenează un cerc */
settextstyle(7,0,3); /* Stil de text */
setcolor(RO Ș U); /* culoare text */
outtextxy(190,150,"PROIECT FINAL"); /* Pentru a afiș a un text */
arc(getmaxx()/2,getmaxy()/2,unghi,unghi+2,200);
getarccoords(&a);
setcolor(VERDE);
cerc([Link],[Link],10);
unghi = unghi + 5;
setcolor(3);
settextstyle(2,0,5);
ESCUELA SUPERIOARĂ POLITECNICĂ DE CHIMBORAZO
settextstyle(2,0,5);
Ș COALA DE INGINERIE ÎN SISTEME
întârziere(50);
}
setbkcolor (0); /* Atribuie o culoare ecranului */
sterge dispozitivul(); /* Curăț ă ecranul */
setcolor(1);
settextstyle(4,0,0); /* Stil de text */
dreptunghi(5,20,626,450); /* Desenează un dreptunghi pentru cadru */

20
setcolor(3);
settextstyle(7,0,2); /* Stil de text */
outtextxy(300,120," INTEGRANȚ I: "); /* Pentru a pune un text */
seteazăculoare(15);
settextstyle(2,0,5);
outtextxy(360,165,"LOURDES GUAMAN ");
settextstyle(4,0,0);
setcolor(15);
settextstyle(2,0,5);
outtextxy(360,182," LEIDY JUMBO");
setcolor(15);
settextstyle(2,0,5);
outtextxy(360,199," ANASTASIA MININA ");
setează culoarea(1);
dreptunghi(25,45,605,430);
settextstyle(4,0,0);
dreptunghi(50,65,580,410);
setează culoarea(3);
settextstyle(7,0,2);
outtextxy(330,235," PARALELO: ");
settextstyle(4,0,0);
setcolor(15);
settextstyle(2,0,5);
outtextxy(370,269," 2° 'B' SISTEME ");
settextstyle(4,0,0);
setcolor(3);
settextstyle(7,0,2);
outtextxy(317,300," TEMA: ");
settextstyle(4,0,0);
setcolor(15);
settextstyle(2,0,5);
outtextxy(365,340," ROL DE PAGOS");
setează stilul textului(4,0,0);
int unghiuri=0;
while(ángles<=360)
{
setcolor(NEGRU); /*Asignaț i o culoare */
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+1,55); /* Arc de cercuri cu diferite
dimensiuni
setcolor(13);
getarccoords(&a); /* Coordonaț i */
cerc([Link],[Link],8); /*Desenează un cerc*/
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+1,39);
setcolor(5);
getarccoords(&a);
cerc([Link],[Link],8);
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+2,31);
setcolor(12);

21
getarccoords(&a);
cerc([Link],[Link],8);
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+2,19);
setcolor(4);
getarccoords(&a);
cerc([Link],[Link],8);
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+1,9);
setcolor(6);
getarccoords(&a);
cerc([Link],[Link],8);
arc(getmaxx()/4.5,getmaxy()/3.1,unghiuri,unghiuri+1,70);
getarccoords(&a);
setcolor(3);
cerc([Link],[Link],8);
unghiuri = unghiuri + 5;
întârziere(50);
}
int angless=0;
while(angless<=360)
{
setcolor(NEGRU); /*Atribuie un culoare */
arc(getmaxx()/4.5,getmaxy()/1.45,angless,angless+3,55); // Arc cu dimensiuni diferite
setcolor(15);
getarccoords(&a); /* Coordonate*/
cerc([Link],[Link],4); /* Desenează un cerc */
arc(getmaxx()/4.5,getmaxy()/1.45,angless,angless+3,40);
setcolor(1);
getarccoords(&a);
cerc([Link],[Link],4);
arc(getmaxx()/4.5,getmaxy()/1.45,angless,angless+3,17);
setcolor(15);
getarccoords(&a);
cerc([Link],[Link],4);
arc(getmaxx()/4.5,getmaxy()/1.45,angless,angless+3,5);
setează culoarea(1);
getarccoords(&a);
cerc([Link],[Link],6);
settextstyle(7,0,3);
arc(getmaxx()/4.5,getmaxy()/1.45,angless,angless+3,70);
setcolor(1);
getarccoords(&a);
cerc([Link],[Link],4);
angless = angless + 5;
întârziere(50);
}
getch(); /* Aș teaptă un moment */
închidegrafic(); /* Cierra*/
}

22
8.2. CODUL GENERAL

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
#include <windows.h>
#include <fstream>
#include <iostream>
#include <string>
#include <iomanip>
#include <cstring>
#include <stdlib.h>
gerente
santa maria
#define S cout<<
#define L 100

bool valida_cedula(char numar[])


{
int i=0, sw=0,j;
j=strlen(numero);
dacă (j==10)
{
în timp ce (i<j && sw==0)
{
dacă (isdigit(numero[i])!=0)
{
i++;
}
altfel
{
sw=1;
}
}
}
altfel
sw=1;
return sw;
}

bool validar_numeros(char numar[])


{
int i=0, sw=0,j;
j=strlen(numar);

23
while (i<j && sw==0)
{
dacă (isdigit(numero[i])!=0)
{
i++;
}
altfel
{
sw=1;
}
}

return sw;
}

bool validare_salar(char linie[])


{
int i=0, sw=0,j;
j=strlen(linia);
în timp ce (i<j && sw==0)
{
dacă (linea[i]!='.')
{
dacă (isdigit(linea[i])!=0)
{
i++;
}
altfel
{
sw=1;
}
}
altfel
i++;
}

returnează sw;

bool validar_letras(char linie[])


{
int i=0, sw=0,j;
j=strlen(linia);
în timp ce (i<j && sw==0)
{
dacă (linea[i]!=' ')

24
{
dacă (isalpha(linea[i])!=0)
{
i++;
}
altfel
{
1
}
}
altfel
i++;
}

return sw;

bool validar_seguro(char linea[])


{
int i=0, sw=0,j;
j=strlen(linia);
dacă (j!=1)
sw=1;
dacă (toupper(linea[0])!='S' && toupper(linea[0])!='N')
1;

returnează sw;
}

structura cargo_ocupa
{
char cargo[L];
int num_horas;
};

structura
{
char num_ced[L];
char nume[L];
char numeFamilie[L];
char depar[L];
ocupatie
int c_fam;
int h_ext;
float salariu;
caracter sigur;

25
};
Tip de înregistrare
FIȘ IER *alias;

//Textcolor de linie cu windows.h care va permite să scrieț i culoarea pe o singură linie

void t(int n)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);
}
//Gotoxy emulat cu windows.h care va permite să scrieț i pe linia dorită fără a face un
Curăț ă ecranul.
void g(int x, int y)
{
HANDLE coss = GetStdHandle(STD_OUTPUT_HANDLE);
COORD Pcoss;
x
y;
Setează poziț ia cursorului consolei(coss, Pcoss);
}

Coordenate colorate pentru cazuri speciale


Exemplu
gt(3,4,alb);

unde 3 este spaț ierea " "


unde 4 este linia
*/
void gt(int x, int y, int n)
{
g(x,y)
}

void Limite(int lim)


{
int i,j=1,w;
Încărcare, Vă rugăm să aș teptaț i.
t(1);

pentru (i= 1; i<78 ; i++)


{
Somn(5);
g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(i,1); printf("%c",205);
g(i,lim); printf("%c",205);

dacă(i%2==0)

26
{
if(j<lim)
{
j++;
g(1,j); printf("%c",186);
g(78,j); printf("%c",186);
}
}
g(78,lim); printf("%c",188);
g(1,lim); printf("%c",200);
}

g(1,1); printf("%c",201);
g(78,1); printf("%c",187);
g(78,lim); printf("%c",188);
g(1,limit); printf("%c",200);
gt(28,23,3); printf(" ");

void cuadrat(int ci, int cf, int fi, int ff)


{
int o;
t(3);

pentru(o=ci; o<=cf; o++)


{
gotoxy(o,fi); S"ßß";
gotoxy(o,ff); S"ßß";
}

pentru(o=fi; o<=ff; o++)


{
gotoxy(ci,o);S"ÛÛ";
gotoxy(cf,o);S"ÛÛ";
}

gotoxy(ci,fi); S"Û";
gotoxy(cf,fi); S"ÛÛ";
gotoxy(ci,ff); S"ßß";
gotoxy(cf,ff); S"ßß";
}

void ÎNREGISTRARE_ANGAJAT(void)
{
int num_ced;
char linea[L];

27
char ore[L];
bool esteNumeric(string);

cuadro(18,62,3,5);
Limite(22);
gotoxy(23,4);
textcolor(5);
cprintf("<<< ÎNREGISTRĂRI DE PERSONAL >>>");
fopen("[Link]","rb+");
dacă(alias==NULL)
alias=fopen("[Link]","wb");

{
gotoxy (23,9);
cprintf(" ");
gotoxy(4,9);
textcolor(8);
cprintf("Numărul de cédulă (10 cifre) : ");gets(linea);
} while (validar_cedula(linea)!=0);

fread(&Registro,sizeof(Registro),1,alias);

în timp ce(!feof(alias))
{
dacă(strcmp(Registro.num_ced,linea)==0)
{
gotoxy(20,11);
textcolor(3);
Registro duplicat!
gotoxy(20,12);
Apasă orice tastă pentru a continua . . .
fclose(alias);
getch();
return;
}

fread(&Registro,sizeof(Registro),1,alias);

strcpy(Registro.num_ced,linea);

{
gotoxy(13,10);cprintf(" ");
gotoxy(4,10); cprintf("Nume (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);

28

{
gotoxy(15,11);cprintf(" ") ");
gotoxy(4,11); cprintf("Nume de familie (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);

fac
{
gotoxy(36,12);cprintf(" ") ");
gotoxy(4,12);cprintf("Departament (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);


{
gotoxy(22,13);cprintf(" ") ");
gotoxy(4,13);cprintf("Cargo (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);


{
gotoxy(32,14);cprintf(" ") ");
gotoxy(4,14); cprintf("Ore zilnice (Numărul 1-24): ");
gets(linea);[Link].num_horas=atoi(linea);
}while(validar_numeros(linea)!=0 || ([Link].num_horas<1 ||
[Link].num_horas>24);


{
gotoxy(27,15);cprintf(" ") ");
gotoxy(4,15); cprintf("Ore suplimentare (număr): "); gets(linea);
}while (validar_numeros(linea)!=0);
Registro.h_ext=atoi(linie);


{
gotoxy(21,16);cprintf(" "); ");
gotoxy(4,16); cprintf("Salariu (număr ș i puncte): "); gets(linea);
}while(validar_sueldo(linea)!=0);
[Link]=atof(linie);


{
gotoxy(32,17);cprintf(" ") ");
gotoxy(4,17); cprintf("Cargas familiale (numar): "); gets(linea);
}while(validar_numeros(linea)!=0);
atoi(linea);

29

{
gotoxy(18,18);cprintf(" ") ");
gotoxy(4,18); cprintf("Sigur (S/N): "); gets(linea);
}while(validar_seguro(linea)!=0);
[Link]=linea[0];

fwrite(&Registro,sizeof(Registro),1,alias);
fclose(alias);
gotoxy(34,20); textcolor(3); cprintf("Angajat înregistrat!");
apasa orice tasta pentru a continua . . .
getch();
return;
}

void CONSULTA_CEDULA(void)
{
char num_ced[L];
Limite(22);
cuadro(18,62,3,5);
gotoxy(28,4);
textcolor(5);
cprintf("<<< CONSULTA DUPĂ CEDULĂ >>>");
alias=fopen("[Link]","rb");

dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
return;
}
gotoxy(18,6);
textcolor(8);
cprintf("Numărul de cerere de consultat : ");cin>>num_ced;
fread(&Registro,sizeof(Registro),1,alias);

în timp ce(!feof(alias))
{
dacă(strcmp(Registro.num_ced, num_ced)==0 )
{
g(3,7); printf("Cedula");g(14,7); printf("Nume");g(23,7);
printf("Nume de familie");g(33,7); printf("Depart.");g(44,7); printf("Funcț ie");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7);
printf("Seg.");

30
g(3,8);
printf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ")
ßßßßßßßßßß");
t(8);
g(3,9);cout<<Registro.num_ced;g(14,9);cout<<[Link];g(23,9);
cout<<[Link];g(33,9);cout<<[Link];g(44,9);
cout<<[Link];g(54,9); cout<<[Link].num_horas;
g(59,9); cout<<Registro.h_ext;g(64,9); cout<<[Link];g(70,9);
cout<<Registro.c_fam; g(74,9); cout<<[Link];
fclose(alias);
t(3);
g(20,11); printf("Apasă orice tastă pentru a continua . . .");
getch();
întoarce;
}

fread(&Registro,sizeof(Registro),1,alias);
}
fclose(alias);
g(18,8); printf("Nu se găseș te nicio înregistrare!");
g(18,9); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
întoarce;
}

void CONSULTA_APELLIDO(void)
{
int comparatie, n;
char numeFamilie[L];
Limite(22);
cuadro(18,62,3,5);
gotoxy(28,4);
textcolor(5);
cprintf("<<< CONSULTĂ PENTRU APELLID >>>");
alias=fopen("[Link]","rb");

dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
return;
}
gotoxy(18,6);
textcolor(8);
cprintf("Numele de familie de consultat : ");cin>>apellido;
n=strlen(prenume);

31
g(3,7); printf("Cedula");g(14,7); printf("Nume");g(23,7); printf("Prenume");g(33,7);
printf("Plecare.");g(44,7); printf("Cargo");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7); printf("Seg.");
g(3,8);
printf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß");
ßßßßßßßßßß");
fread(&Registro,sizeof(Registro),1,alias);
int f=9;
while(!feof(alias))
{
strncmpi(apellido, [Link],n);
t(8);

dacă(comparacion==0)
{
g(3,f); cout<<Registro.num_ced;g(14,f);
cout<<[Link];g(23,f); cout<<[Link];g(33,f);
cout<<[Link];g(44,f); cout<<[Link];g(54,f);
cout<<[Link].num_ore;
g(59,f); cout<<Registro.h_ext;g(64,f); cout<<[Link];g(70,f);
cout<<Registro.c_fam; g(74,f); cout<<[Link];
f++;
}

fread(&Registro,sizeof(Registro),1,alias);
}

fclose(alias);
t(3);
g(3,f);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßß");
g(18,20); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
întoarce;
}

void CONSULTA_DEPARTAMENT(void)
{
int comparatie, n;
char depar[L];
Limite(22);
cuadro(18,62,3,5);
gotoxy(25,4);
textcolor(5);
cprintf("<<< CONSULTA PE DEPARTAMENT >>>");
fopen("[Link]","rb");

32
dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
întoarce-te;
}
gotoxy(18,6);
textcolor(8);
cprintf("Departamentul de consultat : ");cin>>depar;
n=strlen(depar);
g(3,7); printf("Cedula");g(14,7); printf("Nume");g(23,7); printf("Nume de familie");g(33,7);
printf("Plecare.");g(44,7); printf("Încărcare");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7); printf("Seg.");
g(3,8);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
fread(&Registro,sizeof(Registro),1,alias);

int f=9;
în timp ce(!feof(alias))
{
strncmpi(depar, [Link],n);
t(8);

dacă(comparacion==0)
{
g(3,f); cout<<Registro.num_ced;g(14,f); cout<<[Link];g(23,f);
cout<<[Link];g(33,f); cout<<[Link];g(44,f);
cout<<[Link];g(54,f); cout<<[Link].num_horas;
g(59,f); cout<<Registro.h_ext;g(64,f); cout<<[Link];g(70,f);
cout<<Registro.c_fam; g(74,f); cout<<[Link];
f++;
}

fread(&Registro,sizeof(Registro),1,alias);
}

fclose(alias);
t(3);
g(3,f);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
Apăsaț i orice tastă pentru a continua . . .
getch();
întoarcere;
}

33
void LISTADO(void)
{
Limite(22);
cuadro(18,62,3,5);
gotoxy(30,4);
textcolor(5);
cprintf("<<< LISTA GENERAL >>>");
alias=fopen("[Link]","rb");

dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apasă orice tastă pentru a continua . . .");
getch();
return;
}

g(3,7); printf("Cedula");g(14,7); printf("Nume");g(23,7); printf("Nume de familie");g(33,7);


printf("Depart.");g(44,7); printf("Cargo");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7); printf("Seg.");
g(3,8);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
fread(&Registro,sizeof(Registro),1,alias);
int f=9;
în timp ce(!feof(alias))
{

t(8);

g(3,f); cout<<Registro.num_ced;g(14,f); cout<<[Link];g(23,f);


cout<<[Link];g(33,f); cout<<[Link];g(44,f);
cout<<[Link];g(54,f); cout<<[Link].num_horas;
g(59,f); cout<<Registro.h_ext;g(64,f); cout<<[Link]<<"$"; g(70,f);
cout<<Registro.c_fam; g(74,f); cout<<[Link];
f++;

fread(&Registro,sizeof(Registro),1,alias);
}

fclose(alias);
t(3);
g(3,f);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
g(18,20); printf("Apasă orice tastă pentru a continua . . .");

34
getch();
returna;
}
void MODIFICARE(void)
{
char num_ced[L];

char linea[L];
char ore[L];
bool repite = true;
bool esteNumerico(string);
Limite(30);
cuadro(18,62,3,5);
gotoxy(24,4);
textcolor(5);
cprintf("<<< MODIFICAREA REGISTRULUI >>>");
alias=fopen("[Link]","rb+");

dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apasă orice taste pentru a continua . . .");
getch();
întoarce;
}

gotoxy(20,9);
textcolor(8);
cprintf("Numărul de cedulă : ");cin>>num_ced;
fread(&Registro,sizeof(Registro),1,alias);

în timp ce(!feof(alias))
{
dacă(strcmp(Registro.num_ced,num_ced)==0)
{

g(3,7); printf("CNP");g(14,7); printf("Nume");g(23,7);


printf("Nume");g(33,7); printf("Departament.");g(44,7); printf("Funcț ie");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7);
printf("Seg.");
g(3,8);
printf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");

t(8);
g(3,9);cout<<Registro.num_ced;g(14,9);cout<<[Link];g(23,9);
cout<<[Link];g(33,9);cout<<[Link];g(44,9);
cout<<[Link];g(54,9); cout<<[Link].num_horas;

35
g(59,9); cout<<Registro.h_ext;g(64,9); cout<<[Link];g(70,9);
cout<<Registro.c_fam; g(74,9); cout<<[Link];
t(3);
g(3,10);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
mergi la (4,13); culoare_text(3); cprintf("Modifică-ț i înregistrarea : ");
textcolor(8);

fa
{
gotoxy(13,15);
cprintf(" ");
gotoxy(4,15); cprintf("Nume (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);


{
gotoxy(15,16);cprintf(" ") ");
gotoxy(4,16); cprintf("Nume de familie (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);

a face
{
gotoxy(36,17);cprintf(" ") );gotoxy(4,17);
cprintf("Departament (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);


{
gotoxy(22,18);cprintf(" ") ");
gotoxy(4,18);cprintf("Cargo (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);

a face
{
gotoxy(32,19);cprintf(" ") ");
gotoxy(4,19); cprintf("Ore ") diarii (Număr 1-24): ");
gets(linea);[Link].num_horas=atoi(linea);
}while(validar_numeros(linea)!=0 || ([Link].num_horas<1 ||
[Link].num_horas>24);

a face
{
gotoxy(27,20);cprintf(" ") ");

36
gotoxy(4,20); cprintf("Ore suplimentare (număr): "); gets(linea);
} while (validar_numeros(linea)!=0);
Registro.h_ext=atoi(linea);

{
gotoxy(21,21);cprintf(" "); ");
gotoxy(4,16); cprintf("Salariu (număr ș i puncte): "); gets(linea);
} while(validar_sueldo(linea)!=0);
atof(linea);

a face
{
gotoxy(32,22);cprintf(" ") ");
gotoxy(4,22); cprintf("Cargas familiale (număr): "); gets(linea);
} while(validar_numeros(linea)!=0);
atoi(linea);


{
gotoxy(18,23);cprintf(" ");
gotoxy(4,23); cprintf("Sigur (S/N): "); gets(linea);
} în timp ce (validar_seguro(linea) != 0);
[Link]=linea[0];

fseek(alias, ftell(alias) - (sizeof(Registro)), SEEK_SET);


fwrite(&Registro,sizeof(Registro),1,alias);
fclose(alias);
gotoxy(34,25); textcolor(3); cprintf("Registro modificat!");
apasati orice tasta pentru a continua . . .
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}

g(18,10); printf("Nu se găseș te niciun registru!");


g(18,11); printf("Apăsaț i orice tastă pentru a continua . . .");
fclose(alias);
getch();
întoarce;
}

void ELIMINAR1(char n[], char &op)


{
char linea[100];
Limite(22);

37
cuadro(18,62,3,5);
gotoxy(28,4);
textcolor(5);
cprintf("<<< Ș TERGEREA REGISTRULUI >>>");
fopen("[Link]","rb");
dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apasă orice tastă pentru a continua . . .");
getch();
întoarce;
}
gotoxy(18,6);
textcolor(8);
cprintf("Numărul de cedulă de ș ters: ");cin>>n;
fread(&Registro,sizeof(Registro),1,alias);

în timp ce(!feof(alias))
{
dacă(strcmp(Registro.num_ced, n)==0)
{
g(3,7); printf("C.I.");g(14,7); printf("Nume");g(23,7);
printf("Nume de familie");g(33,7); printf("Depart.");g(44,7); printf("Funcț ie");g(54,7); printf("H.");
g(59,7); printf("[Link]");g(64,7); printf("Suel");g(70,7); printf("CF"); g(74,7);
printf("Seg.");
g(3,8);
printf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
t(8);
g(3,9); cout<<Registro.num_ced;g(14,9); cout<<[Link];g(23,9);
cout<<[Link];g(33,9); cout<<[Link];g(44,9);
cout<<[Link];g(54,9); cout<<[Link].num_horas;
g(59,9); cout<<Registro.h_ext;g(64,9); cout<<[Link];g(70,9);
cout<<Registro.c_fam; g(74,9); cout<<[Link];
fclose(alias);
t(3);
facă
g(48,11);printf("" Dori ț i să ș tergeț i acest registru?
obț ine(linia);
} while (validar_seguro(linea)!=0);
op=linie[0];

returna;
}

fread(&Registro,sizeof(Registro),1,alias);
}
fclose(alias);

38
g(18,8); printf("Nu se găseș te niciun registru!");
g(18,9); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
returna;
}

void ELIMINAR2(char n[], char &op)


{
FILE *temporal;
alias=fopen("[Link]","rb");
temporal=fopen("[Link]","wb");

fread(&Registro,sizeof(Registro),1,alias);

while(!feof(alias))
{
dacă(strcmp(Registro.num_ced, n)!=0 )
{
fwrite(&Registro,sizeof(Registro),1,temporal);
}

fread(&Registro,sizeof(Registro),1,alias);

fcloseall();
elimină("[Link]");
renumeș te("[Link]","[Link]");
gotoxy(34,20); textcolor(3); cprintf("Registro eliminat!");
apasa orice tasta pentru a continua . . .
getch();
op=='n';

întoarce-te;
}

void TOTAL_A_PAGAR(void)
{
float n, carga, Suma, Total, sigur=0;
Limite(22);
cuadro(18,62,3,5);
gotoxy(30,4);
culoaretext(5);
cprintf("<<< ROL DE PAGOS >>>");
fopen("[Link]","rb");

39
dacă(alias==NULL)
{
g(18,8); printf("Nu se găseș te fiș ierul!");
g(18,9); printf("Apăsaț i orice buton pentru a continua . . .");
getch();
întoarce;
}

g(3,7); printf("Cedula");
g(14,7); printf("Nume de familie");
g(24,7); printf("[Link]");
g(31,7); printf("[Link]");
g(38,7); printf("Salariu");
g(46,7); printf("Iess");
g(53,7); printf("INGR.");
g(61,7); printf("EGR.");
g(69,7); printf("TOTAL");
g(3,8);
printf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßß");
fread(&Registro,sizeof(Registro),1,alias);
int f=9;
while(!feof(alias))
{

t(8);
n=(((([Link]/20)/[Link].num_horas)*0.75)*Registro.h_ext);

dacă ([Link]<277.16)
10.84*Registro.c_fam;
dacă ([Link]>=277.17 && [Link]<404.61)
carga=6.65*Registro.c_fam;
dacă ([Link]>=404.61)
2.10*Registro.c_fam
dacă (toupper([Link])=='S')
[Link]*0.17;
altfel
0

g(3,f); cout<<Registro.num_ced;
g(14,f); cout<<[Link];
g(24,f); printf("%.2f",n);printf("$");
g(31,f); printf("%.2f",carga);printf("$");
g(38,f); printf("%.2f", [Link]); printf("$");
g(46,f); printf("%.2f", seguro); printf("$");
g(53,f); printf("%.2f",n+carga+[Link]);printf("$");
g(61,f); printf("%.2f",seguro);printf("$");
Total= (n+carga+[Link]-seguro);

40
g(69,f); printf("%.2f",Total);printf("$");
Suma=Suma+Total;

f++;

fread(&Registro,sizeof(Registro),1,alias);
}

fclose(alias);
t(3);
g(3,f);
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßß");
g(18,20); printf("Apăsaț i orice tastă pentru a continua . . .");
getch();
returna;
}

void ajutor()
{
ifstream F;
[Link]("[Link]");
ș ir
getline(F,linea);
în timp ce (![Link]())
{
cout << linea << endl;
getline(F,linea);
}
getch();
return;
}

void main()
{
int op, op1, t;
char n[L];
char optiune='n';
char utilizator[L + 1];
char parola[L + 1];
char ingresa = 0;
int i = 0;
char caracter;
int longitud_actual;
char linea[L];

41
{
sistem("cls");
cuadro(22,58,3,5);
cuadro(14,66,6,21);
Limite(22);

gotoxy(30,4); textcolor(5); cprintf("<<< AUTENTIFICARE UTILIZATOR >>>");


textcolor(8);
gotoxy(20,10); cprintf("Utilizator : "); gets(usuario);
gotoxy(20,11); cprintf("Parola : ");

i = 0;
getch();
în timp ce (i < L && caracter != 13)
{
dacă (caracter != 8)
{
parola[i] = caracter;
i++;
printf("*");
}
altfel
{
strlen(parola);
dacă (longitud_actual > 0)
{
printf("\b \b");
password[longitud_actual - 1] = '\0';
i--;
}
}
caracter = getch();
}
parola[i] = '\0';

dacă (strcmp(usuario, USER) == 0 && strcmp(password, PASS) == 0)


{
1
}
altfel
{
Contrasenia si/sau utilizator incorect!
getch();
}
} în timp ce (ingresa == 0 );

sistem ("cls");
while (op!=8)

42
{

cuadro(22,58,3,5);
cuadro(14,66,6,21);
Limite(22);

gotoxy(30,4); textcolor(11); cprintf("<<< MENIU PRINCIPAL >>>");


textcolor(8);
gotoxy(20,9); cprintf("<<< 1.- INTRODUCE DATELE ÎN REGISTRO >>>");
gotoxy(20,10); cprintf("<<< 2.- CONSULTA UN REGISTRU >>>");
gotoxy(20,11); cprintf("<<< 3.- LISTA >>>");
gotoxy(20,12); cprintf("<<< 4.- MODIFICARE UN REGISTRU >>>");
gotoxy(20,13); cprintf("<<< 5.- ELIMINARE UN REGISTRU >>>");
gotoxy(20,14); cprintf("<<< 6.- Afiș ează total de plată >>>");
gotoxy(20,15); cprintf("<<< 7.- AJUTOR Ș I INSTRUCȚ IUNI ALE PROGRAMULUI >>>");
gotoxy(20,16); cprintf("<<< 8.- IESIRE >>>");
textcolor(11);
gotoxy (62,18);cprintf(" ");
gotoxy(34,18); cprintf("SELECTAȚ I O OPȚ IUNE . . . "); gets(linea); op=atoi(linea);

switch (op)
{
caz 1:
system("cls");
ÎNREGISTRARE_ANGAJAT();
system("cls");
opreș te;

caz 2:
9
while (op1!=4)
{
system("cls");
cuadro(22,58,3,5);
cuadro(14,66,6,18);
Limite(22);
textcolor(11);
gotoxy(30,4); cprintf("<<< MENU DE CONSULTA >>>");
textcolor(8);
gotoxy(20,9); cprintf("<<< 1.- CONSULTA PENTRU NUMĂ DE CĂRTICĂ >>>");
gotoxy(20,10); cprintf("<<< 2.- CONSULTA POR APELLIDO >>>");
gotoxy(20,11); cprintf("<<< 3.- CONSULTA PE DEPARTAMENT >>>");
gotoxy(20,12); cprintf("<<< 4.- ÎNTOARCERE LA MENIU PRINCIPAL >>>");
textcolor(11);
gotoxy(34,14); cprintf("SELECTAȚ I O OPȚ IUNE . . . "); gets(linea);
op1=atoi(linea);

43
comutare (op1)
{
caz 1:
system("cls");
CONSULTĂ_CEDULĂ();
sistem("cls");
ruptura;
caz 2:
system("cls");
CONSULTA_APELLIDO();
system("cls");
ruptura;

cazul 3:
sistem("cls");
CONSULTA_DEPARTAMENTO();
sistem("cls");
ruptura;

cazul 4:
system("cls");
întrerupe;
default
system("cls");
Limite(22);
g(18,8); printf("Opț iune invalidă");
g(18,9); printf("Apasă orice tastă pentru a te întoarce . . .");
getch();
system("cls");
}
}
pauză;

caz 3:
sistem("cls");
LISTA();
sistem("cls");
bracă;
caz 4:
system("cls");
MODIFICARE();
sistem("cls");
ruptura;
cazul 5:
sistem("cls");
ELIMINAR1(n,opț iune);
dacă (toupper(opcion)=='S')
ELIMINAR2(n,optie);

44
sistem("cls");
opreș te;
caz 6:
system("cls");
TOTAL_DE_PLATĂ();
Sistem("cls");
sparge;
caz 7:
system("cls");
ajutor();
system("cls");
ruptura;
caz 8:
system("cls");
Limite(22);
g(18,8); printf("Până data viitoare :)");
g(18,9); printf("Apăsaț i orice tastă pentru a încheia programul . . .");
ruptură;

implicit
sistem("cls");
Limite(22);
g(18,8); printf("Opț iune nevalidă");
g(18,9); printf("Apasă orice tastă pentru a reveni . . .");
getch();
system("cls");
}
}
cvwait();
}

45
9. ECRANE PRINCIPALE ALE PROGRAMULUI

Figura 11. Ecranul de conectare al utilizatorului

Figura 12. Ecranul meniului principal.

46
Figura 13. Ecranul opț iunii listă

10. CONCLUZII

S-a reuș it ca sistemul de gestionare a informaț iilor să aibă un bun

funcț ionarea în entitatea stabilită.


Cu cât informaț ia este mai bine organizată, cu atât mai repede, mai

eficace ș i eficient va fi accesul la aceasta.


Aplicarea acestui sistem ajută la păstrarea unui control asupra
veniturile ș i cheltuielile unui angajat, sunt o mare
avantaj deoarece facilitează stocarea ș i manipularea
de la datele introduse.
S-a facilitat într-un mod foarte viabil controlul detaliat al
informaț ii introduse.

11. RECOMANDĂRI
Trebuie să se facă o analiză corectă a fiecărui component pentru
o bună func ț ionare ș i a profita de toate beneficiile
necesare pe care le aduce programul realizat.

47
În momentul executării programului, trebuie să se facă într-o

modalitatea adecvată de a evita orice tip de eroare.

Trebuie să introduci informa ț iile corecte pentru a avea ni ș te


rezultate bune.

Se sugerează că, dacă nu se reuș eș te să se înț eleagă ceva din program, la

a executa se poate apela la ajutorul pe care îl veț i găsi în


meniu principal.

12. BIBLIOGRAFIE

[Link]
[Link]
c_4493.html
[Link]
DF
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
ivos/Note/Concepte_de_bază.PDF
[Link]

48

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