Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
S Sample_Solutions
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OOP
  • Sample_Solutions
  • Wiki
  • Cv7

Cv7 · Changes

Page history
Update Cv7 authored Nov 07, 2019 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Hide whitespace changes
Inline Side-by-side
Showing with 16 additions and 10 deletions
+16 -10
  • Cv7.md Cv7.md +16 -10
  • No files found.
Cv7.md
View page @ 601c0a21
Cvičenie 7 # Cvičenie 7
Vytvorte si dva nové projekty: Cv7 (console application) Cv7Lib (class library), nech sú obidve postavené na .NET framework Vytvorte si dva nové projekty: Cv7 (console application) Cv7Lib (class library), nech sú obidve postavené na .NET framework (__musia byť v jednom solution!__)
Konzolová aplikácia nám bude slúžiť len pre jednoduchšie zobrazenie dát, užívateľské rozhranie budeme vytvárať nabudúce. Konzolová aplikácia nám bude slúžiť len pre jednoduchšie zobrazenie dát, užívateľské rozhranie budeme vytvárať nabudúce.
...@@ -8,7 +8,7 @@ Konzolová aplikácia nám bude slúžiť len pre jednoduchšie zobrazenie dát, ...@@ -8,7 +8,7 @@ Konzolová aplikácia nám bude slúžiť len pre jednoduchšie zobrazenie dát,
V Cv7Lib si vytvorte triedu Employee, nech táto obsahuje verejne dostupné vlastnosti (properties) Name, Address, PhoneNumber, Salary (teda public getter & setter) V Cv7Lib si vytvorte triedu Employee, nech táto obsahuje verejne dostupné vlastnosti (properties) Name, Address, PhoneNumber, Salary (teda public getter & setter)
Vytvorte si triedu CompanyEmployees ktorá bude v sebe obsahovať zoznam zamestnancov. Vytvorte si triedu CompanyEmployees ktorá bude v sebe obsahovať __zoznam__ zamestnancov.
Vytvorte pre tento zoznam prístupové funkcie: AddEmployee, GetEmployees Vytvorte pre tento zoznam prístupové funkcie: AddEmployee, GetEmployees
...@@ -31,21 +31,21 @@ Niekoľko príkladov: ...@@ -31,21 +31,21 @@ Niekoľko príkladov:
```csharp ```csharp
Func<int, int> addOne = x => x + 1; //x je implicitne deklarovaná premenná - vstupný parameter Func<int, int> addOne = x => x + 1; //x je implicitne deklarovaná premenná - vstupný parameter
//tento lambda výraz je totožný s nasledujúcou funkciou //tento lambda výraz je totožný s nasledujúcou funkciou
int AddOne(int x) int AddOne(int x)
{ {
return x + 1; return x + 1;
} }
//--------------------------------------------------- //---------------------------------------------------
Func<int, int, int> addValues = (a, b) => a + b; Func<int, int, int> addValues = (a, b) => a + b;
int AddValues(int a, int b) int AddValues(int a, int b)
{ {
return a + b; return a + b;
} }
//--------------------------------------------------- //---------------------------------------------------
Func<int, int, bool> compareValues = (a, b) => a > b; Func<int, int, bool> compareValues = (a, b) => a > b;
bool CompareValues(int a, int b) bool CompareValues(int a, int b)
{ {
return a > b; return a > b;
} }
...@@ -54,22 +54,29 @@ bool CompareValues(int a, int b) ...@@ -54,22 +54,29 @@ bool CompareValues(int a, int b)
Ako ale tieto metódy implementovať? Ako ale tieto metódy implementovať?
- pridajte si `using System.Linq;` - pridajte si `using System.Linq;`
- toto nám umožní používať takzvané extension methods nad kolekciami, tieto nám umožňujú, okrem iného filtrovať a transformovať kolekcie. Takéto metódy sú napr. Where a First. Keď si všimnete, tieto očakávajú ako parameter práve lambda funkciu so signatúrou popísanou vyššie. - toto nám umožní používať takzvané extension methods nad kolekciami, tieto nám umožňujú, okrem iného filtrovať a transformovať kolekcie. Takéto metódy sú napr. Where a First. Keď si všimnete, tieto očakávajú ako parameter práve lambda funkciu so signatúrou popísanou vyššie.
```csharp ```csharp
Func<Employee, bool> predicate = e => e.Name.Length > 15; Func<Employee, bool> predicate = e => e.Name.Length > 15; //táto lambda funkcia je použitá frameworkom pri filtrovaní, ako je to ukázané v ďalšom riadku, môžeme ju poslať aj ako parameter do funkcie
List<Employee> employeesWithLongName = employees.Where(predicate).ToList(); //ToList() nám vytvorí nový zoznam s týmito hodnotami List<Employee> employeesWithLongName = employees.Where(predicate).ToList(); //ToList() nám vytvorí nový zoznam s týmito hodnotami
//alternatíva 2: //alternatíva 2:
List<Employee> employeesWithLongName = employees.Where(e => e.Name.Length > 15).ToList(); List<Employee> employeesWithLongName = employees.Where(e => e.Name.Length > 15).ToList();
``` ```
V konzolovej aplikácií si pridajte knižnicu do referencií - keď máte v solution explorer zvolený projekt s konzolou, choďte na Project -> Add Reference..., prípadne kliknite pravým tlačidlom na references a Add Reference... tu si v záložke project zaškrtnite Cv7Lib. Teraz bude naša knižnica referencovaná v rámci konzolovej aplikácie a vieme ju použiť. V konzolovej aplikácií si pridajte knižnicu do referencií - keď máte v solution explorer zvolený projekt s konzolou, choďte na Project -> Add Reference..., prípadne kliknite pravým tlačidlom na references a Add Reference... tu si v záložke project zaškrtnite Cv7Lib. Teraz bude naša knižnica referencovaná v rámci konzolovej aplikácie a vieme ju použiť.
V Main si vytvorte CompanyEmployees a pridajte tam niekoľko zamestnancov (možete priamo v kóde, toto je cvičná úloha, nemusíte čítať z obrazovky), do triedy Employee ešte pridajte ToString() nech vieme spraviť výpis do konzoly. V Main si vytvorte CompanyEmployees a pridajte tam niekoľko zamestnancov (možete priamo v kóde, toto je cvičná úloha, nemusíte čítať z obrazovky), do triedy Employee ešte pridajte ToString() nech vieme spraviť výpis do konzoly.
V Main napíšte lambda výraz, pomocou ktorého nájdete zamestnancov, ktorí majú plat vyšší ako určitá suma, vypíšte ich na obrazovku. V Main napíšte lambda výraz, pomocou ktorého nájdete zamestnancov, ktorí majú plat vyšší ako určitá suma, vypíšte ich na obrazovku.
Môžete si vyskúšať aj ForEach pomocou lambda expression:
```csharp
collection.ForEach(x => Console.WriteLine(x)); //x je typu aký je držaný v danej kolekcií, takže ak to nie je string, nezabudnite spraviť prevod / zavolať ToString()
```
## 2 ## 2
V Cv7Lib si pridajte triedu CsvFile, táto trieda bude slúžiť na čítanie a zápis do CSV súboru. V Cv7Lib si pridajte triedu CsvFile, táto trieda bude slúžiť na čítanie a zápis do CSV súboru.
...@@ -96,7 +103,6 @@ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how ...@@ -96,7 +103,6 @@ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how
CSV súbory: CSV súbory:
https://en.wikipedia.org/wiki/Comma-separated_values https://en.wikipedia.org/wiki/Comma-separated_values
Následne: Následne:
1. Pridajte si do Employee metódu `string ToCSVLine()` ktorá vytvorí zo záznamu riadok do CSV súboru 1. Pridajte si do Employee metódu `string ToCSVLine()` ktorá vytvorí zo záznamu riadok do CSV súboru
2. Pridajte si do CsvFile `private Employee CreateEmployee(string csv)` tu rozdeľte riadok z CSV súboru na jednotlivé hodnoty a vytvorte pomocou nich nového zamestnanca. Na rozdelenie hodnôt použite `String.Split(',')` 2. Pridajte si do CsvFile `private Employee CreateEmployee(string csv)` tu rozdeľte riadok z CSV súboru na jednotlivé hodnoty a vytvorte pomocou nich nového zamestnanca. Na rozdelenie hodnôt použite `String.Split(',')`
......
Clone repository
  • Assignment part 1
  • Assignment part 2
  • Assignment part 3
  • Cv10
  • Cv11
  • Cv4
  • Cv5
  • Cv7
  • Cv8
  • Cv9
  • Requirements
  • Home