Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449

Как работать с переменными, объявленными в другом классе?

20.03.2016, 15:49. Показов 2525. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Помогите, пожалуйста, объявила через конструктор переменные. затем запускается Menu(). Оттуда переходим в Ans1.
Как теперь работать с переменными, объявленными в начале? Можно ли это сделать через цикл?

И еще один вопрос. Происходит генерация исключения: throw new ArgumentOutOfRangeException(); Где её можно редактировать?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Account
    {
        private string Fam;
        private double NS;
        private double Proc;
        private double Summ;
        
    public Account(string Fam, double NS, double Proc, double Summ)
     {
           this.Fam = Fam;
           this.NS = NS;
           this.Proc = Proc;
           this.Summ = Summ;
      }
 
        public double Sum
        { get
            { return Summ; }
          set
            {
              if (Summ < value)
                { Summ = Summ - value; }
                else
              throw new ArgumentOutOfRangeException();
            }
        }
 
    }
    class Prog
    {
     
        static void Ans1()
        {   string Fam;
            Account Ac1, Ac2, Ac3, Ac4, Ac5,  
            Console.Write("Введите фамилию владельца счета: ");
            Fam = Console.ReadLine();
            if (Account Ac1.Fam==Fam)
                {
                Console.WriteLine("Номер счета: "+Ter[i].NS);
                Console.WriteLine("Процент начисления: "+Ter[i].Proc);
                Console.WriteLine("Сумма в рублях: "+Ter[i].Summ);
                }
            Menu();
        }
 
        
 
    static int Menu()
    {   int ans;
        Console.WriteLine();
        Console.WriteLine("Выберите действие: ");
        Console.WriteLine("   1 - Вывести информацию о счете на экран");
        Console.WriteLine("   2 - Сменить владельца счета");
        Console.WriteLine("   3 - Снять деньги со счета");
        Console.WriteLine("   4 - Добавить деньги на счет");
        Console.WriteLine("   5 - Начислить проценты");
        Console.WriteLine("   6 - Перевести сумму в Доллары");
        Console.WriteLine("   7 - Перевести сумму в Евро");
        Console.WriteLine("   0 - Выход");
        ans = int.Parse(Console.ReadLine());
        if (ans==1) 
        {Ans1();}
        if (ans==2) 
        {Ans2();}
        if (ans==3) 
        {Ans3();}
        if (ans==4) 
        {Ans4();}
        if (ans==5) 
        {Ans5();}
        if (ans==6) 
        {Ans6();}
        if (ans==7) 
        {Ans7();}
        return 0;
    }
 
        static void Main()
       {
               Account Ac1 = new Account ("Иванов", 85749382, 6.3, 14875);
               Account Ac2 = new Account ("Максимов", 46382967, 16.8, 38859);
               Account Ac3 = new Account("Петров", 16285936, 2.6, 3748);
               Account Ac4 = new Account("Александров", 27395738, 26.2, 48372);
               Account Ac5 = new Account("Дмитров", 95748293, 11.4, 84738);
           Menu();
          }
        }
    }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2016, 15:49
Ответы с готовыми решениями:

Что делать с переменными, объявленными как globals?
Есть старый кривой скрипт с переменными, объявленными как globals, который не работает. Каким способом поправить это дело, не включая...

Как использовать объект класса, созданого в определеном классе, в другом классе
У меня такой вопрос,как использовать объект класса,созданого в определеном классе,в другом классе.У меня есть объект pl класса Player,это...

Как использовать информацию парсированую в 1 классе в другом классе
имеются 2 класса , объясните плз в чём ошибка using System; using System.Collections.Generic; using System.Linq; using System.Text;...

12
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
20.03.2016, 16:21
Чтобы получить доступ к переменным из класса Account. Нужно сделать их public, а лучше сделать свойства для доступа к ним. Типа такого:
C#
1
public string Fam { get; set; }
Если потом нужно будет что-то менять, потом будет проще.

