Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

C# Kalkulator - Historia wykonywanych operacji

#1
Exclamation  C# Kalkulator - Historia wykonywanych operacji
Witam,

zacząłem ostatnio zabawę z C# (Visual Studio). Napisałem sobie kalkulator, jednakże muszę dodać do niego jedną funkcjonalność, a mianowicie historię wykonywanych operacji. Z tym, że nie bardzo wiem jak się za to zabrać;/
Czy jest ktoś w stanie powiedzieć mi z jakich metod warto skorzystać, podać algorytm lub jakąkolwiek inną pomoc?
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: C# Kalkulator - Historia wykonywanych operacji
Nie wiem dokładnie, co rozumiesz poprzez "każdą operację" oraz jak to w kodzie wygląda, ale samą historię możesz zrealizować za pomocą klasy stosu - Stack. Polecam tę z System.Collections.Generic, bo pozwala okna na określenie typu obiektów, które będzie przechowywać (np. Stack<string> to stos stringów).
Obiekt klasy posiada metody Push oraz Pop, które pozwalają wsadzić coś na stos, albo z niego ściągnąć. Jest też Peek do podglądu ostatniej (najświeższej) wartości na stosie.
Jeśli chodzi o sam algorytm, to możesz albo zapisywać konkretne operacje (np. +, - itd.), albo zapisywać kolejne stany po operacjach. Druga opcja ma tę zaletę, że nie trzeba kombinować, jak przeliczyć obecny stan do stanu wcześniejszego dysponując tylko informacją o wykonanej operacji.
A SQL query goes into a bar, walks up to two tables and says, "Can I join you?"

[Obrazek: 15j3phh4_1 kopia2a.jpg]
 System operacyjny: windows_seven Przeglądarka: opera
#3
RE: C# Kalkulator - Historia wykonywanych operacji
1. Nie pisałem "każdą operację", ale historię operacjiWesoły
2. OK jutro poczytam sobie o owej klasie stosu i w razie pytań/wątpliwości jeszcze się odezwę;)

Ogólnie zasada ma być taka:
Robię sobie np. działania po kolei:
- 5+4
- 7*7
- sin90
- 5!

itp itd. Po kliknięciu buttona ma mi się wyświetlać historia operacji od najświeższej do najstarszej...mogę to również ograniczyć np. do 10 ostatnich operacji.
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: C# Kalkulator - Historia wykonywanych operacji
Najprostszym rozwiązaniem byłoby zapisywanie do pliku i późniejsze ich odczytanie - zwłaszcza gdy historia nie ma być tracona gdy zamkniesz program.
Żaden kraj nie może być dobrze rządzony, dopóki wszyscy jego obywatele nie będą pamiętać, że oni są strażnikami prawa.




 System operacyjny: linux_fedora Przeglądarka: firefox
#5
RE: C# Kalkulator - Historia wykonywanych operacji
(07.04.2011, 00:50)danon1989 napisał(a): itp itd. Po kliknięciu buttona ma mi się wyświetlać historia operacji od najświeższej do najstarszej...mogę to również ograniczyć np. do 10 ostatnich operacji.
W takim wypadku użyj listy, bo stos nie pozwala na przeglądanie całej zawartości (taka jego idea).

oskarzet -> No nie wiem, czy takim najprostszym rozwiązaniem będzie jeżdżenie po pliku tam i z powrotem. Owszem, zrzucić do pliku przed zamknięciem programu i wczytać przy otwarciu tak - jeśli program ma to wspierać.
A SQL query goes into a bar, walks up to two tables and says, "Can I join you?"

[Obrazek: 15j3phh4_1 kopia2a.jpg]
 System operacyjny: windows_seven Przeglądarka: opera
#6
RE: C# Kalkulator - Historia wykonywanych operacji
w takim wypadku co proponujecie??

Na razie wolałbym się skupić na prostocie implementacji (jak się uda to będę mógł urozmaicać lub też postarać się wdrożyć wydajniejszy sposóbWesoły).

wiesniak napisał(a):W takim wypadku użyj listy...

Jakiej listy?? Możesz podać dokładnie z jakich metod skorzystać??
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: C# Kalkulator - Historia wykonywanych operacji
System.Collections.Generic.List<>
Poczytaj trochę o kolekcjach http://msdn.microsoft.com/en-us/library/7y3x785f.aspx
A SQL query goes into a bar, walks up to two tables and says, "Can I join you?"

[Obrazek: 15j3phh4_1 kopia2a.jpg]
 System operacyjny: windows_seven Przeglądarka: opera
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
c# kalkulator graficznykalkulator historiakalkulator i focus c#visual studio historia kalkulatora

Podobne wątki (C# Kalkulator - Historia wykonywanych operacji)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Początki z bashem - jak napisać skrypty: wysłanie maila i kalkulator? Kristov81 4 14643 21.03.2018, 18:32
Ostatni post: Szachista
  Kalkulator problem z funkcjami lub czymś takim. Pan_Gronostaj 1 6795 17.02.2015, 20:37
Ostatni post: Raciawelli
Sad Zrobi Kalkulator graficzny [java] Milus47 2 7285 12.01.2015, 18:00
Ostatni post: flowslow

Skocz do:


Wybrane wątki (C# Kalkulator - Historia wykonywanych operacji)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  .bat nie kompresuje plików GIENTY 3 9905 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 11113 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 9739 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 10520 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2597 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 11099 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 11520 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 10617 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 11214 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 10858 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 10917 13.05.2018 10:43
Ostatni post: Szachista
  Autohotkey automatyczny zapis TheProgson 0 10466 07.05.2018 21:27
Ostatni post: TheProgson
  VBA Pobieranie wybranych plików z danymi julietta03 1 10799 04.05.2018 08:25
Ostatni post: broda99
  [VBA] Przenoszenie danych między formularzami Pioro 4 11276 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 10713 23.04.2018 10:04
Ostatni post: armen10