Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как значение char op передать из main в свойство

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Как  значение  char  op   передать  из  main   в   свойство  c   class A ,   чтобы  в  итоге  вывести  значение res  на  консоль ?      
 
 
using System;
namespace Lab1
{
    class A
    {
        double a, b ;
 
        public A(double a, double b)
        {
            this.a = a;
            this.b = b;            
        }
 
        public double get_a()
        {
            return a;
        }
 
        public double get_b()
        {
            return b;
        }    
       
           
        public double c    //  свойство  с
        {            
            get
            {
                double res;                        
                char op;
                bool ok = true;
                switch (op)
                {
                    case '+': res = get_a() + get_b(); break;
                    case '-': res = get_a() - get_b(); break;
                    case '*': res = get_a() * get_b(); break;
                    case '/': res = get_a() / get_b(); break;
                    default: res = double.NaN; ok = false; break;
                     
                }
 
                //if (ok) Console.WriteLine("Результат:" + res);
                //else Console.WriteLine("Недопустимая операция");
 
                return res;                
             }
         }                  
                       
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {            
             
            double x = 4, y = 11;
 
            Console.WriteLine("Введите знак операции");
            char op = (char)Console.Read();
            Console.ReadLine();
 
            Console.WriteLine("res="+  ???.c());
 
           
            A Ob = new A(x, y);
            Console.WriteLine("Используем конструктор : A.a = "  
                     + Ob.get_a() + ", A.b = " + Ob.get_b());
            Console.WriteLine();                
                       
 
            Console.ReadLine();
        }
    }
}
 
 
 

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 20:46 19-09-2015
StillPhelix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladimirll, по причине лени в компилятор эту программу не заганял, но в кратце делаем так:
Перед
Цитата:
double a, b ;
поставить private.

Цитата:
public double c    //  свойство  с  
исправить на public double c ()
get{} удаляем (кроме тела опереторов: это то, что между {})
class Program{}удаляем (кроме тела опереторов: это то, что между {})
Далее в main создаём экземпляр класса А и после этого можно обратится метеду с, ка к экземпляру класса А.
 
 
 
Добавлено:
это если речь идёт о чистом с++
 
Добавлено:

Цитата:
char op
перенести в принимаемые аргументы метода с.
Цитата:
A Ob = new A(x, y);  
поставить в самое начало main. и в таком случае
Цитата:
???
заменить на Ob.
В коппилятор программу не заганял.
 
 
 
 

Всего записей: 173 | Зарегистр. 18-08-2013 | Отправлено: 11:50 20-09-2015
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Пока  вот  так. Программа  на   языке   С#.  Вчера , 19  сент   вечером  , внес   в   программу   изменения.  Программа  работает.  Но   не   знаю   может   я    где-то   проявил  самодеятельность  ,  в  смысле   принципиально не   грамотно  в   некоторых   местах  совершенны  действия   ?
 
using System;
namespace Lab2
{
    class A
    {
        double a, b;
        char d;
 
        public A(double a, double b, char d)
        {
            this.a = a;
            this.b = b;
            this.d = d;
        }
 
        public double get_a()
        {
            return a;
        }
 
        public double get_b()
        {
            return b;
        }
 
        public char get_d()
        {
            return d;
        }
 
 
        public double svois    //  свойство svois
        {
            get
            {
              double res;                
              bool ok = true;
              switch (get_d())    
              {
                 case '+': res = get_a() + get_b(); break;
                 case '-': res = get_a() - get_b(); break;
                 case '*': res = get_a() * get_b(); break;
                 case '/': res = get_a() / get_b(); break;
                 default: res = double.NaN; ok = false; break;
              }        
              if (ok) Console.WriteLine("Результат:" + res);
              else Console.WriteLine("Недопустимая операция");
 
              return res;
            }
        }
    }
 
    class Program
    {  static void Main(string[] args)
       {
 
          double x = 4, y = 11;                
 
          Console.WriteLine("Введите знак операции");
          char op = (char)Console.Read();
          Console.ReadLine();          
                 
          A Ob = new A(x,y,op);
          Console.WriteLine("res="+ Ob.svois);
 
          Console.WriteLine("Используем конструктор : A.a = "
                  + Ob.get_a() + ", A.b = " + Ob.get_b());
                        Console.WriteLine();
 
          Console.ReadKey();
       }
    }
}
 
 
 
 

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 15:31 20-09-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как значение char op передать из main в свойство


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru