Skip to content
Snippets Groups Projects
Commit 766d4631 authored by Vesikukka Teemu's avatar Vesikukka Teemu
Browse files

harjoitustyon muutoksien palautus

parent 95df0ccf
No related branches found
No related tags found
No related merge requests found
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
/workspace.xml /workspace.xml
# Rider ignored files # Rider ignored files
/projectSettingsUpdater.xml /projectSettingsUpdater.xml
/contentModel.xml /.idea.Harjoitustyo.iml
/.idea.harjoitustyo.iml
/modules.xml /modules.xml
/contentModel.xml
# Editor-based HTTP Client requests # Editor-based HTTP Client requests
/httpRequests/ /httpRequests/
# Datasource local storage ignored files # Datasource local storage ignored files
......
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pankkiautomaatti", "Pankkiautomaatti\Pankkiautomaatti.csproj", "{14D5A824-81F6-4AE6-B17B-4BB1BD694219}"
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 EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {14D5A824-81F6-4AE6-B17B-4BB1BD694219}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Debug|Any CPU.Build.0 = Debug|Any CPU {14D5A824-81F6-4AE6-B17B-4BB1BD694219}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.ActiveCfg = Release|Any CPU {14D5A824-81F6-4AE6-B17B-4BB1BD694219}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F68F6A3-2942-4E05-B7C1-DDB329F75448}.Release|Any CPU.Build.0 = Release|Any CPU {14D5A824-81F6-4AE6-B17B-4BB1BD694219}.Release|Any CPU.Build.0 = Release|Any CPU
{DF473C3E-752D-45D2-A9CC-0AAEE9BF18FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU EndGlobalSection
{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 EndGlobal

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
...@@ -3,10 +3,9 @@ using System.Text; ...@@ -3,10 +3,9 @@ using System.Text;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Runtime.CompilerServices;
/// @author Teemu Vesikukka /// @author Teemu Vesikukka
/// @version 15.10.2023 /// @version 28.03.2025
/// <summary> /// <summary>
/// Käyttäjä voi hoitaa pankkiasioita ohjelman kautta /// Käyttäjä voi hoitaa pankkiasioita ohjelman kautta
/// </summary> /// </summary>
...@@ -18,85 +17,107 @@ public class Pankkiautomaatti ...@@ -18,85 +17,107 @@ public class Pankkiautomaatti
/// </summary> /// </summary>
public static void Main() public static void Main()
{ {
double luku = 0.00;
Aloitus(); Aloitus();
if (PinKoodi() == true) if (PinKoodi2() == true)
{ {
Valikko(); double alkusaldo = AlkuSaldo();
List<string> tiliote = new List<string>();
tiliote = File.ReadAllLines("Tiliote.txt").ToList();
Valikko(alkusaldo, tiliote);
} }
Lopetus(); Lopetus();
} }
/// <summary>
/// Aliohjelma joka aloittaa pyytamalla asiakkaan kortin
/// </summary>
public static void Aloitus() public static void Aloitus()
{ {
Console.WriteLine("Tervetuloa!"); Console.WriteLine("Tervetuloa!");
Console.WriteLine("Syota kortti ole hyva"); Console.WriteLine("Syota kortti ole hyva");
} }
/// <summary>
/// Aliohjelma lukee tekstitiedostosta tilin saldon
/// </summary>
/// <returns>saldo</returns>
public static double AlkuSaldo()
{
const string POLKU = @"C:\Users\Vespa\Desktop\gradia\ohjelmointi1_jyu_2025\harjoitustyo\Harjoitustyo\Pankkiautomaatti\saldo.txt";
string[] luetutRivit = File.ReadAllLines(POLKU);
double saldo = Convert.ToDouble(luetutRivit[0]);
return saldo;
}
/// <summary>
/// Aliohjelma vie tekstitiedostoon tilin saldon
/// </summary>
/// <param name="loppuSaldo"></param>
public static void LoppuSaldo(double loppuSaldo)
{
string [] saldo = new string[1];
saldo[0] = loppuSaldo.ToString();
const string POLKU = @"C:\Users\Vespa\Desktop\gradia\ohjelmointi1_jyu_2025\harjoitustyo\Harjoitustyo\Pankkiautomaatti\saldo.txt";
File.WriteAllLines(POLKU, saldo);
}
public static void LoppuTiliote(List<string> tiliote)
{
const string POLKU = @"C:\Users\Vespa\Desktop\gradia\ohjelmointi1_jyu_2025\harjoitustyo\Harjoitustyo\Pankkiautomaatti\tiliote.txt";
File.WriteAllLines(POLKU, tiliote);
}
/// <summary> /// <summary>
/// Aliohjelma joka pyytaa asiakkaalta pin-koodin ja koodin /// Aliohjelma joka pyytaa asiakkaalta pin-koodin ja koodin
/// ollessa oikein paastaa asiakkaan kayttamaan tilia /// ollessa oikein paastaa asiakkaan kayttamaan tilia
/// </summary> /// </summary>
/// <returns>alse or true</returns> /// <returns>palauttaa totuusarvon onko pinkoodi oikein</returns>
/// <example> /// <example>
/// <pre name="test"> /// <pre name="test">
/// PinKoodi(),"1234"===true; /// PinKoodi(),"1234"===true;
/// PinKoodi(),"1111"===false;
/// </pre> /// </pre>
/// </example> /// </example>
public static bool PinKoodi() public static bool PinKoodi2()
{ {
int yritykset = 0; int yritykset = 1;
bool onkoOikein = false; int pinkoodi = 1234;
string pinkoodi = "1234"; bool onkoOikien = true;
while (yritykset <= 3 && onkoOikein == false) Console.WriteLine("Anna pin koodi >" );
int koodi = Convert.ToInt32(Console.ReadLine());
yritykset++;
if (koodi.Equals(pinkoodi))
{ {
if (yritykset <= 1) onkoOikien = true;
}
else
{
while (yritykset <= 3)
{ {
Console.Write("Anna pin koodi: "); Console.WriteLine("Pinkoodi väärin");
string syote = Console.ReadLine(); Console.WriteLine("Anna pin koodi >" );
int koodi2 = Convert.ToInt32(Console.ReadLine());
yritykset++; yritykset++;
if (syote.Equals(pinkoodi)) if (koodi2.Equals(pinkoodi))
{ {
Console.WriteLine("Pin kood oikein"); onkoOikien = true;
onkoOikein = true;
break; 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 else
{ {
Console.WriteLine("Annoit kolme kertaa pin koodin vaarin"); Console.WriteLine("Annoit kolme kertaa pin koodin vaarin");
Console.WriteLine("Kortti on otettu talteen"); Console.WriteLine("Kortti on otettu talteen");
onkoOikein = false; onkoOikien = false;
} }
} }
return onkoOikein;
} }
return onkoOikein; return onkoOikien;
} }
//int syote = Convert.ToInt32(Console.ReadLine());
/// <summary> /// <summary>
/// Aliohjelma joka on ohjelman paavalikko /// Päävalikko josta hoidetaan tiliasiat
/// </summary> /// </summary>
public static void Valikko() /// <param name="alkusaldo"></param>
public static void Valikko(double alkusaldo, List<string> tiliote)
{ {
double saldo = alkuSaldo(600.00); double saldo = alkusaldo;
while (true) while (true)
{ {
Console.WriteLine("Jos haluat saldon kirjoita saldo: "); Console.WriteLine("Jos haluat saldon kirjoita saldo: ");
...@@ -111,18 +132,20 @@ public class Pankkiautomaatti ...@@ -111,18 +132,20 @@ public class Pankkiautomaatti
} }
else if (tapahtuma == "ote") else if (tapahtuma == "ote")
{ {
tulostaTilitapahtumat(); tulostaTiliote(tiliote, saldo);
} }
else if (tapahtuma == "otto") else if (tapahtuma == "otto")
{ {
saldo = Nosto(saldo); saldo = Nosto(saldo, tiliote);
} }
else if (tapahtuma == "talletus") else if (tapahtuma == "talletus")
{ {
saldo = Talletus(saldo); saldo = Talletus(saldo, tiliote);
} }
else if(tapahtuma == "stop") else if(tapahtuma == "stop")
{ {
LoppuSaldo(saldo);
LoppuTiliote(tiliote);
break; break;
} }
} }
...@@ -133,13 +156,7 @@ public class Pankkiautomaatti ...@@ -133,13 +156,7 @@ public class Pankkiautomaatti
/// </summary> /// </summary>
/// <param name="saldo">parametrina viedaan saldo</param> /// <param name="saldo">parametrina viedaan saldo</param>
/// <returns>palauttaa tilin saldon</returns> /// <returns>palauttaa tilin saldon</returns>
/// <example> public static double Nosto(double saldo, List<string> tiliote)
/// <pre name="test">
/// saldo = 200.00
///
/// </pre>
/// </example>
public static double Nosto(double saldo)
{ {
Console.WriteLine("Kuinka paljon haluat nostaa: "); Console.WriteLine("Kuinka paljon haluat nostaa: ");
double nosto = Convert.ToDouble(Console.ReadLine()); double nosto = Convert.ToDouble(Console.ReadLine());
...@@ -147,7 +164,8 @@ public class Pankkiautomaatti ...@@ -147,7 +164,8 @@ public class Pankkiautomaatti
if (saldo > 0.00 && nosto < saldo) if (saldo > 0.00 && nosto < saldo)
{ {
saldo = saldo - nosto; saldo = saldo - nosto;
tiliTapahtumat(nosto); string rivi = DateTime.Now.ToString("dd/MM/yyyy")+ "\totto" + "\t" + " - "+ nosto.ToString();
tiliote.Add(rivi);
} }
else else
{ {
...@@ -161,26 +179,19 @@ public class Pankkiautomaatti ...@@ -161,26 +179,19 @@ public class Pankkiautomaatti
/// </summary> /// </summary>
/// <param name="saldo">parametrina viedaan alkuperäinen saldo</param> /// <param name="saldo">parametrina viedaan alkuperäinen saldo</param>
/// <returns>palauttaa lisatyn saldon</returns> /// <returns>palauttaa lisatyn saldon</returns>
public static double Talletus(double saldo) public static double Talletus(double saldo, List<string> tiliote)
{ {
Console.Write("Kuinka paljon haluat tallettaa tilille: "); Console.Write("Kuinka paljon haluat tallettaa tilille: ");
double talletus = Convert.ToDouble(Console.ReadLine()); double talletus = Convert.ToDouble(Console.ReadLine());
//double talletus = double.Parse(Console.ReadLine());
saldo = saldo - talletus; saldo = saldo + talletus;
tiliTapahtumat(talletus); string rivi = DateTime.Now.ToString("dd/MM/yyyy")+ "\ttalletus" + "\t" + " + " +talletus.ToString();
return talletus; tiliote.Add(rivi);
}
/// <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;
return saldo;
} }
/// <summary> /// <summary>
/// Aliohjelma joka tulostaa tlin saldon /// Aliohjelma joka tulostaa tlin saldon
/// </summary> /// </summary>
...@@ -192,46 +203,38 @@ public class Pankkiautomaatti ...@@ -192,46 +203,38 @@ public class Pankkiautomaatti
Console.WriteLine("Paavalikkoon paase painamalla enter"); Console.WriteLine("Paavalikkoon paase painamalla enter");
string syote = Console.ReadLine(); 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> /// <summary>
/// Aliohjelma joka tulostaa tilitapahtumat /// Aliohjelma joka tulostaa tilitapahtumat
/// </summary> /// </summary>
public static void tulostaTilitapahtumat() public static void tulostaTiliote(List<string> tiliote, double saldo)
{ {
double luku= 0; int viimeinen = tiliote.Count - 1;
string[] taulu = tiliTapahtumat(luku);
int viimeinen = taulu.Length - 1;
string temp; string temp;
for (int i = 0,j = viimeinen; i < j; i++,j--) for (int i = 1,j = viimeinen; i < j; i++,j--)
{ {
temp = taulu[i]; temp = tiliote[i];
taulu[i] = taulu[j]; tiliote[i] = tiliote[j];
taulu[j] = temp; tiliote[j] = temp;
} }
for (int i = 0; i < taulu.Length; i++) for (int i = 0; i < tiliote.Count; i++)
{ {
Console.WriteLine(taulu[i] + " euroa"); string rivi = tiliote[i];
Console.WriteLine("{0, 2} ", rivi);
} }
Console.WriteLine("Tilin saldo: {0,10:f2}\t", saldo);
Console.WriteLine("alkuvalikkoon paaset painamalla enter"); Console.WriteLine("alkuvalikkoon paaset painamalla enter");
string merkki = Console.ReadLine(); string merkki = Console.ReadLine();
} }
/// <summary> /// <summary>
/// Aliohjelma joka tulostaa naytolle ohjelmastapoistuttaessa /// Aliohjelma joka tulostaa naytolle ohjelmastapoistuttaessa
/// </summary> /// </summary>
public static void Lopetus() public static void Lopetus()
{ {
Console.WriteLine("Kiitos kaynnista"); Console.WriteLine("Kiitos kaynnista");
Console.WriteLine("Tervetuloa uudelleen"); Console.WriteLine("Tervetuloa uudelleen");
} }
......
...@@ -2,9 +2,17 @@ ...@@ -2,9 +2,17 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole> <ExternalConsole>true</ExternalConsole>
<RootNamespace>main</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<None Update="saldo.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="tiliote.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>
500
PVM Tapahtuma Summa
\ No newline at end of file
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");
}
}
<?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>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment