Documente Academic
Documente Profesional
Documente Cultură
la disciplina
Structuri de Date și Algoritmi
Lucrare de laborator nr. 1:
Tema:
Implementarea tipului de date abstract “Tablou de structuri” în limbajul C.
Scopul lucrării
Scopul lucrării este de a familiariza studentul cu mecanismul de creare a tablourilor
statice și dinamice de structuri și operații elementare asupra acestuia, utilizînd pentru
aceasta limbajul C.
Problema
Rezultatul
Rezultaul lucrării se va plasa într-un raport, unde va fi inclusă foaia de titlu și codul
sursă a programului cu o poză de execuție a acestuia.
#includAafde<stdio.h>
#include<string.h>
struct Student
{
int rollNumber;
char studentName[10];
float percentage;
};
int main(void)
{
int n,std,dd;
char search[10];
int counter;
struct Student studentRecord[5];
printf("\t| Welcome to School Student Information | \n\t\t| Student Search Program |");
printf("\nHow many have Student ===>");
scanf("%d", &std);
}
test:
printf("\nWhich you need ?:");
printf("\n1.Student Information List:");
printf("\n2.Search in Database:");
scanf("%d",&dd);
switch(dd) {
case 1:
printf("\nStudent Information List:");
case 2:
printf("Search in Database the Student Name>> ");
scanf("%9s", &search[0]);
for (n=0;n<std;n++)
{
if(strcmp(studentRecord[n].studentName, search) == 0)
{
printf ("\nrollNumber = %d",studentRecord[n].rollNumber);
printf ("\npercentage = %.2f\n",studentRecord[n].percentage);
goto test;
break;
}
return;
}
}
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct hotel{
char denumirea[100];
char adresa[100];
char stele[100];
int costul;
struct hotel* next;
};
typedef struct hotel hotel;
hotel *head;
int create(int n)
{
hotel *c,*p;
int i;
for(i=0;i<n;i++)
{
c=(hotel*)malloc(sizeof(*c));
if (i==0)
{
head=c;
} else {
p->next=c;
}
p=c;
}
c->next=NULL;
return 1;
}
}
}
int main(){
int i=0,l=0,k,n,n1,m=0,id=0,f,rs;
hotel *a,*b,*p,*cautat,*v;
hotel s,y;
char adr[100],adr1[100],adr2[100],num[100],*fname;
int optiune;
optiune=0;
do{
system("CLS");
printf("\tHotel Managemant Program\n");
puts(" >> MENU <<");
puts(" 1. Crearea listei.");
puts(" 2. Introducerea datelor.");
puts(" 3. Afisarea datelor.");
puts(" 4. Cautarea unui element.");
puts(" 5. Sortarea elementelor.");
puts(" 6. Eliberaraea memoriei.");
puts(" 0. Iesire.");
printf("\n Alegeti optiunea: ");
scanf("%d",&optiune);
switch (optiune){
case 1: {
printf(" Dati numarul de hotele: ");
scanf("%d",&n);
n1=create(n);
system("PAUSE");
break;
}
case 2: {
if(!head){
puts(" Memoria nu a fost alocata");
getch();
break;
}
if(!id)
{ read(head,n);
id=1;
}
else
puts(" Datele au fost deja introduse");
system("PAUSE");
break;
}
case 3: {
if(!head){puts(" Memoria nu a fost alocata");}
if(id)
{
puts(" Lista de structuri");
show(head);
}
else
{
printf(" Doriti sa introduceti informatia?(1/0): ");
scanf("%d",&f);
if(f)
{read(head,n);
id=1;
puts(" Lista de structuri");
show(head);
}
}
system("PAUSE");
break;
}
case 4: {
printf(" Introduceti denumirea de cautat: ");
fflush(stdin);
gets(adr);
p=searchs(head,adr);
if(p==0){
puts(" Hotelul nu a fost gasit in baza de date");
puts(" Pentru a continua apasa-ti tasta 'Enter'");
getch();
break;
}
puts(" Hotelul cautat");
printf(" Denumirea: %s\n Adresa: %s\n Stele: %s\n Costul: %d\n",p->denumirea,p-
>adresa,p->stele,p->costul);
system("PAUSE");
break;
}
case 5: {
sorts(head);
puts(" Lista a fost sortata");
printf(" Doriti sa afisati lista sortata(1/0): ");
scanf("%d",&f);
if(f)
{
puts(" Lista dupa sortare");
show(head);
}
puts("\n Pentru a continua apasa-ti tasta 'Enter'");
getch();
break;
system("PAUSE");
break;
}
case 6: {
head=freem(head);
if(head)
puts(" Lista nu a fost eliberata") ;
if(!head)
id=0;
puts(" Memoria a fost eliberata cu succes!!!");
system("PAUSE");
break;
}
case 0:{