Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 09.05.2007 14:40

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
Príspevok Napísal autor témyOffline : 09.05.2007 14:47

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
Bydlisko: Trnava
Príspevok NapísalOffline : 09.05.2007 18:37

: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
Príspevok NapísalOffline : 09.05.2007 21:12

š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
Príspevok Napísal autor témyOffline : 10.05.2007 15:53

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
Príspevok Napísal autor témyOffline : 10.05.2007 16:03

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
Príspevok NapísalOffline : 11.05.2009 8:48

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 );
}
}


Odpovedať na tému [ Príspevkov: 7 ] 


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

1393

27.03.2009 17:42

programator Zobrazenie posledných príspevkov

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

v PHP, ASP

3

414

28.09.2011 22:56

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole v Triede C++

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

1

2001

19.11.2008 14:51

Dark_Raven Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole - problem s pridanim zatvoriek

v JavaScript, VBScript, Ajax

7

618

27.08.2011 15:08

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SUUURNE ! Olympus SP-560 vs. Fujifilm S8000fd

v Ostatné

1

397

17.07.2008 18:05

rojko666 Zobrazenie posledných príspevkov

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

v Notebooky a netbooky

12

521

01.10.2009 18:18

Robrox_flash Zobrazenie posledných príspevkov

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

v Redakčné systémy

3

532

25.07.2007 13:12

Gigabyte-M Zobrazenie posledných príspevkov

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

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

10

8133

09.10.2014 8:24

BX Zobrazenie posledných príspevkov

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

548

05.09.2011 17:32

Veveričiačik Zobrazenie posledných príspevkov

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

473

10.05.2010 17:37

jahoda09 Zobrazenie posledných príspevkov

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

1144

28.03.2009 10:05

neutronmind Zobrazenie posledných príspevkov

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

v HTML, XHTML, XML, CSS

5

1034

02.11.2008 17:00

chrono Zobrazenie posledných príspevkov

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

v HTML, XHTML, XML, CSS

6

531

13.03.2008 15:10

ove Zobrazenie posledných príspevkov

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

367

30.05.2010 13:35

shaggy Zobrazenie posledných príspevkov

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

v Ostatné

4

1179

30.01.2009 15:17

Berny Zobrazenie posledných príspevkov

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

v Siete

1

730

12.10.2012 10:55

majky358 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra