Proiect de Programare C++
Proiect de Programare C++
IDENTIFICARE
Facultate: Informatică ș i Electronică
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
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ă.
3. DESCRIEREA PROBLEMELOR
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
4
5. JUSTIFICAREA SAU PROPUNEREA DE SOLU ȚIE
noi.
5
6. MARCO TEORIC
Borland C++
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.
PC.
Ce este un algoritm?
7
limbaj de programare diferit. Algoritmul este infrastructura de
orice soluț ie, scrisă ulterior în orice limbaj de programare.
TEHNICI DE REPREZENTARE
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
Su sintaxă:
dacă (expresie) {
sentinț ă_1;
sentinț ă_2;
Comutator:
Sintaxa sa este:
switch (variabila) {
caz 1:
9
secvenț ă de sentinț e;
ruptura;
default
pauză;
În timp ce
};
Fă în timp ce
10
Este vorba despre repetarea corpului buclei (grupul de instruc ț iuni),
Sintaxa sa este:
fă{
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++
11
(întreg, real, caracter), sau alte structuri de date. Fiecărui
unul dintre aceste elemente se numeș te câmp.
DEFINIȚII DE BAZĂ
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.
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ă:
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.
Sintaxă:
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ă:
15
Figura 8. Funcț ia fseek
Funcț ieftell:
Sintaxă:
MOD DE GRAFIC
grafice GRAPHICS.H
#include<grafică.h>
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.
• 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
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
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()
{
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
23
while (i<j && sw==0)
{
dacă (isdigit(numero[i])!=0)
{
i++;
}
altfel
{
sw=1;
}
}
return sw;
}
returnează sw;
24
{
dacă (isalpha(linea[i])!=0)
{
i++;
}
altfel
{
1
}
}
altfel
i++;
}
return sw;
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;
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);
}
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(" ");
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");
fă
{
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);
fă
{
gotoxy(13,10);cprintf(" ");
gotoxy(4,10); cprintf("Nume (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);
28
fă
{
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);
fă
{
gotoxy(22,13);cprintf(" ") ");
gotoxy(4,13);cprintf("Cargo (litere ș i spaț ii): "); gets([Link]);
} while (validar_letras([Link])!=0);
fă
{
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);
fă
{
gotoxy(27,15);cprintf(" ") ");
gotoxy(4,15); cprintf("Ore suplimentare (număr): "); gets(linea);
}while (validar_numeros(linea)!=0);
Registro.h_ext=atoi(linie);
fă
{
gotoxy(21,16);cprintf(" "); ");
gotoxy(4,16); cprintf("Salariu (număr ș i puncte): "); gets(linea);
}while(validar_sueldo(linea)!=0);
[Link]=atof(linie);
fă
{
gotoxy(32,17);cprintf(" ") ");
gotoxy(4,17); cprintf("Cargas familiale (numar): "); gets(linea);
}while(validar_numeros(linea)!=0);
atoi(linea);
29
fă
{
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;
}
t(8);
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)
{
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);
fă
{
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);
fă
{
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);
fă
{
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);
fă
{
gotoxy(18,23);cprintf(" ");
gotoxy(4,23); cprintf("Sigur (S/N): "); gets(linea);
} în timp ce (validar_seguro(linea) != 0);
[Link]=linea[0];
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;
}
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];
fă
41
{
sistem("cls");
cuadro(22,58,3,5);
cuadro(14,66,6,21);
Limite(22);
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';
sistem ("cls");
while (op!=8)
42
{
cuadro(22,58,3,5);
cuadro(14,66,6,21);
Limite(22);
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
46
Figura 13. Ecranul opț iunii listă
10. CONCLUZII
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
12. BIBLIOGRAFIE
[Link]
[Link]
c_4493.html
[Link]
DF
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
ivos/Note/Concepte_de_bază.PDF
[Link]
48