Kezdőoldal » Számítástechnika » Programozás » SŰRGŐS! C# programozás?

SŰRGŐS! C# programozás?

Figyelt kérdés

Sziasztok! Ebben a feladatban kérnék egy sűrgős segítséget!

Eddig minden programozási feladatot sikerült megoldanom, de ez most kifogott rajtam.

Struktúrált beolvasást meg tudom csinálni, de a listákhoz nem értek és persze a feladatokat sem tudom megoldani.


A cb.txt forrásállomány soraiban egy megadott percben egy megadott sofőr által indított

adások számát rögzítettük mint bejegyzést a következő sorrendben:

• a bejegyzés percéhez tartozó óra, egész szám (6–13), például: 6

• a bejegyzés percértéke, egész szám (0–59), például 1

• a megadott percen belül a sofőr által indított adások száma, egész szám, például: 3

• a sofőr beceneve, szöveges adat, például: Bandi

Feltételezheted, hogy minden sofőrnek egyedi beceneve van.


Feladat, hogy struktúrát hozz létre, és ezt listában példányosítsd.

Olvasd be az adatokat (vigyázz, az első sorral).


Kérdések:

1, Hány hívás volt óránként?

2, Kérj be egy becenevet, és mondd meg, hogy összesen hány hívást indított, ha nincs ilyen becenév, akkor írja ki: Nincs ilyen nevű sofőr.

3, Határozd meg, hogy melyik sofőr indította a legtöbb, és melyik a legkevesebb hívást 8-10 óráig.

4, Írd ki azokat az időpontokat, amikor több mint 2 személy indított hívást egyidejűleg.

5, Írd ki egy ora_db.txt file-ba óránként az indított hívások számát óra:hívás db formátumban.



A segítséget előre köszönöm!!!



2020. dec. 2. 13:02
 1/7 anonim ***** válasza:
75%
* ásít *
2020. dec. 2. 13:34
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
100%

"de a listákhoz nem értek"

Akkor meg kell tanulni.

2020. dec. 2. 15:19
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
100%

Feladatot nem oldunk meg, elmagyarázzuk ha valamit nem értesz, vagy segítünk ha valahol elakadtál, de házit nem fog senki megoldani helyetted, abból nem tanulsz.


"de a listákhoz nem értek"


Mit nem értesz rajta? Magyarázzuk el mi az? Objektumokat lehet vele tárolni, amelyekhez az indexük alapján később hozzá tudsz férni, lekérdezés, rendezés vagy adatmanipulálás céljából.


Szintaxisa C#-ban a következő.

Deklarálás és definiálás:

var myList = new List<string>() { "elso", "masodik", "harmadik" };


A "masodik" értéket így éred el:

var masodikElem = myList[1];


Mert ugye 0-tól indexelünk.


De létrehozhatsz egyszerűen egy új üres listát is:

var mySecondList = new List<string>();


Ennek az Add(string) metódusával (függvényével) utána bele tudod rakni azokat az elemeket, amire szükséged van (a txt fájl tartalmát jelen esetben).


Természetesen neked most egy kicsit speciálisabb dolgot kell tárolnod egy struktúrát. Tehát a new List<string>() helyett new List<MyStruct>() kell, hogy legyen. Struktúrát tudsz csinálni, ezt említetted. Akkor az egész feladatod ennyi:


1. Megcsinálod a struktúrát ami reprezentál egy sort a fájlodban

2. csinálsz egy listát ami az előbb létrehozott struktúrának a példányait tárolja

3. beolvasod a fájlt és feltöltöd a listádat az Add(MyStruct) függvénnyel

4. megoldod a feladatokat ciklusok segítségével. Ha nincs kikötve a foreach tökéletes rá:


foreach (var myRow in myStructList)

{

// TODO: logika amely megoldja a feladatot

}

2020. dec. 2. 18:42
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
27%
mit nem ertesz azon hogy surgos neki. nincs ideje megtanulni.
2020. dec. 2. 19:53
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Azért írtam, hogy sűrgős, mert péntekig le szeretném adni a feladatot.

És nem azt kérem, hogy oldjátok meg helyettem, hanem csak segítsetek megoldani. pl. magyarázattal, példákkal.


Egyébként a fájlt sikerült beolvasnom így: (ha nem lenne jó, javítsatok ki)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;


namespace cp

{

class Program

{

struct radioadas

{

public int ora;

public int perc;

public int adasdb;

public string nev;

}

static void Main(string[] args)

{

List<radioadas> adasok = new List<radioadas>();

StreamReader olvas = new StreamReader("cb.txt", Encoding.UTF8);

string egysor = olvas.ReadLine();

while (!olvas.EndOfStream)

{

egysor = olvas.ReadLine();

string[] egysordarabolva = egysor.Split(';');

radioadas adatok = new radioadas();

adatok.ora = Convert.ToInt32(egysordarabolva[0]);

adatok.perc = Convert.ToInt32(egysordarabolva[1]);

adatok.adasdb = Convert.ToInt32(egysordarabolva[2]);

adatok.nev = egysordarabolva[3];

adasok.Add(adatok);

}

olvas.Close();

Console.ReadKey();

}


A vizsgálatoknál meg for ciklussal szoktam végig menni a fájl adatain:

for(int i=0;i<adasok.Count; i++)



Abban kérném leginkább a segítságet, hogy milyen módon tudom óránként kiiratni a darabszámot, és hogy a nevenként hogy tudom kiírni a darabszámot?


pl.:

1.feladat:

6.óra 40 adás

7.óra 18 adás

8.óra 38 adás


3.feladat:

Peti 28adás

Gabi 19adás

Csabi 12 adás

2020. dec. 2. 20:23
 6/7 anonim ***** válasza:
100%

Nézz utánna a Dictionary osztálynak, kulcs-érték párosok tárolására alkalmas. Pl.: a 3-mas feladatban a kulcsok lehetnének a nevek, az értékek pedig a nevenkénti dbszámok. (


Ciklussal végigmész a listán, hozzáadod a Dictionary-hez a nevet, akkor ha még nem tartalmazza azt. Különben a névhez tartozó értéket növeled, stb...

2020. dec. 2. 21:58
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
Akkor sorstársak vagyunk, nekem is péntekig kell leadnom egy C# feladatot, de nekem nem igazán sikerült megoldani. Majd jövőre.
2020. dec. 3. 20:43
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!