Добавлено через 3 минуты
Не нашел у вас в коде обращения к свойству Sum, по этому вам не где отлавливать исключения. Если будет обращение, то там нужно будет обернуть его в try ... catch
1
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
20.03.2016, 17:24
Maray, Вам нужно:
1) Сделать поля класса Account - публичными, с модификатором public (как вам уже писали постом выше).
2) Переменные, объявленные внутри метода Main доступны только внутри данного метода, и доступа к ним из других методов - нет. Что бы к объектам был доступ из других методов, нужно сделать переменные Ac1 - Ac5 полями класса Prog. Тогда это будет выглядеть так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        static Account Ac1;
        static Account Ac2;
        static Account Ac3;
        static Account Ac4;
        static Account Ac5;
 
        static void Main()
        {
            Ac1 = new Account ("Иванов", 85749382, 6.3, 14875);
            Ac2 = new Account ("Максимов", 46382967, 16.8, 38859);
            Ac3 = new Account("Петров", 16285936, 2.6, 3748);
            Ac4 = new Account("Александров", 27395738, 26.2, 48372);
            Ac5 = new Account("Дмитров", 95748293, 11.4, 84738);
            Menu();
        }
3) Но на самом деле и такой вариант не подходит, потому что в таком случае вы не сможете обращаться к вашим аккаунтам в цикле. А что бы это было возможно, нужно использовать список List<Account> или массив Account[]:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        static List<Account> accounts;
 
        static void Main()
        {
            accounts = new List<Account>();
            accounts.Add(new Account ("Иванов", 85749382, 6.3, 14875));
            accounts.Add(new Account ("Максимов", 46382967, 16.8, 38859));
            accounts.Add(new Account("Петров", 16285936, 2.6, 3748));
            accounts.Add(new Account("Александров", 27395738, 26.2, 48372));
            accounts.Add(new Account("Дмитров", 95748293, 11.4, 84738));
            Menu();
        }
Теперь вы сможете обращаться к аккаунтам списка по индексу:
C#
1
2
3
4
5
6
7
8
9
            string Fam = Console.ReadLine();
            foreach(var a in accounts)
            if (a.Fam==Fam)
            {
                Console.WriteLine("Номер счета: "+Ter[i].NS);
                Console.WriteLine("Процент начисления: "+Ter[i].Proc);
                Console.WriteLine("Сумма в рублях: "+Ter[i].Summ);
                break;
            }
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2016, 10:07  [ТС]
Цитата Сообщение от orlov87 Посмотреть сообщение
Чтобы получить доступ к переменным из класса Account. Нужно сделать их public, а лучше сделать свойства для доступа к ним. Типа такого:
C#
1
public string Fam { get; set; }
А как правильно использовать конструкции
C#
1
public string Fam { get; set; }
в моей программе? Свойства Summ пока ещё не делал. Оно должно работать при снятии денег. Если на счету недостаточно денег, то должно выйти сообщение об этом

Добавлено через 30 минут
Вот так правильно?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Account
    {
        private string Fam;
        private double NS;
        private double Proc;
        private double Summ;
        
        public string fam { get; set; }
        public double ns { get; set; }
        public double proc { get; set; }
        public double summ { get; set; }
 
 
    public Account(string Fam, double NS, double Proc, double Summ)
     {
           this.Fam = fam;
           this.NS = ns;
           this.Proc = proc;
           this.Summ = summ;
      }
 
        public double Sum
        { get
            { return Summ; }
          set
            {
              if (Summ < value)
                { Summ = Summ - value; }
                else
              throw new ArgumentOutOfRangeException();
            }
        }
 
    }
 
 static void Main()
    {
        accounts = new List<Account>();
        accounts.Add(new Account("Иванов", 85749382, 6.3, 14875));
        accounts.Add(new Account("Максимов", 46382967, 16.8, 38859));
        accounts.Add(new Account("Петров", 16285936, 2.6, 3748));
        accounts.Add(new Account("Александров", 27395738, 26.2, 48372));
        accounts.Add(new Account("Дмитров", 95748293, 11.4, 84738));
        Menu();
    }
        }
