[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.07
Prihlásený: 23.03.09
Príspevky: 12
Témy: 3 | 3

ahoy

Vedel by prosim vas niekto zmenit tento program, aby na reprezentáciu zoznamu zákazníkov bolo použite DYNAMICKE pole smerníkov ???



#include <stdlib.h>
#include <stdio.h>
#include <string.h>

typedef struct Zakaznik{
char *Meno;
char *Priezvisko;
char *ID;
char *Adresa;
char *Rok;
char *Tel;
char *Tovar;
int Cena;
}ZAKAZNIK;

#define MAX_POLOZIEK 500
#define STRUCT_SIZE sizeof(ZAKAZNIK)

ZAKAZNIK **Polozka;
int Pocet=0;

void UvolniPamat(void)
{ int i;

for(i=0;i<Pocet;i++){
free(Polozka[i]->Meno);
free(Polozka[i]->Priezvisko);
free(Polozka[i]->Adresa);
free(Polozka[i]->ID);
free(Polozka[i]->Tel);
free(Polozka[i]->Rok);
free(Polozka[i]->Tovar);
free(Polozka[i]);
}
free(Polozka);
Pocet = 0;
}

int Menu()
{ char akcia;

printf("\n\nZADANIE Z PROGRAMOVANIA\n\n");
printf(" 1. Pridaj zakaznika\n 2. Odober zakaznika\n 3. Usporiadaj podla ceny\n");
printf(" 4. Usporiadaj podla priezviska\n 5. Vypis zoznamu\n 6. Uloz do suboru\n");
printf(" 7. Nacitaj zo suboru\n 8. Ukonci program\n");
printf("\nZadaj cislo pozadovanej akcie: ");
do{
akcia = getchar();
}while(akcia > '8' || akcia < '1');

return (akcia);
}

char flushkbd(void)
{ char key;
do{}while((key = getchar()) == '\n');
return key;
}

char *fgetstr(FILE *fp)
{ char pom[1000], ch, *ret;
int i=0;

do{
ch = fgetc(fp);
pom[i] = ch;
i++;
}while(ch != '\n');
pom[i-1] = '\0';
ret = (char *)malloc(strlen(pom)+1);
strcpy(ret, pom);
return ret;
}

char *ReadStr()
{ char pom[1000]="", ch, *ret;
int index=1;
pom[0] = flushkbd();
do{
ch = getc(stdin);
if(ch != '\n') pom[index] = ch; else pom[index] = '\0';
index++;
}while(ch != '\n');
ret = (char *)malloc(strlen(pom)+1);
strcpy(ret, pom);
return ret;
}

void Pridaj()
{ char ch;
int len,i;

if(Pocet < MAX_POLOZIEK){
Polozka = (ZAKAZNIK **)realloc(Polozka, (Pocet+1)*8);
Polozka[Pocet] = (ZAKAZNIK *)malloc(STRUCT_SIZE);
printf("\nMeno: ");
Polozka[Pocet]->Meno = ReadStr();
printf("\nPriezvisko: ");
Polozka[Pocet]->Priezvisko = ReadStr();
printf("\nID Cislo: ");
Polozka[Pocet]->ID = ReadStr();
printf("\nAdresa: ");
Polozka[Pocet]->Adresa = ReadStr();
printf("\nTelefon: ");
Polozka[Pocet]->Tel = ReadStr();
printf("Rok posledneho odberu: ");
Polozka[Pocet]->Rok = ReadStr();
printf("\nNazov Tovaru: ");
Polozka[Pocet]->Tovar = ReadStr();
printf("\nCena: ");
scanf("%d", &Polozka[Pocet]->Cena);
Pocet++;
}
}

void Odober(int Index)
{ int i;
if(Index < Pocet){
free(Polozka[Index]->Meno);
free(Polozka[Index]->Priezvisko);
free(Polozka[Index]->Adresa);
free(Polozka[Index]->ID);
free(Polozka[Index]->Tel);
free(Polozka[Index]->Rok);
free(Polozka[Index]->Tovar);
free(Polozka[Index]);
for(i=Index;i<Pocet-1;i++) Polozka[i] = Polozka[i+1];
Pocet--;
Polozka = (ZAKAZNIK **)realloc(Polozka, Pocet*8);
}
}

void Uloz(const char *Nazov)
{ FILE *fp;
int i;

if((fp = fopen(Nazov,"w+")) != NULL){
fprintf(fp,"%d\n", Pocet);
for(i=0;i<Pocet;i++){
fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%d\n", Polozka[i]->Meno, Polozka[i]->Priezvisko, Polozka[i]->Adresa,
Polozka[i]->ID, Polozka[i]->Tel,
Polozka[i]->Rok, Polozka[i]->Tovar,
Polozka[i]->Cena);
}
fclose(fp);
}
}

