Rešitev LAV 31
Teljesítési követelmények
Naloga 1
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <ctype.h>
void meni(void)
{
gotoxy(5,20);
printf("P - pavza\tS - stop\tI - Izklop sekund");
}
int main(void)
{
struct dostime_t t,t2;
char c;
int i,s;
long cas1,cas2,cas,cas_a,tmp;
do
{
clrscr();
gotoxy(30,5);
printf("Pritisni S za zacetek merjenja...");
c = toupper(getch());
} while (c!='S');
_dos_gettime(&t);
cas_a=0;
i=0;
s=1;
do
{
c = ' ';
clrscr();
_dos_gettime(&t2);
meni();
gotoxy(20,4);
printf("Zacetek merjenja cas je %02d:%02d:%02d", t.hour, t.minute, t.second);
if (i==1)
printf(".%02d",t.hsecond);
gotoxy(20,5);
printf("Trenutni cas je %02d:%02d:%02d", t2.hour, t2.minute, t2.second);
if (i==1)
printf(".%02d",t2.hsecond);
if (s)
{
cas1 = t.hsecond+t.second*100+t.minute*6000+t.hour*360000;
cas2 = t2.hsecond+t2.second*100+t2.minute*6000+t2.hour*360000;
cas = cas2 - cas1;
cas+=cas_a;
gotoxy(20,6);
printf("Cas %02ld:%02ld:%02ld", cas/360000%24, cas/6000%60, cas/100%60);
if (i==1)
printf(".%02ld",cas%100);
}
else
{
gotoxy(20,6);printf("PAVZA");
}
delay(66);
if (kbhit())
c = toupper(getch());
switch (c)
{
case 'I': i=!i;break;
case 'P': s=!s;
if (s)
{
cas_a=cas;
_dos_gettime(&t);
}
break;
}
} while (c!='S');
return 0;
}
Naloga 2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct dijak {
char ime[10];
char priimek[20];
int uspeh_3,uspeh_4,tocke_matura;
};
void vnos(struct dijak *d)
{
int a;
printf("Vnesi ime dijaka: ");
scanf("%s",d->ime);
printf("Vnesi priimek dijaka: ");
scanf("%s",d->priimek);
do
{
printf("Vnesi uspeh tretjega letnika: ");
scanf("%d",&a);
} while ((a <= 1) || (a>5));
d->uspeh_3 = a;
do
{
printf("Vnesi uspeh cetrtega letnika: ");
scanf("%d",&a);
} while ((a <= 1) || (a>5));
d->uspeh_4 = a;
do
{
printf("Vnesi uspeh na maturi: ");
scanf("%d",&a);
} while ((a < 10) || (a>30));
d->tocke_matura = a;
}
int tocke(struct dijak t)
{
return ((t.uspeh_3+t.uspeh_4)*0.4)+(t.tocke_matura*0.6);
}
void izpis(struct dijak d)
{
printf("%s %s %d %d %d %d\n",d.ime,d.priimek,d.uspeh_3,
d.uspeh_4,d.tocke_matura,tocke(d));
}
void uredi_tocke(struct dijak *d,int n)
{
int i,j;
struct dijak pom;
for (i=0;i<n-1;i++)
for (j=n-1;j>0;j--)
{
if (tocke(d[j-1])>tocke(d[j]))
{
pom=d[j-1];
d[j-1]=d[j];
d[j]=pom;
}
}
}
void meni(void)
{
printf("1. Vnos podatkov\n");
printf("2. Uredi dijake\n");
printf("3. Izpis dijakov\n");
printf("4. Izpis dijakov, katerih vsota tock je vecja od povprecja\n");
printf("5. Najuspesnejsi dijaki\n");
printf("ESC Izhod\n");
printf("\nIzbira> ");
}
void izpis_najuspesnejsih(struct dijak *dijaki,int n)
{
int i;
int max;
max = tocke(dijaki[0]);
for (i=1;i<n;i++)
{
if (tocke(dijaki[i])>max)
max = tocke(dijaki[i]);
}
for (i=0;i<n;i++)
{
if (tocke(dijaki[i]) == max)
izpis(dijaki[i]);
}
}
void izpis_nadpovp(struct dijak *dijaki, int n)
{
int i;
int povp=0;
for (i=0;i<n;i++)
povp+=tocke(dijaki[i]);
povp /= n;
printf("\nPovprecje je %d\n",povp);
for (i=0;i<n;i++)
{
if (tocke(dijaki[i])>povp)
izpis(dijaki[i]);
}
}
int main(void)
{
struct dijak dijaki[8];
int i;
int n=3;
char c;
do
{
meni();
c = getch();
if (c==0)
c = getch();
printf("\n");
switch(c)
{
case '1':
for (i=0;i<n;i++)
vnos(&dijaki[i]);
break;
case '2':
uredi_tocke(dijaki,n);
break;
case '3':
for (i=0;i<n;i++)
izpis(dijaki[i]);
break;
case '4':
izpis_nadpovp(dijaki,n);
break;
case '5':
izpis_najuspesnejsih(dijaki,n);
break;
}
} while (c != 27);
return 0;
}
Naloga 3
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
enum karte {DVOJKA,TROJKA,STIRICA,PETICA, SESTICA, SEDMICA, OSMICA, DEVETKA, DESETKA, FANT, DAMA, KRALJ, AS};
enum barve {PIK, KRIZ, KARO, SRCE};
struct igra {
enum karte k;
enum barve b;
};
void meni(void)
{
printf("1. Generiranje karte in izbira nakljucne\n");
printf("2. Izpis karte\n");
printf("0. Izhod\n");
printf("\nIzbira> ");
}
void generiraj(struct igra a[13][4],struct igra *iz)
{
enum karte k;
enum barve b;
for (k=DVOJKA;k<=AS;k++)
for (b=PIK;b<=SRCE;b++)
{
a[k][b].k=k;
a[k][b].b=b;
}
k=rand()%13;
b=rand()%4;
*iz=a[k][b];
}
void izpis_karte(enum karte k)
{
switch (k)
{
case DVOJKA: printf("2"); break;
case TROJKA: printf("3"); break;
case STIRICA: printf("4"); break;
case PETICA: printf("5"); break;
case SESTICA: printf("6"); break;
case SEDMICA: printf("7"); break;
case OSMICA: printf("8"); break;
case DEVETKA: printf("9"); break;
case DESETKA: printf("10"); break;
case FANT: printf("FANT"); break;
case DAMA: printf("DAMA"); break;
case KRALJ: printf("KRALJ"); break;
case AS: printf("AS"); break;
}
}
void izpis_barve(enum barva b)
{
switch(b)
{
case PIK: printf("PIK"); break;
case KRIZ: printf("KRIZ"); break;
case KARO: printf("KARO"); break;
case SRCE: printf("SRCE"); break;
}
}
void izpis(struct igra i)
{
printf("Izbral si ");
izpis_karte(i.k);
printf(" ");
izpis_barve(i.b);
printf("\n");
}
int main(void)
{
struct igra n[13][4];
struct igra i;
char c;
srand(time(NULL));
do
{
meni();
c=getch();
printf("\n");
switch(c)
{
case '1': generiraj(n,&i); break;
case '2': izpis(i); break;
}
} while (c!='0');
}
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <ctype.h>
void meni(void)
{
gotoxy(5,20);
printf("P - pavza\tS - stop\tI - Izklop sekund");
}
int main(void)
{
struct dostime_t t,t2;
char c;
int i,s;
long cas1,cas2,cas,cas_a,tmp;
do
{
clrscr();
gotoxy(30,5);
printf("Pritisni S za zacetek merjenja...");
c = toupper(getch());
} while (c!='S');
_dos_gettime(&t);
cas_a=0;
i=0;
s=1;
do
{
c = ' ';
clrscr();
_dos_gettime(&t2);
meni();
gotoxy(20,4);
printf("Zacetek merjenja cas je %02d:%02d:%02d", t.hour, t.minute, t.second);
if (i==1)
printf(".%02d",t.hsecond);
gotoxy(20,5);
printf("Trenutni cas je %02d:%02d:%02d", t2.hour, t2.minute, t2.second);
if (i==1)
printf(".%02d",t2.hsecond);
if (s)
{
cas1 = t.hsecond+t.second*100+t.minute*6000+t.hour*360000;
cas2 = t2.hsecond+t2.second*100+t2.minute*6000+t2.hour*360000;
cas = cas2 - cas1;
cas+=cas_a;
gotoxy(20,6);
printf("Cas %02ld:%02ld:%02ld", cas/360000%24, cas/6000%60, cas/100%60);
if (i==1)
printf(".%02ld",cas%100);
}
else
{
gotoxy(20,6);printf("PAVZA");
}
delay(66);
if (kbhit())
c = toupper(getch());
switch (c)
{
case 'I': i=!i;break;
case 'P': s=!s;
if (s)
{
cas_a=cas;
_dos_gettime(&t);
}
break;
}
} while (c!='S');
return 0;
}
Naloga 2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct dijak {
char ime[10];
char priimek[20];
int uspeh_3,uspeh_4,tocke_matura;
};
void vnos(struct dijak *d)
{
int a;
printf("Vnesi ime dijaka: ");
scanf("%s",d->ime);
printf("Vnesi priimek dijaka: ");
scanf("%s",d->priimek);
do
{
printf("Vnesi uspeh tretjega letnika: ");
scanf("%d",&a);
} while ((a <= 1) || (a>5));
d->uspeh_3 = a;
do
{
printf("Vnesi uspeh cetrtega letnika: ");
scanf("%d",&a);
} while ((a <= 1) || (a>5));
d->uspeh_4 = a;
do
{
printf("Vnesi uspeh na maturi: ");
scanf("%d",&a);
} while ((a < 10) || (a>30));
d->tocke_matura = a;
}
int tocke(struct dijak t)
{
return ((t.uspeh_3+t.uspeh_4)*0.4)+(t.tocke_matura*0.6);
}
void izpis(struct dijak d)
{
printf("%s %s %d %d %d %d\n",d.ime,d.priimek,d.uspeh_3,
d.uspeh_4,d.tocke_matura,tocke(d));
}
void uredi_tocke(struct dijak *d,int n)
{
int i,j;
struct dijak pom;
for (i=0;i<n-1;i++)
for (j=n-1;j>0;j--)
{
if (tocke(d[j-1])>tocke(d[j]))
{
pom=d[j-1];
d[j-1]=d[j];
d[j]=pom;
}
}
}
void meni(void)
{
printf("1. Vnos podatkov\n");
printf("2. Uredi dijake\n");
printf("3. Izpis dijakov\n");
printf("4. Izpis dijakov, katerih vsota tock je vecja od povprecja\n");
printf("5. Najuspesnejsi dijaki\n");
printf("ESC Izhod\n");
printf("\nIzbira> ");
}
void izpis_najuspesnejsih(struct dijak *dijaki,int n)
{
int i;
int max;
max = tocke(dijaki[0]);
for (i=1;i<n;i++)
{
if (tocke(dijaki[i])>max)
max = tocke(dijaki[i]);
}
for (i=0;i<n;i++)
{
if (tocke(dijaki[i]) == max)
izpis(dijaki[i]);
}
}
void izpis_nadpovp(struct dijak *dijaki, int n)
{
int i;
int povp=0;
for (i=0;i<n;i++)
povp+=tocke(dijaki[i]);
povp /= n;
printf("\nPovprecje je %d\n",povp);
for (i=0;i<n;i++)
{
if (tocke(dijaki[i])>povp)
izpis(dijaki[i]);
}
}
int main(void)
{
struct dijak dijaki[8];
int i;
int n=3;
char c;
do
{
meni();
c = getch();
if (c==0)
c = getch();
printf("\n");
switch(c)
{
case '1':
for (i=0;i<n;i++)
vnos(&dijaki[i]);
break;
case '2':
uredi_tocke(dijaki,n);
break;
case '3':
for (i=0;i<n;i++)
izpis(dijaki[i]);
break;
case '4':
izpis_nadpovp(dijaki,n);
break;
case '5':
izpis_najuspesnejsih(dijaki,n);
break;
}
} while (c != 27);
return 0;
}
Naloga 3
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
enum karte {DVOJKA,TROJKA,STIRICA,PETICA, SESTICA, SEDMICA, OSMICA, DEVETKA, DESETKA, FANT, DAMA, KRALJ, AS};
enum barve {PIK, KRIZ, KARO, SRCE};
struct igra {
enum karte k;
enum barve b;
};
void meni(void)
{
printf("1. Generiranje karte in izbira nakljucne\n");
printf("2. Izpis karte\n");
printf("0. Izhod\n");
printf("\nIzbira> ");
}
void generiraj(struct igra a[13][4],struct igra *iz)
{
enum karte k;
enum barve b;
for (k=DVOJKA;k<=AS;k++)
for (b=PIK;b<=SRCE;b++)
{
a[k][b].k=k;
a[k][b].b=b;
}
k=rand()%13;
b=rand()%4;
*iz=a[k][b];
}
void izpis_karte(enum karte k)
{
switch (k)
{
case DVOJKA: printf("2"); break;
case TROJKA: printf("3"); break;
case STIRICA: printf("4"); break;
case PETICA: printf("5"); break;
case SESTICA: printf("6"); break;
case SEDMICA: printf("7"); break;
case OSMICA: printf("8"); break;
case DEVETKA: printf("9"); break;
case DESETKA: printf("10"); break;
case FANT: printf("FANT"); break;
case DAMA: printf("DAMA"); break;
case KRALJ: printf("KRALJ"); break;
case AS: printf("AS"); break;
}
}
void izpis_barve(enum barva b)
{
switch(b)
{
case PIK: printf("PIK"); break;
case KRIZ: printf("KRIZ"); break;
case KARO: printf("KARO"); break;
case SRCE: printf("SRCE"); break;
}
}
void izpis(struct igra i)
{
printf("Izbral si ");
izpis_karte(i.k);
printf(" ");
izpis_barve(i.b);
printf("\n");
}
int main(void)
{
struct igra n[13][4];
struct igra i;
char c;
srand(time(NULL));
do
{
meni();
c=getch();
printf("\n");
switch(c)
{
case '1': generiraj(n,&i); break;
case '2': izpis(i); break;
}
} while (c!='0');
}
Utolsó módosítás: 2014. február 26., szerda, 03:47