From 95df0ccfc5491c84bb742e770bbb910af1e2951f Mon Sep 17 00:00:00 2001 From: Vesikukka Teemu <teemu.t.vesikukka@student.jyu.fi> Date: Wed, 13 Dec 2023 10:10:29 +0200 Subject: [PATCH] uusi --- .../.idea/.idea.harjoitustyo/.idea/.gitignore | 13 + .../.idea.harjoitustyo/.idea/indexLayout.xml | 8 + harjoitustyo/harjoitustyo.sln | 23 ++ harjoitustyo/harjoitustyo.sln.ctbackup | 16 ++ .../pankkiautomaatti/Pankkiautomaatti.cs | 238 ++++++++++++++++++ .../pankkiautomaatti/pankkiautomaatti.csproj | 10 + .../PankkiautomaattiTest.cs | 21 ++ .../pankkiautomaattiTest.csproj | 15 ++ 8 files changed, 344 insertions(+) create mode 100644 harjoitustyo/.idea/.idea.harjoitustyo/.idea/.gitignore create mode 100644 harjoitustyo/.idea/.idea.harjoitustyo/.idea/indexLayout.xml create mode 100644 harjoitustyo/harjoitustyo.sln create mode 100644 harjoitustyo/harjoitustyo.sln.ctbackup create mode 100644 harjoitustyo/pankkiautomaatti/Pankkiautomaatti.cs create mode 100644 harjoitustyo/pankkiautomaatti/pankkiautomaatti.csproj create mode 100644 harjoitustyo/pankkiautomaattiTest/PankkiautomaattiTest.cs create mode 100644 harjoitustyo/pankkiautomaattiTest/pankkiautomaattiTest.csproj diff --git a/harjoitustyo/.idea/.idea.harjoitustyo/.idea/.gitignore b/harjoitustyo/.idea/.idea.harjoitustyo/.idea/.gitignore new file mode 100644 index 0000000..bb9f4a0 --- /dev/null +++ b/harjoitustyo/.idea/.idea.harjoitustyo/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/projectSettingsUpdater.xml +/contentModel.xml +/.idea.harjoitustyo.iml +/modules.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/harjoitustyo/.idea/.idea.harjoitustyo/.idea/indexLayout.xml b/harjoitustyo/.idea/.idea.harjoitustyo/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/harjoitustyo/.idea/.idea.harjoitustyo/.idea/indexLayout.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="UserContentModel"> + <attachedFolders /> + <explicitIncludes /> + <explicitExcludes /> + </component> +</project> \ No newline at end of file diff --git a/harjoitustyo/harjoitustyo.sln b/harjoitustyo/harjoitustyo.sln new file mode 100644 index 0000000..d577b6a --- /dev/null +++ b/harjoitustyo/harjoitustyo.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 + +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pankkiautomaatti", "pankkiautomaatti\pankkiautomaatti.csproj", "{5F68F6A3-2942-4E05-B7C1-DDB329F75448}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "pankkiautomaattiTest", "pankkiautomaattiTest\pankkiautomaattiTest.csproj", "{DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.Build.0 = Release|Any CPU + {DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/harjoitustyo/harjoitustyo.sln.ctbackup b/harjoitustyo/harjoitustyo.sln.ctbackup new file mode 100644 index 0000000..737dbde --- /dev/null +++ b/harjoitustyo/harjoitustyo.sln.ctbackup @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pankkiautomaatti", "pankkiautomaatti\pankkiautomaatti.csproj", "{5F68F6A3-2942-4E05-B7C1-DDB329F75448}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/harjoitustyo/pankkiautomaatti/Pankkiautomaatti.cs b/harjoitustyo/pankkiautomaatti/Pankkiautomaatti.cs new file mode 100644 index 0000000..c3738e6 --- /dev/null +++ b/harjoitustyo/pankkiautomaatti/Pankkiautomaatti.cs @@ -0,0 +1,238 @@ +using System; +using System.Text; +using System.Linq; +using System.Collections.Generic; +using System.IO; +using System.Runtime.CompilerServices; + +/// @author Teemu Vesikukka +/// @version 15.10.2023 +/// <summary> +/// Käyttäjä voi hoitaa pankkiasioita ohjelman kautta +/// </summary> +public class Pankkiautomaatti +{ + /// <summary> + /// Pääohjelma joka kysyy pin-koodin kayttajalta ja pin-koodin ollessa oikein, paastaa + /// asiakkaan omalle tilille + /// </summary> + public static void Main() + { + double luku = 0.00; + Aloitus(); + + if (PinKoodi() == true) + { + Valikko(); + } + Lopetus(); + } + + /// <summary> + /// Aliohjelma joka aloittaa pyytamalla asiakkaan kortin + /// </summary> + public static void Aloitus() + { + Console.WriteLine("Tervetuloa!"); + Console.WriteLine("Syota kortti ole hyva"); + } + + /// <summary> + /// Aliohjelma joka pyytaa asiakkaalta pin-koodin ja koodin + /// ollessa oikein paastaa asiakkaan kayttamaan tilia + /// </summary> + /// <returns>alse or true</returns> + /// <example> + /// <pre name="test"> + /// PinKoodi(),"1234"===true; + /// PinKoodi(),"1111"===false; + /// </pre> + /// </example> + public static bool PinKoodi() + { + int yritykset = 0; + bool onkoOikein = false; + string pinkoodi = "1234"; + while (yritykset <= 3 && onkoOikein == false) + { + if (yritykset <= 1) + { + Console.Write("Anna pin koodi: "); + string syote = Console.ReadLine(); + yritykset++; + if (syote.Equals(pinkoodi)) + { + Console.WriteLine("Pin kood oikein"); + onkoOikein = true; + break; + } + } + else + { + Console.WriteLine("Pin koodi vaarin!"); + Console.WriteLine("Yritä uudelleen: "); + string syote = Console.ReadLine(); + yritykset++; + if (syote.Equals(pinkoodi)) + { + Console.WriteLine("Pin koodi oikein!"); + onkoOikein = true; + } + else + { + Console.WriteLine("Annoit kolme kertaa pin koodin vaarin"); + Console.WriteLine("Kortti on otettu talteen"); + onkoOikein = false; + } + } + return onkoOikein; + } + return onkoOikein; + } + + //int syote = Convert.ToInt32(Console.ReadLine()); + /// <summary> + /// Aliohjelma joka on ohjelman paavalikko + /// </summary> + public static void Valikko() + { + double saldo = alkuSaldo(600.00); + while (true) + { + Console.WriteLine("Jos haluat saldon kirjoita saldo: "); + Console.WriteLine("Jos haluat tiliotteen kirjoita ote"); + Console.WriteLine("Jos haluat nostaa kirjoita otto"); + Console.WriteLine("Jos haluat pysayttaa kirjoita stop"); + Console.WriteLine("Jos haluat tallettaa tilille rahaa kirjoita talletus"); + string tapahtuma = Console.ReadLine(); + if (tapahtuma == "saldo") + { + tulostaSaldo(saldo); + } + else if (tapahtuma == "ote") + { + tulostaTilitapahtumat(); + } + else if (tapahtuma == "otto") + { + saldo = Nosto(saldo); + } + else if (tapahtuma == "talletus") + { + saldo = Talletus(saldo); + } + else if(tapahtuma == "stop") + { + break; + } + } + } + /// <summary> + /// Aliohjelma joka ottaa tililta rahaa asiakkaan nostaessa tililta rahaa + /// Tilin saldon ollessa liian pieni tililta ei pysty nostamaan rahaa + /// </summary> + /// <param name="saldo">parametrina viedaan saldo</param> + /// <returns>palauttaa tilin saldon</returns> + /// <example> + /// <pre name="test"> + /// saldo = 200.00 + /// + /// </pre> + /// </example> + public static double Nosto(double saldo) + { + Console.WriteLine("Kuinka paljon haluat nostaa: "); + double nosto = Convert.ToDouble(Console.ReadLine()); + + if (saldo > 0.00 && nosto < saldo) + { + saldo = saldo - nosto; + tiliTapahtumat(nosto); + } + else + { + Console.WriteLine("Tilillä ei ole katetta"); + } + + return saldo; + } + /// <summary> + /// Aliohjelma joka lisaa tilille asiakkaan lisaaman summan + /// </summary> + /// <param name="saldo">parametrina viedaan alkuperäinen saldo</param> + /// <returns>palauttaa lisatyn saldon</returns> + public static double Talletus(double saldo) + { + Console.Write("Kuinka paljon haluat tallettaa tilille: "); + double talletus = Convert.ToDouble(Console.ReadLine()); + + saldo = saldo - talletus; + tiliTapahtumat(talletus); + return talletus; + } + /// <summary> + /// Aliohjelma joka tuo asiakkaan tilin alkusaldon pin-koodin ollessa oikein + /// </summary> + /// <param name="luku">parametrina tuotu luku</param> + /// <returns>palauttaa saldon</returns> + public static double alkuSaldo(double luku) + { + double[] saldo = new double[1]; + return saldo[0] = luku; + + } + /// <summary> + /// Aliohjelma joka tulostaa tlin saldon + /// </summary> + /// <param name="saldo">parametrina viety tilin saldo</param> + public static void tulostaSaldo(double saldo) + { + //double[] saldo = Saldo(); + Console.WriteLine("Tililla on rahaa " + "+ " + saldo + " euroa"); + Console.WriteLine("Paavalikkoon paase painamalla enter"); + string syote = Console.ReadLine(); + } + /// <summary> + /// Funktio joka palauttaa tilitapahtuminen taulukon + /// </summary> + /// <param name="maara">Parametrina annettu talletus tai nosto</param> + /// <returns>Palauattaa merkkijonotaulukon tilitapahtumista</returns> + public static string[] tiliTapahtumat(double maara) + { + string [] taulu = new string[30]; + string lisays = maara.ToString(); + taulu.Append(lisays); + return taulu; + } + /// <summary> + /// Aliohjelma joka tulostaa tilitapahtumat + /// </summary> + public static void tulostaTilitapahtumat() + { + double luku= 0; + string[] taulu = tiliTapahtumat(luku); + int viimeinen = taulu.Length - 1; + string temp; + for (int i = 0,j = viimeinen; i < j; i++,j--) + { + temp = taulu[i]; + taulu[i] = taulu[j]; + taulu[j] = temp; + } + + for (int i = 0; i < taulu.Length; i++) + { + Console.WriteLine(taulu[i] + " euroa"); + } + Console.WriteLine("alkuvalikkoon paaset painamalla enter"); + string merkki = Console.ReadLine(); + } + /// <summary> + /// Aliohjelma joka tulostaa naytolle ohjelmastapoistuttaessa + /// </summary> + public static void Lopetus() + { + Console.WriteLine("Kiitos kaynnista"); + Console.WriteLine("Tervetuloa uudelleen"); + } +} \ No newline at end of file diff --git a/harjoitustyo/pankkiautomaatti/pankkiautomaatti.csproj b/harjoitustyo/pankkiautomaatti/pankkiautomaatti.csproj new file mode 100644 index 0000000..7841507 --- /dev/null +++ b/harjoitustyo/pankkiautomaatti/pankkiautomaatti.csproj @@ -0,0 +1,10 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net7.0</TargetFramework> + <ExternalConsole>true</ExternalConsole> + <RootNamespace>main</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/harjoitustyo/pankkiautomaattiTest/PankkiautomaattiTest.cs b/harjoitustyo/pankkiautomaattiTest/PankkiautomaattiTest.cs new file mode 100644 index 0000000..3a60486 --- /dev/null +++ b/harjoitustyo/pankkiautomaattiTest/PankkiautomaattiTest.cs @@ -0,0 +1,21 @@ +using System; +using System.Text; +using System.Linq; +using System.Collections.Generic; +using System.IO; +using System.Runtime.CompilerServices; +using NUnit.Framework; +using static Pankkiautomaatti; + + [TestFixture] + [DefaultFloatingPointTolerance(0.000001)] + public class TestPankkiautomaatti + { + [Test] + public void TestPinKoodi46() + { + Assert.AreEqual(true, PinKoodi(),"1234", "in method PinKoodi, line 47"); + Assert.AreEqual(false, PinKoodi(),"1111", "in method PinKoodi, line 48"); + } + } + diff --git a/harjoitustyo/pankkiautomaattiTest/pankkiautomaattiTest.csproj b/harjoitustyo/pankkiautomaattiTest/pankkiautomaattiTest.csproj new file mode 100644 index 0000000..f550cdf --- /dev/null +++ b/harjoitustyo/pankkiautomaattiTest/pankkiautomaattiTest.csproj @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net7.0</TargetFramework> + <IsPackable>false</IsPackable> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="NUnit" Version="3.13.1"/> + <PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\pankkiautomaatti\pankkiautomaatti.csproj"/> + </ItemGroup> +</Project> -- GitLab