Potrzebna pomoc lub rady z zadaniami - odczytywanie i zapisywanie do pliku

0

Witam!
Mam całkiem ogromny problem.
Od kilku dni walczę z 3 zadaniami i próbowałem już wszystkiego ( od select aż po System.IO.File.ReadAllText) Naprawdę nie wiem jak zrobić te zadania... w każdym ze sposobów robienia wyskakują mi błędy których działania rozszyfrować nie mogę.

Moje zadania :

Wypisać z pliku txt wszystkie osoby wraz z Max liczba przypisana do niej, następnie odczytać i wybrać największe liczby przypisane do osób i zapisać w innym pliku txt. Potem obliczyć średnia z tych ocen i znów zapisać do pliku txt

Bardzo bym prosił o jakieś rady/ ewentualna pomoc.

4

Nie napisałeś jaka jest treść/format pliku.
Nie napisałeś jakie błędy rzuca twój program.

Jak ktoś ma ci pomóc?

1

Widać nie powinieneś programować, skoro przeczytanie dokumentacji Cię przerasta czy treści zadania. Pewnie było na wykładzie jak odczytać dane z pliku.

0

hej

proste

prostą pętlą przeglądasz sobie ten plik zbierają dane do tablicy a potem tablice zapisujesz jako wynik

0

Potrafię napisać program który wyciąga mi z pliku txt wartość, wypisuje ją, tak samo liczy średnia, ale nie potrafię napisać reszty
Albo wywala błędy typu ze nie ma już miejsca na przechowywanie danych itd.
Używałem nawet separatorów i nic z tego nie wyszło...
Zadanie ( szczegółowe informacje )
Program który przechowuje oceny osób w pliku tekstowym txt. Plik ten powinien zawierać numer, imię, nazwisko,
przedmiot, ocenę z danego przedmiotu.

Program powinien odczytać dane z pliku txt i zapisać do pliku v2txt o takim samych formacie tylko najwyższe oceny.

Napisz program, który oblicza średnia ocen danego studenta i zapisuje do pliku v3 txt o takim formacie średnia ocen.

Napisz program, który odczytuje dane z pliku v1txt oblicza średnia dla każdego ucznia.
a) znajduje i wypisuje studenta/ów z max średnia

  • użyj wyrażenia lambda jeśli to możliwe
    B) sortuje dane po średniej ocen i zapisuje do pliku v3 txt o takim samym formacie średnia ocen studenta.
  • użyj wyrażenia lambda oraz interfejsu Icomparable i metody sort
3
Zakaz napisał(a):

Potrafię napisać program który wyciąga mi z pliku txt wartość, wypisuje ją, tak samo liczy średnia, ale nie potrafię napisać reszty

Albo wywala błędy typu ze nie ma już miejsca na przechowywanie danych itd.
Używałem nawet separatorów i nic z tego nie wyszło...

"Używałem nawet separatorów i nic z tego nie wyszło... " ... co my z tego mamy zrozumieć? Powiedz to zdanie swojej dziewczynie, jak zareaguje?

Skoro twierdzisz, że próbowałeś, to jaki problem podać "względnie najlepszy" kod?
Komunikaty o błędach podajemy dosłownie, a nie jakieś interpretacje

0

Podeślę około 18 cały kod który nabazgrałem

0

Polecenie
Napisz program, który odczytuje dane z pliku .txt oblicza średnią ocen dla każdej osoby.
Kod

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Osoba> osoby = new List<Osoba>(); //Stworzenie listy obiektow "osoba"
FileStream fs = new FileStream("zasoby.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs); //Wykorzystanie klasy do prostego czytania tekstu

        while (sr.EndOfStream == false)          //Wykonuj dopoki odczyt nie dojdzie do konca pliku
        {
            string linia = sr.ReadLine();
            string[] dane = linia.Split(';');          //Rozbij string na tablice stringow przy pomocy separatora ';'
            string[] personalia = dane[0].Split(' ');          // Rozbij imie i nazwisko, glupie

            Osoba osoba = new Osoba();          // Nowy obiekt klasy Osoba

            osoba.Imie = personalia[0];
            osoba.Nazwisko = personalia[1];
            osoba.Zmienna1 = int.Parse(dane[1]);
            osoba.Zmienna2 = int.Parse(dane[2]);
            osoba.Zmienna3 = int.Parse(dane[3]);
                 // Operator trojargumentowy

            osoby.Add(osoba);
            
           
            Console.WriteLine( personalia[0] +" "+ personalia[1]);
            
            Console.WriteLine(dane[1]);
            Console.WriteLine(dane[2]);
            Console.WriteLine(dane[3]);
        }
    }
}

public class Osoba
{
    public string Imie;
    public string Nazwisko;
    public int Zmienna1;
    public int Zmienna2;
    public int Zmienna3;
   
   
}

}

Kod wypisuje mi praktycznie wszystkie dane ale nie moge dorwać sie do sredniej bo cokolwiek bym nie zrobil to wywala błędy typu ( brak miejsca itd)

0

Weź jak człowiek debuguj krok po kroku i zobacz w którym miejscu próbujesz się odwołać do tablicy o indeksie większym niż jej rozmiar. Wtedy szybko znajdziesz miejsce w którym występuje błąd :). A jeśli nie to podrzuć ss z wyjątkiem oraz z aktualnymi wartościami w zmiennych

1 użytkowników online, w tym zalogowanych: 0, gości: 1