Sunteți pe pagina 1din 8

Varianta 2:

Sarcina problemei
1. De alcătuit un articol N înscrieri, care conţine informaţia despre numerele de
telefoane a unui grup de persoane(câmpurile: numele de familie a persoanei, nr. de
telefon).
a)De realizat cautarea unei persoane dupa nr de telefon
b)De aranjat inscrierile in ordine decrescatoare dupa nr de telefon

2. Schema bloc: Aa

START i=0;i<n;
i++
clrscr()
\nCulegere numele
de familie

Culege numarul
benefeciarilor X[i].n
ume
n \nCulege numarul
de telefon

A
x[i].tel
a
1 B

a
n\n\t ********
\n\n\t ********
Rezultatul cautarii
Baza initiala este aux
********\n\n

t---------------\n
\
t---------------------------
x[i].dat=aux
-----------------\

\t| Nume |
\t| Nume |
telefon |\n
Telefon ||\

\t---------------\n
\
t---------------------------
-----------------\n 1
ak=0
i=0;i<n,i+
+;
i=0;i<n;
,
x[i].nume,x[i].tel,x[i]. i++
Strcmp (x[i].nume

\ k++
t---------------------------
-----------------\n

\
t---------------------------
-----------------\n
C
k==0

art=x[i]

n\1 Nu exista
angajat cu asa nr \1\n
x[i]=x[z]
\nDoriti sa repetati
cautarea? (y/n)

x[z]=art

(r=='y')||(r=='Y'
clrscr()

goto rl \n\n\t ********


Baza aranjata este
********\n\n

\
t---------------------------
-----------------\n
i=0;i<n; C
\t| Numele |
i++ |\n

x[i].nume,x[i].tel,x
\nPentru max=(int)x[i [i].
\
continuare culegeti
].tel t---------------------------
orice tasta...\
-----------------\n"
getch() z=i
3

clrscr() d=i;d<n;d
++

\nCautarea nrmax<x[d].dat
de
telefon 4

max=(int)x[d
caut
B].tel

z=d
3
7. i=0;i<n;
3.Textul programului:
8. <stdio.h>
# include i++
# include <conio.h>
4. x[i].nume,x[i].tel
# include <string.h>
5. ,x[i].dat
struct beneficiar{
char nume[30];
6. t--------------------
char tel[20];
---------------------

};
void main (void) { clrscr();
struct beneficiar x[50],art;
int 3.
k,n,z,i,d; float aux,max; char caut[30], r;
\n\nPentru iesire
puts("Culege numarul de angajati:");
culegeti orice

scanf("%d",&n);
2. getch()
for (i=0;i<n;i++){
printf("\nCulege numele de familie a beneficiarului %d:",i);
scanf("%s",x[i].nume);
1. STOP
printf("\nCulege numarul de telefon a beneficiarului %d:",i);
scanf("%s",x[i].tel); }
printf("\n\n\t ******** Baza initiala este ********\n\n");
printf("\t--------------------------------------------\n");
printf("\t| Numele | Telefonul | \n");
printf("\t--------------------------------------------\n");
printf("\n\n\t ******** Rezultatul cautarii ********\n\n");
printf("\t--------------------------------------------\n");
for (i=0;i<n;i++){
printf("\t|%16s|%14s|\n",x[i].nume,x[i].tel); }
printf("\t--------------------------------------------\n");
printf("\nPentru continuare culegeti orice tasta...\n");
getch();
rl:clrscr();
printf("\nCautare beneficiarului dupa nr. de telefon. \nCulegeti nr. cautat:");
scanf("%s",caut);
printf("\n\n\t ******** Rezultatul cautarii ********\n\n");
printf("\t--------------------------------------------\n");
printf("\t| Numele | Telefonul | Datoria |\n");
printf("\t--------------------------------------------\n");
k=0;
for (i=0;i<n;i++){
if (strcmp(x[i].tel,caut)==0) {k++;
printf("\t|%16s|%14s|\n",x[i].nume,x[i].tel);
printf("\t--------------------------------------------\n");}}
if (k==0) printf("\n\1 Nu exista angajat cu asa numar\1\n");
printf("\nDoriti sa repetati cautarea? (y/n)");
r=getch(); if ((r=='y')||(r=='Y')) goto rl;
for (i=0;i<n;i++){
max=(int) x[i].tel; z=i;
for (d=i;d<n;d++){
if ( max<(int) x[d].tel) { max=(int)x[d].tel; z=d;}}
art=x[i]; x[i]=x[z]; x[z]=art;}
clrscr();
printf("\n\n\t ******** Baza aranjata este ********\n\n");
printf("\t--------------------------------------------\n");
printf("\t| Numele | Telefonul | \n");
printf("\t--------------------------------------------\n");
for (i=0;i<n;i++){
printf("\t|%16s|%14s|\n",x[i].nume,x[i].tel);
printf("\t--------------------------------------------\n");}
printf("\n\nPentru iesire culegeti orice tasta...");
getch();}
5.Rezultatele finale:

Fig.1 Tabloul inițial

Fig.2 Rezultatul căutării benificiarului dupa nr de telefon

Fig.3 Rezultatul căutarii bazei


6.Concluzii: In urma efectuarii acestei lucrari de laborator am studiat elaborarea si
lucrul cu structurile C++. Folosind aceste structure putem creea baze de date,si punerea
datelor in tabele.

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