Добавлено через 44 минуты
Всё, с этим разобралась! Спасибо!
Остался только sum. Не пойму как его включить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Ans3()
        {
            string Fam;
            double Summ = 0, Summ1;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach (var Ter in accounts)
                if (Ter.fam == Fam)
                {
                    Summ = Ter.summ;
                    Console.WriteLine("Сумма на счету: " + Summ);
                    Console.Write("Введите сумму для снятия: ");
                    Summ1 = int.Parse(Console.ReadLine());
                    Ter.sum = Summ1;
                }
            Menu();
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public double Sum
        {
            get
            { return Summ; }
            set
            {
                if (Summ < value)
                {
                    Summ = Summ - value;
                    Console.WriteLine("Остаток на счету: " + Summ);
                }
                else
                    throw new ArgumentOutOfRangeException();
            }
        }
0
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
22.03.2016, 10:33
Если вы пишете так:
C#
1
2
3
4
public string fam { get; set; }
        public double ns { get; set; }
        public double proc { get; set; }
        public double summ { get; set; }
То это вам вообще не нужно:
C#
1
2
3
4
private string Fam;
        private double NS;
        private double Proc;
        private double Summ;
Эти переменные вам буду нужны только если вы будете при вызове свойства выполнять над ними какие-то действия.
И тут у вас ошибка. Ну точнее у вас написано наверное не то что вы хотели выполнить:
C#
1
2
3
4
5
6
7
public Account(string Fam, double NS, double Proc, double Summ)
     {
           this.Fam = fam;
           this.NS = ns;
           this.Proc = proc;
           this.Summ = summ;
      }
Я мог что-то не правильно понять, но я бы написал как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication2
{
    class Program
    {
        public class Account
        {
            public string Fam { get; set; }
            public double Ns { get; set; }
            public double Proc { get; set; }
            public double Sum { get; set; }
 
            public Account(string fam, double ns, double proc, double sum)
            {
                Fam = fam;
                Ns = ns;
                Proc = proc;
                Sum = sum;
            }
 
            public void Sub(double subSum)
            {
                if (Sum > subSum) Sum -= subSum;
                else throw new ArgumentOutOfRangeException();
            }
        }
 
        static void Main(string[] args)
        {
            var accounts = new List<Account>
            {
                new Account("Иванов", 85749382.0, 6.3, 14875.0),
                new Account("Максимов", 46382967.0, 16.8, 38859.0),
                new Account("Петров", 16285936.0, 2.6, 3748.0),
                new Account("Александров", 27395738.0, 26.2, 48372.0),
                new Account("Дмитров", 95748293.0, 11.4, 84738.0)
            };
            var cur = accounts.FirstOrDefault(a => a.Fam == "Иванов");
            if (cur != null)
            {
                try
                {
                    cur.Sub(10000.0);
                    Console.WriteLine(string.Format("{0} - {1}", cur.Fam, cur.Sum));
                }
                catch (ArgumentOutOfRangeException)
                {
                    Console.WriteLine("Error!");
                }
            }
            Console.ReadLine();
        }
    }
}
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2016, 10:42  [ТС]
У меня просто в задании нужно чтобы поля были закрытыми. И работать с ними через свойства. Но уже всё работает. проблема только с sum
0
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
22.03.2016, 10:57
На мой взгляд делать вычитание в свойстве крайне некорректно. И я немного потерялся в логике программы и я даже не могу идентифицировать ваши свойства. Надеюсь вам будет понятно как это сделать. Если нет, то можете просто написать что конкретно вам нужно.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication2
{
    class Program
    {
        public class Account
        {
            public string Fam { get; set; }
            public double Ns { get; set; }
            public double Proc { get; set; }
            public double Sum { get; set; }
 
            public Account(string fam, double ns, double proc, double sum)
            {
                Fam = fam;
                Ns = ns;
                Proc = proc;
                Sum = sum;
            }
 
            public double Sub
            {
                set
                {
                    if (Sum > value) Sum -= value;
                    else throw new ArgumentOutOfRangeException();
                }
            }
        }
 
        static void Main(string[] args)
        {
            var accounts = new List<Account>
            {
                new Account("Иванов", 85749382.0, 6.3, 14875.0),
                new Account("Максимов", 46382967.0, 16.8, 38859.0),
                new Account("Петров", 16285936.0, 2.6, 3748.0),
                new Account("Александров", 27395738.0, 26.2, 48372.0),
                new Account("Дмитров", 95748293.0, 11.4, 84738.0)
            };
            var cur = accounts.FirstOrDefault(a => a.Fam == "Иванов");
            if (cur != null)
            {
                try
                {
                    cur.Sub = 10000.0;
                    Console.WriteLine(string.Format("{0} - {1}", cur.Fam, cur.Sum));
                }
                catch (ArgumentOutOfRangeException)
                {
                    Console.WriteLine("Error!");
                }
            }
            Console.ReadLine();
        }
    }
}
0
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2016, 11:38  [ТС]
Объявила переменные закрытого типа
C#
1
2
3
4
private string Fam;
        private double NS;
        private double Proc;
        private double Summ;
Свойства использую для доступа к закрытым переменным
C#
1
2
3
4
public string fam { get; set; }
        public double ns { get; set; }
        public double proc { get; set; }
        public double summ { get; set; }
В программе 7 команд, для каждой команды существует своя отдельная функция.
Свойство Sum используется только для команды 3 для проверки, так как если баланс на счету меньше чем сумма которую хотят снять должно быть исключение

Текст программы к сожалению скинуть не получается. Запускаю файл, а он почему то запускается в блокноте и пустой. Вот сам файл. Может у вас откроется
Вложения
Тип файла: zip ConsoleApplication1.zip (44.1 Кб, 2 просмотров)
0
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
22.03.2016, 12:47
Ваш файл заполнен пробелами, в нем ничего нет. ((
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
22.03.2016, 14:35
Цитата Сообщение от Maray Посмотреть сообщение
У меня просто в задании нужно чтобы поля были закрытыми. И работать с ними через свойства
C#
1
2
3
4
5
6
string _fam;
 
public string Fam {
  get {return _fam;}
  set {_fam = value;}
}
0
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
23.03.2016, 08:25  [ТС]
Цитата Сообщение от orlov87 Посмотреть сообщение
Ваш файл заполнен пробелами, в нем ничего нет. ((
Вот написала заново программу. Ans3 не доделан. Вводится фамилия владельца счета и сумма, которую необходимо снять. Нужно использовать свойство Sum, в котором будет производится проверка, достаточно ли денег на счету. Если достаточно, то деньги списываются со счета. Если не достаточно, то генерируется исключение с информацией об ошибке: "Недостаточно денег на счету!"

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Account
    {
        private string Fam;
        private double NS;
        private double Proc;
        private double Summ;
 
       public string fam {
            get { return Fam; }
            set { Fam = value; }
        }
        public double ns {
            get { return NS; }
            set { NS = value; }
        }
        public double proc
        {
            get { return Proc; }
            set { Proc = value; }
        }
        public double summ {
            get { return Summ; }
            set { Summ = value; }
        }
 
        
    public Account(string Fam, double NS, double Proc, double Summ)
     {
           this.fam = Fam;
           this.ns = NS;
           this.proc = Proc;
           this.summ = Summ;
      }
 
        public double Sum
        { get
            { return Summ; }
          set
            {
              if (Summ < value)
                { Summ = Summ - value; }
                else
              throw new ArgumentOutOfRangeException();
            }
        }
 
    }
    class Prog
    {
        static List<Account> accounts;
     
        static void Ans1()
        {   string Fam;
            Console.Write("Введите фамилию владельца счета: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
                Console.WriteLine("Номер счета: "+Ter.ns);
                Console.WriteLine("Процент начисления: "+Ter.proc);
                Console.WriteLine("Сумма в рублях: "+Ter.summ);
                break;
            }
           Menu();
        }
 
        static void Ans2()
        {
           string Fam;
           string Fam1;
            Console.Write("Введите фамилию владельца, которого нужно сменить: ");
            Fam = Console.ReadLine();
            Console.Write("Введите новую фамилию владельца: ");
            Fam1 = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
                if (Ter.fam==Fam)
                {
                    Ter.fam=Fam1;
                    Console.WriteLine("Владелец " + Fam + " заменен на " + Fam1);
                }
                break;
            }        
         Menu();
        }
 
        static void Ans3()
        {
            string Fam;
            int j=0, Summ;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
               Console.WriteLine("Сумма на счету: "+Ter.summ);
               Console.Write("Введите сумму для снятия: ");
               Summ = int.Parse(Console.ReadLine());
               break;
            }
            Menu();
        }
 
        static void Ans4()
        {
            string Fam;
            int Summ;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
               Console.Write("Введите сумму: ");
               Summ = int.Parse(Console.ReadLine());
               Ter.summ = Ter.summ + Summ;
               Console.WriteLine("Cумма на счету: " + Ter.summ);
               break;
            }            
          Menu();
        }
 
        static void Ans5()
        {
            string Fam;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
               Console.WriteLine("Сумма на счету: " + Ter.summ);
               Console.WriteLine("Процент начисления: " + Ter.proc);
               Ter.summ = (Ter.proc / 100) * Ter.summ + Ter.summ;
               Console.WriteLine("Проценты начисленны!");
               Console.WriteLine("Сумма на счету: " + Ter.summ);
               break;
            }
            Menu();
        }
 
        static void Ans6()
        {
            string Fam;
            double Dol = 73.19, Summ;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
               Console.WriteLine("Сумма на счету: " + Ter.summ);
               Console.WriteLine("Курс Доллара: " + Dol);
               Summ = Ter.summ/Dol;
               Console.WriteLine("Деньги перведенны в Доллары!");
               Console.WriteLine("Сумма в Долларах: " + Summ);
               break;
            }
            Menu();
        }
 
        static void Ans7()
        {
            string Fam;
            double Evr = 80.12, Summ;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach(var Ter in accounts)
            if (Ter.fam==Fam)
            {
               Console.WriteLine("Сумма на счету: " + Ter.summ);
               Console.WriteLine("Курс Евро: " + Evr);
               Summ = Ter.summ / Evr;
               Console.WriteLine("Деньги перведенны в Евро!");
               Console.WriteLine("Сумма в Евро: " + Summ);
               break;
            }
            Menu();
        }
 
    static int Menu()
    {   int ans;
        Console.WriteLine();
        Console.WriteLine("Выберите действие: ");
        Console.WriteLine("   1 - Вывести информацию о счете на экран");
        Console.WriteLine("   2 - Сменить владельца счета");
        Console.WriteLine("   3 - Снять деньги со счета");
        Console.WriteLine("   4 - Добавить деньги на счет");
        Console.WriteLine("   5 - Начислить проценты");
        Console.WriteLine("   6 - Перевести сумму в Доллары");
        Console.WriteLine("   7 - Перевести сумму в Евро");
        Console.WriteLine("   0 - Выход");
        ans = int.Parse(Console.ReadLine());
        if (ans==1) 
        {Ans1();}
        if (ans==2) 
        {Ans2();}
        if (ans==3) 
        {Ans3();}
        if (ans==4) 
        {Ans4();}
        if (ans==5) 
        {Ans5();}
        if (ans==6) 
        {Ans6();}
        if (ans==7) 
        {Ans7();}
        return 0;
    }
 
    static void Main()
        {
            accounts = new List<Account>();
            accounts.Add(new Account ("Иванов", 85749382, 6.3, 14875));
            accounts.Add(new Account ("Максимов", 46382967, 16.8, 38859));
            accounts.Add(new Account("Петров", 16285936, 2.6, 3748));
            accounts.Add(new Account("Александров", 27395738, 26.2, 48372));
            accounts.Add(new Account("Дмитров", 95748293, 11.4, 84738));
            Menu();
        }
        }
    }
