Próbuje napisać program do poniższego zadania, mam zrealizowany podpunkt a.Trzech pozostałych podpunktów nie potrafie zrealizować. Czy ktoś potrafi dopisać pozostałe podpunkty?
Zadanie jest nastepujące:
Napisać program,który w tablicy struktur będzie przechowywał
informacje o ocenach studentów. Informacjami tymi są:
- nazwisko i imię studenta,
- nr grupy,
- rok studiów,
- ocena.
Program ma zapewnić:
a)wypełnienie tablicy struktur,
b)wydrukowanie listy studentów, których oceny mieszczą się w
przedziale [4,5] (należy zapewnić druk nazwiska i imienia studenta oraz
oceny).
c) program należy uzupełnić o możliwość zapisu elementów
składowych struktur zorganizowanych w tablice do pliku tekstowego
d) program powinien mieć możliwość odczytu danych z pliku tekstowego
i wyświetlania ich na ekranie
UWAGA: W programie stosować funkcje zdefiniowane przez użytkownika.
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
struct Grupa
{
char imie[10];
char nazwisko[10];
int rok;
int nr_grupy;
int ocena;
};
int main(int argc, char *argv[])
{
const iloscStud=3;
int i;
struct Grupa Student[iloscStud];
printf("Wprowadz dane studentow:
");
for (i=0;i<iloscStud;i++)
{
printf("Student nr. %d
",i);
printf("Imie: ");
scanf("%s",Student[i].imie);
printf("Nazwisko: ");
scanf("%s",Student[i].nazwisko);
printf("Rok studiow: ");
scanf("%d",&Student[i].rok);
printf("Numer grupy: ");
scanf("%d",&Student[i].nr_grupy);
printf("Ocena studenta: ");
scanf("%d",&Student[i].ocena);
printf("
");
}
Czy ktoś pomoże mi to poprawić??
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char imie[10];
char nazw[10];
int rok;
int grupa;
int ocena;
} Student;
void wysw (Student s)
{
printf("%s %s %i %i %i
",s.imie,s.nazw,s.rok,s.grupa,s.ocena);
}
void oceny (Student s,FILE* plik)
{
printf("%s %s %i %i
",s.imie,s.nazw,s.rok,s.ocena);
fprintf(plik,"%s %s %i %i
",s.imie,s.nazw,s.rok,s.ocena);
}
int main()
{
printf("1. Wpisanie danych recznie
");
printf("2. Pobranie danych z pliku
");
int a;
scanf("%i",&a);
switch (a)
{
case 1:
{
int i;
Student studenci [10];
printf("Podaj liczbe studentow
");
scanf ("%i",&a);
for(i=0; i<a; i++)
{
printf("Podaj: nazwisko i imie,rok studiow, nr grupy,ocena
");
scanf("%s %s %i %i %i", &studenci[i].imie,&studenci[i].nazw,&studenci[i].rok,&studenci[i].grupa,&studenci[i].ocena);
}
for(i=0; i<a; i++)
wysw(studenci[i]);
FILE* plik;
plik = fopen ("oceny.txt","w");
if (plik!=NULL)
{
fprintf (plik,"Studenci posiadajacy ocene 4 lub 5
");
printf("Studenci posiadajacy ocene 4 lub 5
");
for(i=0; i<a; i++)
if(studenci[i].ocena>3)
oceny(studenci[i], plik);
fclose(plik);
}
break;
}
case 2:
{
FILE* plik;
int i;
Student studenci [10];
plik = fopen ("wejscie.txt","r");
if (plik!=NULL)
{
fscanf (plik,"%i",&a);
for(i=0; i<a; i++)
{
fscanf(plik,"%s %s %i %i %i", &studenci[i].imie,&studenci[i].nazw,&studenci[i].rok,&studenci[i].grupa,&studenci[i].ocena);
}
fclose(plik);
}
for(i=0; i<a; i++)
wysw(studenci[i]);
plik = fopen ("oceny.txt","w");
if (plik!=NULL)
{
fprintf (plik,"Studenci posiadajacy ocene 4 lub 5
");
printf("Studenci posiadajacy ocene 4 lub 5
");
for(i=0; i<a; i++)
if(studenci[i].ocena>3)
oceny(studenci[i], plik);
fclose(plik);
}
break;
}
}
system("PAUSE");
return 0;
}