Naloga 1

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

struct trgovina {
char ime[50];
float cena;
};

void vnos(struct trgovina *t)
{
fflush(stdin);
printf("Vnesi ime trgovine: ");
fgets(t->ime,50,stdin);
if (t->ime[strlen(t->ime)-1]=='\n')
t->ime[strlen(t->ime)-1]='\0';
printf("Vnesi ceno kruha: ");
scanf("%f",&t->cena);
}

float povprecje(struct trgovina *t,int n)
{
int i;
float p;
p=sqrt(2); p=0;
for (i=0;i<n;i++)
{
p = p + t[i].cena;
}

return (p/n);
}

void izpis(struct trgovina t, float povp)
{
printf("%s\t%0.2f\t%0.2f\t%0.2f\n",t.ime, povp, t.cena, t.cena-povp);
}

void izpis_vseh(struct trgovina *t, int n)
{
int i;
float povp = povprecje(t,n);
printf("ST\tTRGOVINA\tPOVPRECNA\tCENA\tODSTOPANJE\n");
for (i=0;i<n;i++)
{
printf("%d\t",i+1);
izpis(t[i],povp);
}
}

int main(void)
{
struct trgovina trgovine[100];
int n,i;
printf("Vnesi stevilo trgovin: ");
scanf("%d",&n);
for (i=0;i<n;i++)
vnos(&trgovine[i]);
izpis_vseh(trgovine,n);

return 0;
}


Naloga 2

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

enum operacijski_sistem {CPM=1,DOS,OS2,Linux};

void izpis_os(enum operacijski_sistem os)
{
switch (os)
{
case CPM: printf("CPM"); break;
case DOS: printf("DOS"); break;
case OS2: printf("OS2"); break;
case Linux: printf("Linux"); break;
default: printf("Ne obstaja!");
}
}

void predhodnik(enum operacijski_sistem os)
{
switch (os)
{
case CPM: printf("Ni predhodnika"); break;
case DOS: printf("CPM"); break;
case OS2: printf("DOS"); break;
case Linux: printf("OS2"); break;
default: printf("Ne obstaja!");
}
}

void naslednik(enum operacijski_sistem os)
{
switch (os)
{
case CPM: printf("DOS"); break;
case DOS: printf("OS2"); break;
case OS2: printf("Linux"); break;
case Linux: printf("Ni naslednika"); break;
default: printf("Ne obstaja!");
}
}

void izpis_vseh(void)
{
enum operacijski_sistem os;
for (os=CPM; os<=Linux;os++)
{
izpis_os(os);printf("\t");
}
printf("\n");
}

void izpis_po_stevilki(int a)
{
switch (a)
{
case 1: printf("CPM"); break;
case 2: printf("DOS"); break;
case 3: printf("OS2"); break;
case 4: printf("Linux"); break;
default: printf("Ne obstaja!");
}
}

void vnos(enum operacijski_sistem *os)
{
enum operacijski_sistem t;
printf("Vnesi 1 za CPM\n");
printf("Vnesi 2 za DOS\n");
printf("Vnesi 3 za OS2\n");
printf("Vnesi 4 za Linux\n");
scanf("%d",&t);
*os = t;
}

int main(void)
{
enum operacijski_sistem os;
char p;

do
{
clrscr();
printf("*********MENI*********\n");
printf("1. Vnos\n");
printf("2. Izpis vseh\n");
printf("3. Izpis vnesenega\n");
printf("4. Izpis po stevilki\n");
printf("5. Izpis predhodnika\n");
printf("6. Izpis naslednjika\n");
printf("0. Izhod\n");
printf("\nIzbira> ");
p = getch();
switch (p)
{
case '1': vnos(&os); break;
case '2': izpis_vseh(); break;
case '3': izpis_os(os); break;
case '4': izpis_po_stevilki(os); break;
case '5': predhodnik(os); break;
case '6': naslednik(os); break;
}
printf("Pritisni karkoli za nadaljevanje...");
getch();
} while (p != '0');
return 0;
}


Naloga 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h>

enum os {CPM=1,DOS,OS2,Linux};

struct oseba {
char ime[40];
enum os os_i[4];
};

void prazni(struct oseba *o)
{
strcpy(o->ime,"");
o->os_i[0]=0;
o->os_i[1]=0;
o->os_i[2]=0;
o->os_i[3]=0;
}


void generiraj(struct oseba *o, int n)
{
int i;

for (i=0;i<n;i++)
prazni(&o[i]);

strcpy(o[0].ime,"Alenka");
strcpy(o[1].ime,"Andrej");
strcpy(o[2].ime,"Jure");
strcpy(o[3].ime,"Miha");
strcpy(o[4].ime,"Tina");

for (i=0;i<n;i++)
{
if (rand()%101<=20)
o[i].os_i[0]=CPM;
if (rand()%101<=80)
o[i].os_i[1]=DOS;
if (rand()%101<=33)
o[i].os_i[2]=OS2;
if (rand()%101<=20)
o[i].os_i[3]=Linux;
}

}
void izpis_os(enum os o)
{
switch (o)
{
case CPM: printf("CPM "); break;
case DOS: printf("DOS "); break;
case OS2: printf("OS2 "); break;
case Linux: printf("Linux "); break;
}
}

void izpis(struct oseba o)
{
int i;
printf("Ime: %s\tOS: ",o.ime);
for (i=0;i<4;i++)
{
if (o.os_i[i]!=0)
izpis_os(o.os_i[i]);
}
printf("\n");
}

void menu(void)
{
printf("1. vnos\n");
printf("2. izpis\n");
printf("3. izpis po osebi\n");
printf("4. izpis po OS\n");
printf("0. izhod\n");
printf("\nIzbira>");
}

void uporabnik(struct oseba *o,int n,char *ime)
{
int i,j;
for (i=0;i<n;i++)
{
if (strcmp(o[i].ime,ime)==0)
{
printf("Uporabnik %s uporablja naslednje OS: ",ime);
for (j=0;j<4;j++)
{
if (o[i].os_i[j]!=0)
izpis_os(o[i].os_i[j]);
}
printf("\n");
}
}
}

void po_os(struct oseba *o, int n,enum os osi)
{
int i;
printf("Operacijski sistem ");
izpis_os(osi);
printf("uporabljajo naslednji uporabniki: ");

for (i=0;i<n;i++)
{
if (o[i].os_i[osi-1]!=0)
printf("%s ",o[i].ime);
}

printf("\n");
}

int main(void)
{
struct oseba osebe[5];
int c,i;
char ime[100];

srand(time(NULL));

do
{
menu();
c = getch();

printf("\n");

switch(c)
{
case '1': generiraj(osebe,5); break;
case '2':
for (i=0;i<5;i++)
izpis(osebe[i]);
break;
case '3':
printf("Katera oseba te zanima: ");
scanf("%s",ime);
uporabnik(osebe,5,ime);
break;
case '4':
printf("Kateri OS te zanima (1 CPM, 2 DOS,3 OS2,4 Linux): ");
scanf("%d",&i);
po_os(osebe,5,i);
break;
}
} while (c!='0');

return 0;
}

Utolsó módosítás: 2014. február 26., szerda, 03:47