You are on page 1of 7

//Lucrarea 7 functii

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include"header7.h"

Hotel createElement (){

Hotel A;

printf("\nNume: "); scanf("%s", &A.NAME);

printf("Adresa: "); scanf("%s", &A.ADRESS);

printf("Telefonul: "); scanf("%f", &A.NUMBER);

printf("Categoria: "); scanf("%f", &A.RATING);

printf("Numarul de locuri: "); scanf("%f", &A.PLACES);

return A;

void readArray(Hotel* S, int n){

int i;

for(i=0; i<n; i++){

printf("Hotelul %d din %d\n", i+1,n);

printf("\nNume: "); scanf("%s", &S[i].NAME);

printf("Adresa: "); scanf("%s", &S[i].ADRESS);

printf("Telefonul: "); scanf("%f", &S[i].NUMBER);

printf("Categoria: "); scanf("%f", &S[i].RATING);


printf("Numarul de locuri: "); scanf("%f", &S[i].PLACES);

void showArray(Hotel* S,int n) {

int i;

for (i=0; i<n; i++)

printf("Hotel: %s\nAdresa: %s\nTelefonul: %.2f\nCategoria: %.2f\nNumarul de locuri:


%.2f\n\n",

S[i].NAME, S[i].ADRESS, S[i].NUMBER, S[i].RATING, S[i].PLACES);

void shortShow(Hotel* S, int n)//afisarea elementelor pe scurt

int i;

printf("\nElementele tabloului sunt:\n");

for(i = 0; i < n; i++)

printf("%d. %s\n",i+1, S[i].NAME);

int searchElement(Hotel* S, int n, char *name)

int i;

int k;
for(i=0; i<n; i++){

if(strcmp(S[i].NAME, name) == 0)

return 1;

if(strcmp(S[i].NAME, name) != 0)

return -1;

void modifyElement(Hotel* S, int k)

printf("Este modificat hotelul: %s\n", S[k-1].NAME);

printf("\nNume: "); scanf("%s", &S[k-1].NAME);

printf("Adresa: "); scanf("%s", &S[k-1].ADRESS);

printf("Telefonul: "); scanf("%s", &S[k-1].NUMBER);

printf("Categoria: "); scanf("%s", &S[k-1].RATING);

printf("Numarul de locuri: "); scanf("%s", &S[k-1].RATING);

void swapElement(Hotel* S,int k1, int k2){

Hotel A;

A = S[k1-1];

S[k1-1] = S[k2-1];

S[k2-1] = A;
}

void swap(Hotel* S, int k1, int k2){

Hotel A;

A = S[k1];

S[k1] = S[k2];

S[k2] = A;

void sortArray(Hotel* S, int n){

int i, j; // counter

for(i=0; i<n-1; i++){

for(j=i+1; j<n; j++){

if(strcmp(S[i].NAME, S[j].NAME) > 0)

swap(S, i, j);

Hotel* appendElement(Hotel* S, int *pn){

*pn += 1;

S = (Hotel*)realloc(S, *pn * sizeof(Hotel));

S[*pn-1] = createElement();

return S;

}
Hotel* preppendElement(Hotel* S, int *pn){

S = (Hotel*)realloc(S, *pn+1 * sizeof(Hotel));

int i, j;

for(i=*pn; i>1; i--){

for(j=*pn-1; j>0; j--){

swap(S, j, i);

S[0] = createElement();

return S;

Hotel* insertElement(Hotel* S, int *pn, int k){

Hotel *B;

B = (Hotel*) realloc(S, (*pn+1)*sizeof(Hotel));

if(B == NULL){return S;}

int i, j;

for(i = *pn; i> k-1; i--){

for(j = *pn-1; j>= k-1; j--){

swap(S, j, i);

B[k-1] = createElement();

*pn +=1;
return B;

Hotel* deleteElement(Hotel* S, int *pn, int k){

int i, j;

for(i=0; i<*pn-1; i++){

if((i+1) == k)

for(j = i+1; j<*pn; j++){

swap(S, j, i);

*pn-=1;

S = (Hotel*) realloc(S, *pn*sizeof(Hotel));

return S;

int saveFile(Hotel* S, int n, char*fname){

FILE *fp;

int i;

fp = fopen("HOTEL.txt", "w");

if(fp == NULL)

return 0;

fprintf(fp, "%d\n", n);

for(i=0; i<n; i++)


fprintf(fp, "%s\t%s\t%.2f\t%.2f\t%.2f\n", S[i].NAME, S[i].ADRESS, S[i].NUMBER,
S[i].RATING, S[i].PLACES);

fclose(fp);

return 1;

int loadFile(Hotel*S, int n, char*fname){

FILE *fp;

int i, num;

fp = fopen("HOTEL.txt","r");

if(fp == NULL)

return 0;

fscanf(fp, "%i", &num);

fscanf(fp, "%*[^\n]\n");

for(i=0; i<n; i++)

fscanf(fp, "%s%s%f%f%f", &S[i].NAME, &S[i].ADRESS, &S[i].NUMBER,

&S[i].RATING, &S[i].PLACES);

fclose(fp);

return 1;

You might also like