Valaki aki profi programozásban az tud nekem erre a feladatra egy kódot írni?
Írjon fájlkezelő programot a következő probléma megoldására:
Kérje be a felhasználótól „*” végjelig név, hallgatói átlag, lakhatási támogatás
adatokat.
Számoljon ösztöndíjat mindegyes hallgatónak a következők figyelembevételével:
0 <= átlag < 2.0 nem jár ösztöndíj
2.0 <= átlag < 3.1 10 000 Ft
3.1 <= átlag < 4.0 15 000 Ft
4.0 <= átlag <= 5.0 25 000 Ft
Írja ki a név, átlag, ösztöndíj, lakhatási támogatás és összesen (ösztöndíj+lakhatási)
adatokat egy szöveges állományba, melynek legyen „hallgato.txt” a neve.
Majd olvassa vissza az adatokat, és írassa ki táblázatos formában.
Végezetül számolja ki, hogy átlagosan mennyi támogatást (összesen, azaz ösztöndíj és
lakhatási) kap egy hallgató.
montihun :
Nem lefutott meccs mert ez Pascal és nem C.
- tudod ez volt a Mátyás király féle mese hoztam is meg
nem is - adtam is meg nem is :)
Bár ha a kérdezőre valami is ragadt az előadásokon 10 perc alatt át tudja írni C-be.
Ne mondja hogy sz..házi vagyok, elkezdem neki:
#include <stdio.h>
#include <stdlib.h>
struct hallgato
{
char nev[30];
float atlag;
int tamogatas, osztondij, teljes;
};
struct hallgato bevitel;
char seged[30];
int hiba = 1;
int hallgatoszam = 0;
int osszestamogatas = 0;
int main(int argc, char *argv[])
{
FILE * f = fopen ("C:\hallgato.txt","w");
do
{
}while (bevitel.nev=="*");
}
Köszön a segítségeket! Közben én is elkezdtem, de csak eddig jutattam
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct {
char *nev;
float atlag;
unsigned int laktam;
} Hallgato;
Hallgato *readHallgato();
int getOsztondij(Hallgato *h);
int glob_size;
char *glob_tmp;
int main() {
Hallgato *h;
printf("Hallgatoi tamogatasok\n");
printf("Adja meg a kov. adatokat az alabbi formatumban _ -jellel elvalasztva\n");
printf("Nev_Atlag_Lakhatasi tamogatas\n");
printf("Ha * ut vege a programnak\n");
while((h = readHallgato()) != NULL) {
printf("Megadott adatok\n");
printf("Nev: %s\n", h->nev);
printf("Atlag: %d\n", h->atlag);
printf("Laktam: %d\n", h->laktam);
printf("Osztondij: %d\n", getOsztondij(h));
}
}
int getOsztondij(Hallgato *h) {
int atlag = h->atlag;
if (atlag < 2) {
return 0;
} else if (atlag >= 2 && atlag < 3.1) {
return 10000;
} else if (atlag >= 3.1 && atlag < 4.0) {
return 15000;
} else if (atlag >= 4.0 && atlag <= 5.0) {
return 25000;
} else {
printf("Hibas atlag!\n");
return 0;
}
}
Hallgato *readHallgato() {
Hallgato *tmp;
char *ctmp;
tmp = (Hallgato*)malloc(sizeof(Hallgato));
glob_tmp = (char *)malloc(512);
glob_size = 0;
printf(">");
while ((*(glob_tmp + glob_size++) = getchar()) != '\n');
*(glob_tmp + glob_size) = '\0';
if (*(glob_tmp+0) == '*')
return NULL;
tmp->nev = strtok(glob_tmp, "_");
ctmp = strtok(NULL, "_");
tmp->atlag = atof(ctmp);
ctmp = strtok(NULL, "_");
tmp->laktam = atoi(ctmp);
return tmp;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!