Reklama
Pokazuje wyniki od 1 do 4 z 4

Temat: C# - rozłożenie jednej linijki na klase (visual studio 2013)

  1. #1
    Avatar Pawlo
    Data rejestracji
    2009
    Posty
    388
    Siła reputacji
    16

    Domyślny C# - rozłożenie jednej linijki na klase (visual studio 2013)

    Witam. Program ma konwertować wpisaną liczbę dziesiętną na binarną oraz 16tkową. Kod zrobiłem, osobna klasa dla części binarnej jest (nie ma być to klasa w głównej strukturze tylko > add > class > nazwa klasy itp i odwołania do niej mają być (lub cokolwiek, nie ogarniam tych pojęć pomimo paru podejść do tego)
    Form1.cs
    Kod:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Zadanie1_zamiany
    {
        public partial class Form1 : Form
        
        {
            ZamienBinarnie Dh = new ZamienBinarnie();  
            ZamienBinarnie Lc = new ZamienBinarnie();
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Lc.LiczbaBinarnie = "";
                Lc.LiczbaCalkowita = 0;
                Lc.LiczbaCalkowita = Convert.ToInt32(textBox1.Text);
                Lc.CalkowitaNaBinarnie();
                label3.Text = Lc.LiczbaBinarnie;
            }
    
            private void button2_Click_1(object sender, EventArgs e)
            {
                label4.Text = Convert.ToInt32(textBox2.Text).ToString("X"); 
            }
        }
    }
    ZamienBinarnie.cs
    Kod:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Zadanie1_zamiany
    {
        public class ZamienBinarnie
        {
            public int LiczbaCalkowita;
            public string LiczbaBinarnie;
            public void CalkowitaNaBinarnie()
            {
                do
                {
                    if (LiczbaCalkowita % 2 == 1)
                    {
                        LiczbaCalkowita /= 2;
                        LiczbaBinarnie += "1";
                    }
                    else
                    {
                        LiczbaCalkowita /= 2;
                        LiczbaBinarnie += "0";
                    }
                } while (LiczbaCalkowita > 0);
    
                int IleZnakow = LiczbaBinarnie.Count();
                string Temp = "";
    
                for (int i = IleZnakow; i > 0; i--)
                {
                    Temp += LiczbaBinarnie[i - 1];
                }
                LiczbaBinarnie = Temp;
            }
        }
    }


    Moje problem to
    1szy - najważniejszy. Jak wrzucić część odpowiedzialną za 10>16 do klasy (hexclass czy jakaś tam nazwa). (muszę tak zrobić bo taki przedmiot...)
    2gie - czy 10>2 da się jakoś uprościć?

  2. #2

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj Pawlo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Witam. Program ma konwertować wpisaną liczbę dziesiętną na binarną oraz 16tkową. Kod zrobiłem, osobna klasa dla części binarnej jest (nie ma być to klasa w głównej strukturze tylko > add > class > nazwa klasy itp i odwołania do niej mają być (lub cokolwiek, nie ogarniam tych pojęć pomimo paru podejść do tego)
    Form1.cs
    Kod:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Zadanie1_zamiany
    {
        public partial class Form1 : Form
        
        {
            ZamienBinarnie Dh = new ZamienBinarnie();  
            ZamienBinarnie Lc = new ZamienBinarnie();
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Lc.LiczbaBinarnie = "";
                Lc.LiczbaCalkowita = 0;
                Lc.LiczbaCalkowita = Convert.ToInt32(textBox1.Text);
                Lc.CalkowitaNaBinarnie();
                label3.Text = Lc.LiczbaBinarnie;
            }
    
            private void button2_Click_1(object sender, EventArgs e)
            {
                label4.Text = Convert.ToInt32(textBox2.Text).ToString("X"); 
            }
        }
    }
    ZamienBinarnie.cs
    Kod:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Zadanie1_zamiany
    {
        public class ZamienBinarnie
        {
            public int LiczbaCalkowita;
            public string LiczbaBinarnie;
            public void CalkowitaNaBinarnie()
            {
                do
                {
                    if (LiczbaCalkowita % 2 == 1)
                    {
                        LiczbaCalkowita /= 2;
                        LiczbaBinarnie += "1";
                    }
                    else
                    {
                        LiczbaCalkowita /= 2;
                        LiczbaBinarnie += "0";
                    }
                } while (LiczbaCalkowita > 0);
    
                int IleZnakow = LiczbaBinarnie.Count();
                string Temp = "";
    
                for (int i = IleZnakow; i > 0; i--)
                {
                    Temp += LiczbaBinarnie[i - 1];
                }
                LiczbaBinarnie = Temp;
            }
        }
    }


    Moje problem to
    1szy - najważniejszy. Jak wrzucić część odpowiedzialną za 10>16 do klasy (hexclass czy jakaś tam nazwa). (muszę tak zrobić bo taki przedmiot...)
    2gie - czy 10>2 da się jakoś uprościć?
    Ta, stwórz sobie klasę NumberConverter i metodę convert(int source, int sourceFrom, int outputTo) , czyli np:
    convert(10,10,16) -> A
    convert(10,10,2) -> 1010
    convert(10,3,10) -> 3
    etc

  3. Reklama
  4. #3
    Avatar Pawlo
    Data rejestracji
    2009
    Posty
    388
    Siła reputacji
    16

    Domyślny

    Nie rozumiem. To jest odpowiedź na obydwa pytania sugerująca zrobienie wszystkiego w jednej klasie? Dało by radę skrobnąć te parę linijek "gotowca"?

  5. #4
    Avatar Absherr
    Data rejestracji
    2008
    Położenie
    Kraków
    Posty
    578
    Siła reputacji
    16

    Domyślny

    Kodu ci nie napiszę, ale ogólnie i chyba najłatwiej:
    1. Dodaj nową klasę Converter. Ona będzie miała dwie metody: ConvertToBinary(to już masz, wystarczy skopiować) i ConvertToHex.
    2. Używaj analogicznie jak tego co masz teraz.
    3. ???
    4. Profit!
    Ostatnio zmieniony przez Absherr : 29-10-2014, 21:03

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Visual Studio nie uruchamia się.
    Przez Kokolik w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 7
    Ostatni post: 04-09-2014, 21:53
  2. Visual Studio 2013 projekt dużo waży
    Przez mczebanyk w dziale Programowanie
    Odpowiedzi: 1
    Ostatni post: 02-02-2014, 13:58
  3. Problem z kompilacją w Visual Studio
    Przez hefalump w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 3
    Ostatni post: 11-03-2013, 22:12
  4. Palladyn - atak z jednej kratki
    Przez grubelollo w dziale Tibia
    Odpowiedzi: 2
    Ostatni post: 08-07-2010, 20:31

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •