Algoritmi - Gesiune Hotel

Proiect
9/10 (1 vot)
Conține 38 fișiere: doc, gif, htm, cpp, h, exe, txt, vcproj, user, old, ncb, xml, suo, sln, obj
Pagini : 23 în total
Cuvinte : 4398
Mărime: 541.68KB (arhivat)
Puncte necesare: 11
Profesor îndrumător / Prezentat Profesorului: L.Batagan
program in C,lucru cu fisiere relative,prezentat la cursul de Algoritmi an II, csie

Extras din proiect

In acest proiect am lucrat cu fisiere organizate relative .Programul ajuta la gestionarea clientilor unui hotel. Am lucrat cu 2 fisiere organizate relative astfel: primul(fisierul principal) contine date despre clientii hotelului, avand urmatoarea structura:

typedef struct

{int is;

char nume[20];

char prenume[20];

char oras[20];

int varsta;

int nr_nopti;

int nr_camera;

int serv_aux[6];

} clienti;

Cel ce-al doilea fisier contine date despre camerele hotelului si are urmatoarea structura:

typedef struct

{

int is1;

int nr_camera;

char tip[20];

int pret;

char disp[2];

} camera;

unde campul “nr_camera” reprezinta numarul relativ pentru ambele fisiere, campurile “is” si “is1” reprezinta indicatorii de stare,care arata daca exista sau nu inregistrare pe pozitia respectiva.

Pe baza acestui program se poate adauga,sterge,cauta clienti cazati in hotel, respective de a modifica date despre acesti clienti.De fiecare data cand se va adauga(caza), respectiv cand se va sterge(decaza) un client, se va produce modificari si in fisierul cu camere adica se va ocupa, respectiv se va elibera o camera. Pentru fiecare operatie am folosit cate un subprogram.

Programul principal presupune apelarea unui subprogram, care consta intr-un meniu cu mai multe optiuni din care utilizatorul poate alege :

void meniu()

{

int n,cond=0;

system("cls");

do

{

printf("n Clienti Hotel");

printf("n 1-Creare fisiere");

printf("n 2-Adauga client");

printf("n 3-Modifica date client");

printf("n 4-Cauta client");

printf("n 5-Sterge client");

printf("n 6-Calcul total plata");

printf("n 7-Afisare clienti");

printf("n 8-Afisare camere libere");

printf("n 9-Afisare camere");

printf("n 10-Cheltuieli cu serviciile auxiliare");

printf("n 0-iesire");

printf("n Optiunea dumneavoastra: ");

scanf("%d",&cond);

switch(cond)

{

case 1 :creare();break;

case 2 :adaugare();break;

case 3 :meniu_sec();break;

case 4 :cautare();break;

case 5 :stergere();break;

case 6 :plata();break;

case 7 :afisare();break;

case 8 :n=afis_camere_libere();break;

case 9 :afisare1();break;

case 10 :cheltuieli();break;

}}

while (cond!=0);

}

Fiecare optiune presupune apelarea unui subprogram.La alegerea celei de-a doua optiuni ‘Modifica date client’ se va apela un subprogram ce contine 2 optiuni de modificare : prelungirea sejurului, respectiv schimbarea camerei.

void meniu_sec()

{

int n,cond=0;

system("cls");

do

{

printf("n Modifica date client n");

printf("n 1-Prelungire sejur");

printf("n 2-Schimbare camera");

printf("n 0-Intoarcere la meniul principal");

printf("n Optiunea dumneavoastra: ");

scanf("%d",&cond);

switch(cond)

{

case 1 :prelungire_sejur();break;

case 2 :schimb_cam();break;

}}

while (cond!=0);

}

In continuare voi descrie fiecare optiune din cele 2 meniuri :

• Optiunea ’Creare fisiere’

Se va apela un subprogram care face apel la subprogramul de creare a fisierului cu camere ‘camere.dat’, si care contine crearea fisierului ‘clienti.dat’.Fisierele se deschid in modul ‘wb’,care permite crearea unui nou fisier. Se declara variabilele necesare si se citeste intr-o variabila numarul relativ cat timp nu introducem de la tastatura sfarsitul standard ‘CTRL-Z’. Daca acesta este mai mare decat numarul de articole din fisier,ne pozitionam la sfarsitul fisierului cu fseek(f,0,2),unde 2-reprezinta sfarsitul fisierului, iar 0-reprezinta cu cate articole ne pozitionam fata de sfarsitul fisierului, si se vor scrie articolele cu indicatorul de stare 0 pana la pozitia pe care vrem sa adaugam noua valoare. ). In cazul in care numarul citit este mai mic decat numarul de articole din fisier, ne pozitionam in fisier dupa primele n-1 articole, verificam daca indicatorul de stare este 0, adica nu exista articol pe pozitia respectiva, se citeste si se scrie articolul pe pozitia n. Daca avem articol pe pozitia respectiva se va da un mesaj corespunzator.Pentru fiecare valoare scrisa in fisier se face validare. Validarea se face prin apelarea unor functii astfel :

- pentru validarea numelui,prenumelui si a orasului se apeleaza functia ‘validare_nume’ cu un parametru de intrare-iesire.Prin aceasta se verifica ca sirul de caractere trimis ca parametru sa nu contina altceva decat litere.In cazul in care acesta nu e valid, se va citi un nou sir pana cand se va introduce o valoare corecta.

Preview document

Algoritmi - Gesiune Hotel - Pagina 1
Algoritmi - Gesiune Hotel - Pagina 2
Algoritmi - Gesiune Hotel - Pagina 3
Algoritmi - Gesiune Hotel - Pagina 4
Algoritmi - Gesiune Hotel - Pagina 5
Algoritmi - Gesiune Hotel - Pagina 6
Algoritmi - Gesiune Hotel - Pagina 7
Algoritmi - Gesiune Hotel - Pagina 8
Algoritmi - Gesiune Hotel - Pagina 9
Algoritmi - Gesiune Hotel - Pagina 10
Algoritmi - Gesiune Hotel - Pagina 11
Algoritmi - Gesiune Hotel - Pagina 12
Algoritmi - Gesiune Hotel - Pagina 13
Algoritmi - Gesiune Hotel - Pagina 14
Algoritmi - Gesiune Hotel - Pagina 15
Algoritmi - Gesiune Hotel - Pagina 16
Algoritmi - Gesiune Hotel - Pagina 17
Algoritmi - Gesiune Hotel - Pagina 18
Algoritmi - Gesiune Hotel - Pagina 19
Algoritmi - Gesiune Hotel - Pagina 20
Algoritmi - Gesiune Hotel - Pagina 21
Algoritmi - Gesiune Hotel - Pagina 22
Algoritmi - Gesiune Hotel - Pagina 23

Conținut arhivă zip

  • _UpgradeReport_Files
    • UpgradeReport.css
    • UpgradeReport.xslt
    • UpgradeReport_Minus.gif
    • UpgradeReport_Plus.gif
  • debug
    • proiect_final.exe
    • proiect_final.ilk
    • proiect_final.pdb
  • proiect_final
    • Debug
      • BuildLog.htm
      • mt.dep
      • proiect_final.exe.embed.manifest
      • proiect_final.exe.embed.manifest.res
      • proiect_final.exe.intermediate.manifest
      • proiect_final.obj
      • stdafx.obj
      • vc80.idb
      • vc80.pdb
      • vc90.idb
      • vc90.pdb
    • camere.dat
    • clienti.dat
    • list.txt
    • lista.txt
    • proiect_final.cpp
    • proiect_final.vcproj
    • proiect_final.vcproj.8.00.old
    • proiect_final.vcproj.ADMIN.Alyna.user
    • proiect_final.vcproj.ALINA.Radu Alina.user
    • ReadMe.txt
    • secv.dat
    • stdafx.cpp
    • stdafx.h
  • Algoritmi - Gesiune Hotel.doc
  • proiect_final.ncb
  • proiect_final.sln
  • proiect_final.suo
  • proiect_final.sln.old
  • proiect_final.suo.old
  • UpgradeLog.XML

Alții au mai descărcat și

Grilă sisteme informaționale de gestiune - Access

Adăugarea de câmpuri la o tabelă se face în modul de vizualizare:...... Previzualizare inaintea imprimarii Aplicarea unei restrictii de...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Baze de Date

3.Introducere in bd si sgbd-uri Definitie: Numim baza de date o colectie partajata de date aflata in interdependenta logica impreuna cu o...

Ai nevoie de altceva?