@dam1an
"Form1.cs"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ThreadsTimer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void kupno_Click(object sender, EventArgs e)
{
int r = Convert.ToInt32(textBox1.Text);
tablicaUzytkownikow[0].Zakup(r, 3000.0);
MessageBox.Show("Kupiles " + r + " akcji o wartosci ");
listBox1.Items.Add("Data zakupu: " + DateTime.Now + "UTC Twoja strefa");
listBox1.Items.Add("Data zakupu: " + DateTime.UtcNow + "UTC 0");
listBox1.Items.Add("Zakup: " + textBox1.Text + "akcji o wartosci: ");
listBox1.Items.Add("\n");
}
private void sprzedaz_Click(object sender, EventArgs e)
{
int g = Int32.Parse(textBox1.Text);
//tablicaUzytkownikow[0].Sprzedaz(g, 3000.0);
listBox1.Items.Add(textBox1.Text);
}
public void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
//wersja jaskiniowa po przeniesieniu z konsoli
namespace ThreadsTimer
{
public static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
int i = 10, j = 4, m = 1; //
Transakcje[] tablicaUzytkownikow = new Transakcje[m];
tablicaUzytkownikow[0] = new Transakcje(1000.0);
Oprocentowanie[,] tablica2d = new Oprocentowanie[i, j];
//ListBox1.Items.Add("notowanie nr {0,10} \n", x);
tablica2d[0, 0] = new Oprocentowanie(-90, 120, "akcje", 300.0); // uruchomienie programu, wartosc poczatkowa 300
tablica2d[0, 1] = new Oprocentowanie(-5, 20, "rynek pieniezny", 300.0);
tablica2d[0, 2] = new Oprocentowanie(-10, 40, "obligacje", 300.0);
tablica2d[0, 3] = new Oprocentowanie(-3, 70, "rynek zrownowazony", 300.0);
tablica2d[0, 0].PokazO();
tablica2d[0, 1].PokazO();
tablica2d[0, 2].PokazO();
tablica2d[0, 3].PokazO();
// dalsza czesc programu, pobieranie wartosci zaktualizowanej, aktualizacja nastepuje zaraz po wylosowaniu oprocentowania
for ( int x = 1; x < 3; x++) // test dla x <3
{
//ListBox1.Items.Add("notowanie nr {0,10} \n", x);
tablica2d[x, 0] = new Oprocentowanie(-90, 120, "akcje", tablica2d[x - 1, 0].WA);
tablica2d[x, 0].PokazO();
tablica2d[x, 1] = new Oprocentowanie(-5, 20, "rynek pieniezny", tablica2d[x - 1, 1].WA);
tablica2d[x, 1].PokazO();
tablica2d[x, 2] = new Oprocentowanie(-10, 40, "obligacje", tablica2d[x - 1, 2].WA);
tablica2d[x, 2].PokazO();
tablica2d[x, 3] = new Oprocentowanie(-3, 70, "rynek zrownowazony", tablica2d[x - 1, 3].WA);
tablica2d[x, 3].PokazO();
}
}
}
}
"yyy.cs" // definicje klas
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ThreadsTimer
{
class Transakcje
{
public int ilosc, xx;
public double wartosc;
public double WielkoscTransakcji;
public double saldo;
public Transakcje(double xxx)
{
saldo = xxx;
}
public void Zakup(int iloscie, double wartoscie)
{
ilosc = iloscie; wartosc = wartoscie;
if ((double)ilosc * wartosc > saldo)// sprawdzanie czy mamy dostepne srodki na transakcje
{
//MessageBox.Show("brak srodków na tę transakcje");
ilosc = 0;
}
else if ((double)ilosc * wartosc <= saldo)
{
WielkoscTransakcji = (double)ilosc * wartosc;
saldo -= WielkoscTransakcji;
//listBox1.Items.Add("kuponoo wartosc: {0,10:C} saldo : {1,10:C}", WielkoscTransakcji, saldo);
}
}
public void Sprzedaz(int il, double wartoscie)
{
xx = il; wartosc = wartoscie;
//if (ilosc < xx)
//{
// MessageBox.Show("nie posiadasz tyle akcji");
//}
//else
//{
WielkoscTransakcji = (double)xx * wartosc;
WielkoscTransakcji -= WielkoscTransakcji * 0.02;
saldo += WielkoscTransakcji; //dodanie a pozniej przypisanie
//}
}
}// koniec klasy Transakcje
class Oprocentowanie
{
private int c; // wylosowana wartosc oprocentowania z przedzialu <a,b>
public double o; // o - oprocentowanie , d= 1000, ptrzebna do ulamka dziesietnego
private double d = 1000d; // "przesuniecie" przecinka
public string nazwy; // nazwa funduszu
public double WA; // wartosc akcji
public Oprocentowanie(int a, int b, string nazwa, double WP) // konstruktor
{
xxx:
Random rnd = new Random();
c = rnd.Next(a, b);
o = (double)c / d;
nazwy = nazwa;
if (((WP * o) + WP) < 0) // zabezpieczenie aby wartosci nie spadly poniezej zera
{
goto xxx;
}
else
{
WA = (WP * o) + WP;
}
WP = WA; //przypisanie, aktualizacja
}
public void Clean()
{
//listBox1.Items.Add("przerwa w notowaniu 10s");
Thread.Sleep(10000);
//listBox1.Items.Add(DateTime.Now);
}
public void PokazO() //wyswietlanie
{
//listBox1.Items.Add("zmiana wartosci o {0,-15:P} wartosc {1,-20:C} : {2,10:C}\n", o, nazwy, WA);
}
}//koniec klasy Oprocentowanie
}