void Nacitaj(const char *Nazov)
{ FILE *fp;
char *pom;
int i;

if((fp = fopen(Nazov,"r")) != NULL){
Pocet = 0;
fscanf(fp,"%d\n", &Pocet);
Polozka = (ZAKAZNIK **)realloc(Polozka, Pocet*8);
for(i=0;i<Pocet;i++){
Polozka[i] = (ZAKAZNIK *)malloc(STRUCT_SIZE);
Polozka[i]->Meno = fgetstr(fp);
Polozka[i]->Priezvisko = fgetstr(fp);
Polozka[i]->ID = fgetstr(fp);
Polozka[i]->Adresa = fgetstr(fp);
Polozka[i]->Tel = fgetstr(fp);
Polozka[i]->Rok = fgetstr(fp);
Polozka[i]->Tovar = fgetstr(fp);
fscanf(fp,"%d\n", &Polozka[i]->Cena);
}
fclose(fp);
}
}

// podla = 1 (Priezv) 2 = (Cena)
void Tried(int podla)
{ int i,j,vymen=0;
ZAKAZNIK *Pom;

for(i=0;i<Pocet-1;i++){
for(j=0;j<Pocet-1;j++){
if(podla == 1){
if(strcmp(Polozka[j]->Priezvisko, Polozka[j+1]->Priezvisko) > 0) vymen = 1; else vymen = 0;
}else if(podla == 2){
if(Polozka[j]->Cena > Polozka[j+1]->Cena ) vymen = 1; else vymen = 0;
}
if(vymen){
Pom = Polozka[j];
Polozka[j] = Polozka[j+1];
Polozka[j+1] = Pom;
}
}
}
}

void Vypis(void)
{ int i;

for(i=0;i<Pocet;i++){
printf("--------------------------%3d -----------------------------", i+1);
printf("\nMeno zakaznika: %s %s", Polozka[i]->Meno, Polozka[i]->Priezvisko);
printf("\nIdentifikacne cislo: %s", Polozka[i]->ID);
printf("\nAdresa zakaznika: %s", Polozka[i]->Adresa);
printf("\nTelefon zakaznika: %s", Polozka[i]->Tel);
printf("\nRok posledneho odberu: %s", Polozka[i]->Rok);
printf("\nNazov tovaru: %s", Polozka[i]->Tovar);
printf("\nCena tovaru: %d\n", Polozka[i]->Cena);
if((i+1)%3 == 0){
printf("\n");
getchar();
}
}
printf("-----------------------------------------------------------\n");
printf("\n");
getchar();
}

int main(int argc, char *argv[])
{ char Volba, fname[500];
int idx;

while((Volba = Menu()) != '8'){
switch(Volba){
case '1': Pridaj();
break;
case '2': printf("\nZadaj index zakaznika: ");
scanf("%d", &idx);
Odober(idx-1);
break;
case '3': Tried(2);
break;
case '4': Tried(1);
break;
case '5': Vypis();
break;
case '6': printf("\nZadaj nazov suboru do ktoreho sa ma ulozt obsah zoznamu: ");
scanf("%s", &fname);
Uloz(fname);
break;
case '7': printf("\nZadaj nazov suboru z ktoreho sa ma nacitat obsah zoznamu: ");
scanf("%s", &fname);
Nacitaj(fname);
break;
}
}
UvolniPamat();
printf("\n");
return EXIT_SUCCESS;
}






DAKUJEM


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.07
Prihlásený: 23.03.09
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 09.05.2007 14:47 | DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!

A ak treba,tu je cele znenie ZADANIA:
Dik


Zostavte program na evidenciu zákazníkov internetového obchodu. O každom zákazníkovi sa evidujú tieto údaje: priezvisko, meno (prípadne meno firmy), identifikačné číslo zákazníka, rok poslednej objednávky, dodacia adresa (ulica_číslo, mesto_PSČ, krajina) a telefónne číslo, názov tovaru, cena. Program nech umožňuje pridanie zákazníka, odobratie zákazníka, usporiadanie podľa priezviska (firmy), ceny objednávky, výpis zoznamu zákazníkov. Položky zoznamu nech sú v tvare:

Hrasko Janko, F253, 1994, Jahodna_25, Zibawe_05802, Kongo, 052698741, Mys, 400

Na reprezentáciu zoznamu zákazníkov použite dynamické pole smerníkov a nech jednotlivé informačné položky záznamu majú dynamickú veľkosť. Záznamy reprezentujte štruktúrami a zoznam nech je uložený v súbore. Použite vlastné funkcie s parametrami


Offline

Užívateľ
Užívateľ
DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!

Registrovaný: 09.03.07
Prihlásený: 28.07.09
Príspevky: 39
Témy: 7 | 7
Bydlisko: Trnava

:DD a hodiny s vodotryskom by si nechcel ? toto forum sa pomaly stava uloziskom uloh pre nepoctivych a lenivych studentov. co to len z tych skol vychadza.....
.
cakam adekvatnu vlnu kritiky, co som si to dovolil napisat...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9 | 9

šak to máš robené cez dynamické pole


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.07
Prihlásený: 23.03.09
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 10.05.2007 15:53 | DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!

audiotrack píše:
šak to máš robené cez dynamické pole

3 kraaaaaaaaat DAKUJEM :water: mas u mna pepsi colu :) :) :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.07
Prihlásený: 23.03.09
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 10.05.2007 16:03 | DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!

stewe píše:
:DD a hodiny s vodotryskom by si nechcel ? toto forum sa pomaly stava uloziskom uloh pre nepoctivych a lenivych studentov. co to len z tych skol vychadza.....
.
cakam adekvatnu vlnu kritiky, co som si to dovolil napisat...

sak ty si nebol student...
a chcel som to LEN checknut,poradit a nie vypracovat!!!

a naco je toto forum???

Ved kto nechce pomoct, tak nemusi o to ani zakopnut!!!!


hodiny s vodotryskom by sa zisli :P
:) :) :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.01.09
Prihlásený: 11.05.09
Príspevky: 1
Témy: 0 | 0

potrebujem tu dodat nieco a to



Výpis zoznamu študentov zaradených na predmet.
Pridanie študenta na predmet.
Vyradenie študenta z predmetu.

Neviem ako mám spojit to s tým predmetom ku studentovi
Neporadili by ste mi.







