From fb77e2177baea7798a77cc5849a0501c4cac18df Mon Sep 17 00:00:00 2001 From: wallenas Date: Fri, 4 Sep 2020 13:12:15 +0200 Subject: [PATCH 01/17] =?UTF-8?q?Klar=20/Peter=20Wallen=C3=A4s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift1/.vs/Uppgift1/v16/.suo | Bin 23552 -> 25088 bytes Uppgift1/Felande/Program.cs | 23 ++++++++++-------- .../Debug/netcoreapp3.1/Felande.assets.cache | Bin 140 -> 140 bytes .../obj/Felande.csproj.nuget.dgspec.json | 16 ++++++------ .../Felande/obj/Felande.csproj.nuget.g.props | 7 ++++-- Uppgift1/Felande/obj/project.assets.json | 14 +++++------ Uppgift1/Felande/obj/project.nuget.cache | 4 +-- .../bin/Debug/netcoreapp3.1/Korrekt.dll | Bin 5632 -> 5632 bytes .../bin/Debug/netcoreapp3.1/Korrekt.exe | Bin 174592 -> 174592 bytes .../bin/Debug/netcoreapp3.1/Korrekt.pdb | Bin 892 -> 9544 bytes .../Korrekt.runtimeconfig.dev.json | 4 +-- .../Debug/netcoreapp3.1/Korrekt.assets.cache | Bin 140 -> 140 bytes .../Korrekt.csproj.FileListAbsolute.txt | 13 ++++++++++ .../Korrekt.csprojAssemblyReference.cache | Bin 424 -> 424 bytes .../obj/Debug/netcoreapp3.1/Korrekt.dll | Bin 5632 -> 5632 bytes .../obj/Debug/netcoreapp3.1/Korrekt.exe | Bin 174592 -> 174592 bytes .../obj/Debug/netcoreapp3.1/Korrekt.pdb | Bin 892 -> 9544 bytes .../obj/Korrekt.csproj.nuget.dgspec.json | 16 ++++++------ .../Korrekt/obj/Korrekt.csproj.nuget.g.props | 7 ++++-- Uppgift1/Korrekt/obj/project.assets.json | 14 +++++------ Uppgift1/Korrekt/obj/project.nuget.cache | 4 +-- 21 files changed, 72 insertions(+), 50 deletions(-) diff --git a/Uppgift1/.vs/Uppgift1/v16/.suo b/Uppgift1/.vs/Uppgift1/v16/.suo index 97d87e6436fc52ce9e6cd5bbfe506abdbdd808d8..6d9267c244cc0b80f925e50767e2d3585e8a711b 100644 GIT binary patch delta 1588 zcmZux&u<$=6rNeHH^yGOPU28IKOJJX4zb;JQtTwOCh&ygQA;gl3G`7hy^cF=3Wi0m|;ih0q7(CAnvv8UCC(OyOyL5rXfVHEpQXtnRe zG}r7UxgQ-$B7=(kj7>QLVAmdY8#6|)IeM!FFPwG+s)et&WV_~7ot$`SJ?cpoD0y@6 zix9K=5WE3(?<{%zER=npZFxn_otEiFdQ2%i3FZDAq@zg?+RxcYc!N!fq4Pw5o9(l* z1&2gx%*nJb^!28>(lY5sLK^|x4`o+QCf8wx2WtB+2jB7wnja5f#VHcd$bynTFO!Px zW^fO|7Z9KdYDNy`WzyK+1Vh|gs}HqFT1W-;*t>8yG=%+GZ8&2KH=|IcVO=GOY9Y&N zPe&wC^Qa^hRDvQ;!-i+p$&cZzQ3blVd!AfF^3E2rE}aaf;v)Azy;tyUuCY}dEwNTV%8KkGcAec|AF}s#s>SEhI9t*nmA&TJWYa9pCfE!+ zSNkb@iP!!~J{GnX1-r`f>@D^x6Bx{?amN#UepEf2-GQu{k*=(lu9jEeOLY#Cs*67h zjtMLkd9yI7;I}!pyq1_y#$u7R*h(=Hi>)e=@ym(vh@vbj#fex;hNt!@x5&ZPWw2aV?4N#KC$jB1hIJvDeR-y?7azJ;Xi?FaNTMC{Un z5AMwjXrm#hroCK*>Cs~6(sQoqp>hFH|OP>_syGc_PxBfwJl!z$m?2| z9WOs)PU4(!*y(gcn72R3)4WkxY)Mlxrlg3&zgNMkG=opBIQFG4K3g6kDZS``D{44T zhbTcT5frP7_+RpejbcyX6dihwE=3~B%RB@x;p9==N4}RJstXXh2|^npPp+eo4+@U^ za+>$qWm;az@_MW;$?B6^fdkHW@Vk54$4-z=d`r9&6}I>NUT#H5CRwVhsn+;Tdrf`H zt(a_$NiBVq^LbQ /// static void Main(string[] args) + { Console.WriteLine("Hej, välkommen till uppgift 1!"); Console.WriteLine("Tryck på en knapp för att fortsätta..."); Console.ReadKey(); - namn = "Linda"; + string namn = "Peter"; - Console.WriteLine; + Console.WriteLine(); Console.WriteLine($"Här ser du en sträng representerat av variablen 'namn': {namn}"); Console.WriteLine("Tryck på en knapp för att fortsätta..."); Console.ReadKey(); + + bool sant = true; Console.WriteLine(); Console.WriteLine($"Boolean eller bool är en användbar datatyp när man vill avgör om något är sant eller falskt. Här ser vi variablen sants värde: {sant}"); Console.WriteLine("Tryck på en knapp för att fortsätta..."); Console.ReadKey(); - bool sant = false; - - DateTime datum = DateaTime.Now; + DateTime datum = DateTime.Now; Console.WriteLine(); - Console.ReadKey($"Här ser du ett datum representerat av variablen 'datum': {datum}") - ConsoleWriteLine("Tryck på en knapp för att fortsätta..."); + Console.WriteLine($"Här ser du ett datum representerat av variablen 'datum': {datum}"); + Console.WriteLine("Tryck på en knapp för att fortsätta..."); Console.ReadKey(); - decimal decimaltal = 0.5; + double decimaltal = 0.5; Console.WriteLine(); Console.WriteLine($"Här ser du ett flyttal representerat av variablen 'decimaltal': {decimaltal}); Console.WriteLine("Tryck på en knapp för att fortsätta..."); - - string helttal = 30; + Console.ReadKey(); + + int helttal = 30; Console.WriteLine(); Console.WriteLine($"Här ser du ett heltal representerat av variablen 'heltal': {helttal}"); @@ -53,4 +55,5 @@ static void Main(string[] args) Console.ReadKey(); } + } } diff --git a/Uppgift1/Felande/obj/Debug/netcoreapp3.1/Felande.assets.cache b/Uppgift1/Felande/obj/Debug/netcoreapp3.1/Felande.assets.cache index 04b2e54872af1131c52135000f5681d817d13e64..f30338f93ac2230c8116ade37a5e3276f133e413 100644 GIT binary patch delta 64 zcmV-G0Kfl?0gM4DP)kQa3IG5AMS}Mi|KFm+fRUR9^LsWD^knCPn`eNRXEKG!^XfAU Wh>stSL*hYV_niCv%JVd$*IzOuSD}4Zq^yhk} Wh>2?% diff --git a/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json b/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json index a45831c..4c7d395 100644 --- a/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json +++ b/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json @@ -1,20 +1,20 @@ { "format": 1, "restore": { - "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj": {} + "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj": {} }, "projects": { - "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj": { + "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", + "projectUniqueName": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", "projectName": "Felande", - "projectPath": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", - "packagesPath": "C:\\Users\\enikl\\.nuget\\packages\\", - "outputPath": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\obj\\", + "projectPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", + "packagesPath": "C:\\Users\\peter\\.nuget\\packages\\", + "outputPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ - "C:\\Users\\enikl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\peter\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ @@ -52,7 +52,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.302\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Felande/obj/Felande.csproj.nuget.g.props b/Uppgift1/Felande/obj/Felande.csproj.nuget.g.props index 622d18d..e81967d 100644 --- a/Uppgift1/Felande/obj/Felande.csproj.nuget.g.props +++ b/Uppgift1/Felande/obj/Felande.csproj.nuget.g.props @@ -5,10 +5,13 @@ NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ - C:\Users\enikl\.nuget\packages\ + C:\Users\peter\.nuget\packages\ PackageReference - 5.6.0 + 5.7.0 + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/Uppgift1/Felande/obj/project.assets.json b/Uppgift1/Felande/obj/project.assets.json index af644da..7dbcc40 100644 --- a/Uppgift1/Felande/obj/project.assets.json +++ b/Uppgift1/Felande/obj/project.assets.json @@ -8,19 +8,19 @@ ".NETCoreApp,Version=v3.1": [] }, "packageFolders": { - "C:\\Users\\enikl\\.nuget\\packages\\": {} + "C:\\Users\\peter\\.nuget\\packages\\": {} }, "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", + "projectUniqueName": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", "projectName": "Felande", - "projectPath": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", - "packagesPath": "C:\\Users\\enikl\\.nuget\\packages\\", - "outputPath": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\obj\\", + "projectPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", + "packagesPath": "C:\\Users\\peter\\.nuget\\packages\\", + "outputPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ - "C:\\Users\\enikl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\peter\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ @@ -58,7 +58,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.302\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Felande/obj/project.nuget.cache b/Uppgift1/Felande/obj/project.nuget.cache index 6496ec0..7f59354 100644 --- a/Uppgift1/Felande/obj/project.nuget.cache +++ b/Uppgift1/Felande/obj/project.nuget.cache @@ -1,8 +1,8 @@ { "version": 2, - "dgSpecHash": "Td53tEUm321uEUylOF45iYi0rKVgBwvVZz42EnGreoQPbUDGl90gb4Lomt0tHKRkMM5epQaXnicswo0tJbR7og==", + "dgSpecHash": "9lqaFj6gapOTngTU9Zjjol5o+MKMYae+ZS67fx+gFqD41/SFcqRRPPdwtE9DRKz+pXRBUmitRxF0yMzOuVC1Kg==", "success": true, - "projectFilePath": "C:\\repos\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", + "projectFilePath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", "expectedPackageFiles": [], "logs": [] } \ No newline at end of file diff --git a/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.dll b/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.dll index b2dd5379983ecfc60c05329a4286629f31d136c8..7e669d3d52a90937fdb5cd28664fb32f1f1e5ef0 100644 GIT binary patch delta 175 zcmZqBY0#O_!IJsOZso+D62`pAjEw&o7j0%_n$IcVw@~ly(&zUa8vBAfOKmqXOy0o# zf;Z`_-a-aO-vA~C28Q^_OL^p3-L)AQ+$W#pQI-vUw%2%X++_dd_OW3ss{6GVfohzs zV%#%JJW7)$bMU$vK~?OBsQ{T4;-<6M`o*af%NI}HOaqz)0~!U~6b!5fu@xpNiZL#nJe^m2 J^FdyF4gjEiKRy5e diff --git a/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.exe b/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.exe index a00a0256f9a0845f37d7915a4a2f31acee4b9aa5..e3ca0c9f7fc842abff9ee737d2264274c1b58c9d 100644 GIT binary patch delta 204 zcmZp;!qsqvYr+qfwc+CNjeoZOVf?a)(R};I#fhc8PXV17*c_x1&}slNMcB2 zFb6^dpqL3z#2hSQ30478mC9hmV9H?0UnNA zOo4nephzN6#stU%$yhKL0Yy@QYzqc+AcoMUKsDwJ#z1)kpt|Jk_m42PhS-2?VgLdr zAT9&qDOOAjQ*=N)1_qcM50EVa#5~qa3_Q9Bx$O%inSKZfXn$Y6`og?cueolsitHz> M+O>U!4pT%e04L8=rL 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 delta 237 zcmX@%^@nYONz4=m1_tFi28IYm1_l)nJGi7MGcUau$YiJiim`yiLW3C^fNTR0+db6N z1xRlI^3MRVvQtie5|H1wr{ER;F;?Hjd)CbT6npGTtbcr4dgLQ7GSjC<^W1EFeorEGyI+$&!{_j4WpqjTX1D@Nop<=BO{Zu z6>CvyL4NV%24xiv_84wH5gAq8&6|{k82R}iyhiRu{zlP8<;gcxEYZZ8CabC{0{~yL BHBbNm diff --git a/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.runtimeconfig.dev.json b/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.runtimeconfig.dev.json index 1a761bd..82dc547 100644 --- a/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.runtimeconfig.dev.json +++ b/Uppgift1/Korrekt/bin/Debug/netcoreapp3.1/Korrekt.runtimeconfig.dev.json @@ -1,8 +1,8 @@ { "runtimeOptions": { "additionalProbingPaths": [ - "C:\\Users\\enikl\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\enikl\\.nuget\\packages" + "C:\\Users\\peter\\.dotnet\\store\\|arch|\\|tfm|", + "C:\\Users\\peter\\.nuget\\packages" ] } } \ No newline at end of file diff --git a/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.assets.cache b/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.assets.cache index 705a705ba4a7b8cae411b8b5d918fdde91ab8381..4b8e75d787e81e76276d5640ce72a75843ef2e9e 100644 GIT binary patch delta 64 zcmV-G0Kfl?0gM4DP)kQa3IG5Aj3>xWzv3!luZ(Z5K`fD#hutW*Wc;=-3BFn0v*n1a Wh> delta 64 zcmV-G0Kfl?0gM4DP)kQa3IG5AA*ZQS2V`tfq#P45rTaRI`10I~?ADEOgv!2Os{2aP Wh>U~!U~6b!5fu@xpNiZL#nJe^m2 J^FdyF4gjEiKRy5e diff --git a/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.exe b/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.exe index a00a0256f9a0845f37d7915a4a2f31acee4b9aa5..e3ca0c9f7fc842abff9ee737d2264274c1b58c9d 100644 GIT binary patch delta 204 zcmZp;!qsqvYr+qfwc+CNjeoZOVf?a)(R};I#fhc8PXV17*c_x1&}slNMcB2 zFb6^dpqL3z#2hSQ30478mC9hmV9H?0UnNA zOo4nephzN6#stU%$yhKL0Yy@QYzqc+AcoMUKsDwJ#z1)kpt|Jk_m42PhS-2?VgLdr zAT9&qDOOAjQ*=N)1_qcM50EVa#5~qa3_Q9Bx$O%inSKZfXn$Y6`og?cueolsitHz> M+O>U!4pT%e04L8=rL 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 delta 237 zcmX@%^@nYONz4=m1_tFi28IYm1_l)nJGi7MGcUau$YiJiim`yiLW3C^fNTR0+db6N z1xRlI^3MRVvQtie5|H1wr{ER;F;?Hjd)CbT6npGTtbcr4dgLQ7GSjC<^W1EFeorEGyI+$&!{_j4WpqjTX1D@Nop<=BO{Zu z6>CvyL4NV%24xiv_84wH5gAq8&6|{k82R}iyhiRu{zlP8<;gcxEYZZ8CabC{0{~yL BHBbNm diff --git a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json index 40f1483..cf77859 100644 --- a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json +++ b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json @@ -1,20 +1,20 @@ { "format": 1, "restore": { - "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj": {} + "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj": {} }, "projects": { - "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj": { + "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", + "projectUniqueName": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", "projectName": "Korrekt", - "projectPath": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", - "packagesPath": "C:\\Users\\enikl\\.nuget\\packages\\", - "outputPath": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\obj\\", + "projectPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", + "packagesPath": "C:\\Users\\peter\\.nuget\\packages\\", + "outputPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ - "C:\\Users\\enikl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\peter\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ @@ -52,7 +52,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.302\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.g.props b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.g.props index 622d18d..e81967d 100644 --- a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.g.props +++ b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.g.props @@ -5,10 +5,13 @@ NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ - C:\Users\enikl\.nuget\packages\ + C:\Users\peter\.nuget\packages\ PackageReference - 5.6.0 + 5.7.0 + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/Uppgift1/Korrekt/obj/project.assets.json b/Uppgift1/Korrekt/obj/project.assets.json index 5e0c0be..9ef05df 100644 --- a/Uppgift1/Korrekt/obj/project.assets.json +++ b/Uppgift1/Korrekt/obj/project.assets.json @@ -8,19 +8,19 @@ ".NETCoreApp,Version=v3.1": [] }, "packageFolders": { - "C:\\Users\\enikl\\.nuget\\packages\\": {} + "C:\\Users\\peter\\.nuget\\packages\\": {} }, "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", + "projectUniqueName": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", "projectName": "Korrekt", - "projectPath": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", - "packagesPath": "C:\\Users\\enikl\\.nuget\\packages\\", - "outputPath": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\obj\\", + "projectPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", + "packagesPath": "C:\\Users\\peter\\.nuget\\packages\\", + "outputPath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ - "C:\\Users\\enikl\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Users\\peter\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ @@ -58,7 +58,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.302\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Korrekt/obj/project.nuget.cache b/Uppgift1/Korrekt/obj/project.nuget.cache index ca21b2f..07ba34a 100644 --- a/Uppgift1/Korrekt/obj/project.nuget.cache +++ b/Uppgift1/Korrekt/obj/project.nuget.cache @@ -1,8 +1,8 @@ { "version": 2, - "dgSpecHash": "MAGwz3c8Q8acu+EJsY8jxfJ0E7mYMSOhKy0K3/5Kb9xyleHV0TasNBJgkgogmIvqdl07j0WLK1KkWHlxAYKr7A==", + "dgSpecHash": "YuSnrq7IzTeBemMCOh1vZBXBaFk6ET0t7qLpy3US/Z8cWOlSSvKsZTVWkRezFqaser4c8QJcqXHE8L7YHLh54A==", "success": true, - "projectFilePath": "C:\\repos\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", + "projectFilePath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", "expectedPackageFiles": [], "logs": [] } \ No newline at end of file From 94d274370fb9f0cd0a0383c880dfca88c19305b2 Mon Sep 17 00:00:00 2001 From: wallenas Date: Fri, 4 Sep 2020 15:11:29 +0200 Subject: [PATCH 02/17] =?UTF-8?q?Klar=20/Peter=20Wallen=C3=A4s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift1/.vs/Uppgift1/v16/.suo | Bin 25088 -> 17920 bytes Uppgift1b/Uppgift1b/Uppgift1b/Program.cs | 80 ++++++++--------------- 2 files changed, 29 insertions(+), 51 deletions(-) diff --git a/Uppgift1/.vs/Uppgift1/v16/.suo b/Uppgift1/.vs/Uppgift1/v16/.suo index 6d9267c244cc0b80f925e50767e2d3585e8a711b..f8297f90b3727aa28681ca8de27df288e7d7daae 100644 GIT binary patch delta 2284 zcmd5-Z%kWN6uN@(f>sVbuRlU@`lc2#fb8^O_x zAfwsP4x-#tA;_T`L@h#F2j}&DQd>p<8?v)c(`e(Ps2oK25JQ=Tq#H&4Fk&oA25!UG z|8wswF`XYh-UmyTWgVq_0d_5ZnW}~INeQP?=7%6&zM`W$GQ)1sGNii2%^j)6~b*#t?jq)<*QxEtHIT4pS|(w>$05z#NN@d%1}BF)bli9M;Ip;5k!-C-)C3|Z+Za>X%-Pf zelA^TRAet9Q@CC3lLhMda3#&EQP2|JM-*^Oxj9m)k7D? zyE{8OJ3BMq>?_`2#Ru%;S)Pf|!8`XVug$;x$P%MiL4nDv4*gDY{QStRfozAm|=QXP(U zNT{t6S|{Y)35f#4*RmZ@cF#d%U;>Js2=%4jDUpoX*?1K4y$NX#vb0pBRDrGDq(sru z@>qp}4;g|EuJuhD86^oNyQWA-H{)QtVGR_UuzuBCWNZ_*JK_?hycSeaqoX_z!)j+- zq7mhSrUY_b?O^VbC1Ox=Xba2;`K|&Ky@E&yNUdaw7#Xco0%>wpD^^X20p8DAplq5` zM-z~5D1b6pyFa%hy{4lq>xOMpToQ0ZIi#sXAXT?A3v3^Z!vo$2x&EX?fYeZ+-YbQS zci@UM4$-#HO1)8uLa|HLBsv?zAs+(1FRc2PFuQY-AM$;3Mn=IUdo;f0+JU%4=aJ{N zC3XPgo)W3z?691Fin%3+l_GD!lkFq$#F7*VoSHo3nv?Lr0 zhOGnM?>Swv=a>%i_JmYhaLBDpfU>=yBd54vwIwc5yb0*qX{DgROB_6HoKX#-8lo*h zZr?W|O{kGF$Tbz~>4amnVY-5heHCOhO^FoJ8qox$j!qSa?ZGu>g}g5zb)pcJAWe`p zua|uW21VHnX8Aj&hq9a!ce!aVRXJ^wPQ;0T_^2dm1LQj~^5iM4kXFo9@i1IT z^j(J%Ak@?*P{5OhIN3_jgRADakr6a&odjFvgptuzcELQ?h+L`%1X9hmdU}jD(LwvY z(97F_caFnjM=#uU2oQAyAmls;8_p7Jc6i}tzyv1m5E>z2ICFLi4nv~U@A`Bj@k^v6 z*Dv>l;fB|R@S8;;88!wb#(>#|rJ+-)B#Fl&sU$K&!euVUffSJ8jMH8UT1vsnFAnIx zf7~~|=JyBA4h@YBc@~C)XFak%bJjEO3kE$4XXZ2W896hW$;fX=m}Frn21U5w92F@! zsR8Sj>87fQfhuGD*D-+yC1gbJi7*zjSQofOG^1FRBl}*@aN|%2CEK58a%nEhEpW@+ z61M_BgnA|yagyon7P*&HD@^fP0eE-fl+MTDAKag?F%Ircw7|C$ zmUZuBs{l8ZQG3`D$iL`5V-JQ>cqHzX!M2SRoyW5!W*K0f8AsM`F-I| z)WFawSRI~5Cq-1R%7PMWrkpG}T=0F&zOFbFe3N=C KpbK8sZ1@9`A@tG! diff --git a/Uppgift1b/Uppgift1b/Uppgift1b/Program.cs b/Uppgift1b/Uppgift1b/Uppgift1b/Program.cs index 649ea3e..350e4f6 100644 --- a/Uppgift1b/Uppgift1b/Uppgift1b/Program.cs +++ b/Uppgift1b/Uppgift1b/Uppgift1b/Program.cs @@ -23,108 +23,86 @@ static void Main(string[] args) //1. tilldela variabel i värdet 10 - //Kod här - + i = 10; + //2. Använd implicit konvertering för att tilldela variabel "l" värdet av "i" - //Kod här - + l = i; + //3. Addera 1 till variabeln "l" mha inkrement operatorn. - //Kod här - + l++; + //4. Använd compound assignment för att multiplicera värdet av variabel "l" med 2 - //Kod här - + l *= 2; + //5. Avänd explicit konvertering för att tilldela variabel "i" värdet av "l" - //Kod här - + i = (int)l; //6. Skriv ut värdet av variabeln i konsolen. Talet 22 bör skrivas ut - //Kod här - + Console.WriteLine(i); //7. Tilldela variabeln "f" värdet 3.14 - //Kod här - + f = 3.14f; //8. Använd explicit konvertering för att tilldela variabeln "d" värdet av variabeln "f" - //Kod här - + d = (decimal)f; //9. Använd dekrement operatorn för att subtrahera värdet av "d" med 1 - //Kod här - + d--; //10. Använd compound assignment för att multiplicera värdet av variabel "d" med 3 - //Kod här - + d *= 3; //11. Använd explicit konvertering för att tilldela "i" värdet av "d" modulo 5 (restvärdet) - //Kod här - - + i = (int)d % 5; //12. Skriv ut värdet av "i" i konsolen. Bör vara 1. - //Kod här - - + Console.WriteLine(i); //13. Tilldela variabeln "sant" värdet true som en sträng - //Kod här - + sant = "true"; //14. Använd en hjälp klass för att konvertera //och tilldela variabeln "b" värdet av variabeln "sant" //Kod här - + b = Convert.ToBoolean(sant); //15. Sätt variabel "b":s värde till falskt - //Kod här - + b = false; //16. Använd en hjälp klass för att konvertera //och tilldela variabeln "sant" värdet av variabeln "b" - //Kod här - + sant = Convert.ToString(b); //17. Skriv ut värdet av variabeln "sant" i konsolen. Bör vara False. - //Kod här - + Console.WriteLine(sant); //18. Skriv ut till konsolen texten: Ange ett heltal: - //Kod här - + Console.WriteLine("Ange ett heltal:"); //19. Läs in ett heltal från konsolen tilldela värdet till variabel "input1" - //Kod här - + input1 = Console.ReadLine(); //20. Skriv ut till konsolen texten: Ange ett annat heltal: - //Kod här - + Console.WriteLine("Ange ett annat heltal:"); //21. Läs in ett annat heltal från konsolen tilldela värdet till variabel "input2" - //Kod här - + input2 = Console.ReadLine(); //22. Använd datatypen ints Parse funktion för att konvertera och tilldela //värdet av "input1" till variabeln "tal1" - //Kod här - - + tal1 = int.Parse(input1); //23. Använd datatypen ints Parse funktion för att konvertera och tilldela //värdet av "input2" till variabeln "tal2" - //Kod här - - + tal2 = int.Parse(input2); //24. På en kod-rad skriv ut i konsolen mha string interpolation resultatet man //får av att multiplicera "tal1" och "tal2" med varandra. //Exempel: Givet att "tal1" = 2 och "tal2" = 10 ska det skrivas ut i konsolen: //Produkten av talen 2 och 10 är: 20 - //Kod här - + Console.WriteLine($"Produkten av talen {tal1} och {tal2} är: {tal1 * tal2}"); + Console.ReadLine(); } } From a16002c25817d5719834a1d147945a2873274285 Mon Sep 17 00:00:00 2001 From: wallenas Date: Wed, 9 Sep 2020 10:03:01 +0200 Subject: [PATCH 03/17] =?UTF-8?q?Inte=20klar!=20Test=20inf=C3=B6r=20upstre?= =?UTF-8?q?am!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift1/.vs/Uppgift1/v16/.suo | Bin 17920 -> 25600 bytes Uppgift2/Villkor_och_loopar/Program.cs | 73 ++++++++++++++++++++++++- Uppgift3/Klasser/Program.cs | 51 ++++++++++++++++- 3 files changed, 119 insertions(+), 5 deletions(-) diff --git a/Uppgift1/.vs/Uppgift1/v16/.suo b/Uppgift1/.vs/Uppgift1/v16/.suo index f8297f90b3727aa28681ca8de27df288e7d7daae..4b543f72cb8acb1c193042054fb914c80f617962 100644 GIT binary patch delta 1933 zcmb_c&2Jl35Z|}{$j0n$KJ3PhNfS456DP5gT|0GCaEcYDKx1eexsRSxg-)eT=o0)y@ zw==(att+f`mtEB|0w05d5WzV^dDQFm$V~HFo8K|$vG@CLc0c%1{o+2Gg^S`Z(tdPd zR1bzmvS5Y`NevpDQ1%V-l94u(d?(pxOyW9@(vLFW`<_Lu`13y0d6X2&C<^UCV;|11 zZKlGAm2_qf^#}_23aA%Q7Ev^mB+9ML3bVv>{jJOY1AAY#LO6ohhj7g?5%wqw$4=M? zJ7I{SCVbEMI*3#DV;;wuK)Z`Gc1fnaNDiP4F2^boEsD6X@5XMj|8y_2oiWkUI*Krh z@swQr)GLpp84}NuS1;X=C_OwPLdOWu9bH#g# z8Jwaa@ltyS%^T88Fru0aU(+Nj^IG_AG{g0^0!(Cb{aRl8^u^QXE^OI9WL{y`a0hDh zD^~nvX*&3^8E?p8G)x7IV?>cxQD~5pID6y4XZxp4{dOK$QnRbeZDy$*=!kkGjm~N4 zs&zSwGhPu7>cBTJmYRW%s)Lzo$V4OhF&b`wlWM@Os72_I9DFodm#JN7M;;Oh;X;OP z{3qB|HEef{|-LXkcnzUJ#LIpRM_rLt&55v z`VQ^{bGjjqp)nWu0-Wg$#ij0Wz#7$YkqE)ZGshK1JwrU@`*>uqy90gV&bauLYcbMh zJL6$!XAePTB5S{yz0P*ZqLp8h4%IeXx!nSZ8pDp36U<#-39b7L6?+O=$ z57ECZyyxB!YCRYLU$4C0r(s{>1GiV=Ou+XGcJ-(f25EIUmcV?_jmiXT?JGD~yTL+m zucj@m7ET(^Y507im-JHkNV8bb%EdEv$$nIOiMbt$ QTj5BxVe?o5jAP&a329qz6BZ-+SNte(!znGdGyI%GQc$ zp7TDH;{-Gr;!nHXCN^Zh7tXRL*9?olF;G0SDZG66iN#@s|0reAjZtl2u{;&lW)}X4dXiE*)d$l5c?1^VgQjuq!F}d9M=g%20=;=AaaO2 zg7V|{dg(eN*`L3C*t_ih{7sTg@<s(U$xt%I( zGb`bSf|JlC>T54xRD*MBQKYIbKx<-Co<@sm?S?oRU7~^M5=K^&4KF_7+huR z5q`ZWShcFcC~Gm02#lI0Q!?s#@5ow1;f^75FvuEnnoJ=yJ$|T2qdH`_atpk|Xa?xs zeJ2=GnoKiV2$IfJLtznQ{3#~YeaDgb%EP_s^9o1v;XjK`3r;nlnlS0={(B#>1%*3| z363CoLWXpSrn5^pLk(yqPJ=l-5A*5_%q9iVed4fla!x*qp;VY3&a$vlzAViIsSNxo zUvw22q)sgf?nHh+5r>HWgQb8ij-dDg%r3sO)MlskVju%Js_vd`M0F_@aC8#=j@9>8 zh%QYAHiI$T$%+**-fm^<%)K;v`hGcJLFD_izfr8Mvt9{t4` diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index 8c696c2..35e390c 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -1,20 +1,87 @@ using System; +using System.Collections.Generic; +using System.Globalization; +using System.Threading; + namespace Villkor_och_loopar { /// - - + + /// /// class Program { static void Main(string[] args) { - var x = Console.ReadLine(); + //Lista som tar emot int-array + List contestants = new List(); + + bool isRunning = true; + int startNr, startTimme, startMinut, startSekund, malTimme, malMinut, malSekund; + while (isRunning) + { + Console.Write("Ange startnummer: "); + startNr = Convert.ToInt32(Console.ReadLine()); + if (startNr < 1) + { + isRunning = false; + break; + } + + int[] runner = new int[7]; // Om startnummer är större än 0 så skapas en ny löpare + runner[0] = startNr; + + Console.Write("Ange timme för start: "); + startTimme = Convert.ToInt32(Console.ReadLine()); + runner[1] = startTimme; + + Console.Write("Ange minut för start: "); + startMinut = Convert.ToInt32(Console.ReadLine()); + runner[2] = startMinut; + + Console.Write("Ange sekund för start: "); + startSekund = Convert.ToInt32(Console.ReadLine()); + runner[3] = startSekund; + + Console.Write("Ange timme för mål: "); + malTimme = Convert.ToInt32(Console.ReadLine()); + runner[4] = malTimme; + + Console.Write("Ange minut för mål: "); + malMinut = Convert.ToInt32(Console.ReadLine()); + runner[5] = malMinut; + + Console.Write("Ange sekund för mål: "); + malSekund = Convert.ToInt32(Console.ReadLine()); + runner[6] = malSekund; + contestants.Add(runner); + + } + //contestants.Sort(); + //Console.WriteLine($"Startnr {contestants[0][0]} vann"); + Console.WriteLine("Nu är spelet slut"); + Console.ReadKey(); + } + + + + + public class Runner + { + public int StartNr { get; set; } + public int StartTimme { get; set; } + public int StartMinut { get; set; } + public int StartSekund { get; set; } + public int MalTimme { get; set; } + public int MalMinut { get; set; } + public int MalSekund { get; set; } + } } } + diff --git a/Uppgift3/Klasser/Program.cs b/Uppgift3/Klasser/Program.cs index df3b6de..92554d6 100644 --- a/Uppgift3/Klasser/Program.cs +++ b/Uppgift3/Klasser/Program.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Klasser { @@ -10,14 +11,60 @@ class Program /// static void Main(string[] args) { + List Billista = new List(); - Console.WriteLine("Hello World!"); + Bil BMW = new Bil + { + Model = "BMW Z3", + Vikt = 100, + Registrerades = DateTime.Now, + Elbil = false, + Registreringsnummer = "ABC 123" + }; + + Bil Tesla = new Bil + { + Model = "Tesla S-Series", + Vikt = 92, + Registrerades = DateTime.Now.ToString("2018-11-22"), + Elbil = true, + Registreringsnummer = "DEF 456" + }; + + Bil Volkswagen = new Bil + { + Model = "Volkswagen Passat", + Vikt = 110, + Registrerades = DateTime.Now, + Elbil = false, + Registreringsnummer = "GHI 789" + }; + + Billista.Add(BMW); + Billista.Add(Tesla); + Billista.Add(Volkswagen); + + foreach (var Bil in Billista) + { + Console.WriteLine(); + Console.WriteLine($"Model: {Bil.Model}"); + Console.WriteLine($"Vikt: {Bil.Vikt}"); + Console.WriteLine($"Registrerades: {Bil.Registrerades}"); + Console.WriteLine($"Registreringsnummer: {Bil.Registreringsnummer}"); + if (Bil.Elbil) + Console.WriteLine("Den här är miljövänlig!"); + + } + Console.ReadKey(); } } public class Bil { + public string Model { get; set; } + public int Vikt { get; set; } + public string Registrerades { get; set; } // Ändra eventuellt till string (public string Registrerades { get; set; } + public bool Elbil { get; set; } public string Registreringsnummer { get; set; } - } } \ No newline at end of file From 796caa47b70bb70f86d556c69e322f626053ebe4 Mon Sep 17 00:00:00 2001 From: wallenas Date: Mon, 14 Sep 2020 10:08:11 +0200 Subject: [PATCH 04/17] Uppgift 2 Klar --- Ovning_Villkor_och_Loopar_Grund/README.md | 23 +- Uppgift1/.vs/Uppgift1/v16/.suo | Bin 25600 -> 23040 bytes .../obj/Felande.csproj.nuget.dgspec.json | 2 +- Uppgift1/Felande/obj/project.assets.json | 2 +- Uppgift1/Felande/obj/project.nuget.cache | 2 +- .../Korrekt.csprojAssemblyReference.cache | Bin 424 -> 424 bytes .../obj/Korrekt.csproj.nuget.dgspec.json | 2 +- Uppgift1/Korrekt/obj/project.assets.json | 2 +- Uppgift1/Korrekt/obj/project.nuget.cache | 2 +- Uppgift2/Villkor_och_loopar/Program.cs | 278 ++++++++++++++---- Uppgift2/testdata.txt | 18 +- Uppgift3/Klasser/Program.cs | 30 +- 12 files changed, 291 insertions(+), 70 deletions(-) diff --git a/Ovning_Villkor_och_Loopar_Grund/README.md b/Ovning_Villkor_och_Loopar_Grund/README.md index 50b2216..c4ec32f 100644 --- a/Ovning_Villkor_och_Loopar_Grund/README.md +++ b/Ovning_Villkor_och_Loopar_Grund/README.md @@ -37,5 +37,24 @@ Se om du kan översätta funktionaliteten från while till en for-loop ### do-while -Om klar övningar ovan, prova även med en do-while-loop - +9. Skapa ett program där användaren skall mata in kontaktuppgifter. Ta emot alla värden i +variabler +a. Be användaren mata in sitt namn, gatuadress, postnummer och postort. +b. Kontrollera att alla uppgifter är ifyllda. Är dom det skall ett meddelande visas för +användaren som säger- Alla uppgifter ifyllda. Programmet avslutas sedan. +c. Om inte alla uppgifter är ifyllda skall man börja om med steg a-d. Kontrollera för +varje värde om just det värdet är ifyllt. Programmet skall inte be användaren mata in +ett värde som redan är inmatat. + + + +10. Skapa ett program där användaren skall logga in . Ta emot inmatade värden i variabler. +a. Skapa en konstant som innehåller användarnamn. Sätt värdet på den till abc123 +b. Skapa en konstant som innehåller lösenord. Sätt värdet på den till password +c. Skriv ett meddelande till användaren och be denne att ange användarnamn +d. Skriv ett meddelande till användaren och be denne att ange lösenord +e. Om användaren anger ett riktigt användarnamn och lösenord, visa ett meddelande +som säger- Du är inloggad. Avsluta programmet. +f. Om användaren anger felaktiga uppgifter , skriv ett meddelande på skärmen och +tala om vad som var felaktigt. Fråga om användaren vill försöka igen(J/N). Om svaret +är J skall inloggningen återupprepas \ No newline at end of file diff --git a/Uppgift1/.vs/Uppgift1/v16/.suo b/Uppgift1/.vs/Uppgift1/v16/.suo index 4b543f72cb8acb1c193042054fb914c80f617962..08f7d39df9405148ecd01d079f59db5b09633051 100644 GIT binary patch delta 1595 zcmbVM&ubG=5YBtqB-^@46O%Ma)5fGtf10L=N`HW0C9$?tn-y}>OF=#9MOaa9MJWpQ zU^D6;kb@o+l&m21U@dy6r-Fhf4~mEfPf9Kk+BlQlm!#5Cbm8Oe&YL&yo0)HRVVy0! zVE0m8++sd%i$%g$hS;iBt7Nt6Ytk{cJg*h_<(AKve!iN!{gK7sD*qspD|%IddE=m2 zmzWor6qsp6GX|?dUj%zQX9U&w3BOHi*2-m zA2EP9Xxivtn@Q70G%YK;({$Xw=*4rJc!p9Gk04CnMA(O*L==SZ`I|5$M}%pglA^T( z*DwOf2kPVl=H_nXLxOy%H7hBUTF5*>r7es}`gPYGR)|i+I!}NW&A}U{Rj77Wf^02N^d8?#wwYqzO@A!?|mz zFrKa5D3Uhp<9WHeaa$b90n~XN9l@BVh4ViRa_bqp0jY<6@%~q|)h(HPy zu6Amfgx%?#ak4Iak2P(A)|Zz_hr%1meK{vfnigTTrP1Jr8~w8iiI~JLwxB$b(=$Qa z9@1!=G1}wC=!1BiW~dRuttvFxG}U#Z=E=*pCWEc^M}dm}n{~wEhA-_avAY+dL-s54 zU!Q${y8iI!sl~NxFK_+`Z*IL`Jhz&>^~qs@HOUJbfi%O$Cb6+`UP?XTwj*PS^e8+( zl>E0y`o`fjZwSqtBB8C^QX!ggGU6}(K!zsv8aEpE?c)X&@9h7{&)|ge;~YD_N6}G1 zJ6653sp@*!qi|41UAim(ixsDMag-O6ymWTb&iwlE`BhfTOW?^qU`cqK9cDxDD4PU+ WA`_x0#uI!^A|=t#oLOP+eCZE8kTR(N delta 1851 zcmb_c-A@!(6u@wi&@U;tzE|%~ii!95m8iZ)0AP@wEVY?;R@EJmNDe{FYY3oKeD<7v~)9WhRrMFwK`n9&*U=^M#A+Q#aJ>Kk+8GD1MNu zF@>lMd|z4*hG(9a0hcPrD5PSFPLOQ~#c0&xx*V+#t=P`(LGQQc1?Zz_A+#zqI)g?K z=eI{f5)vd|vmbp08s%Eh$Ix2QG_*>zrIDlD6qAKB*WOIH;Pb&UgucKdoWCI&ZtA7D zb|?{bADTm*_7HWVP=uc7?Xta_reb4Wr5V6D(M%O}O9~xA-%Fm#X`YnQ)9NfYqbFcF z7zZOd>}O2~pyD|ou%dc)r&EbsBU+L&mB2xztxiRlwcScH28o1|0HZc3(-&<9EDSgu z%biu1lpEcM<8Mi~HQ9_k_h_sbev3V>`Q_>{^}(}n{hG(S`ZV^}$5TH?-@P{b#ewJQ z-EZgD?iui;wI>zm^YGRO<>Ud$*0r?zfI$Q3*|d?Cb)gWH?)Lt3+3* zpCrevWT~!@Zb@g^ATN*b5Ue*mgB1}4Yaj9?fskIeHZ|%BsfX0$1bu{(Sb8Jw6K3Ru zp9wqZ0KkYO<%nwsSP`U4Y9!S^#0XxC``CqbP{Wtdq5|4%WkZ83R6aEHxxc(3fZze~5Hf zVvutIH{a2CH}og&z}(m_-U6esmfSC_jiCTsLxIHUuNQiSsp3bAI6ek2tq%Bk7%}dv z4VIddeZJg^QG`@S_hs>sXxcbzG_2+;HSb0k+bGqWRVu7E_wVE-a%&F-8G&%PF?UW_ zhi`(K>As{#=Ktq+stlixU_5PgDV~K}>{(lbcj!(ixi>K|URgYy6Y diff --git a/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json b/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json index 4c7d395..ab1943a 100644 --- a/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json +++ b/Uppgift1/Felande/obj/Felande.csproj.nuget.dgspec.json @@ -52,7 +52,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.402\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Felande/obj/project.assets.json b/Uppgift1/Felande/obj/project.assets.json index 7dbcc40..ce60875 100644 --- a/Uppgift1/Felande/obj/project.assets.json +++ b/Uppgift1/Felande/obj/project.assets.json @@ -58,7 +58,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.402\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Felande/obj/project.nuget.cache b/Uppgift1/Felande/obj/project.nuget.cache index 7f59354..d18e452 100644 --- a/Uppgift1/Felande/obj/project.nuget.cache +++ b/Uppgift1/Felande/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "9lqaFj6gapOTngTU9Zjjol5o+MKMYae+ZS67fx+gFqD41/SFcqRRPPdwtE9DRKz+pXRBUmitRxF0yMzOuVC1Kg==", + "dgSpecHash": "z3ECYonJOKJi2Po/qG7FrjoiwgtxjUt1uhwlHa+MDdKJYWkLmEVxfp074DLEviRpz7zIsJkepwWW5tTngYuHzw==", "success": true, "projectFilePath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Felande\\Felande.csproj", "expectedPackageFiles": [], diff --git a/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.csprojAssemblyReference.cache b/Uppgift1/Korrekt/obj/Debug/netcoreapp3.1/Korrekt.csprojAssemblyReference.cache index a0fbfd12797557adefa2aaaacd9d5126dec64303..e23245258eaf6b6145a13830bacb66ca8fd7c885 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO@rw=E;GK;Q%5k1SkLi delta 14 VcmZ3%yn=ayKO<8T)8s(LZ~!3@1Ni^| diff --git a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json index cf77859..58413fb 100644 --- a/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json +++ b/Uppgift1/Korrekt/obj/Korrekt.csproj.nuget.dgspec.json @@ -52,7 +52,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.402\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Korrekt/obj/project.assets.json b/Uppgift1/Korrekt/obj/project.assets.json index 9ef05df..4ecd044 100644 --- a/Uppgift1/Korrekt/obj/project.assets.json +++ b/Uppgift1/Korrekt/obj/project.assets.json @@ -58,7 +58,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.401\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.402\\RuntimeIdentifierGraph.json" } } } diff --git a/Uppgift1/Korrekt/obj/project.nuget.cache b/Uppgift1/Korrekt/obj/project.nuget.cache index 07ba34a..1d2f014 100644 --- a/Uppgift1/Korrekt/obj/project.nuget.cache +++ b/Uppgift1/Korrekt/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "YuSnrq7IzTeBemMCOh1vZBXBaFk6ET0t7qLpy3US/Z8cWOlSSvKsZTVWkRezFqaser4c8QJcqXHE8L7YHLh54A==", + "dgSpecHash": "dnrPUF1C8lYAMdz4/9aKgHxKc4PWPSR616jjZcsTZFW+418IUNVnaSQekxRZyNleG/B+0drhBXVWUc8Ij8rhTw==", "success": true, "projectFilePath": "C:\\GitHub\\C-Sharp\\Uppgift1\\Korrekt\\Korrekt.csproj", "expectedPackageFiles": [], diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index 35e390c..517b1ed 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -16,72 +16,248 @@ class Program { static void Main(string[] args) { - //Lista som tar emot int-array - List contestants = new List(); - - bool isRunning = true; - int startNr, startTimme, startMinut, startSekund, malTimme, malMinut, malSekund; - while (isRunning) - { - Console.Write("Ange startnummer: "); - startNr = Convert.ToInt32(Console.ReadLine()); - if (startNr < 1) + + // Deklaration av variablar. Jag valde att sätta int bredvid för att tydligt se skillnaden på start/finish, leader och secondPlace + int startNumber = 0, + startHours = 0, + startMin = 0, + startSec = 0, + finishHours = 0, + finishMin = 0, + finishSec = 0; + int leaderStartNr = 0, + leaderHours = 0, + leaderMin = 0, + leaderSec = 0, + leaderSumInSeconds = 0; + int secondPlaceStartNr = 0, + secondPlaceHours = 0, + secondPlaceMin = 0, + secondPlaceSec = 0, + secondPlaceSumInSeconds = 0; + + int contestants = 0; + + // bool-värden för att huvudloop ska köras och bool-värde för inmatningsloopar + bool isRacing = true, isInputting; + + while (isRacing) + { + Console.WriteLine("\t---------------"); // För att få en renare utskrift + isInputting = true; + while (isInputting) { - isRunning = false; - break; + Console.Write("Ange startnummer: "); + if (!int.TryParse(Console.ReadLine(), out startNumber)) + Console.WriteLine("Felaktig inmatning!"); + + // Om startnummer är mindre än 1 så stoppas inmatning och går till utskrift + else if (startNumber < 1) + { + isRacing = false; + isInputting = false; + } + // Annars så tas startNumber emot och inmatning avslutas + else + isInputting = false; } + // Kollar om loppet fortfarande körs. Om inte (dvs om startNumber < 1) så bryts loopen + if (!isRacing) + break; - int[] runner = new int[7]; // Om startnummer är större än 0 så skapas en ny löpare - runner[0] = startNr; + // Här tar vi emot timme för start + isInputting = true; + do + { + Console.Write("Ange timme för start: "); + // Fångar upp felinmatning ELLER (startHour < 0) ELLER (startHour > 23). Liknande mönster på alla inmatningar + if (!int.TryParse(Console.ReadLine(), out startHours) || (startHours < 0 || startHours > 23)) + Console.WriteLine("Inkorrekt inmatning. Ange en timme mellan 00-23"); - Console.Write("Ange timme för start: "); - startTimme = Convert.ToInt32(Console.ReadLine()); - runner[1] = startTimme; - - Console.Write("Ange minut för start: "); - startMinut = Convert.ToInt32(Console.ReadLine()); - runner[2] = startMinut; + else + isInputting = false; + } + while (isInputting); - Console.Write("Ange sekund för start: "); - startSekund = Convert.ToInt32(Console.ReadLine()); - runner[3] = startSekund; + // Här tar vi emot minut för start + isInputting = true; + do + { + Console.Write("Ange minut för start: "); + if (!int.TryParse(Console.ReadLine(), out startMin) || (startMin < 0 || startMin > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en minut mellan 0-59"); + + else + isInputting = false; + } + while (isInputting); - Console.Write("Ange timme för mål: "); - malTimme = Convert.ToInt32(Console.ReadLine()); - runner[4] = malTimme; + // Här tar vi emot sekund för start + isInputting = true; + do + { + Console.Write("Ange sekund för start: "); + if (!int.TryParse(Console.ReadLine(), out startSec) || (startSec < 0 || startSec > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en sekund mellan 0-59"); - Console.Write("Ange minut för mål: "); - malMinut = Convert.ToInt32(Console.ReadLine()); - runner[5] = malMinut; + else + isInputting = false; + } + while (isInputting); - Console.Write("Ange sekund för mål: "); - malSekund = Convert.ToInt32(Console.ReadLine()); - runner[6] = malSekund; + // Här tar vi emot timme för mål + isInputting = true; + do + { + Console.Write("Ange timme för mål: "); + if (!int.TryParse(Console.ReadLine(), out finishHours) || (finishHours < 0 || finishHours > 23)) + Console.WriteLine("Inkorrekt inmatning. Ange en timme mellan 00-23"); + + else + isInputting = false; + } + while (isInputting); + // Här tar vi emot minut för mål + isInputting = true; + do + { + Console.Write("Ange minut för mål: "); + if (!int.TryParse(Console.ReadLine(), out finishMin) || (finishMin < 0 || finishMin > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en minut mellan 0-59"); + + else + isInputting = false; + } + while (isInputting); + + // Här tar vi emot sekund för mål + isInputting = true; + do + { + Console.Write("Ange sekund för mål: "); + if (!int.TryParse(Console.ReadLine(), out finishSec) || (finishSec < 0 || finishSec > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en sekund mellan 0-59"); + + else + isInputting = false; + } + while (isInputting); - contestants.Add(runner); + // Räknar ut och tilldelar den tävlandes sluttid i timmar, minuter och sekunder + int contestantHours = finishHours - startHours; + int contestantMin = finishMin - startMin; + int contestantSec = finishSec - startSec; + // Uträkningar för att fånga upp lopp som passerar midnatt + if (contestantHours < 0) + { + contestantHours += 24; + } + + if (contestantMin < 0) + { + contestantMin += 60; + contestantHours--; + } + + if (contestantSec < 0) + { + contestantSec += 60; + contestantMin--; + } + + // Omvandlar den tävlandes tid till sekunder för jämförelse av ledaren + int contestantSumInSeconds = contestantSec + (contestantHours * 3600) + (contestantMin * 60); + + // Jämför nuvarande tävlande mot ledaren i sekunder. + // OM nuvarande tävlande har bättre tid än ledaren SÅ ersätts ledaren av nuvarande tävlande + // Condition 2 för att fånga upp första loop (eftersom att ledareSluttidSekunder är instansierat till 0 utanför detta kodblock. + if (contestantSumInSeconds < leaderSumInSeconds || leaderSumInSeconds <= 0) + { + // Andraplats tilldelas förra ledaren, men inte under första iterering + if (leaderSumInSeconds > 0) + { + secondPlaceSumInSeconds = leaderSumInSeconds; + secondPlaceStartNr = leaderStartNr; + secondPlaceHours = leaderHours; + secondPlaceMin = leaderMin; + secondPlaceSec = leaderSec; + } + // Ersätter ledaren mot den tävlande + leaderSumInSeconds = contestantSumInSeconds; + leaderStartNr = startNumber; + leaderHours = contestantHours; + leaderMin = contestantMin; + leaderSec = contestantSec; + contestants++; // Plussar antal tävlande + } + + // OM tävlande har sämre tid än ledaren OCH tävlanden har bättre tid än andra plats, ELLER andra plats inte har tilldelats + // SÅ ersätts andraplats av nuvarande tävlande + else if ((contestantSumInSeconds > leaderSumInSeconds && + contestantSumInSeconds < secondPlaceSumInSeconds) || + secondPlaceSumInSeconds <= 0) + { + secondPlaceStartNr = startNumber; + secondPlaceHours = contestantHours; + secondPlaceMin = contestantMin; + secondPlaceSec = contestantSec; + contestants++; // Plussar antal tävlande + } + + // Om nuvarande tävlande har sämre tid än ledaren så plussar vi antalet tävlande + else if (contestantSumInSeconds >= leaderSumInSeconds) + contestants++; } - - //contestants.Sort(); - //Console.WriteLine($"Startnr {contestants[0][0]} vann"); - Console.WriteLine("Nu är spelet slut"); - Console.ReadKey(); - } - + // Skriv ut detta resultat OM det är fler än 1 tävlande + if (contestants > 1) + { + // Skriver ut vinnarens startnummer och resultat + Console.WriteLine($"\t---------------" + + $"\nVinnarens startnummer är: {leaderStartNr}" + + $"\nSluttid: " + + $"{leaderHours} timmar " + + $"{leaderMin} minuter " + + $"{leaderSec} sekunder "); + // Skriver ut andraplatsens startnummer, resultat och antal tävlande + Console.WriteLine($"\t---------------" + + $"\nDen näst bästas startnummer är: {secondPlaceStartNr}" + + $"\nSluttid: " + + $"{secondPlaceHours} timmar " + + $"{secondPlaceMin} minuter " + + $"{secondPlaceSec} sekunder " + + $"\nAntal tävlande: {contestants}" + + $"\nProgrammet avslutas..." + + $"\n\t---------------"); + Thread.Sleep(1000); + } - public class Runner - { - public int StartNr { get; set; } - public int StartTimme { get; set; } - public int StartMinut { get; set; } - public int StartSekund { get; set; } - public int MalTimme { get; set; } - public int MalMinut { get; set; } - public int MalSekund { get; set; } + else if (contestants < 1) + { + Console.WriteLine($"\t---------------" + + "Loppet hade inga deltagare! " + + "\nProgrammet avslutas..." + + "\n\t----------------"); + Thread.Sleep(1000); + } + // Skrivs ut om det bara är 1 tävlande. + else + { + // Skriver ut vinnarens startnummer och resultat + Console.WriteLine($"\t---------------" + + $"\nVinnarens startnummer är: {leaderStartNr}" + + $"\nSluttid: " + + $"{leaderHours} timmar " + + $"{leaderMin} minuter " + + $"{leaderSec} sekunder " + + $"\nAntal tävlande: {contestants}" + + $"\nProgrammet avslutas..." + + $"\n\t---------------"); + Thread.Sleep(1000); + } } } } - diff --git a/Uppgift2/testdata.txt b/Uppgift2/testdata.txt index 423754c..f207297 100644 --- a/Uppgift2/testdata.txt +++ b/Uppgift2/testdata.txt @@ -21,23 +21,37 @@ Testdata 2: Starttid? 00 30 15 Måltid? 19 22 35 Startnummer? -1 - Vinnare är startnr: 33 + Vinnare är startnr: 33 Tim: 18 Min: 52 Sek: 20 Antal tävlande: 1 Programmet avslutas Testdata 3: + ANDRA PLATS Startnummer? 33 Starttid? 17 30 15 Måltid? 18 22 35 + + + Sluttid: 0 timmar 52 minuter 20 sekunder + + VINNER Startnummer? 14 Starttid? 23 35 00 Måltid? 0 12 24 + + + Sluttid: 0 timmar 37 minuter 24 sekunder + + SIST Startnummer? 26 Starttid? 10 11 12 Måltid? 20 21 22 - Startnummer? -1 + + Sluttid: 10 timmar 10 minuter 10 sekunder + + Vinnare är startnr: 14 Tim: 0 Min: 37 Sek: 24 Antal tävlande: 3 diff --git a/Uppgift3/Klasser/Program.cs b/Uppgift3/Klasser/Program.cs index 92554d6..2d189c6 100644 --- a/Uppgift3/Klasser/Program.cs +++ b/Uppgift3/Klasser/Program.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Xml.Schema; namespace Klasser { @@ -13,18 +14,19 @@ static void Main(string[] args) { List Billista = new List(); + // Skapar fyra objekt av klassen Bil Bil BMW = new Bil { - Model = "BMW Z3", + Modell = "BMW Z3", Vikt = 100, - Registrerades = DateTime.Now, + Registrerades = DateTime.Now.ToString("2020-03-31"), Elbil = false, Registreringsnummer = "ABC 123" }; Bil Tesla = new Bil { - Model = "Tesla S-Series", + Modell = "Tesla S-Series", Vikt = 92, Registrerades = DateTime.Now.ToString("2018-11-22"), Elbil = true, @@ -33,21 +35,30 @@ static void Main(string[] args) Bil Volkswagen = new Bil { - Model = "Volkswagen Passat", + Modell = "Volkswagen Passat", Vikt = 110, - Registrerades = DateTime.Now, + Registrerades = DateTime.Now.ToString("2010-05-04"), Elbil = false, - Registreringsnummer = "GHI 789" + Registreringsnummer = "GHI789" }; + Bil Chevrolet = new Bil + { + Modell = "Chevrolet Volt", + Vikt = 115, + Registrerades = "2020-04-05", + Elbil = true, + Registreringsnummer = "JKL101" + }; Billista.Add(BMW); Billista.Add(Tesla); Billista.Add(Volkswagen); + Billista.Add(Chevrolet); foreach (var Bil in Billista) { Console.WriteLine(); - Console.WriteLine($"Model: {Bil.Model}"); + Console.WriteLine($"Model: {Bil.Modell}"); Console.WriteLine($"Vikt: {Bil.Vikt}"); Console.WriteLine($"Registrerades: {Bil.Registrerades}"); Console.WriteLine($"Registreringsnummer: {Bil.Registreringsnummer}"); @@ -59,11 +70,12 @@ static void Main(string[] args) } } + public class Modell() public class Bil { - public string Model { get; set; } + public string Modell { get; set; } public int Vikt { get; set; } - public string Registrerades { get; set; } // Ändra eventuellt till string (public string Registrerades { get; set; } + public string Registrerades { get; set; } public bool Elbil { get; set; } public string Registreringsnummer { get; set; } } From 50712ef5f9de5499e618b0a7c0b8a6355eda285a Mon Sep 17 00:00:00 2001 From: wallenas Date: Tue, 15 Sep 2020 10:15:21 +0200 Subject: [PATCH 05/17] Uppgift 2 uppdaterad. --- Uppgift2/Villkor_och_loopar/Program.cs | 31 +++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index 517b1ed..3813a90 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -6,12 +6,6 @@ namespace Villkor_och_loopar { - - /// - - - /// - /// class Program { static void Main(string[] args) @@ -39,13 +33,15 @@ static void Main(string[] args) int contestants = 0; // bool-värden för att huvudloop ska köras och bool-värde för inmatningsloopar - bool isRacing = true, isInputting; + bool isRacing = true, + isInputting; + while (isRacing) { Console.WriteLine("\t---------------"); // För att få en renare utskrift isInputting = true; - while (isInputting) + do { Console.Write("Ange startnummer: "); if (!int.TryParse(Console.ReadLine(), out startNumber)) @@ -61,6 +57,8 @@ static void Main(string[] args) else isInputting = false; } + while (isInputting); + // Kollar om loppet fortfarande körs. Om inte (dvs om startNumber < 1) så bryts loopen if (!isRacing) break; @@ -117,6 +115,7 @@ static void Main(string[] args) isInputting = false; } while (isInputting); + // Här tar vi emot minut för mål isInputting = true; do @@ -147,7 +146,7 @@ static void Main(string[] args) int contestantHours = finishHours - startHours; int contestantMin = finishMin - startMin; int contestantSec = finishSec - startSec; - + // Uträkningar för att fånga upp lopp som passerar midnatt if (contestantHours < 0) { @@ -165,8 +164,8 @@ static void Main(string[] args) contestantSec += 60; contestantMin--; } - - // Omvandlar den tävlandes tid till sekunder för jämförelse av ledaren + + // Omvandlar den tävlandes tid till sekunder för jämförelser int contestantSumInSeconds = contestantSec + (contestantHours * 3600) + (contestantMin * 60); // Jämför nuvarande tävlande mot ledaren i sekunder. @@ -174,7 +173,8 @@ static void Main(string[] args) // Condition 2 för att fånga upp första loop (eftersom att ledareSluttidSekunder är instansierat till 0 utanför detta kodblock. if (contestantSumInSeconds < leaderSumInSeconds || leaderSumInSeconds <= 0) { - // Andraplats tilldelas förra ledaren, men inte under första iterering + + // Andraplats tilldelas förra ledaren, men inte under första loppet if (leaderSumInSeconds > 0) { secondPlaceSumInSeconds = leaderSumInSeconds; @@ -183,6 +183,7 @@ static void Main(string[] args) secondPlaceMin = leaderMin; secondPlaceSec = leaderSec; } + // Ersätter ledaren mot den tävlande leaderSumInSeconds = contestantSumInSeconds; leaderStartNr = startNumber; @@ -198,6 +199,7 @@ static void Main(string[] args) contestantSumInSeconds < secondPlaceSumInSeconds) || secondPlaceSumInSeconds <= 0) { + secondPlaceSumInSeconds = contestantSumInSeconds; secondPlaceStartNr = startNumber; secondPlaceHours = contestantHours; secondPlaceMin = contestantMin; @@ -231,13 +233,13 @@ static void Main(string[] args) $"\nAntal tävlande: {contestants}" + $"\nProgrammet avslutas..." + $"\n\t---------------"); - Thread.Sleep(1000); + Thread.Sleep(1000); // ;) } else if (contestants < 1) { Console.WriteLine($"\t---------------" + - "Loppet hade inga deltagare! " + + "\nLoppet hade inga deltagare! " + "\nProgrammet avslutas..." + "\n\t----------------"); Thread.Sleep(1000); @@ -246,7 +248,6 @@ static void Main(string[] args) // Skrivs ut om det bara är 1 tävlande. else { - // Skriver ut vinnarens startnummer och resultat Console.WriteLine($"\t---------------" + $"\nVinnarens startnummer är: {leaderStartNr}" + $"\nSluttid: " + From bf3f6d1ee5cfaff2707fa995ef574ff152c15753 Mon Sep 17 00:00:00 2001 From: wallenas Date: Wed, 16 Sep 2020 11:41:03 +0200 Subject: [PATCH 06/17] Uppgift 2 FINAL --- Uppgift2/Villkor_och_loopar/Program.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index 3813a90..c23ee0b 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -12,7 +12,7 @@ static void Main(string[] args) { // Deklaration av variablar. Jag valde att sätta int bredvid för att tydligt se skillnaden på start/finish, leader och secondPlace - int startNumber = 0, + int startNumber = 0, startHours = 0, startMin = 0, startSec = 0, @@ -147,10 +147,11 @@ static void Main(string[] args) int contestantMin = finishMin - startMin; int contestantSec = finishSec - startSec; - // Uträkningar för att fånga upp lopp som passerar midnatt - if (contestantHours < 0) + // Uträkningar för att fånga upp lopp som passerar + if (contestantSec < 0) { - contestantHours += 24; + contestantSec += 60; + contestantMin--; } if (contestantMin < 0) @@ -159,12 +160,11 @@ static void Main(string[] args) contestantHours--; } - if (contestantSec < 0) + if (contestantHours < 0) { - contestantSec += 60; - contestantMin--; + contestantHours += 24; } - + // Omvandlar den tävlandes tid till sekunder för jämförelser int contestantSumInSeconds = contestantSec + (contestantHours * 3600) + (contestantMin * 60); From 6faefdb577391b1b2531e1c4fc2bd1740a26eba2 Mon Sep 17 00:00:00 2001 From: wallenas Date: Wed, 16 Sep 2020 12:00:21 +0200 Subject: [PATCH 07/17] Uppgift 2.... igen --- Uppgift2/Villkor_och_loopar/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index c23ee0b..e622a3a 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -147,7 +147,7 @@ static void Main(string[] args) int contestantMin = finishMin - startMin; int contestantSec = finishSec - startSec; - // Uträkningar för att fånga upp lopp som passerar + // Uträkningar för att fånga upp lopp som passerar midnatt if (contestantSec < 0) { contestantSec += 60; From 077519e9d96930354692694d4ab34a32093f410d Mon Sep 17 00:00:00 2001 From: wallenas Date: Wed, 23 Sep 2020 10:35:38 +0200 Subject: [PATCH 08/17] =?UTF-8?q?Uppgift=203=20Ska=20fixa=20till=20metoder?= =?UTF-8?q?=20f=C3=B6r=20inmatning.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift3/Klasser/Program.cs | 307 +++++++++++++++++++++++++++++------- 1 file changed, 254 insertions(+), 53 deletions(-) diff --git a/Uppgift3/Klasser/Program.cs b/Uppgift3/Klasser/Program.cs index 2d189c6..529c896 100644 --- a/Uppgift3/Klasser/Program.cs +++ b/Uppgift3/Klasser/Program.cs @@ -6,77 +6,278 @@ namespace Klasser { class Program { - /// - /// Se instruktionenr i Uppgift.txt - /// - /// + static void Main(string[] args) { - List Billista = new List(); + // Variabler för användare + string userName; + int userAge; + + // Variabler för bil + string modelName, licensePlate; + int weight; + bool electric = false, + isAddingPersons = true, + isAddingCars; + string registered; + + string answer; // Skapar fyra objekt av klassen Bil - Bil BMW = new Bil + Car BMW = new Car("BMW Z3") { - Modell = "BMW Z3", - Vikt = 100, - Registrerades = DateTime.Now.ToString("2020-03-31"), - Elbil = false, - Registreringsnummer = "ABC 123" + Weight = 100, + Registered = DateTime.Now.ToString("yyyy/MM/dd"), + Electric = false, + LicensePlate = "ABC123" }; - - Bil Tesla = new Bil + Car Tesla = new Car("Tesla s-series") { - Modell = "Tesla S-Series", - Vikt = 92, - Registrerades = DateTime.Now.ToString("2018-11-22"), - Elbil = true, - Registreringsnummer = "DEF 456" + Weight = 92, + Registered = DateTime.Now.ToShortDateString(), + Electric = true, + LicensePlate = "DEF456" }; - - Bil Volkswagen = new Bil + Car Volkswagen = new Car("Volskwagen Passat") { - Modell = "Volkswagen Passat", - Vikt = 110, - Registrerades = DateTime.Now.ToString("2010-05-04"), - Elbil = false, - Registreringsnummer = "GHI789" + Weight = 110, + Registered = DateTime.Now.ToShortDateString(), + Electric = false, + LicensePlate = "GHI789" }; - - Bil Chevrolet = new Bil + Car Chevrolet = new Car("Chevrolet") { - Modell = "Chevrolet Volt", - Vikt = 115, - Registrerades = "2020-04-05", - Elbil = true, - Registreringsnummer = "JKL101" + Weight = 115, + Registered = DateTime.Now.ToShortDateString(), + Electric = true, + LicensePlate = "JKL101" }; - Billista.Add(BMW); - Billista.Add(Tesla); - Billista.Add(Volkswagen); - Billista.Add(Chevrolet); - foreach (var Bil in Billista) + // Lista för de skapade objekten ovanför + List listOfCars = new List(); + // Lägger till de skapade objekten i listan + listOfCars.Add(BMW); + listOfCars.Add(Tesla); + listOfCars.Add(Volkswagen); + listOfCars.Add(Chevrolet); + + // Skriver ut de skapade objekten + Console.WriteLine("Skapade objekt innan programmet körs: "); + PrintCars(listOfCars); + + // Tar bort alla element i listan + listOfCars.Clear(); + + // Lista som tar emot klassen Person + List listOfUsers = new List(); + + do { - Console.WriteLine(); - Console.WriteLine($"Model: {Bil.Modell}"); - Console.WriteLine($"Vikt: {Bil.Vikt}"); - Console.WriteLine($"Registrerades: {Bil.Registrerades}"); - Console.WriteLine($"Registreringsnummer: {Bil.Registreringsnummer}"); - if (Bil.Elbil) - Console.WriteLine("Den här är miljövänlig!"); - - } + Console.WriteLine("\n\t----- LÄGG TILL PERSON -----"); + + Console.Write("Mata in användarnamn: "); + userName = Console.ReadLine(); + Console.Write("Mata in ålder: "); + int.TryParse(Console.ReadLine(), out userAge); + + // Skapar objekt av person-klassen + Person user = new Person(userName, userAge); + // Lägger till user i lista med användare. + listOfUsers.Add(user); + + isAddingCars = true; + do + { + Console.WriteLine($"\n\t----- REGISTRERA BIL TILL ANVÄNDARE {user.GetName().ToUpper()} -----"); + + Console.Write("Mata in modell: "); + modelName = Console.ReadLine(); + + Console.Write("Mata in vikt: "); + weight = int.Parse(Console.ReadLine()); + + // Registrering av fordon sker när applikationen körs + registered = DateTime.Now.ToShortDateString(); + + Console.Write("Mata in registreringsnummer: "); + licensePlate = Console.ReadLine().ToUpper(); + + Console.Write("Är det en elbil? j/n: "); + answer = Console.ReadLine().ToLower(); + // Om svar är j/J så sätts electric till true. + electric = answer == "j"; + + // Skapar nytt objekt av klassen car. + Car car = new Car(modelName, weight, registered, licensePlate, electric); + + + // Lägger in car i listan Cars + user.Cars.Add(car); + + Console.Write($"Vill du registrera fler bilar till {user.GetName()}? j/n: "); + answer = Console.ReadLine().ToLower(); + if (answer != "j") + { + isAddingCars = false; + + Console.Write("Vill du lägga till fler personer? j/n: "); + answer = Console.ReadLine().ToLower(); + if (answer != "j") + isAddingPersons = false; + + else + break; + } + + } while (isAddingCars); + } while (isAddingPersons); + + PrintUsersAndCars(listOfUsers); Console.ReadKey(); } + + + + + /// + /// Skriver ut alla bilar som finns i en lista. + /// + /// Lista med bilar som ska skrivas ut. + static void PrintCars(List listOfCars) + { + foreach (var cars in listOfCars) + cars.GetInfo(); + } + + /// + /// Skriver ut alla personer och bilarna de äger. + /// + /// Lista med användare + static void PrintUsersAndCars(List listOfUsers) + { + foreach (var user in listOfUsers) + { + Console.WriteLine($"\n\t{user.GetName()} är {user.GetAge()} år gammal och äger dessa bilar:"); + + foreach (var car in user.Cars) + { + car.GetInfo(); + } + } + } + + + } + + public class Car + { + // Fields + private string model; + private double odometer; + + // Properties + public int Weight { get; set; } + public string Registered { get; set; } + public bool Electric { get; set; } + public string LicensePlate { get; set; } + + /// + /// Adderar hur långt ett fordon har kört till milmätaren. + /// + /// Hur långt fordonet har kört + public void SetOdometer(double lengthDriven) + { + if (lengthDriven > 0) + { + odometer += lengthDriven; + } + + } + + /// + /// Hämtar milmätare. + /// + /// + public string GetOdometer() + { + return odometer.ToString(); + } + + /// + /// Skriver ut all information om en bil. + /// + public void GetInfo() + { + Console.WriteLine(); + Console.WriteLine($"Modell: {model}"); + Console.WriteLine($"Vikt: {Weight}"); + Console.WriteLine($"Registrerades: {Registered}"); + Console.WriteLine($"Registreringsnummer: {LicensePlate}"); + if (Electric) + Console.WriteLine("\"Detta är en elbil!\""); + } + + /// + /// Sätter modellen på bilen. + /// + /// Modellnamn. + public Car(string modelname) + { + this.model = modelname; + } + + /// + /// Sätter alla uppgifter om en bil. + /// + /// + /// + /// + /// + /// + public Car(string model, int weight, + string registered, + string licenseplate, + bool electric) + { + this.model = model; + this.Weight = weight; + this.Registered = registered; + this.LicensePlate = licenseplate; + this.Electric = electric; + } + } - public class Modell() - public class Bil + public class Person { - public string Modell { get; set; } - public int Vikt { get; set; } - public string Registrerades { get; set; } - public bool Elbil { get; set; } - public string Registreringsnummer { get; set; } + private string name; + private int age; + public List Cars { get; set; } + + /// + /// Hämtar en persons namn + /// + /// + public string GetName() + { + return name; + } + /// + /// Hämtar en persons ålder + /// + /// + public int GetAge() + { + return age; + } + + public Person(string name, int age) + { + this.name = name; + this.age = age; + Cars = new List(); + } + } + } \ No newline at end of file From cd367d12781a10f45f0538ae1bcda022ea0ccd51 Mon Sep 17 00:00:00 2001 From: wallenas Date: Thu, 24 Sep 2020 13:36:33 +0200 Subject: [PATCH 09/17] Uppgift 3: Klar och uppdaterad med metoder som har summaries. --- Uppgift3/Klasser/Program.cs | 217 +++++++++++++++++++++++------------- 1 file changed, 140 insertions(+), 77 deletions(-) diff --git a/Uppgift3/Klasser/Program.cs b/Uppgift3/Klasser/Program.cs index 529c896..559eed4 100644 --- a/Uppgift3/Klasser/Program.cs +++ b/Uppgift3/Klasser/Program.cs @@ -9,51 +9,37 @@ class Program static void Main(string[] args) { - // Variabler för användare - string userName; - int userAge; - - // Variabler för bil - string modelName, licensePlate; - int weight; - bool electric = false, - isAddingPersons = true, - isAddingCars; - string registered; - - string answer; - // Skapar fyra objekt av klassen Bil Car BMW = new Car("BMW Z3") { - Weight = 100, + WeightInKG = 1000, Registered = DateTime.Now.ToString("yyyy/MM/dd"), Electric = false, LicensePlate = "ABC123" }; Car Tesla = new Car("Tesla s-series") { - Weight = 92, - Registered = DateTime.Now.ToShortDateString(), + WeightInKG = 920, + Registered = DateTime.Now.ToString("yyyy/MM/dd"), Electric = true, LicensePlate = "DEF456" }; Car Volkswagen = new Car("Volskwagen Passat") { - Weight = 110, - Registered = DateTime.Now.ToShortDateString(), + WeightInKG = 1100, + Registered = DateTime.Now.ToString("yyyy/MM/dd"), Electric = false, LicensePlate = "GHI789" }; - Car Chevrolet = new Car("Chevrolet") + Car Chevrolet = new Car("Chevrolet Volt") { - Weight = 115, - Registered = DateTime.Now.ToShortDateString(), + WeightInKG = 1150, + Registered = DateTime.Now.ToString("yyyy/MM/dd"), Electric = true, LicensePlate = "JKL101" }; - // Lista för de skapade objekten ovanför + // Lista för de skapade objekten List listOfCars = new List(); // Lägger till de skapade objekten i listan listOfCars.Add(BMW); @@ -65,57 +51,47 @@ static void Main(string[] args) Console.WriteLine("Skapade objekt innan programmet körs: "); PrintCars(listOfCars); + Console.WriteLine("\n\tTryck på en knapp för att fortsätta..."); + Console.ReadKey(); + Console.Clear(); + // Tar bort alla element i listan listOfCars.Clear(); - // Lista som tar emot klassen Person + // Lista som tar emot objekt av klassen Person List listOfUsers = new List(); - + + // Start av huvudprogram (skapa obegränsat antal personer och tilldela bilar till dem) + var isAddingPersons = true; do { Console.WriteLine("\n\t----- LÄGG TILL PERSON -----"); + var userName = SetName("Mata in namn: "); + var userAge = SetAgeOrWeight("Mata in ålder: "); - Console.Write("Mata in användarnamn: "); - userName = Console.ReadLine(); - Console.Write("Mata in ålder: "); - int.TryParse(Console.ReadLine(), out userAge); - - // Skapar objekt av person-klassen + // Skapar objekt av klassen Person Person user = new Person(userName, userAge); // Lägger till user i lista med användare. listOfUsers.Add(user); - isAddingCars = true; + var isAddingCars = true; do { - Console.WriteLine($"\n\t----- REGISTRERA BIL TILL ANVÄNDARE {user.GetName().ToUpper()} -----"); - - Console.Write("Mata in modell: "); - modelName = Console.ReadLine(); - - Console.Write("Mata in vikt: "); - weight = int.Parse(Console.ReadLine()); - - // Registrering av fordon sker när applikationen körs - registered = DateTime.Now.ToShortDateString(); - - Console.Write("Mata in registreringsnummer: "); - licensePlate = Console.ReadLine().ToUpper(); - - Console.Write("Är det en elbil? j/n: "); - answer = Console.ReadLine().ToLower(); - // Om svar är j/J så sätts electric till true. - electric = answer == "j"; + Console.WriteLine($"\n\t----- REGISTRERA BIL TILL ANVÄNDARE \"{user.GetName().ToUpper()}\" -----"); + var modelName = SetName("Mata in modell: "); + var weight = SetAgeOrWeight("Mata in vikt: "); + var licensePlate = SetLicensePlate("Mata in registreringsnummer: "); + var isElectric = SetBool("Är det en elbil? j/n: "); + var registered = DateTime.Now.ToString("yyyy/MM/dd"); // Registrering av fordon sker när applikationen körs // Skapar nytt objekt av klassen car. - Car car = new Car(modelName, weight, registered, licensePlate, electric); + Car car = new Car(modelName, weight, registered, licensePlate, isElectric); - - // Lägger in car i listan Cars + // Lägger in car i användarlistan Cars user.Cars.Add(car); Console.Write($"Vill du registrera fler bilar till {user.GetName()}? j/n: "); - answer = Console.ReadLine().ToLower(); + var answer = Console.ReadLine().ToLower(); if (answer != "j") { isAddingCars = false; @@ -133,27 +109,28 @@ static void Main(string[] args) } while (isAddingPersons); PrintUsersAndCars(listOfUsers); - Console.ReadKey(); + Console.ReadKey(); // Avslutar program } + - + // Metoder /// /// Skriver ut alla bilar som finns i en lista. /// /// Lista med bilar som ska skrivas ut. - static void PrintCars(List listOfCars) + public static void PrintCars(List listOfCars) { - foreach (var cars in listOfCars) - cars.GetInfo(); + foreach (var car in listOfCars) + car.GetInfo(); } /// /// Skriver ut alla personer och bilarna de äger. /// - /// Lista med användare - static void PrintUsersAndCars(List listOfUsers) + /// Lista med användare. + public static void PrintUsersAndCars(List listOfUsers) { foreach (var user in listOfUsers) { @@ -165,18 +142,103 @@ static void PrintUsersAndCars(List listOfUsers) } } } + /// + /// Frågar användaren om vad som ska matas in och sätter ett strängvärde, och tvingar bokstäverna till upper-case. + /// + /// Frågan som ska ställas till användaren. + /// String + public static string SetLicensePlate(string question) + { + var isInputting = true; + string licensePlate; + do + { + Console.Write(question); + licensePlate = Console.ReadLine().ToUpper(); + if (String.IsNullOrEmpty(licensePlate)) + Console.WriteLine("Du måste mata in något!"); + else + isInputting = false; + + } while (isInputting); + + return licensePlate; + } + + /// + /// Frågar användaren om vad som ska matas in och sätter ett heltal. + /// + /// Frågan som ska ställas till användaren + /// Integer + public static int SetAgeOrWeight(string question) + { + var isInputting = true; + int ageOrWeight; + do + { + Console.Write(question); + if (!int.TryParse(Console.ReadLine(), out ageOrWeight)) + Console.WriteLine("Du måste mata in ett heltal!"); + + else + isInputting = false; + + + } while (isInputting); + + return ageOrWeight; + } + + /// + /// Frågar användaren om vad som ska matas in och sätter ett strängvärde + /// + /// Frågan som ska ställas till användaren + /// String + public static string SetName(string question) + { + var isInputting = true; + string name; + do + { + Console.Write(question); + name = Console.ReadLine(); + if (String.IsNullOrEmpty(name)) + Console.WriteLine("Du matade inte in något!"); + + else + isInputting = false; + + } while (isInputting); + + return name; + } + /// + /// Frågar användaren och returnerar ett bool-värde. + /// + /// Frågan som ska ställas. Frågan måste innehålla j/n + /// Boolean + public static bool SetBool(string questionJorN) + { + + Console.Write(questionJorN); + var answer = Console.ReadLine().ToLower(); + + // Om svar är j/J så sätts electric till true. + var electric = (answer == "j"); + return electric; + } } - public class Car + public class Car { // Fields - private string model; - private double odometer; + public string _model; + private decimal _odometer; // Properties - public int Weight { get; set; } + public int WeightInKG { get; set; } public string Registered { get; set; } public bool Electric { get; set; } public string LicensePlate { get; set; } @@ -185,22 +247,22 @@ public class Car /// Adderar hur långt ett fordon har kört till milmätaren. /// /// Hur långt fordonet har kört - public void SetOdometer(double lengthDriven) + public void SetOdometer(decimal lengthDriven) { if (lengthDriven > 0) { - odometer += lengthDriven; + _odometer += lengthDriven; } } /// - /// Hämtar milmätare. + /// Hämtar milmätaren och omvandlar till string. /// - /// + /// String public string GetOdometer() { - return odometer.ToString(); + return _odometer.ToString(); } /// @@ -209,8 +271,8 @@ public string GetOdometer() public void GetInfo() { Console.WriteLine(); - Console.WriteLine($"Modell: {model}"); - Console.WriteLine($"Vikt: {Weight}"); + Console.WriteLine($"Modell: {_model}"); + Console.WriteLine($"Vikt: {WeightInKG}kg"); Console.WriteLine($"Registrerades: {Registered}"); Console.WriteLine($"Registreringsnummer: {LicensePlate}"); if (Electric) @@ -223,7 +285,7 @@ public void GetInfo() /// Modellnamn. public Car(string modelname) { - this.model = modelname; + _model = modelname; } /// @@ -239,8 +301,8 @@ public Car(string model, int weight, string licenseplate, bool electric) { - this.model = model; - this.Weight = weight; + this._model = model; + this.WeightInKG = weight; this.Registered = registered; this.LicensePlate = licenseplate; this.Electric = electric; @@ -257,7 +319,7 @@ public class Person /// /// Hämtar en persons namn /// - /// + /// String public string GetName() { return name; @@ -265,12 +327,13 @@ public string GetName() /// /// Hämtar en persons ålder /// - /// + /// Integer public int GetAge() { return age; } + public Person(string name, int age) { this.name = name; From 2eb1487e8518a897869629e5666af683f926337c Mon Sep 17 00:00:00 2001 From: wallenas Date: Fri, 25 Sep 2020 14:10:11 +0200 Subject: [PATCH 10/17] Uppgift 3 Implementerat #region (fan vad fint). --- Uppgift3/Klasser/Car.cs | 85 +++++++++++++++ Uppgift3/Klasser/Person.cs | 38 +++++++ Uppgift3/Klasser/Program.cs | 208 ++++++++---------------------------- 3 files changed, 170 insertions(+), 161 deletions(-) create mode 100644 Uppgift3/Klasser/Car.cs create mode 100644 Uppgift3/Klasser/Person.cs diff --git a/Uppgift3/Klasser/Car.cs b/Uppgift3/Klasser/Car.cs new file mode 100644 index 0000000..4c28355 --- /dev/null +++ b/Uppgift3/Klasser/Car.cs @@ -0,0 +1,85 @@ +using System; + +namespace Klasser +{ + public class Car + { + // Fields + public string _model; + private decimal _odometer; + + // Properties + public int WeightInKG { get; set; } + public string Registered { get; set; } + public bool IsElectric { get; set; } + public string LicensePlate { get; set; } + + /// + /// Sätter modellen på bilen. + /// + /// Modellnamn. + public Car(string modelname) + { + _model = modelname; + } + + /// + /// Sätter alla uppgifter om en bil. + /// + /// + /// + /// + /// + /// + public Car(string model, int weight, + string registered, + string licenseplate, + bool electric) + { + this._model = model; + this.WeightInKG = weight; + this.Registered = registered; + this.LicensePlate = licenseplate; + this.IsElectric = electric; + } + + /// + /// Adderar hur långt ett fordon har kört till milmätaren. + /// + /// Hur långt fordonet har kört + public void SetOdometer(decimal lengthDriven) + { + if (lengthDriven > 0) + { + _odometer += lengthDriven; + } + + } + + /// + /// Hämtar milmätaren och omvandlar till string. + /// + /// String + public string GetOdometer() + { + return _odometer.ToString(); + } + + /// + /// Skriver ut all information om en bil. + /// + public void GetInfo() + { + Console.WriteLine(); + Console.WriteLine($"Modell: {_model}"); + Console.WriteLine($"Vikt: {WeightInKG}kg"); + Console.WriteLine($"Registrerades: {Registered}"); + Console.WriteLine($"Registreringsnummer: {LicensePlate}"); + if (IsElectric) + Console.WriteLine("\"Detta är en elbil!\""); + } + + + } + +} \ No newline at end of file diff --git a/Uppgift3/Klasser/Person.cs b/Uppgift3/Klasser/Person.cs new file mode 100644 index 0000000..e029700 --- /dev/null +++ b/Uppgift3/Klasser/Person.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; + +namespace Klasser +{ + public class Person + { + private string _name; + private int _age; + public List Cars { get; set; } + + /// + /// Hämtar en persons namn + /// + /// String + public string GetName() + { + return _name; + } + /// + /// Hämtar en persons ålder + /// + /// Integer + public int GetAge() + { + return _age; + } + + + public Person(string name, int age) + { + this._name = name; + this._age = age; + Cars = new List(); + } + + } + +} \ No newline at end of file diff --git a/Uppgift3/Klasser/Program.cs b/Uppgift3/Klasser/Program.cs index 559eed4..7581454 100644 --- a/Uppgift3/Klasser/Program.cs +++ b/Uppgift3/Klasser/Program.cs @@ -9,45 +9,41 @@ class Program static void Main(string[] args) { - // Skapar fyra objekt av klassen Bil - Car BMW = new Car("BMW Z3") - { - WeightInKG = 1000, - Registered = DateTime.Now.ToString("yyyy/MM/dd"), - Electric = false, - LicensePlate = "ABC123" - }; - Car Tesla = new Car("Tesla s-series") - { - WeightInKG = 920, - Registered = DateTime.Now.ToString("yyyy/MM/dd"), - Electric = true, - LicensePlate = "DEF456" - }; - Car Volkswagen = new Car("Volskwagen Passat") - { - WeightInKG = 1100, - Registered = DateTime.Now.ToString("yyyy/MM/dd"), - Electric = false, - LicensePlate = "GHI789" - }; - Car Chevrolet = new Car("Chevrolet Volt") - { - WeightInKG = 1150, - Registered = DateTime.Now.ToString("yyyy/MM/dd"), - Electric = true, - LicensePlate = "JKL101" - }; - // Lista för de skapade objekten + #region Skapar fyra objekt av klassen Bil + Car BMW = new Car("BMW Z3", + 1000, + DateTime.Now.ToString("yyyy/MM/dd"), + "ABC123", + false); + Car Tesla = new Car("Tesla s-series", + 920, + DateTime.Now.ToString("yyyy/MM/dd"), + "DEF456", + true); + Car Volkswagen = new Car("Volskwagen Passat", + 1100, + DateTime.Now.ToString("yyyy/MM/dd"), + "GHI789", + false); + Car Chevrolet = new Car("Chevrolet Volt", + 1150, + DateTime.Now.ToString("yyyy/MM/dd"), + "JKL101", + true); + #endregion + + // Skapar lista för de skapade bil-objekten List listOfCars = new List(); - // Lägger till de skapade objekten i listan + #region Lägger till de skapade objekten i listan listOfCars.Add(BMW); listOfCars.Add(Tesla); listOfCars.Add(Volkswagen); listOfCars.Add(Chevrolet); + #endregion + - // Skriver ut de skapade objekten + #region Skriver ut de skapade objekten Console.WriteLine("Skapade objekt innan programmet körs: "); PrintCars(listOfCars); @@ -57,39 +53,42 @@ static void Main(string[] args) // Tar bort alla element i listan listOfCars.Clear(); + #endregion // Lista som tar emot objekt av klassen Person List listOfUsers = new List(); - + // Start av huvudprogram (skapa obegränsat antal personer och tilldela bilar till dem) var isAddingPersons = true; do { + #region Samlar in data om användaren Console.WriteLine("\n\t----- LÄGG TILL PERSON -----"); var userName = SetName("Mata in namn: "); var userAge = SetAgeOrWeight("Mata in ålder: "); - // Skapar objekt av klassen Person - Person user = new Person(userName, userAge); - // Lägger till user i lista med användare. - listOfUsers.Add(user); + Person user = new Person(userName, userAge); // Skapar objekt av klassen Person + listOfUsers.Add(user); // Lägger till user i lista med användare. + #endregion var isAddingCars = true; do { + #region Samlar in data om bilen Console.WriteLine($"\n\t----- REGISTRERA BIL TILL ANVÄNDARE \"{user.GetName().ToUpper()}\" -----"); var modelName = SetName("Mata in modell: "); var weight = SetAgeOrWeight("Mata in vikt: "); var licensePlate = SetLicensePlate("Mata in registreringsnummer: "); var isElectric = SetBool("Är det en elbil? j/n: "); var registered = DateTime.Now.ToString("yyyy/MM/dd"); // Registrering av fordon sker när applikationen körs + #endregion // Skapar nytt objekt av klassen car. Car car = new Car(modelName, weight, registered, licensePlate, isElectric); + user.Cars.Add(car); // Lägger in car i användarlistan Cars - // Lägger in car i användarlistan Cars - user.Cars.Add(car); - + // Om användaren inte vill registrera fler bilar så frågar vi om den vill lägga till fler personer + // Om inte, skriv ut all data vi har och avsluta. Console.Write($"Vill du registrera fler bilar till {user.GetName()}? j/n: "); var answer = Console.ReadLine().ToLower(); if (answer != "j") @@ -106,16 +105,15 @@ static void Main(string[] args) } } while (isAddingCars); + } while (isAddingPersons); - + PrintUsersAndCars(listOfUsers); Console.ReadKey(); // Avslutar program } - + #region Metoder - - // Metoder /// /// Skriver ut alla bilar som finns i en lista. /// @@ -180,10 +178,10 @@ public static int SetAgeOrWeight(string question) Console.Write(question); if (!int.TryParse(Console.ReadLine(), out ageOrWeight)) Console.WriteLine("Du måste mata in ett heltal!"); - + else isInputting = false; - + } while (isInputting); @@ -220,127 +218,15 @@ public static string SetName(string question) /// Boolean public static bool SetBool(string questionJorN) { - + Console.Write(questionJorN); var answer = Console.ReadLine().ToLower(); - + // Om svar är j/J så sätts electric till true. var electric = (answer == "j"); return electric; } - - } - - public class Car - { - // Fields - public string _model; - private decimal _odometer; - - // Properties - public int WeightInKG { get; set; } - public string Registered { get; set; } - public bool Electric { get; set; } - public string LicensePlate { get; set; } - - /// - /// Adderar hur långt ett fordon har kört till milmätaren. - /// - /// Hur långt fordonet har kört - public void SetOdometer(decimal lengthDriven) - { - if (lengthDriven > 0) - { - _odometer += lengthDriven; - } - - } - - /// - /// Hämtar milmätaren och omvandlar till string. - /// - /// String - public string GetOdometer() - { - return _odometer.ToString(); - } - - /// - /// Skriver ut all information om en bil. - /// - public void GetInfo() - { - Console.WriteLine(); - Console.WriteLine($"Modell: {_model}"); - Console.WriteLine($"Vikt: {WeightInKG}kg"); - Console.WriteLine($"Registrerades: {Registered}"); - Console.WriteLine($"Registreringsnummer: {LicensePlate}"); - if (Electric) - Console.WriteLine("\"Detta är en elbil!\""); - } - - /// - /// Sätter modellen på bilen. - /// - /// Modellnamn. - public Car(string modelname) - { - _model = modelname; - } - - /// - /// Sätter alla uppgifter om en bil. - /// - /// - /// - /// - /// - /// - public Car(string model, int weight, - string registered, - string licenseplate, - bool electric) - { - this._model = model; - this.WeightInKG = weight; - this.Registered = registered; - this.LicensePlate = licenseplate; - this.Electric = electric; - } - - } - - public class Person - { - private string name; - private int age; - public List Cars { get; set; } - - /// - /// Hämtar en persons namn - /// - /// String - public string GetName() - { - return name; - } - /// - /// Hämtar en persons ålder - /// - /// Integer - public int GetAge() - { - return age; - } - - - public Person(string name, int age) - { - this.name = name; - this.age = age; - Cars = new List(); - } - + #endregion } } \ No newline at end of file From 87ac9e3f0744eab8441ce7a2e65835c8ef340dc1 Mon Sep 17 00:00:00 2001 From: wallenas Date: Mon, 28 Sep 2020 20:35:55 +0200 Subject: [PATCH 11/17] =?UTF-8?q?Uppgift=204=20Programmet=20kan=20hittills?= =?UTF-8?q?:=20=20-L=C3=A4gga=20till=20fordon=20till=20verkstaden=20=20-Ta?= =?UTF-8?q?=20bort=20fordon=20med=20hj=C3=A4lp=20av=20registreringsnummer?= =?UTF-8?q?=20=20-Skriva=20ut=20alla=20fordon=20med=20information.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Behöver: -Fler funktioner (t ex hitta på problem på fordonen som verkstaden "lagar") -Städa upp case 2: "Ta bort fordon", med hjälp av metoder. --- Ovning_Klasser/README.md | 4 +- Ovning_Samlingar_och_Loopar/README.md | 32 +- Uppgift3/Uppgift.txt | 1 + .../ArvOchAbstraktion.csproj | 4 + Uppgift4/ArvOchAbstraktion/IVerkstad.cs | 14 + Uppgift4/ArvOchAbstraktion/Program.cs | 195 +++++++++- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 345 ++++++++++++++++++ Uppgift4/Klasser/Bus.cs | 28 ++ Uppgift4/Klasser/Car.cs | 30 ++ Uppgift4/Klasser/Class1.cs | 8 - Uppgift4/Klasser/Motorcycle.cs | 29 ++ Uppgift4/Klasser/Truck.cs | 27 ++ Uppgift4/Klasser/Vehicle.cs | 55 +++ 13 files changed, 752 insertions(+), 20 deletions(-) create mode 100644 Uppgift4/ArvOchAbstraktion/IVerkstad.cs create mode 100644 Uppgift4/ArvOchAbstraktion/Verkstad.cs create mode 100644 Uppgift4/Klasser/Bus.cs create mode 100644 Uppgift4/Klasser/Car.cs delete mode 100644 Uppgift4/Klasser/Class1.cs create mode 100644 Uppgift4/Klasser/Motorcycle.cs create mode 100644 Uppgift4/Klasser/Truck.cs create mode 100644 Uppgift4/Klasser/Vehicle.cs diff --git a/Ovning_Klasser/README.md b/Ovning_Klasser/README.md index db7cab8..f0ea41c 100644 --- a/Ovning_Klasser/README.md +++ b/Ovning_Klasser/README.md @@ -21,7 +21,7 @@ DEL 1 DEL 2 1. Gör samtliga fält i Person-klassen private. (Kommentera ut om du störs av editorn) -2. Lägg till en metod i Person-klassen som heter GetInfo(). Metoden ska behöver inte retunera någonting men den ska skriva ut all fakta du hittills samlat om personen. +2. Lägg till en metod i Person-klassen som heter GetInfo(). Metoden behöver inte retunera någonting men den ska skriva ut all fakta du hittills samlat om personen. 3. Lägg till en metod i Person-klassen som heter som heter GetAge(). Metoden ska returnera en värdet på en persons ålder (inte skriva ut direkt i konsol-applikationen). 4. Lägg till en fråga i programmet som lyder "Vill du veta personens ålder?", om användaren skriver j, använd GetAge() metoden och skriv ut värdet i konsolen. 5. Om du inte redan gjort det. Ändra den sista delen av konsol-applikation till att använda GetInfo(). @@ -71,7 +71,7 @@ DEL 2 Namn, Land (som djuret bor i, en sträng) och ålder (heltal) 2. Skapa en struct Tiger med samma egenskaper som Lejon: Namn, Land (som djuret bor i, en sträng) och ålder (heltal) -3. Be mata en egenskaperna för de bägge djuren. +3. Be användaren mata in egenskaperna för de bägge djuren. 4. Av vardera djur, skapa upp en tvilling (en kopia) genom att deklarera en ny variabel och tilldela den värdet av det ursprungliga djuret. Dvs lejon2 = lejon1, och likdant för tigern. 5. Be användaren ange ett namn för vardera tvilling. diff --git a/Ovning_Samlingar_och_Loopar/README.md b/Ovning_Samlingar_och_Loopar/README.md index 1b97153..15176fa 100644 --- a/Ovning_Samlingar_och_Loopar/README.md +++ b/Ovning_Samlingar_och_Loopar/README.md @@ -18,23 +18,39 @@ Om klar: Testa liknande funktionalitet med en Dictionary för eleverna i varje k List och nån array -1. Skapa ett program där användaren får upp ett antal frågor där den får ange uppgifter om sitt favorithusdjur, Namn, typ (hund, katt osv) födelsedatum, smeknamn, favoritmänniska. Spara värdena i en List. Fråga sedan användaren huruvida angivna uppgifter stämmer och skriv återigen ut de på skärmen. +1. Skapa ett program där användaren får upp ett antal frågor där den får ange uppgifter om sitt favorithusdjur, Namn, typ (hund, katt osv) födelsedatum, smeknamn, favoritmänniska. +Spara värdena i en List. Fråga sedan användaren huruvida angivna uppgifter stämmer och skriv återigen ut de på skärmen. -2. Deklarera en array med plats för 7 heltal. Be användare att ange sju värde som du lagrar i arrayen. Loopa över arrayen och byt alla udda tal mot talet 0. Skriv ut innehållet i arrayen på skärmen. +2. Deklarera en array med plats för 7 heltal. Be användare att ange sju värde som du lagrar i arrayen. +Loopa över arrayen och byt alla udda tal mot talet 0. Skriv ut innehållet i arrayen på skärmen. 2.b Beräkna median och medelvärde för arrayen och skriv ut de också. -3. Skapa ett program där användaren ombeds ange 6 heltal efter varandra. Lagra talen i en List. Iterera över listan för att ta ut det högsta talet. Skriv ut det högsta talet på skärmen tillbaka till användaren. +3. Skapa ett program där användaren ombeds ange 6 heltal efter varandra. Lagra talen i en List. +Iterera över listan för att ta ut det högsta talet. Skriv ut det högsta talet på skärmen tillbaka till användaren. -5. Skapa en lista innehållandes maratontider. Användaren ska kunna ange hur många tider hen vill. Användaren ombeds skriva ‘klar’ för få sluta ange tider. Tiderna anges i decimaltal. Skriv ut alla tider och avsluta med att ange en den bästa tiden (lägst), den sämsta samt medeltiden. +5. Skapa en lista innehållandes maratontider. Användaren ska kunna ange hur många tider hen vill. +Användaren ombeds skriva ‘klar’ för få sluta ange tider. Tiderna anges i decimaltal. +Skriv ut alla tider och avsluta med att ange en den bästa tiden (lägst), den sämsta samt medeltiden. -6.a Skapa en konsol applikation där användaren får ange sina husdjur. Djuren kan vara av tre olika arter: hund, katt och kanin. Samtliga djur ska ha ett namn och en ålder. Dessutom ska alla arter kunna springa (en metod som skriver ut “Whoo jag springer”), äta (en metod som skriver ut “Nu är jag mätt!”) och svara på sin ålder (metod som retunerar ett heltal). Ålder metoden skiljer sig åt mellan arterna. För en hund gäller att svaret från metoden ska vara (den faktiska åldern) * 7, för en katt (den faktiska åldern) * 5 och för en kanin (den faktiska åldern) * 15. Lagra alla djuren som användaren anger i en lista. Använd er utav arv. +6.a Skapa en konsol applikation där användaren får ange sina husdjur. Djuren kan vara av tre olika arter: hund, katt och kanin. +Samtliga djur ska ha ett namn och en ålder. Dessutom ska alla arter kunna springa +(en metod som skriver ut “Whoo jag springer”), äta (en metod som skriver ut “Nu är jag mätt!”) och svara på sin ålder (metod som retunerar ett heltal). +Ålder metoden skiljer sig åt mellan arterna. För en hund gäller att svaret från metoden ska vara (den faktiska åldern) * 7, +för en katt (den faktiska åldern) * 5 och för en kanin (den faktiska åldern) * 15. +Lagra alla djuren som användaren anger i en lista. Använd er utav arv. -6.b Efter det att användare angett alla sina husdjur skall denne ges möjlighet att interagera med sina små älsklingar. Användaren ska kunna göra det ange följande kommandon: namn - alla djuren säger sitt namn (skriver ut i consol:n), ålder - alla djuren skriver ut sin ålder (som kalkyleras olika beroende på art), springa samt äta som skall fungerar enligt ovan. +6.b Efter det att användare angett alla sina husdjur skall denne ges möjlighet att interagera med sina små älsklingar. +Användaren ska kunna göra det ange följande kommandon: +namn - alla djuren säger sitt namn (skriver ut i consol:n), +ålder - alla djuren skriver ut sin ålder (som kalkyleras olika beroende på art), +springa samt äta som skall fungerar enligt ovan. -6.c Överkurs möjligen. Gör det möjligt att kommunicera med endast ett djur åt gången. Enligt följande exempel. Findo ålder - vilket ska resultera i att endast Fido (givet att användaren har ett djur som heter så) skriver ut sin ålder på skärmen. +6.c Överkurs möjligen. Gör det möjligt att kommunicera med endast ett djur åt gången. Enligt följande exempel. +Fido ålder - vilket ska resultera i att endast Fido (givet att användaren har ett djur som heter så) skriver ut sin ålder på skärmen. -7. Låt användaren mata in en inköpslista. Denna skall lösas med en array så börja med att fråga hur många varor användare avser inhandla. Skapa en loop och iterera så en gång per vara som användaren avser skriva in. Ställ tre frågor för samtliga varor- Vad heter varan – Vilket produktnummer har varan - Vilket pris har varan. Lagra dessa variabler i ett objekt av en egenskapad typ vid namn “Vara”. Lägg sedan in objektet i listan. Iterera över alla objekt och skriv ut relevant information om samtliga varor. +7. Låt användaren mata in en inköpslista. Denna skall lösas med en array så börja med att fråga hur många varor användare avser inhandla. +Skapa en loop och iterera så en gång per vara som användaren avser skriva in. Ställ tre frågor för samtliga varor- Vad heter varan – Vilket produktnummer har varan - Vilket pris har varan. Lagra dessa variabler i ett objekt av en egenskapad typ vid namn “Vara”. Lägg sedan in objektet i listan. Iterera över alla objekt och skriv ut relevant information om samtliga varor. 7.b Testa att “override:a” ToString() - metoden för klassen “Vara” och använd den för att skriva ut relevant information. diff --git a/Uppgift3/Uppgift.txt b/Uppgift3/Uppgift.txt index b02a301..330599d 100644 --- a/Uppgift3/Uppgift.txt +++ b/Uppgift3/Uppgift.txt @@ -21,6 +21,7 @@ Sedan itererar (loopar) du igenom listan av bilar och skriver ut informationen o Om en bil är miljövänlig (dvs är en elbil) skriver du ut ett extra meddelande på skärmen (i stil med "Detta är en elbil!") Om klar se extra uppfigter nedan! + Nedan ser du klassen Bil. Det är en bra start, men den är inte komplett! Bilar klassen saknar följande uppgifter: Properties: diff --git a/Uppgift4/ArvOchAbstraktion/ArvOchAbstraktion.csproj b/Uppgift4/ArvOchAbstraktion/ArvOchAbstraktion.csproj index c73e0d1..d16ab6b 100644 --- a/Uppgift4/ArvOchAbstraktion/ArvOchAbstraktion.csproj +++ b/Uppgift4/ArvOchAbstraktion/ArvOchAbstraktion.csproj @@ -5,4 +5,8 @@ netcoreapp3.1 + + + + diff --git a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs new file mode 100644 index 0000000..c18c2d4 --- /dev/null +++ b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs @@ -0,0 +1,14 @@ +using Klasser; +using System; +using System.Collections.Generic; +using System.Text; + +namespace ArvOchAbstraktion +{ + public interface IVerkstad + { + void AddVehicle(Vehicle vehicle); + void RemoveVehicle(Vehicle vehicle); + + } +} diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index ddeace9..c69a9ca 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -1,4 +1,8 @@ -using System; +using Klasser; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Threading; namespace ArvOchAbstraktion { @@ -6,7 +10,194 @@ class Program { static void Main(string[] args) { - Console.WriteLine("Hello World!"); + Verkstad verkstad = new Verkstad(); + + var isRunning = true; + while (isRunning) + { + PrintMainMenu(); + int.TryParse(Console.ReadLine(), out int menuInput); + + switch (menuInput) + { + + case 1: + #region Lägg till fordon + + var isAddingVehicle = true; + while (isAddingVehicle) + { + PrintAddVehicleMenu(); + int.TryParse(Console.ReadLine(), out menuInput); + + switch (menuInput) + { + // Bil + case 1: + #region Lägg till bil + + var car = new Car(); + verkstad.AddVehicle(car); + + BackToMenu(); + break; + #endregion + + // Motorcykel + case 2: + #region Lägg till motorcykel + + var motorcycle = new Motorcycle(); + verkstad.AddVehicle(motorcycle); + + BackToMenu(); + break; + #endregion + + //Lastbil + case 3: + #region Lägg till lastbil + + var truck = new Truck(); + verkstad.AddVehicle(truck); + + BackToMenu(); + break; + #endregion + + //Buss + case 4: + #region Lägg till buss + + var bus = new Bus(); + verkstad.AddVehicle(bus); + + BackToMenu(); + break; + #endregion + + //Tillbaka till huvudmenyn + case 5: + isAddingVehicle = false; + break; + + default: + Console.WriteLine("Du måste välja ur något av alternativen."); + BackToMenu(); + break; + + } + } + #endregion + break; + + case 2: + #region Ta bort fordon + + foreach (var vehicle in verkstad.ListOfVehicles) + { + Console.WriteLine($"\nFordonstyp: {vehicle.GetVehicleType()}" + + $"\nModell: {vehicle.ModelName}" + + $"\nRegistreringsnummer: {vehicle.LicensePlate}"); + } + + Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); + string licensePlateToMatch = Console.ReadLine().ToUpper(); + licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); + + Vehicle vehicleToRemove = null; + + foreach (var vehicle in verkstad.ListOfVehicles) + { + if (licensePlateToMatch == vehicle.LicensePlate) + { + vehicleToRemove = vehicle; + break; + } + } + + if (vehicleToRemove != null) + { + verkstad.ListOfVehicles.Remove(vehicleToRemove); + Console.WriteLine($"Tog bort fordonet av typen {vehicleToRemove.GetVehicleType()} " + + $"med registreringsnummer {vehicleToRemove.LicensePlate}"); + } + + else + { + Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); + } + + BackToMenu(); + #endregion + break; + + case 3: + //Skriv ut alla fordon i verkstaden + foreach (var vehicle in verkstad.ListOfVehicles) + { + vehicle.PrintInfo(); + } + + + BackToMenu(); + break; + + case 4: + #region Avsluta program + Console.WriteLine("Avslutar program..."); + Thread.Sleep(1000); + isRunning = false; + break; + #endregion + + default: + Console.WriteLine("Du måste välja ur alternativen."); + BackToMenu(); + break; + } + } + + + } + + #region Metoder för menyer + /// + /// Går tillbaka till menyn + /// + static void BackToMenu() + { + Console.WriteLine("\nTryck på enter för att fortsätta..."); + Console.ReadKey(); } + + /// + /// Skriver ut huvudmeny + /// + static void PrintMainMenu() + { + Console.Clear(); + Console.WriteLine("----VÄLKOMMEN TILL VERKSTADEN----"); + Console.WriteLine("[1] Lägg till fordon" + + "\n[2] Ta bort fordon" + + "\n[3] Skriv ut alla fordon i verkstaden" + + "\n[4] Avsluta program"); + } + + /// + /// Skriver ut menyn där användaren lägger till fordon i verkstaden. + /// + static void PrintAddVehicleMenu() + { + Console.Clear(); + Console.WriteLine("Vad för typ av fordon vill du lägga till?" + + "\n[1] Bil" + + "\n[2] Motorcykel" + + "\n[3] Lastbil" + + "\n[4] Buss" + + "\n[5] Tillbaka till huvudmenyn"); + } + #endregion + } } diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs new file mode 100644 index 0000000..f4ad098 --- /dev/null +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -0,0 +1,345 @@ +using Klasser; +using System; +using System.Collections.Generic; +using System.Text; + +namespace ArvOchAbstraktion +{ + public class Verkstad : IVerkstad + { + private List _listOfVehicles; + public List ListOfVehicles + { + get + { + if (_listOfVehicles == null) + { + _listOfVehicles = new List(); + } + return _listOfVehicles; + } + + set + { + _listOfVehicles = value; + } + } + + public void AddVehicle(Vehicle vehicle) + { + if (vehicle is Car) + AddCar(vehicle as Car); + + else if (vehicle is Motorcycle) + AddMotorcycle(vehicle as Motorcycle); + + else if (vehicle is Truck) + AddTruck(vehicle as Truck); + + else if (vehicle is Bus) + AddBus(vehicle as Bus); + } + + + public void RemoveVehicle(Vehicle vehicle) + { + ListOfVehicles.Remove(vehicle); + } + + public int GetNumberOfVehicles() + { + return ListOfVehicles.Count; + } + + #region Metoder för att lägga till fordon + private void AddCar(Car car) + { + var isAdding = true; + while (isAdding) + { + Console.Clear(); + Console.WriteLine("----LÄGG TILL BIL----"); + car.ModelName = ReadName("Mata in modellnamn: "); + car.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + car.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + car.HasTowbar = ReadBool("Har bilen en dragkrok? j/n: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + car.SetOdometer(lengthDriven); + + car.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("Stämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + ListOfVehicles.Add(car); + Console.WriteLine("Bil tillagd!"); + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + } while (isAnswering); + } + } + + private void AddMotorcycle(Motorcycle motorcycle) + { + var isAdding = true; + while (isAdding) + { + Console.Clear(); + Console.WriteLine("----LÄGG TILL MOTORCYKEL----"); + motorcycle.ModelName = ReadName("Mata in modellnamn: "); + motorcycle.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + motorcycle.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + motorcycle.MaxSpeed = ReadInteger("Mata in maxhastighet i km/h: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + motorcycle.SetOdometer(lengthDriven); + + motorcycle.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("Stämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + ListOfVehicles.Add(motorcycle); + Console.WriteLine("Motorcykel tillagd!"); + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + } while (isAnswering); + + } + } + + private void AddTruck(Truck truck) + { + var isAdding = true; + while (isAdding) + { + Console.Clear(); + Console.WriteLine("----LÄGG TILL LASTBIL----"); + truck.ModelName = ReadName("Mata in modellnamn: "); + truck.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + truck.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + truck.MaxLoadInKG = ReadInteger("Mata in maxlast i kg: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + truck.SetOdometer(lengthDriven); + + truck.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("Stämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + ListOfVehicles.Add(truck); + Console.WriteLine("\nLastbil tillagd!"); + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + + else + { + isAnswering = false; + break; + } + } while (isAnswering); + } + } + + private void AddBus(Bus bus) + { + var isAdding = true; + while (isAdding) + { + Console.Clear(); + Console.WriteLine("----LÄGG TILL BUSS----"); + bus.ModelName = ReadName("Mata in modellnamn: "); + bus.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + bus.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + bus.MaxAmountOfPassengers = ReadInteger("Mata in max antal passagerare: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + bus.SetOdometer(lengthDriven); + + bus.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("Stämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + ListOfVehicles.Add(bus); + Console.WriteLine("\nBuss tillagd!"); + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + + else + { + isAnswering = false; + break; + } + } while (isAnswering); + } + } + #endregion + + #region Metoder för inmatning + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string. + /// + /// Vad konsolen ska skriva ut för fråga + /// String + private string ReadName(string whatToWrite) + { + string name; + var isSettingName = true; + do + { + Console.Write(whatToWrite); + name = Console.ReadLine(); + if (string.IsNullOrEmpty(name)) + Console.WriteLine("Du måste mata in något."); + + else + isSettingName = false; + + } while (isSettingName); + + return name; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string i versaler + /// + /// + /// + private string ReadLicensePlate(string whatToWrite) + { + string licensePlate; + var isSettingLicensePlate = true; + do + { + Console.Write(whatToWrite); + licensePlate = Console.ReadLine().ToUpper(); + licensePlate = licensePlate.Replace(" ", ""); + if (string.IsNullOrEmpty(licensePlate)) + Console.WriteLine("Du måste mata in något."); + + else + isSettingLicensePlate = false; + + } while (isSettingLicensePlate); + + return licensePlate; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i bool. + /// + /// Vad konsolen ska skriva ut för fråga + /// True/false + private bool ReadBool(string whatToWriteWithJorNquestion) + { + + bool hasSomething = false; + var isSettingBool = true; + do + { + Console.Write(whatToWriteWithJorNquestion); + var answer = Console.ReadLine().ToLower(); + if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara på frågan."); + + else + { + hasSomething = (answer == "j"); + isSettingBool = false; + } + + } while (isSettingBool); + + return hasSomething; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i integer. + /// + /// Vad konsolen ska skriva ut för fråga + /// Integer + private int ReadInteger(string whatToWrite) + { + int valueToSet = 0; + var isSettingInt = true; + do + { + Console.Write(whatToWrite); + if (!int.TryParse(Console.ReadLine(), out valueToSet)) + Console.WriteLine("Du måste mata in ett heltal."); + + else if (valueToSet < 0) + Console.WriteLine("Värdet kan inte vara minus."); + + else + isSettingInt = false; + + } while (isSettingInt); + + return valueToSet; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i decimal. + /// + /// Vad konsolen ska skriva ut för fråga + /// Decimaltal + private decimal ReadDecimal(string whatToWrite) + { + decimal valueToSet = 0; + var IsSettingDecimal = true; + do + { + Console.Write(whatToWrite); + if (!Decimal.TryParse(Console.ReadLine(), out valueToSet)) + Console.WriteLine("Du måste mata in ett tal."); + + else if (valueToSet < 0) + Console.WriteLine("Värdet kan inte vara minus."); + + else + IsSettingDecimal = false; + + } while (IsSettingDecimal); + + return valueToSet; + } + #endregion + + } +} diff --git a/Uppgift4/Klasser/Bus.cs b/Uppgift4/Klasser/Bus.cs new file mode 100644 index 0000000..c162119 --- /dev/null +++ b/Uppgift4/Klasser/Bus.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Klasser +{ + public class Bus : Vehicle + { + public int MaxAmountOfPassengers { get; set; } + + public Bus(string modelName, string licensePlate, string registrationDate, int maxAmountOfPassengers) : base(modelName, licensePlate, registrationDate) + { + MaxAmountOfPassengers = maxAmountOfPassengers; + _typeOfVehicle = "Buss"; + } + + public Bus() + { + _typeOfVehicle = "Buss"; + } + + public override void PrintInfo() + { + base.PrintInfo(); + Console.WriteLine($"Max antal passangerare: {MaxAmountOfPassengers}"); + } + } +} diff --git a/Uppgift4/Klasser/Car.cs b/Uppgift4/Klasser/Car.cs new file mode 100644 index 0000000..9f6c4b2 --- /dev/null +++ b/Uppgift4/Klasser/Car.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Klasser +{ + public class Car : Vehicle + { + public bool HasTowbar { get; set; } + + public Car(string modelName, string licensePlate, string registrationDate, bool hasTowbar) : base(modelName, licensePlate, registrationDate) + { + HasTowbar = hasTowbar; + _typeOfVehicle = "Bil"; + } + + public Car() + { + _typeOfVehicle = "Bil"; + } + + public override void PrintInfo() + { + base.PrintInfo(); + if (HasTowbar) + Console.WriteLine("Bilen har dragkrok."); + } + + } +} diff --git a/Uppgift4/Klasser/Class1.cs b/Uppgift4/Klasser/Class1.cs deleted file mode 100644 index dbc44ef..0000000 --- a/Uppgift4/Klasser/Class1.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -namespace Klasser -{ - public class Class1 - { - } -} diff --git a/Uppgift4/Klasser/Motorcycle.cs b/Uppgift4/Klasser/Motorcycle.cs new file mode 100644 index 0000000..d217ccd --- /dev/null +++ b/Uppgift4/Klasser/Motorcycle.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Klasser +{ + public class Motorcycle : Vehicle + { + public int MaxSpeed { get; set; } + + + public Motorcycle(string modelName, string licensePlate, string registrationDate, int maxSpeed) : base(modelName, licensePlate, registrationDate) + { + MaxSpeed = maxSpeed; + _typeOfVehicle = "Motorcykel"; + } + + public Motorcycle() + { + _typeOfVehicle = "Motorcykel"; + } + public override void PrintInfo() + { + base.PrintInfo(); + Console.WriteLine($"Maxhastighet: {MaxSpeed}km/h"); + } + + } +} diff --git a/Uppgift4/Klasser/Truck.cs b/Uppgift4/Klasser/Truck.cs new file mode 100644 index 0000000..9c9e9f0 --- /dev/null +++ b/Uppgift4/Klasser/Truck.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Klasser +{ + public class Truck : Vehicle + { + public int MaxLoadInKG { get; set; } + + public Truck(string modelName, string licensePlate, string registrationDate, int maxLoadInKG) : base(modelName, licensePlate, registrationDate) + { + MaxLoadInKG = maxLoadInKG; + _typeOfVehicle = "Lastbil"; + } + + public Truck() + { + _typeOfVehicle = "Lastbil"; + } + public override void PrintInfo() + { + base.PrintInfo(); + Console.WriteLine($"Maxlast: {MaxLoadInKG}KG"); + } + } +} diff --git a/Uppgift4/Klasser/Vehicle.cs b/Uppgift4/Klasser/Vehicle.cs new file mode 100644 index 0000000..276c115 --- /dev/null +++ b/Uppgift4/Klasser/Vehicle.cs @@ -0,0 +1,55 @@ +using System; + +namespace Klasser +{ + public abstract class Vehicle + { + protected decimal _odometer; + + protected string _typeOfVehicle; + public string ModelName { get; set; } + public string LicensePlate { get; set; } + public string RegistrationDate { get; set; } + + public Vehicle(string modelName, string licensePlate, string registrationDate) + { + ModelName = modelName; + LicensePlate = licensePlate; + RegistrationDate = registrationDate; + } + + public Vehicle() + { + + } + + public void SetOdometer(decimal lengthDriven) + { + if (lengthDriven > 0) + { + _odometer += lengthDriven; + } + } + + public decimal GetOdometer() + { + return _odometer; + } + + public virtual void PrintInfo() + { + Console.WriteLine("\t----------"); + Console.WriteLine($"Typ av fordon: {_typeOfVehicle}" + + $"\nNamn: {ModelName}" + + $"\nRegistreringsnummer: {LicensePlate}" + + $"\nRegisterades: {RegistrationDate}" + + $"\nMilmätare: {_odometer} mil"); + } + + public string GetVehicleType() + { + return _typeOfVehicle; + } + + } +} From 9de9f6cfdc7266cd2ac6de75601624908fca9492 Mon Sep 17 00:00:00 2001 From: wallenas Date: Tue, 29 Sep 2020 18:33:29 +0200 Subject: [PATCH 12/17] =?UTF-8?q?Uppgift=204:=20-Case=202=20st=C3=A4dat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift4/ArvOchAbstraktion/IVerkstad.cs | 2 +- Uppgift4/ArvOchAbstraktion/Program.cs | 51 ++++--------------- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 65 ++++++++++++++++++++----- Uppgift4/Klasser/Bus.cs | 14 ++++-- Uppgift4/Klasser/Car.cs | 18 ++++--- Uppgift4/Klasser/Motorcycle.cs | 15 ++++-- Uppgift4/Klasser/Truck.cs | 15 ++++-- Uppgift4/Klasser/Vehicle.cs | 24 +++++++-- 8 files changed, 125 insertions(+), 79 deletions(-) diff --git a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs index c18c2d4..721d37a 100644 --- a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs @@ -8,7 +8,7 @@ namespace ArvOchAbstraktion public interface IVerkstad { void AddVehicle(Vehicle vehicle); - void RemoveVehicle(Vehicle vehicle); + void RemoveVehicle(); } } diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index c69a9ca..929218f 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -32,7 +32,6 @@ static void Main(string[] args) switch (menuInput) { - // Bil case 1: #region Lägg till bil @@ -43,7 +42,6 @@ static void Main(string[] args) break; #endregion - // Motorcykel case 2: #region Lägg till motorcykel @@ -54,7 +52,6 @@ static void Main(string[] args) break; #endregion - //Lastbil case 3: #region Lägg till lastbil @@ -65,7 +62,6 @@ static void Main(string[] args) break; #endregion - //Buss case 4: #region Lägg till buss @@ -76,8 +72,8 @@ static void Main(string[] args) break; #endregion - //Tillbaka till huvudmenyn case 5: + // Tillbaka till huvudmenyn isAddingVehicle = false; break; @@ -89,44 +85,17 @@ static void Main(string[] args) } } #endregion - break; case 2: #region Ta bort fordon - foreach (var vehicle in verkstad.ListOfVehicles) - { - Console.WriteLine($"\nFordonstyp: {vehicle.GetVehicleType()}" + - $"\nModell: {vehicle.ModelName}" + - $"\nRegistreringsnummer: {vehicle.LicensePlate}"); - } - - Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); - string licensePlateToMatch = Console.ReadLine().ToUpper(); - licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); - - Vehicle vehicleToRemove = null; - - foreach (var vehicle in verkstad.ListOfVehicles) - { - if (licensePlateToMatch == vehicle.LicensePlate) - { - vehicleToRemove = vehicle; - break; - } - } - - if (vehicleToRemove != null) - { - verkstad.ListOfVehicles.Remove(vehicleToRemove); - Console.WriteLine($"Tog bort fordonet av typen {vehicleToRemove.GetVehicleType()} " + - $"med registreringsnummer {vehicleToRemove.LicensePlate}"); - } + Console.Clear(); + Console.WriteLine("---- TA BORT FORDON ----"); + if (verkstad.ListOfVehicles.Count == 0) + Console.WriteLine("Det finns inga fordon inne i verkstaden. "); else - { - Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); - } + verkstad.RemoveVehicle(); BackToMenu(); #endregion @@ -134,22 +103,22 @@ static void Main(string[] args) case 3: //Skriv ut alla fordon i verkstaden + Console.Clear(); foreach (var vehicle in verkstad.ListOfVehicles) - { vehicle.PrintInfo(); - } - BackToMenu(); break; case 4: #region Avsluta program + Console.WriteLine("Avslutar program..."); Thread.Sleep(1000); isRunning = false; break; - #endregion + + #endregion default: Console.WriteLine("Du måste välja ur alternativen."); diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs index f4ad098..bb35b3d 100644 --- a/Uppgift4/ArvOchAbstraktion/Verkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -25,6 +25,10 @@ public List ListOfVehicles } } + /// + /// Lägger till ett fordon till verkstaden. + /// + /// Typ av fordon public void AddVehicle(Vehicle vehicle) { if (vehicle is Car) @@ -41,14 +45,51 @@ public void AddVehicle(Vehicle vehicle) } - public void RemoveVehicle(Vehicle vehicle) + /// + /// Skriver ut alla fordon i verkstaden och tar bort ett fordon ur verkstaden med hjälp av registreringsnummer. + /// + public void RemoveVehicle() { - ListOfVehicles.Remove(vehicle); - } + Console.WriteLine("Är du säker på att du vill ta bort ett fordon? j/n: "); + var answer = Console.ReadLine().ToLower(); + + if (answer == "j") + { + foreach (var vehicle in ListOfVehicles) + vehicle.PrintInfo(); + + Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); + string licensePlateToMatch = Console.ReadLine().ToUpper(); + licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); + + Vehicle vehicleToRemove = null; + + foreach (var vehicle in ListOfVehicles) + { + if (licensePlateToMatch == vehicle.LicensePlate) + { + vehicleToRemove = vehicle; + break; + } + } + + if (vehicleToRemove != null) + { + ListOfVehicles.Remove(vehicleToRemove); + Console.WriteLine($"Fordon: {vehicleToRemove.GetVehicleType()} " + + $"med registreringsnummer: {vehicleToRemove.LicensePlate}" + + $"\ntogs bort från verkstaden."); + } + + else + { + Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); + } + } + + + - public int GetNumberOfVehicles() - { - return ListOfVehicles.Count; } #region Metoder för att lägga till fordon @@ -71,14 +112,14 @@ private void AddCar(Car car) var isAnswering = true; do { - Console.Write("Stämmer dessa uppgifter? j/n: "); + Console.Write("\nStämmer dessa uppgifter? j/n: "); var answer = Console.ReadLine().ToLower(); if (answer == "j") { isAdding = false; isAnswering = false; ListOfVehicles.Add(car); - Console.WriteLine("Bil tillagd!"); + Console.WriteLine("\nBil tillagd!"); break; } @@ -107,14 +148,14 @@ private void AddMotorcycle(Motorcycle motorcycle) var isAnswering = true; do { - Console.Write("Stämmer dessa uppgifter? j/n: "); + Console.Write("\nStämmer dessa uppgifter? j/n: "); var answer = Console.ReadLine().ToLower(); if (answer == "j") { isAdding = false; isAnswering = false; ListOfVehicles.Add(motorcycle); - Console.WriteLine("Motorcykel tillagd!"); + Console.WriteLine("\nMotorcykel tillagd!"); break; } @@ -144,7 +185,7 @@ private void AddTruck(Truck truck) var isAnswering = true; do { - Console.Write("Stämmer dessa uppgifter? j/n: "); + Console.Write("\nStämmer dessa uppgifter? j/n: "); var answer = Console.ReadLine().ToLower(); if (answer == "j") { @@ -186,7 +227,7 @@ private void AddBus(Bus bus) var isAnswering = true; do { - Console.Write("Stämmer dessa uppgifter? j/n: "); + Console.Write("\nStämmer dessa uppgifter? j/n: "); var answer = Console.ReadLine().ToLower(); if (answer == "j") { diff --git a/Uppgift4/Klasser/Bus.cs b/Uppgift4/Klasser/Bus.cs index c162119..7377021 100644 --- a/Uppgift4/Klasser/Bus.cs +++ b/Uppgift4/Klasser/Bus.cs @@ -8,17 +8,21 @@ public class Bus : Vehicle { public int MaxAmountOfPassengers { get; set; } - public Bus(string modelName, string licensePlate, string registrationDate, int maxAmountOfPassengers) : base(modelName, licensePlate, registrationDate) - { - MaxAmountOfPassengers = maxAmountOfPassengers; - _typeOfVehicle = "Buss"; - } + //public Bus(string modelName, string licensePlate, string registrationDate, int maxAmountOfPassengers) : base(modelName, licensePlate, registrationDate) + //{ + // MaxAmountOfPassengers = maxAmountOfPassengers; + // _typeOfVehicle = "Buss"; + //} public Bus() { _typeOfVehicle = "Buss"; } + /// + /// Skriver ut all information om en buss. + /// Skriver ut max antal passagerare. + /// public override void PrintInfo() { base.PrintInfo(); diff --git a/Uppgift4/Klasser/Car.cs b/Uppgift4/Klasser/Car.cs index 9f6c4b2..7e61177 100644 --- a/Uppgift4/Klasser/Car.cs +++ b/Uppgift4/Klasser/Car.cs @@ -8,22 +8,28 @@ public class Car : Vehicle { public bool HasTowbar { get; set; } - public Car(string modelName, string licensePlate, string registrationDate, bool hasTowbar) : base(modelName, licensePlate, registrationDate) - { - HasTowbar = hasTowbar; - _typeOfVehicle = "Bil"; - } + //public Car(string modelName, string licensePlate, string registrationDate, bool hasTowbar) : base(modelName, licensePlate, registrationDate) + //{ + // HasTowbar = hasTowbar; + // _typeOfVehicle = "Bil"; + //} public Car() { _typeOfVehicle = "Bil"; } + /// + /// Skriver ut all information om bilen. + /// Skriver ut om bilen har dragkrok + /// public override void PrintInfo() { base.PrintInfo(); if (HasTowbar) - Console.WriteLine("Bilen har dragkrok."); + Console.WriteLine("Dragkrok: JA"); + else + Console.WriteLine("Dragkrok: NEJ"); } } diff --git a/Uppgift4/Klasser/Motorcycle.cs b/Uppgift4/Klasser/Motorcycle.cs index d217ccd..a9f4239 100644 --- a/Uppgift4/Klasser/Motorcycle.cs +++ b/Uppgift4/Klasser/Motorcycle.cs @@ -9,16 +9,21 @@ public class Motorcycle : Vehicle public int MaxSpeed { get; set; } - public Motorcycle(string modelName, string licensePlate, string registrationDate, int maxSpeed) : base(modelName, licensePlate, registrationDate) - { - MaxSpeed = maxSpeed; - _typeOfVehicle = "Motorcykel"; - } + //public Motorcycle(string modelName, string licensePlate, string registrationDate, int maxSpeed) : base(modelName, licensePlate, registrationDate) + //{ + // MaxSpeed = maxSpeed; + // _typeOfVehicle = "Motorcykel"; + //} public Motorcycle() { _typeOfVehicle = "Motorcykel"; } + + /// + /// Skriver ut all information om en motorcykel. + /// Skriver ut motorcykelns maxhastighet + /// public override void PrintInfo() { base.PrintInfo(); diff --git a/Uppgift4/Klasser/Truck.cs b/Uppgift4/Klasser/Truck.cs index 9c9e9f0..db00870 100644 --- a/Uppgift4/Klasser/Truck.cs +++ b/Uppgift4/Klasser/Truck.cs @@ -8,16 +8,21 @@ public class Truck : Vehicle { public int MaxLoadInKG { get; set; } - public Truck(string modelName, string licensePlate, string registrationDate, int maxLoadInKG) : base(modelName, licensePlate, registrationDate) - { - MaxLoadInKG = maxLoadInKG; - _typeOfVehicle = "Lastbil"; - } + //public Truck(string modelName, string licensePlate, string registrationDate, int maxLoadInKG) : base(modelName, licensePlate, registrationDate) + //{ + // MaxLoadInKG = maxLoadInKG; + // _typeOfVehicle = "Lastbil"; + //} public Truck() { _typeOfVehicle = "Lastbil"; } + + /// + /// Skriver ut all information om en lastbil. + /// Lägger till maxvikt i KG. + /// public override void PrintInfo() { base.PrintInfo(); diff --git a/Uppgift4/Klasser/Vehicle.cs b/Uppgift4/Klasser/Vehicle.cs index 276c115..bf04950 100644 --- a/Uppgift4/Klasser/Vehicle.cs +++ b/Uppgift4/Klasser/Vehicle.cs @@ -20,9 +20,14 @@ public Vehicle(string modelName, string licensePlate, string registrationDate) public Vehicle() { - } - + + #region Metoder + + /// + /// Sätter värdet på milmätaren. + /// + /// Antal mil i decimaler. public void SetOdometer(decimal lengthDriven) { if (lengthDriven > 0) @@ -31,25 +36,36 @@ public void SetOdometer(decimal lengthDriven) } } + /// + /// Hämtar milmätare. + /// + /// Decimal public decimal GetOdometer() { return _odometer; } + /// + /// Skriver ut all information om ett fordon. + /// public virtual void PrintInfo() { Console.WriteLine("\t----------"); - Console.WriteLine($"Typ av fordon: {_typeOfVehicle}" + + Console.WriteLine($"Fordonstyp: {_typeOfVehicle}" + $"\nNamn: {ModelName}" + $"\nRegistreringsnummer: {LicensePlate}" + $"\nRegisterades: {RegistrationDate}" + $"\nMilmätare: {_odometer} mil"); } + /// + /// Hämtar vad för typ fordonet är. + /// + /// Sträng public string GetVehicleType() { return _typeOfVehicle; } - + #endregion } } From 42680ece35bd64dea060c16b9648252fda04fd33 Mon Sep 17 00:00:00 2001 From: wallenas Date: Tue, 29 Sep 2020 18:34:23 +0200 Subject: [PATCH 13/17] Uppgift 4 -Skulle kommit med de andra --- Uppgift4/ArvOchAbstraktion/Program.cs | 3 ++- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 8 ++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index 929218f..fac0743 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -84,6 +84,7 @@ static void Main(string[] args) } } + break; #endregion case 2: @@ -132,7 +133,7 @@ static void Main(string[] args) #region Metoder för menyer /// - /// Går tillbaka till menyn + /// Skriver ut text och tar emot en inmatning för att "pausa" programmet. /// static void BackToMenu() { diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs index bb35b3d..a592e0d 100644 --- a/Uppgift4/ArvOchAbstraktion/Verkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -60,7 +60,7 @@ public void RemoveVehicle() Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); string licensePlateToMatch = Console.ReadLine().ToUpper(); - licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); + licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); // Tar bort whitespace i inmatningen. Vehicle vehicleToRemove = null; @@ -78,7 +78,7 @@ public void RemoveVehicle() ListOfVehicles.Remove(vehicleToRemove); Console.WriteLine($"Fordon: {vehicleToRemove.GetVehicleType()} " + $"med registreringsnummer: {vehicleToRemove.LicensePlate}" + - $"\ntogs bort från verkstaden."); + $"\nTogs bort från verkstaden."); } else @@ -86,10 +86,6 @@ public void RemoveVehicle() Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); } } - - - - } #region Metoder för att lägga till fordon From bf6721c3bb6b71834a81114bc4e31d3835e184f3 Mon Sep 17 00:00:00 2001 From: wallenas Date: Tue, 29 Sep 2020 18:34:57 +0200 Subject: [PATCH 14/17] Uppgift 2 -Uppdaterad med klass och med metoder. --- Uppgift2/Villkor_och_loopar/Program.cs | 267 ++++--------------------- Uppgift2/Villkor_och_loopar/Runner.cs | 188 +++++++++++++++++ 2 files changed, 226 insertions(+), 229 deletions(-) create mode 100644 Uppgift2/Villkor_och_loopar/Runner.cs diff --git a/Uppgift2/Villkor_och_loopar/Program.cs b/Uppgift2/Villkor_och_loopar/Program.cs index e622a3a..8e6bd35 100644 --- a/Uppgift2/Villkor_och_loopar/Program.cs +++ b/Uppgift2/Villkor_och_loopar/Program.cs @@ -1,6 +1,9 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; using System.Threading; @@ -10,255 +13,61 @@ class Program { static void Main(string[] args) { - - // Deklaration av variablar. Jag valde att sätta int bredvid för att tydligt se skillnaden på start/finish, leader och secondPlace - int startNumber = 0, - startHours = 0, - startMin = 0, - startSec = 0, - finishHours = 0, - finishMin = 0, - finishSec = 0; - int leaderStartNr = 0, - leaderHours = 0, - leaderMin = 0, - leaderSec = 0, - leaderSumInSeconds = 0; - int secondPlaceStartNr = 0, - secondPlaceHours = 0, - secondPlaceMin = 0, - secondPlaceSec = 0, - secondPlaceSumInSeconds = 0; - - int contestants = 0; - - // bool-värden för att huvudloop ska köras och bool-värde för inmatningsloopar - bool isRacing = true, - isInputting; - + bool isRacing = true; + List listOfRunners = new List(); while (isRacing) - { - Console.WriteLine("\t---------------"); // För att få en renare utskrift - isInputting = true; - do - { - Console.Write("Ange startnummer: "); - if (!int.TryParse(Console.ReadLine(), out startNumber)) - Console.WriteLine("Felaktig inmatning!"); - - // Om startnummer är mindre än 1 så stoppas inmatning och går till utskrift - else if (startNumber < 1) - { - isRacing = false; - isInputting = false; - } - // Annars så tas startNumber emot och inmatning avslutas - else - isInputting = false; - } - while (isInputting); - - // Kollar om loppet fortfarande körs. Om inte (dvs om startNumber < 1) så bryts loopen - if (!isRacing) - break; - - // Här tar vi emot timme för start - isInputting = true; - do - { - Console.Write("Ange timme för start: "); - // Fångar upp felinmatning ELLER (startHour < 0) ELLER (startHour > 23). Liknande mönster på alla inmatningar - if (!int.TryParse(Console.ReadLine(), out startHours) || (startHours < 0 || startHours > 23)) - Console.WriteLine("Inkorrekt inmatning. Ange en timme mellan 00-23"); - - else - isInputting = false; - } - while (isInputting); + { + Console.Clear(); - // Här tar vi emot minut för start - isInputting = true; - do - { - Console.Write("Ange minut för start: "); - if (!int.TryParse(Console.ReadLine(), out startMin) || (startMin < 0 || startMin > 59)) - Console.WriteLine("Inkorrekt inmatning. Ange en minut mellan 0-59"); - - else - isInputting = false; - } - while (isInputting); + var runner = new Runner(); - // Här tar vi emot sekund för start - isInputting = true; - do - { - Console.Write("Ange sekund för start: "); - if (!int.TryParse(Console.ReadLine(), out startSec) || (startSec < 0 || startSec > 59)) - Console.WriteLine("Inkorrekt inmatning. Ange en sekund mellan 0-59"); - - else - isInputting = false; - } - while (isInputting); + runner.StartNumber = runner.SetStartNumber(); - // Här tar vi emot timme för mål - isInputting = true; - do + if (runner.StartNumber < 1) { - Console.Write("Ange timme för mål: "); - if (!int.TryParse(Console.ReadLine(), out finishHours) || (finishHours < 0 || finishHours > 23)) - Console.WriteLine("Inkorrekt inmatning. Ange en timme mellan 00-23"); - - else - isInputting = false; + isRacing = false; + break; } - while (isInputting); - - // Här tar vi emot minut för mål - isInputting = true; - do - { - Console.Write("Ange minut för mål: "); - if (!int.TryParse(Console.ReadLine(), out finishMin) || (finishMin < 0 || finishMin > 59)) - Console.WriteLine("Inkorrekt inmatning. Ange en minut mellan 0-59"); - else - isInputting = false; - } - while (isInputting); + runner.SetAllTimes(); + listOfRunners.Add(runner); + listOfRunners.Sort((x, y) => x.TotalTimeInSeconds.CompareTo(y.TotalTimeInSeconds)); - // Här tar vi emot sekund för mål - isInputting = true; - do - { - Console.Write("Ange sekund för mål: "); - if (!int.TryParse(Console.ReadLine(), out finishSec) || (finishSec < 0 || finishSec > 59)) - Console.WriteLine("Inkorrekt inmatning. Ange en sekund mellan 0-59"); + runner.PrintInfo(); - else - isInputting = false; - } - while (isInputting); - - // Räknar ut och tilldelar den tävlandes sluttid i timmar, minuter och sekunder - int contestantHours = finishHours - startHours; - int contestantMin = finishMin - startMin; - int contestantSec = finishSec - startSec; - - // Uträkningar för att fånga upp lopp som passerar midnatt - if (contestantSec < 0) - { - contestantSec += 60; - contestantMin--; - } + Console.WriteLine("Tryck på en knapp för att fortsätta..."); + Console.ReadKey(); + } - if (contestantMin < 0) - { - contestantMin += 60; - contestantHours--; - } + Console.Clear(); - if (contestantHours < 0) - { - contestantHours += 24; - } + if (listOfRunners.Count == 0) + { + Console.WriteLine("Det fanns inga tävlande i detta lopp."); + } - // Omvandlar den tävlandes tid till sekunder för jämförelser - int contestantSumInSeconds = contestantSec + (contestantHours * 3600) + (contestantMin * 60); + else + { + Console.WriteLine($"\n\t----VINNARE----"); + listOfRunners.First().PrintInfo(); - // Jämför nuvarande tävlande mot ledaren i sekunder. - // OM nuvarande tävlande har bättre tid än ledaren SÅ ersätts ledaren av nuvarande tävlande - // Condition 2 för att fånga upp första loop (eftersom att ledareSluttidSekunder är instansierat till 0 utanför detta kodblock. - if (contestantSumInSeconds < leaderSumInSeconds || leaderSumInSeconds <= 0) + if (listOfRunners.Count > 1) { - - // Andraplats tilldelas förra ledaren, men inte under första loppet - if (leaderSumInSeconds > 0) + Console.WriteLine("\n\t----ANDRA OCH TREDJE PLATS----"); + int position = 1; + foreach (var contestant in listOfRunners) { - secondPlaceSumInSeconds = leaderSumInSeconds; - secondPlaceStartNr = leaderStartNr; - secondPlaceHours = leaderHours; - secondPlaceMin = leaderMin; - secondPlaceSec = leaderSec; + if (position != 1 && position <= 3) + { + contestant.PrintInfo(); + } + position++; } - - // Ersätter ledaren mot den tävlande - leaderSumInSeconds = contestantSumInSeconds; - leaderStartNr = startNumber; - leaderHours = contestantHours; - leaderMin = contestantMin; - leaderSec = contestantSec; - contestants++; // Plussar antal tävlande } - - // OM tävlande har sämre tid än ledaren OCH tävlanden har bättre tid än andra plats, ELLER andra plats inte har tilldelats - // SÅ ersätts andraplats av nuvarande tävlande - else if ((contestantSumInSeconds > leaderSumInSeconds && - contestantSumInSeconds < secondPlaceSumInSeconds) || - secondPlaceSumInSeconds <= 0) - { - secondPlaceSumInSeconds = contestantSumInSeconds; - secondPlaceStartNr = startNumber; - secondPlaceHours = contestantHours; - secondPlaceMin = contestantMin; - secondPlaceSec = contestantSec; - contestants++; // Plussar antal tävlande - } - - // Om nuvarande tävlande har sämre tid än ledaren så plussar vi antalet tävlande - else if (contestantSumInSeconds >= leaderSumInSeconds) - contestants++; - } - - // Skriv ut detta resultat OM det är fler än 1 tävlande - if (contestants > 1) - { - // Skriver ut vinnarens startnummer och resultat - Console.WriteLine($"\t---------------" + - $"\nVinnarens startnummer är: {leaderStartNr}" + - $"\nSluttid: " + - $"{leaderHours} timmar " + - $"{leaderMin} minuter " + - $"{leaderSec} sekunder "); - - // Skriver ut andraplatsens startnummer, resultat och antal tävlande - Console.WriteLine($"\t---------------" + - $"\nDen näst bästas startnummer är: {secondPlaceStartNr}" + - $"\nSluttid: " + - $"{secondPlaceHours} timmar " + - $"{secondPlaceMin} minuter " + - $"{secondPlaceSec} sekunder " + - $"\nAntal tävlande: {contestants}" + - $"\nProgrammet avslutas..." + - $"\n\t---------------"); - Thread.Sleep(1000); // ;) } + Console.ReadLine(); - else if (contestants < 1) - { - Console.WriteLine($"\t---------------" + - "\nLoppet hade inga deltagare! " + - "\nProgrammet avslutas..." + - "\n\t----------------"); - Thread.Sleep(1000); - } - - // Skrivs ut om det bara är 1 tävlande. - else - { - Console.WriteLine($"\t---------------" + - $"\nVinnarens startnummer är: {leaderStartNr}" + - $"\nSluttid: " + - $"{leaderHours} timmar " + - $"{leaderMin} minuter " + - $"{leaderSec} sekunder " + - $"\nAntal tävlande: {contestants}" + - $"\nProgrammet avslutas..." + - $"\n\t---------------"); - Thread.Sleep(1000); - } } } } diff --git a/Uppgift2/Villkor_och_loopar/Runner.cs b/Uppgift2/Villkor_och_loopar/Runner.cs new file mode 100644 index 0000000..fe92986 --- /dev/null +++ b/Uppgift2/Villkor_och_loopar/Runner.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Villkor_och_loopar +{ + public class Runner + { + + private int _goalHour; + private int _goalMinute; + private int _goalSecond; + + public int TotalTimeInSeconds { get; set; } + public int StartNumber { get; set; } + public int StartHour { get; set; } + public int StartMinute { get; set; } + public int StartSecond { get; set; } + public int FinishHour { get; set; } + public int FinishMinute { get; set; } + public int FinishSecond { get; set; } + + + + + public void SetAllTimes() + { + + StartHour = SetRunnerTime("startHour"); + StartMinute = SetRunnerTime("startMinute"); + StartSecond = SetRunnerTime("startSecond"); + + FinishHour = SetRunnerTime("finishHour"); + FinishMinute = SetRunnerTime("finishMinute"); + FinishSecond = SetRunnerTime("finishSecond"); + + SetTotalTimeInSeconds(); + } + public void SetTotalTimeInSeconds() + { + _goalHour = FinishHour - StartHour; + _goalMinute = FinishMinute - StartMinute; + _goalSecond = FinishSecond - StartSecond; + + // Uträkningar för att fånga upp lopp som passerar midnatt + if (_goalSecond < 0) + { + _goalSecond += 60; + _goalMinute--; + } + + if (_goalMinute < 0) + { + _goalMinute += 60; + _goalHour--; + } + + if (_goalHour < 0) + { + _goalHour += 24; + } + + TotalTimeInSeconds = _goalSecond + (_goalHour * 3600) + (_goalMinute * 60); + } + + public int SetRunnerTime(string whatToSet) + { + int timeToSet = 0; + + if (whatToSet == "startHour") + { + timeToSet = SetStartOrFinishHour("start"); + } + + else if (whatToSet == "finishHour") + { + timeToSet = SetStartOrFinishHour("mål"); + + } + + else if (whatToSet == "startMinute") + { + timeToSet = SetStartOrFinishMinute("start"); + } + + else if (whatToSet == "finishMinute") + { + timeToSet = SetStartOrFinishMinute("mål"); + } + + else if (whatToSet == "startSecond") + { + timeToSet = SetStartOrFinishSecond("start"); + } + + else if (whatToSet == "finishSecond") + { + timeToSet = SetStartOrFinishSecond("mål"); + } + + return timeToSet; + } + + public int SetStartOrFinishHour(string startOrFinish) + { + int startOrFinishHour = 0; + var isInputting = true; + do + { + Console.Write($"Ange timme för {startOrFinish}: "); + if (!int.TryParse(Console.ReadLine(), out startOrFinishHour) || (startOrFinishHour < 0 || startOrFinishHour > 23)) + Console.WriteLine("Inkorrekt inmatning. Ange en timme mellan 00-23"); + + else + { + isInputting = false; + } + } + while (isInputting); + + return startOrFinishHour; + } + + public int SetStartOrFinishMinute(string startOrFinish) + { + var startOrFinishMinute = 0; + var isInputting = true; + do + { + Console.Write($"Ange minut för {startOrFinish}: "); + if (!int.TryParse(Console.ReadLine(), out startOrFinishMinute) || (startOrFinishMinute < 0 || startOrFinishMinute > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en minut mellan 0-59"); + + else + isInputting = false; + } + while (isInputting); + + return startOrFinishMinute; + } + + public int SetStartOrFinishSecond(string startOrFinish) + { + var startOrFinishSecond = 0; + var isInputting = true; + do + { + Console.Write($"Ange sekund för {startOrFinish}: "); + if (!int.TryParse(Console.ReadLine(), out startOrFinishSecond) || (startOrFinishSecond < 0 || startOrFinishSecond > 59)) + Console.WriteLine("Inkorrekt inmatning. Ange en sekund mellan 0-59"); + + else + isInputting = false; + } + while (isInputting); + + return startOrFinishSecond; + } + + public int SetStartNumber() + { + var startNumber = 0; + var isInputting = true; + do + { + Console.Clear(); + Console.WriteLine("\t---------------"); + Console.Write("Ange startnummer: "); + if (!int.TryParse(Console.ReadLine(), out startNumber)) + Console.WriteLine("Felaktig inmatning!"); + + else + { + isInputting = false; + } + } while (isInputting); + + return startNumber; + } + + public void PrintInfo() + { + Console.WriteLine($"\nStartnummer: {StartNumber}" + + $"\nSluttid: {_goalHour} timmar {_goalMinute} minuter och {_goalSecond} sekunder"); + } + + } +} From ddd94174e5c2b88771898cd482a48f538fee582e Mon Sep 17 00:00:00 2001 From: wallenas Date: Fri, 2 Oct 2020 12:47:04 +0200 Subject: [PATCH 15/17] Uppgift 4: -Lagt tillen klass som tar hand om inmatningar --- MindreProjekt/README.md | 61 ++++ Uppgift4/ArvOchAbstraktion/IVerkstad.cs | 6 +- Uppgift4/ArvOchAbstraktion/InputHelper.cs | 357 ++++++++++++++++++++++ Uppgift4/ArvOchAbstraktion/Program.cs | 55 +++- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 345 +-------------------- Uppgift4/ArvOchAbstraktion/VerkstadV2.cs | 25 ++ Uppgift4/Klasser/Bus.cs | 6 - Uppgift4/Klasser/Car.cs | 10 +- Uppgift4/Klasser/Motorcycle.cs | 7 - Uppgift4/Klasser/Truck.cs | 6 - Uppgift4/Klasser/Vehicle.cs | 12 +- 11 files changed, 509 insertions(+), 381 deletions(-) create mode 100644 MindreProjekt/README.md create mode 100644 Uppgift4/ArvOchAbstraktion/InputHelper.cs create mode 100644 Uppgift4/ArvOchAbstraktion/VerkstadV2.cs diff --git a/MindreProjekt/README.md b/MindreProjekt/README.md new file mode 100644 index 0000000..6fa1a6f --- /dev/null +++ b/MindreProjekt/README.md @@ -0,0 +1,61 @@ +# Övningsprojekt + +Dessa övningsprojekt är tänkta att fungera som inspiration till projekt. +Vi har kommit en bit in i kursen och somliga känner möjligen att uppgifter och övningar är lite för små... +Om så är fallet kan kanske dessa mindre projekt fungera som inspiration till fortsatt lärande. +Om ni inte finner något här passande går det givetvis att skapa vilket projekt ni helst önskar. +Det absolut bästa sättet jag vet att lära sig ett programmeringsspråk är om ni har en idé för ett program som ni vill skapa. +Då kommer ni finna mer inspiration till att lära er de tekniska aspekterna som programmeringsspråket kräver för att ni ska åstadkomma önskvärt resultat. + +En sak som dessa projekt saknar är möjligheten att lagra data (information) efter det att applikationerna avslutas. +Eller rättare sagt, det finns inga krav på det då vi hitills inte gått igenom hur ni kan gå tillväga för att göra det. +Ni har fria händer att skapa den funktionaliteten såklart, annars räcker det med att ni hanterar data bara över tiden programmet körs. + +## Zoo + +### Premiss + +Ett zoo behöver ett system för att hålla koll på sina djur och sin personal. + +På zoot finns många djur av många olika arter, sju för att vara exakt. Det finns apor, giraffer, lejon, pingviner, delfiner, björnar och elefanter. + +Djuren bor i olika inhägnader. Inhägnaderna kan ha lite olika karaktär. De kan ha träd, grottor, vattenkällor och buskage. +Delfinerna håller till i en helt egen typ av inhägnad, nämligen en jätte-bassäng. På anläggningen arbetar en grupp djurskötare. + +För att få jobba som djurskötare krävs vissa kompetenser. Arterna kräver i sin tur minst en kompetens, delfinerna kräver exempelvis att skötaren ska kunna dyka. + + +### Exempeluppgift + +Skriva ett program för att hantera zoot. +Programmet kan vara en konsol-applikation som vi tidigare övat på; det är även helt okej att skriva den som en WPF-applikation om man önskar göra det. + +Man ska kunna lägga till, ändra och ta bort; djurinhägnader, djurskötare samt deras kompetenser. + +Olika djur kräver olika attribut av sina inhägnader samt olika kompetenser hos sina skötare. + +Applikationen ska kunna lista alla djur och visa status för de samma. +Dvs huruvida djuret bor i en tillfredsställande inhägnad samt har skötare med rätt kompetenser. + +### (Exempel) Krav på projektet: + +Kod: Använda sig av minst en abstrakt klass. Minst en kommentar med summary och parameters. +Använda sig av namespace, entiteter i en (typ djur, skötare, inhägnad osv), +klasser som tillhandahåller logik för att kontrollera status av zoot och dylikt i ett annat namespace. +Använd ett interface någonstans i applikationen (förslagsvis till någon av logik-klasserna). + +Funktionalitet: +— En användare skall kunna lista alla djur och deras status (alltså om de har allt de behöver) i applikationen. +— En användare skall kunna lägga till och ta bort djur, inhägnader och skötare samt deras kompetenser. + +## Skolsystemet + +### Premiss + +En skola behöver ett nytt system. Skolan behöver hålla kolla på vilka "klasser" (obs inte C#-klasser) som finns på skolan, vilka program de klasserna går, vilka kurser som ingår i vilka program, vilka elever som tillhör vilken klass och säkert mer därtill! Programmet kan vara en konsol-applikation som vi tidigare övat på; det är även helt okej att skriva den som en WPF-applikation om man önskar göra det. Programmet ska kunna lista klasser(obs! inte C# class) och all information om de, dvs vilka elever och lärare samt kurser som hör till en specifik klass (obs! inte C# class). + +### (Exempel) Krav på projektet: + +Kod: Använda sig av minst en abstrakt klass. Minst en kommentar med summary och parameters. Använda sig av namespace, entiteter i en (typ klass, kurs, elev osv), klasser som tillhandahåller logik för att kontrollera status av systemet och dylikt i ett annat namespace. Använd ett interface någonstans i applikationen (förslagsvis till någon av logik-klasserna). + +Funktionalitet: En användare skall kunna lista alla djur och deras status (alltså om de har allt de behöver) i applikationen. En användare skall kunna lägga till och ta bort djur, inhägnader och skötare samt deras kompetenser. diff --git a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs index 721d37a..21b08a5 100644 --- a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs @@ -6,9 +6,11 @@ namespace ArvOchAbstraktion { public interface IVerkstad - { + { void AddVehicle(Vehicle vehicle); - void RemoveVehicle(); + void RemoveVehicle(Vehicle vehicle); + + List GetListOfVehicles(); } } diff --git a/Uppgift4/ArvOchAbstraktion/InputHelper.cs b/Uppgift4/ArvOchAbstraktion/InputHelper.cs new file mode 100644 index 0000000..e4240b0 --- /dev/null +++ b/Uppgift4/ArvOchAbstraktion/InputHelper.cs @@ -0,0 +1,357 @@ +using Klasser; +using System; +using System.Collections.Generic; +using System.Text; + + +namespace ArvOchAbstraktion +{ + public static class InputHelper + { + + #region Metoder för inmatning + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string. + /// + /// Vad konsolen ska skriva ut för fråga + /// String + private static string ReadName(string whatToWrite) + { + string name; + var isSettingName = true; + do + { + Console.Write(whatToWrite); + name = Console.ReadLine(); + if (string.IsNullOrEmpty(name)) + Console.WriteLine("Du måste mata in något."); + + else + isSettingName = false; + + } while (isSettingName); + + return name; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string i versaler + /// + /// + /// + private static string ReadLicensePlate(string whatToWrite) + { + string licensePlate; + var isSettingLicensePlate = true; + do + { + Console.Write(whatToWrite); + licensePlate = Console.ReadLine().ToUpper(); + licensePlate = licensePlate.Replace(" ", ""); + if (string.IsNullOrEmpty(licensePlate)) + Console.WriteLine("Du måste mata in något."); + + else + isSettingLicensePlate = false; + + } while (isSettingLicensePlate); + + return licensePlate; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i bool. + /// + /// Vad konsolen ska skriva ut för fråga + /// True/false + private static bool ReadBool(string whatToWriteWithJorNquestion) + { + + bool hasSomething = false; + var isSettingBool = true; + do + { + Console.Write(whatToWriteWithJorNquestion); + var answer = Console.ReadLine().ToLower(); + if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara på frågan."); + + else + { + hasSomething = (answer == "j"); + isSettingBool = false; + } + + } while (isSettingBool); + + return hasSomething; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i integer. + /// + /// Vad konsolen ska skriva ut för fråga + /// Integer + private static int ReadInteger(string whatToWrite) + { + int valueToSet = 0; + var isSettingInt = true; + do + { + Console.Write(whatToWrite); + if (!int.TryParse(Console.ReadLine(), out valueToSet)) + Console.WriteLine("Du måste mata in ett heltal."); + + else if (valueToSet < 0) + Console.WriteLine("Värdet kan inte vara minus."); + + else + isSettingInt = false; + + } while (isSettingInt); + + return valueToSet; + } + + /// + /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i decimal. + /// + /// Vad konsolen ska skriva ut för fråga + /// Decimaltal + private static decimal ReadDecimal(string whatToWrite) + { + decimal valueToSet = 0; + var IsSettingDecimal = true; + do + { + Console.Write(whatToWrite); + if (!Decimal.TryParse(Console.ReadLine(), out valueToSet)) + Console.WriteLine("Du måste mata in ett tal."); + + else if (valueToSet < 0) + Console.WriteLine("Värdet kan inte vara minus."); + + else + IsSettingDecimal = false; + + } while (IsSettingDecimal); + + return valueToSet; + } + #endregion + + + #region Metoder för att skapa fordon + public static Vehicle CreateCar() + { + var car = new Car(); + var isAdding = true; + while (isAdding) + { + Console.Clear(); + + car.ModelName = ReadName("Mata in modellnamn: "); + car.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + car.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + car.HasTowbar = ReadBool("Har bilen en dragkrok? j/n: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + car.SetOdometer(lengthDriven); + + car.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("\nStämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + } while (isAnswering); + + } + return car; + + + } + + public static Vehicle CreateMotorcycle() + { + var motorcycle = new Motorcycle(); + var isAdding = true; + while (isAdding) + { + Console.Clear(); + + motorcycle.ModelName = ReadName("Mata in modellnamn: "); + motorcycle.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + motorcycle.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + motorcycle.MaxSpeed = ReadInteger("Mata in maxhastighet i km/h: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + motorcycle.SetOdometer(lengthDriven); + + motorcycle.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("\nStämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + } while (isAnswering); + } + + return motorcycle; + } + + public static Vehicle CreateTruck() + { + var truck = new Truck(); + + var isAdding = true; + while (isAdding) + { + Console.Clear(); + + truck.ModelName = ReadName("Mata in modellnamn: "); + truck.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + truck.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + truck.MaxLoadInKG = ReadInteger("Mata in maxlast i kg: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + truck.SetOdometer(lengthDriven); + + truck.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("\nStämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + + else + { + isAnswering = false; + break; + } + } while (isAnswering); + } + + return truck; + } + + public static Vehicle CreateBus() + { + var bus = new Bus(); + + var isAdding = true; + while (isAdding) + { + Console.Clear(); + + bus.ModelName = ReadName("Mata in modellnamn: "); + bus.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); + bus.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); + bus.MaxAmountOfPassengers = ReadInteger("Mata in max antal passagerare: "); + + var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); + bus.SetOdometer(lengthDriven); + + bus.PrintInfo(); + var isAnswering = true; + do + { + Console.Write("\nStämmer dessa uppgifter? j/n: "); + var answer = Console.ReadLine().ToLower(); + if (answer == "j") + { + isAdding = false; + isAnswering = false; + break; + } + + else if (string.IsNullOrEmpty(answer)) + Console.WriteLine("Du måste svara."); + + else + { + isAnswering = false; + break; + } + } while (isAnswering); + } + + return bus; + + } + #endregion + + + /// + /// Söker efter ett fordon med hjälp av registreringsnummer. + /// + /// Listan som sökningen sker i. + /// Om matching lyckas: kopia av fordon som ska tas bort. + ///
Om matching misslyckas: null
+ ///
+ public static Vehicle FindVehicleToRemove(IVerkstad verkstad) + { + Console.WriteLine("Är du säker på att du vill ta bort ett fordon? j/n: "); + var answer = Console.ReadLine().ToLower(); + + Vehicle vehicleToRemove = null; + + if (answer == "j") + { + foreach (var vehicle in verkstad.GetListOfVehicles()) + vehicle.PrintInfo(); + + Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); + string licensePlateToMatch = Console.ReadLine().ToUpper(); + licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); // Tar bort whitespace i inmatningen. + + var hasFoundVehicle = false; + + foreach (var vehicle in verkstad.GetListOfVehicles()) + { + if (licensePlateToMatch == vehicle.LicensePlate) + { + hasFoundVehicle = true; + vehicleToRemove = vehicle; + return vehicleToRemove; + } + } + + if (!hasFoundVehicle) + { + Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); + } + } + + return vehicleToRemove; + } + + } +} diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index fac0743..f487cda 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -10,8 +10,9 @@ class Program { static void Main(string[] args) { - Verkstad verkstad = new Verkstad(); + IVerkstad verkstad = new Verkstad(); + var isRunning = true; while (isRunning) { @@ -35,19 +36,27 @@ static void Main(string[] args) case 1: #region Lägg till bil - var car = new Car(); + Console.WriteLine("----LÄGG TILL BIL"); + + var car = InputHelper.CreateCar(); verkstad.AddVehicle(car); + Console.WriteLine("\nBil tillagd i verkstaden!"); + BackToMenu(); break; #endregion case 2: #region Lägg till motorcykel + + Console.WriteLine("----LÄGG TILL MOTORCYKEL----"); - var motorcycle = new Motorcycle(); + var motorcycle = InputHelper.CreateMotorcycle(); verkstad.AddVehicle(motorcycle); + Console.WriteLine("\nMotorcykel tillagd i verkstaden!"); + BackToMenu(); break; #endregion @@ -55,9 +64,13 @@ static void Main(string[] args) case 3: #region Lägg till lastbil - var truck = new Truck(); + Console.WriteLine("----LÄGG TILL LASTBIL----"); + + var truck = InputHelper.CreateTruck(); verkstad.AddVehicle(truck); + Console.WriteLine("\nLastbil tillagd i verkstaden!"); + BackToMenu(); break; #endregion @@ -65,9 +78,12 @@ static void Main(string[] args) case 4: #region Lägg till buss - var bus = new Bus(); + Console.WriteLine("----LÄGG TILL BUSS----"); + + var bus = InputHelper.CreateBus(); verkstad.AddVehicle(bus); + Console.WriteLine("\nBuss tillagd i verkstaden!"); BackToMenu(); break; #endregion @@ -92,11 +108,18 @@ static void Main(string[] args) Console.Clear(); Console.WriteLine("---- TA BORT FORDON ----"); - if (verkstad.ListOfVehicles.Count == 0) - Console.WriteLine("Det finns inga fordon inne i verkstaden. "); + if (verkstad.GetListOfVehicles().Count == 0) + Console.WriteLine("Det finns inga fordon i verkstaden."); + else - verkstad.RemoveVehicle(); + { + var vehicleToRemove = InputHelper.FindVehicleToRemove(verkstad); + + if (vehicleToRemove != null) + verkstad.RemoveVehicle(vehicleToRemove); + + } BackToMenu(); #endregion @@ -105,9 +128,14 @@ static void Main(string[] args) case 3: //Skriv ut alla fordon i verkstaden Console.Clear(); - foreach (var vehicle in verkstad.ListOfVehicles) - vehicle.PrintInfo(); + if (verkstad.GetListOfVehicles().Count == 0) + Console.WriteLine("Det finns inga fordon i verkstaden."); + + else + foreach (var vehicle in verkstad.GetListOfVehicles()) + vehicle.PrintInfo(); + BackToMenu(); break; @@ -131,7 +159,10 @@ static void Main(string[] args) } - #region Metoder för menyer + + + + #region Metoder för utskrift /// /// Skriver ut text och tar emot en inmatning för att "pausa" programmet. /// @@ -167,7 +198,7 @@ static void PrintAddVehicleMenu() "\n[4] Buss" + "\n[5] Tillbaka till huvudmenyn"); } - #endregion + #endregion } } diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs index a592e0d..d6c7d7f 100644 --- a/Uppgift4/ArvOchAbstraktion/Verkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -25,358 +25,35 @@ public List ListOfVehicles } } + + /// /// Lägger till ett fordon till verkstaden. /// /// Typ av fordon public void AddVehicle(Vehicle vehicle) { - if (vehicle is Car) - AddCar(vehicle as Car); - - else if (vehicle is Motorcycle) - AddMotorcycle(vehicle as Motorcycle); - - else if (vehicle is Truck) - AddTruck(vehicle as Truck); - - else if (vehicle is Bus) - AddBus(vehicle as Bus); + ListOfVehicles.Add(vehicle); } - /// /// Skriver ut alla fordon i verkstaden och tar bort ett fordon ur verkstaden med hjälp av registreringsnummer. /// - public void RemoveVehicle() - { - Console.WriteLine("Är du säker på att du vill ta bort ett fordon? j/n: "); - var answer = Console.ReadLine().ToLower(); - - if (answer == "j") - { - foreach (var vehicle in ListOfVehicles) - vehicle.PrintInfo(); - - Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); - string licensePlateToMatch = Console.ReadLine().ToUpper(); - licensePlateToMatch = licensePlateToMatch.Replace(" ", ""); // Tar bort whitespace i inmatningen. - - Vehicle vehicleToRemove = null; - - foreach (var vehicle in ListOfVehicles) - { - if (licensePlateToMatch == vehicle.LicensePlate) - { - vehicleToRemove = vehicle; - break; - } - } - - if (vehicleToRemove != null) - { - ListOfVehicles.Remove(vehicleToRemove); - Console.WriteLine($"Fordon: {vehicleToRemove.GetVehicleType()} " + - $"med registreringsnummer: {vehicleToRemove.LicensePlate}" + - $"\nTogs bort från verkstaden."); - } - - else - { - Console.WriteLine("Hittade inte ett fordon som matchade registreringsnumret."); - } - } - } - - #region Metoder för att lägga till fordon - private void AddCar(Car car) - { - var isAdding = true; - while (isAdding) - { - Console.Clear(); - Console.WriteLine("----LÄGG TILL BIL----"); - car.ModelName = ReadName("Mata in modellnamn: "); - car.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); - car.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); - car.HasTowbar = ReadBool("Har bilen en dragkrok? j/n: "); - - var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); - car.SetOdometer(lengthDriven); - - car.PrintInfo(); - var isAnswering = true; - do - { - Console.Write("\nStämmer dessa uppgifter? j/n: "); - var answer = Console.ReadLine().ToLower(); - if (answer == "j") - { - isAdding = false; - isAnswering = false; - ListOfVehicles.Add(car); - Console.WriteLine("\nBil tillagd!"); - break; - } - - else if (string.IsNullOrEmpty(answer)) - Console.WriteLine("Du måste svara."); - } while (isAnswering); - } - } - - private void AddMotorcycle(Motorcycle motorcycle) + public void RemoveVehicle(Vehicle vehicle) { - var isAdding = true; - while (isAdding) - { - Console.Clear(); - Console.WriteLine("----LÄGG TILL MOTORCYKEL----"); - motorcycle.ModelName = ReadName("Mata in modellnamn: "); - motorcycle.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); - motorcycle.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); - motorcycle.MaxSpeed = ReadInteger("Mata in maxhastighet i km/h: "); - - var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); - motorcycle.SetOdometer(lengthDriven); - - motorcycle.PrintInfo(); - var isAnswering = true; - do - { - Console.Write("\nStämmer dessa uppgifter? j/n: "); - var answer = Console.ReadLine().ToLower(); - if (answer == "j") - { - isAdding = false; - isAnswering = false; - ListOfVehicles.Add(motorcycle); - Console.WriteLine("\nMotorcykel tillagd!"); - break; - } - - else if (string.IsNullOrEmpty(answer)) - Console.WriteLine("Du måste svara."); - } while (isAnswering); - - } + ListOfVehicles.Remove(vehicle); + + Console.WriteLine($"Fordon: {vehicle.GetVehicleType()} " + + $"med registreringsnummer: {vehicle.LicensePlate}" + + $"\nTogs bort från verkstaden."); } - private void AddTruck(Truck truck) - { - var isAdding = true; - while (isAdding) - { - Console.Clear(); - Console.WriteLine("----LÄGG TILL LASTBIL----"); - truck.ModelName = ReadName("Mata in modellnamn: "); - truck.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); - truck.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); - truck.MaxLoadInKG = ReadInteger("Mata in maxlast i kg: "); - - var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); - truck.SetOdometer(lengthDriven); - - truck.PrintInfo(); - var isAnswering = true; - do - { - Console.Write("\nStämmer dessa uppgifter? j/n: "); - var answer = Console.ReadLine().ToLower(); - if (answer == "j") - { - isAdding = false; - isAnswering = false; - ListOfVehicles.Add(truck); - Console.WriteLine("\nLastbil tillagd!"); - break; - } - else if (string.IsNullOrEmpty(answer)) - Console.WriteLine("Du måste svara."); - - else - { - isAnswering = false; - break; - } - } while (isAnswering); - } - } - private void AddBus(Bus bus) + public List GetListOfVehicles() { - var isAdding = true; - while (isAdding) - { - Console.Clear(); - Console.WriteLine("----LÄGG TILL BUSS----"); - bus.ModelName = ReadName("Mata in modellnamn: "); - bus.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); - bus.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); - bus.MaxAmountOfPassengers = ReadInteger("Mata in max antal passagerare: "); - - var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); - bus.SetOdometer(lengthDriven); - - bus.PrintInfo(); - var isAnswering = true; - do - { - Console.Write("\nStämmer dessa uppgifter? j/n: "); - var answer = Console.ReadLine().ToLower(); - if (answer == "j") - { - isAdding = false; - isAnswering = false; - ListOfVehicles.Add(bus); - Console.WriteLine("\nBuss tillagd!"); - break; - } - - else if (string.IsNullOrEmpty(answer)) - Console.WriteLine("Du måste svara."); - - else - { - isAnswering = false; - break; - } - } while (isAnswering); - } - } - #endregion - - #region Metoder för inmatning - /// - /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string. - /// - /// Vad konsolen ska skriva ut för fråga - /// String - private string ReadName(string whatToWrite) - { - string name; - var isSettingName = true; - do - { - Console.Write(whatToWrite); - name = Console.ReadLine(); - if (string.IsNullOrEmpty(name)) - Console.WriteLine("Du måste mata in något."); - - else - isSettingName = false; - - } while (isSettingName); - - return name; - } - - /// - /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i string i versaler - /// - /// - /// - private string ReadLicensePlate(string whatToWrite) - { - string licensePlate; - var isSettingLicensePlate = true; - do - { - Console.Write(whatToWrite); - licensePlate = Console.ReadLine().ToUpper(); - licensePlate = licensePlate.Replace(" ", ""); - if (string.IsNullOrEmpty(licensePlate)) - Console.WriteLine("Du måste mata in något."); - - else - isSettingLicensePlate = false; - - } while (isSettingLicensePlate); - - return licensePlate; - } - - /// - /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i bool. - /// - /// Vad konsolen ska skriva ut för fråga - /// True/false - private bool ReadBool(string whatToWriteWithJorNquestion) - { - - bool hasSomething = false; - var isSettingBool = true; - do - { - Console.Write(whatToWriteWithJorNquestion); - var answer = Console.ReadLine().ToLower(); - if (string.IsNullOrEmpty(answer)) - Console.WriteLine("Du måste svara på frågan."); - - else - { - hasSomething = (answer == "j"); - isSettingBool = false; - } - - } while (isSettingBool); - - return hasSomething; - } - - /// - /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i integer. - /// - /// Vad konsolen ska skriva ut för fråga - /// Integer - private int ReadInteger(string whatToWrite) - { - int valueToSet = 0; - var isSettingInt = true; - do - { - Console.Write(whatToWrite); - if (!int.TryParse(Console.ReadLine(), out valueToSet)) - Console.WriteLine("Du måste mata in ett heltal."); - - else if (valueToSet < 0) - Console.WriteLine("Värdet kan inte vara minus."); - - else - isSettingInt = false; - - } while (isSettingInt); - - return valueToSet; - } - - /// - /// Skriver ut en fråga i konsolen, användaren matar in svaret som returneras i decimal. - /// - /// Vad konsolen ska skriva ut för fråga - /// Decimaltal - private decimal ReadDecimal(string whatToWrite) - { - decimal valueToSet = 0; - var IsSettingDecimal = true; - do - { - Console.Write(whatToWrite); - if (!Decimal.TryParse(Console.ReadLine(), out valueToSet)) - Console.WriteLine("Du måste mata in ett tal."); - - else if (valueToSet < 0) - Console.WriteLine("Värdet kan inte vara minus."); - - else - IsSettingDecimal = false; - - } while (IsSettingDecimal); - - return valueToSet; + return ListOfVehicles; } - #endregion } } diff --git a/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs new file mode 100644 index 0000000..00c2448 --- /dev/null +++ b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs @@ -0,0 +1,25 @@ +using ArvOchAbstraktion; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Klasser +{ + class VerkstadV2 : IVerkstad + { + public void AddVehicle(Vehicle vehicle) + { + throw new NotImplementedException(); + } + + public List GetListOfVehicles() + { + throw new NotImplementedException(); + } + + public void RemoveVehicle(Vehicle vehicle) + { + throw new NotImplementedException(); + } + } +} diff --git a/Uppgift4/Klasser/Bus.cs b/Uppgift4/Klasser/Bus.cs index 7377021..c22aa37 100644 --- a/Uppgift4/Klasser/Bus.cs +++ b/Uppgift4/Klasser/Bus.cs @@ -8,12 +8,6 @@ public class Bus : Vehicle { public int MaxAmountOfPassengers { get; set; } - //public Bus(string modelName, string licensePlate, string registrationDate, int maxAmountOfPassengers) : base(modelName, licensePlate, registrationDate) - //{ - // MaxAmountOfPassengers = maxAmountOfPassengers; - // _typeOfVehicle = "Buss"; - //} - public Bus() { _typeOfVehicle = "Buss"; diff --git a/Uppgift4/Klasser/Car.cs b/Uppgift4/Klasser/Car.cs index 7e61177..8890622 100644 --- a/Uppgift4/Klasser/Car.cs +++ b/Uppgift4/Klasser/Car.cs @@ -8,12 +8,6 @@ public class Car : Vehicle { public bool HasTowbar { get; set; } - //public Car(string modelName, string licensePlate, string registrationDate, bool hasTowbar) : base(modelName, licensePlate, registrationDate) - //{ - // HasTowbar = hasTowbar; - // _typeOfVehicle = "Bil"; - //} - public Car() { _typeOfVehicle = "Bil"; @@ -27,9 +21,9 @@ public override void PrintInfo() { base.PrintInfo(); if (HasTowbar) - Console.WriteLine("Dragkrok: JA"); + Console.WriteLine("Dragkrok: Ja"); else - Console.WriteLine("Dragkrok: NEJ"); + Console.WriteLine("Dragkrok: Nej"); } } diff --git a/Uppgift4/Klasser/Motorcycle.cs b/Uppgift4/Klasser/Motorcycle.cs index a9f4239..045358c 100644 --- a/Uppgift4/Klasser/Motorcycle.cs +++ b/Uppgift4/Klasser/Motorcycle.cs @@ -8,13 +8,6 @@ public class Motorcycle : Vehicle { public int MaxSpeed { get; set; } - - //public Motorcycle(string modelName, string licensePlate, string registrationDate, int maxSpeed) : base(modelName, licensePlate, registrationDate) - //{ - // MaxSpeed = maxSpeed; - // _typeOfVehicle = "Motorcykel"; - //} - public Motorcycle() { _typeOfVehicle = "Motorcykel"; diff --git a/Uppgift4/Klasser/Truck.cs b/Uppgift4/Klasser/Truck.cs index db00870..704ff72 100644 --- a/Uppgift4/Klasser/Truck.cs +++ b/Uppgift4/Klasser/Truck.cs @@ -8,12 +8,6 @@ public class Truck : Vehicle { public int MaxLoadInKG { get; set; } - //public Truck(string modelName, string licensePlate, string registrationDate, int maxLoadInKG) : base(modelName, licensePlate, registrationDate) - //{ - // MaxLoadInKG = maxLoadInKG; - // _typeOfVehicle = "Lastbil"; - //} - public Truck() { _typeOfVehicle = "Lastbil"; diff --git a/Uppgift4/Klasser/Vehicle.cs b/Uppgift4/Klasser/Vehicle.cs index bf04950..8d9eb34 100644 --- a/Uppgift4/Klasser/Vehicle.cs +++ b/Uppgift4/Klasser/Vehicle.cs @@ -11,12 +11,12 @@ public abstract class Vehicle public string LicensePlate { get; set; } public string RegistrationDate { get; set; } - public Vehicle(string modelName, string licensePlate, string registrationDate) - { - ModelName = modelName; - LicensePlate = licensePlate; - RegistrationDate = registrationDate; - } + //public Vehicle(string modelName, string licensePlate, string registrationDate) + //{ + // ModelName = modelName; + // LicensePlate = licensePlate; + // RegistrationDate = registrationDate; + //} public Vehicle() { From 1538bc517b065b627d9324646d284edb78bc55d1 Mon Sep 17 00:00:00 2001 From: wallenas Date: Fri, 2 Oct 2020 14:47:07 +0200 Subject: [PATCH 16/17] =?UTF-8?q?Uppgift=204:=20-Gjort=20VerkstadV2=20-Tes?= =?UTF-8?q?t=20f=C3=B6r=20att=20f=C3=B6rst=C3=A5=20nyttan=20med=20anv?= =?UTF-8?q?=C3=A4ndning=20av=20interface.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift4/ArvOchAbstraktion/IVerkstad.cs | 2 +- Uppgift4/ArvOchAbstraktion/Program.cs | 55 +++++++++----- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 12 ++- Uppgift4/ArvOchAbstraktion/VerkstadV2.cs | 94 ++++++++++++++++++++++-- 4 files changed, 137 insertions(+), 26 deletions(-) diff --git a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs index 21b08a5..3cdcd7f 100644 --- a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs @@ -7,7 +7,7 @@ namespace ArvOchAbstraktion { public interface IVerkstad { - void AddVehicle(Vehicle vehicle); + bool AddVehicle(Vehicle vehicle); void RemoveVehicle(Vehicle vehicle); List GetListOfVehicles(); diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index f487cda..7f77a12 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -10,9 +10,9 @@ class Program { static void Main(string[] args) { - IVerkstad verkstad = new Verkstad(); + IVerkstad verkstad = new VerkstadV2(); + - var isRunning = true; while (isRunning) { @@ -37,7 +37,7 @@ static void Main(string[] args) #region Lägg till bil Console.WriteLine("----LÄGG TILL BIL"); - + var car = InputHelper.CreateCar(); verkstad.AddVehicle(car); @@ -49,13 +49,17 @@ static void Main(string[] args) case 2: #region Lägg till motorcykel - + Console.WriteLine("----LÄGG TILL MOTORCYKEL----"); var motorcycle = InputHelper.CreateMotorcycle(); - verkstad.AddVehicle(motorcycle); + var tryToAddVehicle = verkstad.AddVehicle(motorcycle); + if (tryToAddVehicle) + Console.WriteLine("\nMotorcykel tillagd i verkstaden!"); - Console.WriteLine("\nMotorcykel tillagd i verkstaden!"); + // Den här koden körs endast i VerkstadV2 klassen + else + Console.WriteLine("\nDen här verkstaden kan bara ta emot mopeder. De får ha en maxhastighet på 50km/h."); BackToMenu(); break; @@ -67,9 +71,14 @@ static void Main(string[] args) Console.WriteLine("----LÄGG TILL LASTBIL----"); var truck = InputHelper.CreateTruck(); - verkstad.AddVehicle(truck); + tryToAddVehicle = verkstad.AddVehicle(truck); + + if (tryToAddVehicle) + Console.WriteLine("\nLastbil tillagd i verkstaden!"); - Console.WriteLine("\nLastbil tillagd i verkstaden!"); + // Den här koden körs endast i VerkstadV2 klassen + else + Console.WriteLine("\nDen här verkstaden tar bara emot lastbilar vars maxlast är 2 ton."); BackToMenu(); break; @@ -81,9 +90,19 @@ static void Main(string[] args) Console.WriteLine("----LÄGG TILL BUSS----"); var bus = InputHelper.CreateBus(); - verkstad.AddVehicle(bus); + tryToAddVehicle = verkstad.AddVehicle(bus); + if (tryToAddVehicle) + { Console.WriteLine("\nBuss tillagd i verkstaden!"); + + } + + // Den här koden körs endast i VerkstadV2 klassen + else + { + Console.WriteLine("\nDen här verkstaden tar bara emot minibussar. Max antal passagerare får vara 8 st."); + } BackToMenu(); break; #endregion @@ -101,7 +120,7 @@ static void Main(string[] args) } } break; - #endregion + #endregion case 2: #region Ta bort fordon @@ -111,14 +130,14 @@ static void Main(string[] args) if (verkstad.GetListOfVehicles().Count == 0) Console.WriteLine("Det finns inga fordon i verkstaden."); - + else { var vehicleToRemove = InputHelper.FindVehicleToRemove(verkstad); - + if (vehicleToRemove != null) verkstad.RemoveVehicle(vehicleToRemove); - + } BackToMenu(); @@ -135,7 +154,7 @@ static void Main(string[] args) else foreach (var vehicle in verkstad.GetListOfVehicles()) vehicle.PrintInfo(); - + BackToMenu(); break; @@ -146,8 +165,8 @@ static void Main(string[] args) Thread.Sleep(1000); isRunning = false; break; - - #endregion + + #endregion default: Console.WriteLine("Du måste välja ur alternativen."); @@ -159,8 +178,8 @@ static void Main(string[] args) } - - + + #region Metoder för utskrift /// diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs index d6c7d7f..54e9d6c 100644 --- a/Uppgift4/ArvOchAbstraktion/Verkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -1,12 +1,15 @@ using Klasser; using System; using System.Collections.Generic; +using System.Reflection.Metadata.Ecma335; using System.Text; namespace ArvOchAbstraktion { public class Verkstad : IVerkstad { + + private List _listOfVehicles; public List ListOfVehicles { @@ -31,9 +34,12 @@ public List ListOfVehicles /// Lägger till ett fordon till verkstaden. /// /// Typ av fordon - public void AddVehicle(Vehicle vehicle) + public bool AddVehicle(Vehicle vehicle) { + var addedVehicle = true; ListOfVehicles.Add(vehicle); + + return addedVehicle; } /// @@ -42,7 +48,7 @@ public void AddVehicle(Vehicle vehicle) public void RemoveVehicle(Vehicle vehicle) { ListOfVehicles.Remove(vehicle); - + Console.WriteLine($"Fordon: {vehicle.GetVehicleType()} " + $"med registreringsnummer: {vehicle.LicensePlate}" + $"\nTogs bort från verkstaden."); @@ -55,5 +61,7 @@ public List GetListOfVehicles() return ListOfVehicles; } + + } } diff --git a/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs index 00c2448..b3b1540 100644 --- a/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs +++ b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs @@ -5,21 +5,105 @@ namespace Klasser { + /// + /// Den här verkstade kan: + ///
-Ta emot lättare lastbilar (maxlast < 2000)
+ ///
-Ta emot mopeder (motorcykelns maxhastighet är max 50km/h)
+ ///
-Ta emot minibussar (maxantal passagerare < 8)
+ ///
class VerkstadV2 : IVerkstad { - public void AddVehicle(Vehicle vehicle) + private bool _isOkayToAdd; + + private List _listOfVehicles; + public List ListOfVehicles { - throw new NotImplementedException(); + get + { + if (_listOfVehicles == null) + { + _listOfVehicles = new List(); + } + return _listOfVehicles; + } + + set + { + _listOfVehicles = value; + } } - public List GetListOfVehicles() + /// + /// Lägger till ett fordon till verkstaden. + /// + /// Typ av fordon + public bool AddVehicle(Vehicle vehicle) { - throw new NotImplementedException(); + var tryToAddVehicle = false; + + _isOkayToAdd = IsOkayToAdd(vehicle); + if (_isOkayToAdd) + { + ListOfVehicles.Add(vehicle); + tryToAddVehicle = true; + } + + return tryToAddVehicle; + } + /// + /// Tar bort ett fordon från verkstaden och skriver ut vad för fordons-typ det var, och vad reg-numret var. + /// public void RemoveVehicle(Vehicle vehicle) { - throw new NotImplementedException(); + ListOfVehicles.Remove(vehicle); + + Console.WriteLine($"Fordon: {vehicle.GetVehicleType()} " + + $"med registreringsnummer: {vehicle.LicensePlate}" + + $"\nTogs bort från verkstaden."); + } + + public List GetListOfVehicles() + { + return ListOfVehicles; + } + + private bool IsOkayToAdd(Vehicle vehicle) + { + if (vehicle is Truck) + { + var truck = vehicle as Truck; + + if (truck.MaxLoadInKG <= 2000) + _isOkayToAdd = true; + + else + _isOkayToAdd = false; + } + + if (vehicle is Motorcycle) + { + var motorcycle = vehicle as Motorcycle; + + if (motorcycle.MaxSpeed <= 50) + _isOkayToAdd = true; + + else + _isOkayToAdd = false; + } + + if (vehicle is Bus) + { + var bus = vehicle as Bus; + + if (bus.MaxAmountOfPassengers <= 8) + _isOkayToAdd = true; + else + _isOkayToAdd = false; + } + + return _isOkayToAdd; } } } From 38d2432bd18c6b47aabb88fa3d1c4c9b42e2ba5b Mon Sep 17 00:00:00 2001 From: wallenas Date: Wed, 7 Oct 2020 14:53:37 +0200 Subject: [PATCH 17/17] =?UTF-8?q?Uppgift=204=20KLAR:=20-Lite=20sm=C3=A5f?= =?UTF-8?q?=C3=B6r=C3=A4ndringar=20-Jag=20borde=20f=C3=B6rmodligen=20titta?= =?UTF-8?q?=20p=C3=A5=20l=C3=B6sningar=20med=20generic,=20men=20jag=20v?= =?UTF-8?q?=C3=A4ntar=20tills=20vi=20g=C3=A5r=20igenom=20det=20=C3=A4n=20s?= =?UTF-8?q?=C3=A5=20l=C3=A4nge.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uppgift4/ArvOchAbstraktion/IVerkstad.cs | 1 + Uppgift4/ArvOchAbstraktion/InputHelper.cs | 84 +++++++++++++++++++---- Uppgift4/ArvOchAbstraktion/Program.cs | 32 ++++++--- Uppgift4/ArvOchAbstraktion/Verkstad.cs | 5 +- Uppgift4/ArvOchAbstraktion/VerkstadV2.cs | 19 +++-- Uppgift4/Klasser/Bus.cs | 19 +++-- Uppgift4/Klasser/Car.cs | 19 ++--- Uppgift4/Klasser/Motorcycle.cs | 22 +++--- Uppgift4/Klasser/Truck.cs | 23 ++++--- Uppgift4/Klasser/Vehicle.cs | 35 +++++----- 10 files changed, 166 insertions(+), 93 deletions(-) diff --git a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs index 3cdcd7f..578225d 100644 --- a/Uppgift4/ArvOchAbstraktion/IVerkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/IVerkstad.cs @@ -9,6 +9,7 @@ public interface IVerkstad { bool AddVehicle(Vehicle vehicle); void RemoveVehicle(Vehicle vehicle); + //void SetVehicleType(string typeOfVehicle); List GetListOfVehicles(); diff --git a/Uppgift4/ArvOchAbstraktion/InputHelper.cs b/Uppgift4/ArvOchAbstraktion/InputHelper.cs index e4240b0..7a76873 100644 --- a/Uppgift4/ArvOchAbstraktion/InputHelper.cs +++ b/Uppgift4/ArvOchAbstraktion/InputHelper.cs @@ -141,7 +141,8 @@ private static decimal ReadDecimal(string whatToWrite) #endregion - #region Metoder för att skapa fordon + #region Metoder för att skapa fordon + public static Vehicle CreateCar() { var car = new Car(); @@ -158,7 +159,7 @@ public static Vehicle CreateCar() var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); car.SetOdometer(lengthDriven); - car.PrintInfo(); + PrintInfo(car); var isAnswering = true; do { @@ -173,6 +174,10 @@ public static Vehicle CreateCar() else if (string.IsNullOrEmpty(answer)) Console.WriteLine("Du måste svara."); + + else + isAnswering = false; + } while (isAnswering); } @@ -188,16 +193,21 @@ public static Vehicle CreateMotorcycle() while (isAdding) { Console.Clear(); - + motorcycle.ModelName = ReadName("Mata in modellnamn: "); motorcycle.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); motorcycle.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); motorcycle.MaxSpeed = ReadInteger("Mata in maxhastighet i km/h: "); + if (motorcycle.MaxSpeed > 50) + motorcycle.TypeOfVehicle = "Motorcykel"; + + else + motorcycle.TypeOfVehicle = "Moped"; var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); motorcycle.SetOdometer(lengthDriven); - motorcycle.PrintInfo(); + PrintInfo(motorcycle); var isAnswering = true; do { @@ -212,6 +222,10 @@ public static Vehicle CreateMotorcycle() else if (string.IsNullOrEmpty(answer)) Console.WriteLine("Du måste svara."); + + else + isAnswering = false; + } while (isAnswering); } @@ -226,7 +240,7 @@ public static Vehicle CreateTruck() while (isAdding) { Console.Clear(); - + truck.ModelName = ReadName("Mata in modellnamn: "); truck.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); truck.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); @@ -235,7 +249,7 @@ public static Vehicle CreateTruck() var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); truck.SetOdometer(lengthDriven); - truck.PrintInfo(); + PrintInfo(truck); var isAnswering = true; do { @@ -252,10 +266,8 @@ public static Vehicle CreateTruck() Console.WriteLine("Du måste svara."); else - { isAnswering = false; - break; - } + } while (isAnswering); } @@ -270,16 +282,21 @@ public static Vehicle CreateBus() while (isAdding) { Console.Clear(); - + bus.ModelName = ReadName("Mata in modellnamn: "); bus.LicensePlate = ReadLicensePlate("Mata in registreringsnummer: "); bus.RegistrationDate = DateTime.Now.ToString("yyyy/MM/dd"); bus.MaxAmountOfPassengers = ReadInteger("Mata in max antal passagerare: "); + if (bus.MaxAmountOfPassengers > 8) + bus.TypeOfVehicle = "Buss"; + + else + bus.TypeOfVehicle = "Minibuss"; var lengthDriven = ReadDecimal("Mata in hur många mil fordonet har gått: "); bus.SetOdometer(lengthDriven); - bus.PrintInfo(); + PrintInfo(bus); var isAnswering = true; do { @@ -296,10 +313,8 @@ public static Vehicle CreateBus() Console.WriteLine("Du måste svara."); else - { isAnswering = false; - break; - } + } while (isAnswering); } @@ -326,7 +341,7 @@ public static Vehicle FindVehicleToRemove(IVerkstad verkstad) if (answer == "j") { foreach (var vehicle in verkstad.GetListOfVehicles()) - vehicle.PrintInfo(); + PrintInfo(vehicle); Console.WriteLine("\nSkriv in registreringsnummer på det fordon du vill ta bort: "); string licensePlateToMatch = Console.ReadLine().ToUpper(); @@ -353,5 +368,44 @@ public static Vehicle FindVehicleToRemove(IVerkstad verkstad) return vehicleToRemove; } + public static void PrintInfo(Vehicle vehicle) + { + Console.WriteLine("\t----------"); + Console.WriteLine($"Fordonstyp: {vehicle.TypeOfVehicle}" + + $"\nNamn: {vehicle.ModelName}" + + $"\nRegistreringsnummer: {vehicle.LicensePlate}" + + $"\nRegisterades: {vehicle.RegistrationDate}" + + $"\nMilmätare: {vehicle.GetOdometer()} mil"); + + if (vehicle is Car) + { + var car = vehicle as Car; + if (car.HasTowbar) + Console.WriteLine("Dragkrok: Ja"); + + else + Console.WriteLine("Dragkrok: Nej"); + } + + else if (vehicle is Motorcycle) + { + var motorcycle = vehicle as Motorcycle; + Console.WriteLine($"Maxhastighet: {motorcycle.MaxSpeed}"); + } + + else if (vehicle is Truck) + { + var truck = vehicle as Truck; + Console.WriteLine($"Maxlast i kg: {truck.MaxLoadInKG}"); + } + + else + { + var bus = vehicle as Bus; + Console.WriteLine($"Max antal passagerare: {bus.MaxAmountOfPassengers}"); + } + + } + } } diff --git a/Uppgift4/ArvOchAbstraktion/Program.cs b/Uppgift4/ArvOchAbstraktion/Program.cs index 7f77a12..0fe643d 100644 --- a/Uppgift4/ArvOchAbstraktion/Program.cs +++ b/Uppgift4/ArvOchAbstraktion/Program.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; +using System.Text; using System.Threading; namespace ArvOchAbstraktion @@ -10,7 +11,7 @@ class Program { static void Main(string[] args) { - IVerkstad verkstad = new VerkstadV2(); + IVerkstad verkstad = new Verkstad(); var isRunning = true; @@ -37,8 +38,8 @@ static void Main(string[] args) #region Lägg till bil Console.WriteLine("----LÄGG TILL BIL"); - - var car = InputHelper.CreateCar(); + Car car = new Car(); + InputHelper.CreateVehicle(car); verkstad.AddVehicle(car); Console.WriteLine("\nBil tillagd i verkstaden!"); @@ -78,7 +79,7 @@ static void Main(string[] args) // Den här koden körs endast i VerkstadV2 klassen else - Console.WriteLine("\nDen här verkstaden tar bara emot lastbilar vars maxlast är 2 ton."); + Console.WriteLine("\nDen här verkstaden tar bara emot lätta lastbilar vars maxlast är 2 ton."); BackToMenu(); break; @@ -93,16 +94,12 @@ static void Main(string[] args) tryToAddVehicle = verkstad.AddVehicle(bus); if (tryToAddVehicle) - { - Console.WriteLine("\nBuss tillagd i verkstaden!"); - - } + Console.WriteLine("\nBuss tillagd i verkstaden!"); // Den här koden körs endast i VerkstadV2 klassen else - { Console.WriteLine("\nDen här verkstaden tar bara emot minibussar. Max antal passagerare får vara 8 st."); - } + BackToMenu(); break; #endregion @@ -153,7 +150,7 @@ static void Main(string[] args) else foreach (var vehicle in verkstad.GetListOfVehicles()) - vehicle.PrintInfo(); + InputHelper.PrintInfo(vehicle); BackToMenu(); break; @@ -218,6 +215,19 @@ static void PrintAddVehicleMenu() "\n[5] Tillbaka till huvudmenyn"); } + //public static string PropertyList(this object obj) + //{ + // var properties = obj.GetType().GetProperties(); + + // var stringBuilder = new StringBuilder(); + // foreach (var prop in properties) + // { + // stringBuilder.AppendLine($"{prop.Name}: {prop.GetValue(obj, null)}"); + // } + + // return stringBuilder.ToString(); + //} + #endregion } } diff --git a/Uppgift4/ArvOchAbstraktion/Verkstad.cs b/Uppgift4/ArvOchAbstraktion/Verkstad.cs index 54e9d6c..c325576 100644 --- a/Uppgift4/ArvOchAbstraktion/Verkstad.cs +++ b/Uppgift4/ArvOchAbstraktion/Verkstad.cs @@ -36,10 +36,9 @@ public List ListOfVehicles /// Typ av fordon public bool AddVehicle(Vehicle vehicle) { - var addedVehicle = true; ListOfVehicles.Add(vehicle); - return addedVehicle; + return true; } /// @@ -49,7 +48,7 @@ public void RemoveVehicle(Vehicle vehicle) { ListOfVehicles.Remove(vehicle); - Console.WriteLine($"Fordon: {vehicle.GetVehicleType()} " + + Console.WriteLine($"Fordon: {vehicle.TypeOfVehicle} " + $"med registreringsnummer: {vehicle.LicensePlate}" + $"\nTogs bort från verkstaden."); } diff --git a/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs index b3b1540..0d12765 100644 --- a/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs +++ b/Uppgift4/ArvOchAbstraktion/VerkstadV2.cs @@ -7,7 +7,7 @@ namespace Klasser { /// /// Den här verkstade kan: - ///
-Ta emot lättare lastbilar (maxlast < 2000)
+ ///
-Ta emot lättare lastbilar (maxlast <= 2000)
///
-Ta emot mopeder (motorcykelns maxhastighet är max 50km/h)
///
-Ta emot minibussar (maxantal passagerare < 8)
///
@@ -39,17 +39,16 @@ public List ListOfVehicles /// Typ av fordon public bool AddVehicle(Vehicle vehicle) { - var tryToAddVehicle = false; + var addedVehicle = false; - _isOkayToAdd = IsOkayToAdd(vehicle); + IsOkayToAdd(vehicle); if (_isOkayToAdd) { ListOfVehicles.Add(vehicle); - tryToAddVehicle = true; + addedVehicle = true; } - return tryToAddVehicle; - + return addedVehicle; } /// @@ -59,7 +58,7 @@ public void RemoveVehicle(Vehicle vehicle) { ListOfVehicles.Remove(vehicle); - Console.WriteLine($"Fordon: {vehicle.GetVehicleType()} " + + Console.WriteLine($"Fordon: {vehicle.TypeOfVehicle} " + $"med registreringsnummer: {vehicle.LicensePlate}" + $"\nTogs bort från verkstaden."); } @@ -73,7 +72,7 @@ private bool IsOkayToAdd(Vehicle vehicle) { if (vehicle is Truck) { - var truck = vehicle as Truck; + var truck = vehicle as Truck; if (truck.MaxLoadInKG <= 2000) _isOkayToAdd = true; @@ -82,7 +81,7 @@ private bool IsOkayToAdd(Vehicle vehicle) _isOkayToAdd = false; } - if (vehicle is Motorcycle) + else if (vehicle is Motorcycle) { var motorcycle = vehicle as Motorcycle; @@ -93,7 +92,7 @@ private bool IsOkayToAdd(Vehicle vehicle) _isOkayToAdd = false; } - if (vehicle is Bus) + else if (vehicle is Bus) { var bus = vehicle as Bus; diff --git a/Uppgift4/Klasser/Bus.cs b/Uppgift4/Klasser/Bus.cs index c22aa37..6f417a2 100644 --- a/Uppgift4/Klasser/Bus.cs +++ b/Uppgift4/Klasser/Bus.cs @@ -8,19 +8,18 @@ public class Bus : Vehicle { public int MaxAmountOfPassengers { get; set; } - public Bus() - { - _typeOfVehicle = "Buss"; - } - /// /// Skriver ut all information om en buss. /// Skriver ut max antal passagerare. /// - public override void PrintInfo() - { - base.PrintInfo(); - Console.WriteLine($"Max antal passangerare: {MaxAmountOfPassengers}"); - } + + + //public override void PrintInfo() + //{ + // base.PrintInfo(); + // Console.WriteLine($"Max antal passangerare: {MaxAmountOfPassengers}"); + //} + + } } diff --git a/Uppgift4/Klasser/Car.cs b/Uppgift4/Klasser/Car.cs index 8890622..7f180c2 100644 --- a/Uppgift4/Klasser/Car.cs +++ b/Uppgift4/Klasser/Car.cs @@ -10,21 +10,22 @@ public class Car : Vehicle public Car() { - _typeOfVehicle = "Bil"; + TypeOfVehicle = "Bil"; } /// /// Skriver ut all information om bilen. /// Skriver ut om bilen har dragkrok /// - public override void PrintInfo() - { - base.PrintInfo(); - if (HasTowbar) - Console.WriteLine("Dragkrok: Ja"); - else - Console.WriteLine("Dragkrok: Nej"); - } + + //public override void PrintInfo() + //{ + // base.PrintInfo(); + // if (HasTowbar) + // Console.WriteLine("Dragkrok: Ja"); + // else + // Console.WriteLine("Dragkrok: Nej"); + //} } } diff --git a/Uppgift4/Klasser/Motorcycle.cs b/Uppgift4/Klasser/Motorcycle.cs index 045358c..88b2a00 100644 --- a/Uppgift4/Klasser/Motorcycle.cs +++ b/Uppgift4/Klasser/Motorcycle.cs @@ -8,20 +8,24 @@ public class Motorcycle : Vehicle { public int MaxSpeed { get; set; } - public Motorcycle() - { - _typeOfVehicle = "Motorcykel"; - } + //public Motorcycle() + //{ + // if (MaxSpeed <= 50) + // TypeOfVehicle = "Moped"; + // else + // TypeOfVehicle = "Motorcykel"; + //} /// /// Skriver ut all information om en motorcykel. /// Skriver ut motorcykelns maxhastighet /// - public override void PrintInfo() - { - base.PrintInfo(); - Console.WriteLine($"Maxhastighet: {MaxSpeed}km/h"); - } + + //public override void PrintInfo() + //{ + // base.PrintInfo(); + // Console.WriteLine($"Maxhastighet: {MaxSpeed}km/h"); + //} } } diff --git a/Uppgift4/Klasser/Truck.cs b/Uppgift4/Klasser/Truck.cs index 704ff72..7aefd24 100644 --- a/Uppgift4/Klasser/Truck.cs +++ b/Uppgift4/Klasser/Truck.cs @@ -8,19 +8,24 @@ public class Truck : Vehicle { public int MaxLoadInKG { get; set; } - public Truck() - { - _typeOfVehicle = "Lastbil"; - } + //public Truck() + //{ + // if (MaxLoadInKG <= 2000) + // TypeOfVehicle = "Lätt lastbil"; + + // else + // TypeOfVehicle = "Lastbil"; + + //} /// /// Skriver ut all information om en lastbil. /// Lägger till maxvikt i KG. /// - public override void PrintInfo() - { - base.PrintInfo(); - Console.WriteLine($"Maxlast: {MaxLoadInKG}KG"); - } + //public override void PrintInfo() + //{ + // base.PrintInfo(); + // Console.WriteLine($"Maxlast: {MaxLoadInKG}KG"); + //} } } diff --git a/Uppgift4/Klasser/Vehicle.cs b/Uppgift4/Klasser/Vehicle.cs index 8d9eb34..19b332d 100644 --- a/Uppgift4/Klasser/Vehicle.cs +++ b/Uppgift4/Klasser/Vehicle.cs @@ -6,7 +6,7 @@ public abstract class Vehicle { protected decimal _odometer; - protected string _typeOfVehicle; + public string TypeOfVehicle { get; set; } public string ModelName { get; set; } public string LicensePlate { get; set; } public string RegistrationDate { get; set; } @@ -18,9 +18,9 @@ public abstract class Vehicle // RegistrationDate = registrationDate; //} - public Vehicle() - { - } + //public Vehicle() + //{ + //} #region Metoder @@ -48,24 +48,25 @@ public decimal GetOdometer() /// /// Skriver ut all information om ett fordon. /// - public virtual void PrintInfo() - { - Console.WriteLine("\t----------"); - Console.WriteLine($"Fordonstyp: {_typeOfVehicle}" + - $"\nNamn: {ModelName}" + - $"\nRegistreringsnummer: {LicensePlate}" + - $"\nRegisterades: {RegistrationDate}" + - $"\nMilmätare: {_odometer} mil"); - } + //public virtual void PrintInfo() + //{ + // Console.WriteLine("\t----------"); + // Console.WriteLine($"Fordonstyp: {TypeOfVehicle}" + + // $"\nNamn: {ModelName}" + + // $"\nRegistreringsnummer: {LicensePlate}" + + // $"\nRegisterades: {RegistrationDate}" + + // $"\nMilmätare: {_odometer} mil"); + //} /// /// Hämtar vad för typ fordonet är. /// /// Sträng - public string GetVehicleType() - { - return _typeOfVehicle; - } + //public string GetVehicleType() + //{ + // return TypeOfVehicle; + //} + #endregion } }