0
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
23.03.2016, 13:12
Лучший ответ Сообщение было отмечено Maray как решение

Решение

Если я вас правильно понял, то вам нужно изменить знак с меньше на больше в свойстве суммы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public double Sum
        {
            get
            { return Summ; }
            set
            {
                if (Summ > value)
                { Summ = Summ - value; }
                else
                    throw new ArgumentOutOfRangeException();
            }
        }
И дописать метод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void Ans3()
        {
            string Fam;
            int j = 0, Summ;
            Console.Write("Введите фамилию владельца: ");
            Fam = Console.ReadLine();
            foreach (var Ter in accounts)
                if (Ter.fam == Fam)
                {
                    Console.WriteLine("Сумма на счету: " + Ter.summ);
                    Console.Write("Введите сумму для снятия: ");
                    try
                    {
                        Ter.Sum = double.Parse(Console.ReadLine());
                    }
                    catch (ArgumentOutOfRangeException)
                    {
                        Console.WriteLine("Недостаточно денег на счету!");
                    }
                    break;
                }
            Menu();
        }
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
27.03.2016, 10:39  [ТС]
orlov87, огромное Вам спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2016, 10:39
Помогаю со студенческими работами здесь

Как работать с переменными?
В общем я в средах разработки новичок. Мне бы побольше узнать сейчас о переменных в Windows forms. (с++). Если первые уроки меня учили на...

как работать с переменными с registr_global=off
Сервер не хочет включать эту функцию, знаю что с выключенной функцией надо вставить дополнительный код типа $userName = $_POST; а что...

Подскажите как работать с глобальными переменными
Подскажите как работать с глобальными переменными, прочел что их нет в java. Мне нужно объявить переменную в одном классе чтобы ее...

Как работать с глобальными переменными в методах?
Есть такой не хитрый код: #глобальная переменная используемая в качестве счетчика counter=0 def showHero (hero): while...

Как работать с глобальными переменными\классами
Добрый день, Задача - нужно создать свой SSH клиент для терминального подключения к сетевому оборудованию Условия - в качестве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru