Baza de Date a unui Catalog Scolar Limbajul de Programare C

Imagine preview
(8/10 din 1 vot)

Acest proiect trateaza Baza de Date a unui Catalog Scolar Limbajul de Programare C.
Mai jos poate fi vizualizat cuprinsul si un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 34 de pagini .

Profesor indrumator / Prezentat Profesorului: Prof. Dr. Ing. MARIAN Gheorghe

Iti recomandam sa te uiti bine pe extras, cuprins si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 5 puncte.

Domeniu: Calculatoare

Cuprins

1. Tema proiectului 3
2. Propunere de rezolvare 3
3. Programul in C 4
4. Functiile folosite 33
4. Bibliografie 34

Extras din document

1. Tema proiectului

Se cere sa se realizeze o baza de date care sa simuleze un catalog scolar. Pentru realizarea bazei de date se vor folosi:

o un fisier text si un fisier binar;

- lista si un arbore de cautare;

- tehnica de programare (backtracking, divide et impera, etc.);

- tehnica de combinatorica iterativa;

- tehnica de sortare;

o informatiile din lista si arbore se vor retine in cel doua fisiere.

2. Propunere de rezolvare

Baza de date va fi construita in jurul celor doua structuri de informatii diferite. Lista simplu inlantuita va contine informatii despre elev iar arborele de cautare va contine mediile elevului. Informatiile din lista vor fi descarcate permanent din fisierul binar delev.dat iar informatiile din arborele de cautare vor fi descarcate din fisierul text melev.txt. Pentru a memora numele materiilor precum si numarul acestora se va folosi un alt fisier text denumit materii.txt.

Pentru a utiliza o tehnica de programare, „divide et impera” in cazul de fata, s-a presupus ca elevii unei clase vor trebui sa fie sortati dupa medie. Tehnica „divide et impera” a fost implementata in cadrul tehnicii de sortare „quick sort”.

Tehnica de combinatorica iterativa a fost folosita pentru a rezolva urmatoarea problema: Se pesupune ca utilizatorii acestui program vor avea nevoie ca in cadrul unui concurs sa aranjeze un numar par de elevi in grupuri de cate doi pentru a concura unul impotriva altuia. In acest scop s-au folosit combinari.

Pe langa tehnica „quick sort”, s-a folosit si tehnica de sortare prin selectie. Aceasta tehnica a fost folosita pentru a aranja elevii dintr-o clasa in ordinea in care ar aparea inrt-un catalog real.

3. Programul in limbajul C

# include <stdio.h>

# include <conio.h>

# include <stdlib.h>

# include <ctype.h>

# include <math.h>

# include <string.h>

typedef struct{

int nc;

char nume[25];

char prenume[25];

char cnp[14];

char clasa[7];

} elev;

typedef struct{

int nc;

float medii[25];

float ms1;

float ms2;

float mg;

} medie;

typedef struct{

int nc;

float mg;

} medgen;

typedef struct tipnod{

elev inf;

struct tipnod *urm;

} nod;

typedef struct tnod{

medie info;

struct tnod *st;

struct tnod *dr;

}mnod;

nod *p,*d,*tt,*d1;

mnod *p1,*t,*q,*r,*rad,*rr;

FILE *f1,*f2,*f3,*f5,*f9;

elev e1,e[50];

medie m1;

medgen m2[50];

int n,del,kk,v[50],v1[50],nn,mm,ig,v2[50],m;

tnod* adaugare(mnod *p1,medie m1,int x1)

{

int jj;

if (p1== NULL)

{

p1=new mnod;

p1->info.nc=m1.nc;

for (jj=0;jj<2*x1;jj++)

p1->info.medii[jj]=m1.medii[jj];

p1->info.ms1=m1.ms1;

p1->info.ms2=m1.ms2;

p1->info.mg=m1.mg;

p1->st=NULL;

p1->dr=NULL;

}

else

if (m1.nc<p1->info.nc)

p1->st=adaugare(p1->st,m1,x1);

else

if (m1.nc>p1->info.nc)

p1->dr=adaugare(p1->dr,m1,x1);

return p1;

}

tnod* creare(mnod *p1,int x1)

{

int ii;

p1=NULL;

f9=fopen("melev.txt","rt");

fscanf(f9,"%d",&m1.nc);

for (ii=0;ii<2*x1;ii++)

fscanf(f9,"%f",&m1.medii[ii]);

fscanf(f9,"%f",&m1.ms1);

fscanf(f9,"%f",&m1.ms2);

fscanf(f9,"%f",&m1.mg);

p1=adaugare(p1,m1,x1);

while(!feof(f9))

{

fscanf(f9,"n");

fscanf(f9,"%d",&m1.nc);

for (ii=0;ii<2*x1;ii++)

fscanf(f9,"%f",&m1.medii[ii]);

fscanf(f9,"%f",&m1.ms1);

fscanf(f9,"%f",&m1.ms2);

fscanf(f9,"%f",&m1.mg);

p1=adaugare(p1,m1,x1);

}

return p1;

}

tnod *adaugare_medii(mnod *p1,int x,int x1)

{

int i;

if (p1==NULL)

Fisiere in arhiva (1):

  • Baza de Date a unui Catalog Scolar Limbajul de Programare C.doc

Alte informatii

Universitatea din Craiova, Facultatea de automatica, calculatoare si electronica