Kód:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define MAX_LENGTH 30
#define COUNT_ITEM 20
struct PARAM
{
char *pchMeno;
char *pchPriezvisko;
char *pchRok;
char *pchstudprogram;
char *pchidentcislo;
};
struct PARAM *g_Param[COUNT_ITEM];
FILE *g_file;
void Vypis( int nNumRec )
{
int i;
for( i = 0; i < nNumRec; i++ )
{
printf( "[%d] %s %s %s %s %s %sn", i,
g_Param[i]->pchMeno,
g_Param[i]->pchPriezvisko,
g_Param[i]->pchRok,
g_Param[i]->pchstudprogram,
g_Param[i]->pchidentcislo);
}
}
void FreeMem( int nDelRec )
{
free( g_Param[nDelRec]->pchMeno );
free( g_Param[nDelRec]->pchPriezvisko );
free( g_Param[nDelRec]->pchRok );
free( g_Param[nDelRec]->pchstudprogram );
free( g_Param[nDelRec]->pchidentcislo );
free( g_Param[nDelRec]);
}
void Pridaj( int *pnNumRec )
{
if( *pnNumRec < COUNT_ITEM )
{
g_Param[*pnNumRec] = (struct PARAM *) malloc(sizeof(struct PARAM));
g_Param[*pnNumRec]->pchMeno = (char*) malloc(MAX_LENGTH);
printf( "Meno : ");
scanf( "%s", g_Param[*pnNumRec]->pchMeno );
g_Param[*pnNumRec]->pchPriezvisko = (char*) malloc(MAX_LENGTH);
printf( "Priezvisko : ");
scanf( "%s", g_Param[*pnNumRec]->pchPriezvisko );
g_Param[*pnNumRec]->pchRok = (char*) malloc(MAX_LENGTH);
printf( "Vek : ");
scanf( "%s", g_Param[*pnNumRec]->pchRok );
g_Param[*pnNumRec]->pchstudprogram = (char*) malloc(MAX_LENGTH);
printf( "Studijny program : ");
scanf( "%s", g_Param[*pnNumRec]->pchstudprogram );
g_Param[*pnNumRec]->pchidentcislo = (char*) malloc(MAX_LENGTH);
printf( "Identifikacne cislo : ");
scanf( "%s", g_Param[*pnNumRec]->pchidentcislo );
(*pnNumRec)++;
}
else
{
printf( "Zoznam je plny" );
}
}
void Zmaz(int *pnNumRec)
{
int i;
int nRecDel;
Vypis( *pnNumRec );
if( *pnNumRec != 0 )
{
printf( "Zadaj cislo zaznamu ktory chces zmazat : " );
scanf( "%d", &nRecDel );
for( i = nRecDel; i < ((*pnNumRec)-1); i++ )
{
strcpy( g_Param[i]->pchMeno,g_Param[i+1]->pchMeno);
strcpy( g_Param[i]->pchPriezvisko,g_Param[i+1]->pchPriezvisko);
strcpy( g_Param[i]->pchRok,g_Param[i+1]->pchRok);
strcpy( g_Param[i]->pchstudprogram,g_Param[i+1]->pchstudprogram);
strcpy( g_Param[i]->pchidentcislo,g_Param[i+1]->pchidentcislo);

}
if ((*pnNumRec)-1==0)
{
FreeMem( 0 );
}
else
{
FreeMem( (*pnNumRec)-1 );
}
(*pnNumRec)--;
}
else
{
printf( "!!! Prazdny zoznam !!!n" );
}
}
void Zotried (int nNumRec)
{
int i;
int j;
struct PARAM *helpParam;
for( i = 0; i < nNumRec-1; i++)
{
for( j = i+1; j < nNumRec; j++ )
{
if( strcmp( g_Param[j]->pchidentcislo, g_Param[i]->pchidentcislo ) < 0 )
{
helpParam = g_Param[j];
g_Param[j] = g_Param[i];
g_Param[i] = helpParam;
}
}
}
}
void Zotried_Priezvisko(int nNumRec)
{
int i;
int j;
struct PARAM *helpParam;
for( i = 0; i < nNumRec-1; i++)
{
for( j = i+1; j < nNumRec; j++ )
{
if( strcmp( g_Param[j]->pchPriezvisko, g_Param[i]->pchPriezvisko ) < 0 )
{
helpParam = g_Param[j];
g_Param[j] = g_Param[i];
g_Param[i] = helpParam;
}
}
}
}
void Nacitaj( int *pnNumRec )
{
int nRet;
int i;
for( i = 0; i < *pnNumRec; i++ )
{
FreeMem( i );
}
*pnNumRec = 0;
g_file = fopen( "zoznam.txt", "r" );
do
{
if( *pnNumRec < COUNT_ITEM )
{
g_Param[*pnNumRec] = (struct PARAM *) malloc(sizeof(struct PARAM));
g_Param[*pnNumRec]->pchMeno = (char*) malloc(MAX_LENGTH);
g_Param[*pnNumRec]->pchPriezvisko = (char*) malloc(MAX_LENGTH);
g_Param[*pnNumRec]->pchRok = (char*) malloc(MAX_LENGTH);
g_Param[*pnNumRec]->pchstudprogram = (char*) malloc(MAX_LENGTH);
g_Param[*pnNumRec]->pchidentcislo = (char*) malloc(MAX_LENGTH);
nRet = fscanf( g_file, "%st%st%st%st%st%sn",
g_Param[*pnNumRec]->pchMeno,
g_Param[*pnNumRec]->pchPriezvisko,
g_Param[*pnNumRec]->pchRok,
g_Param[*pnNumRec]->pchstudprogram,
g_Param[*pnNumRec]->pchidentcislo);
if( nRet != EOF )
{
(*pnNumRec)++;
}
else
{
FreeMem( *pnNumRec );
// (*pnNumRec)--;
}
}
else
{
printf( "Zoznam je plny" );
break;
}
}while( nRet != EOF );
fclose( g_file );
}
void Uloz( int nNumRec )
{
int i;
g_file = fopen( "zoznam.txt", "w" );
if( g_file == NULL )
{
printf("nemozem zapisat");
}
else
{
for( i = 0; i < nNumRec; i++ )
{
fprintf( g_file, "%st%st%st%st%st%sn",
g_Param[i]->pchMeno,
g_Param[i]->pchPriezvisko,
g_Param[i]->pchRok,
g_Param[i]->pchstudprogram,
g_Param[i]->pchidentcislo);
}
fclose( g_file );
}
}
 main()
{
char chChoice;
int nNumRec;
int i;
nNumRec = 0;
do
{
printf( "n**************** MENU ****************n" );
printf( "[1] Pridaj zaznamn[2] Zmaz zaznamn[3] Zotried identifikacne cislon[4] Vypis zoznamn" );
printf( "[5] Uloz do suborun[6] Nacitaj zo suborun[7] Zotried priezvisko n[9] Ukonci programn" );
printf( "nZadaj volbu : " );
scanf( "%s", &chChoice );
printf( "n" );
switch( chChoice )
{
case '1': Pridaj( &nNumRec );
break;
case '2': Zmaz( &nNumRec );
break;
case '3': Zotried ( nNumRec);
break;
case '4': Vypis( nNumRec );
break;
case '5': Uloz( nNumRec );
break;
case '6': Nacitaj( &nNumRec );
break;
case '7': Zotried_Priezvisko( nNumRec);
break;
}
}while( chChoice != '9' );
for( i = 0; i < nNumRec; i++ )
{
FreeMem( i );
}
}


 [ Príspevkov: 7 ] 


DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Staticke pole smernikov a jeho polozky - alokacia pamate

v Assembler, C, C++, Pascal, Java

6

1455

27.03.2009 17:42

programator

V tomto fóre nie sú ďalšie neprečítané témy.

Dynamicke pole..

v PHP, ASP

3

452

28.09.2011 22:56

Ando

V tomto fóre nie sú ďalšie neprečítané témy.

Dynamicke pole v Triede C++

v Assembler, C, C++, Pascal, Java

1

2045

19.11.2008 14:51

Dark_Raven

V tomto fóre nie sú ďalšie neprečítané témy.

Dynamicke pole - problem s pridanim zatvoriek

v JavaScript, VBScript, Ajax

7

653

27.08.2011 15:08

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

SUUURNE ! Olympus SP-560 vs. Fujifilm S8000fd

v Ostatné

1

432

17.07.2008 18:05

rojko666

V tomto fóre nie sú ďalšie neprečítané témy.

Vaio Rychlo SUUURNE

v Notebooky a netbooky

12

566

01.10.2009 18:18

Robrox_flash

V tomto fóre nie sú ďalšie neprečítané témy.

phpbb aktivacia SUUURNE

v Redakčné systémy

3

566

25.07.2007 13:12

Gigabyte-M

V tomto fóre nie sú ďalšie neprečítané témy.

Pochopenie smernikov v jazyku C

v Assembler, C, C++, Pascal, Java

10

8280

09.10.2014 8:24

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Zdroj súúúrne už len3 hodiny

v PC skrinky, zdroje a všetky druhy chladenia

11

586

05.09.2011 17:32

Veveričiačik

V tomto fóre nie sú ďalšie neprečítané témy.

Problem s hladanima mazanim u smernikov - Pascal

v Assembler, C, C++, Pascal, Java

6

505

10.05.2010 17:37

jahoda09

V tomto fóre nie sú ďalšie neprečítané témy.

Suma členov matice pomocou smerníkov ( v C-ečku )

v Assembler, C, C++, Pascal, Java

1

1196

28.03.2009 10:05

neutronmind

V tomto fóre nie sú ďalšie neprečítané témy.

statické pozadie

v HTML, XHTML, XML, CSS

5

1072

02.11.2008 17:00

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Staticke okno

v HTML, XHTML, XML, CSS

6

586

13.03.2008 15:10

ove

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Statické stránky

v HTML, XHTML, XML, CSS

1

402

30.05.2010 13:35

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Statické stránky

v Ostatné

4

1220

30.01.2009 15:17

Berny

V tomto fóre nie sú ďalšie neprečítané témy.

Staticke smerovanie

v Siete

1

783

12.10.2012 10:55

majky358



© 2005 - 2024 PCforum, edited by JanoF