Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 22
1

На основе данных входного файла составить список вкладчиков банка, включив следующие данные

02.12.2014, 10:07. Просмотров 2707. Ответов 5
Метки нет (Все метки)

На основе данных входного файла составить список вкладчиков банка, включив
следующие данные: ФИО, № счета, сумма, год открытия счета. Вывести в новый файл
информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их
по сумме вклада.


После запуска выдает 3 ошибки

1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): warning CS0660: 'ConsoleApplication1.Vklad' defines operator == or operator != but does not override Object.Equals(object o)
1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): warning CS0661: 'ConsoleApplication1.Vklad' defines operator == or operator != but does not override Object.GetHashCode()
1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): error CS0535: 'ConsoleApplication1.Vklad' does not implement interface member 'System.ICloneable.Clone()'
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
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
 
           
            StreamReader file = new StreamReader("input.txt");
            
 
            Console.Write("Введите текущий год:");
            int now_year = int.Parse(Console.ReadLine());
            string s;
            int n = 0;
            while ((s = file.ReadLine()) != null)
                n++;
            file.Close();
            
            Vklad[] vk = new Vklad[n];
            StreamReader file2 = new StreamReader("input.txt");
            int i = 0;
            while((s=file2.ReadLine())!=null)
            {
                vk[i] = new Vklad(s);
                i++;
            }
            file2.Close();
 
            Array.Sort(vk);
 
            StreamWriter fileOut = new StreamWriter("output.txt");
            for (i = 0; i < n; i++)
                if (vk[i] == now_year)
                    fileOut.WriteLine(vk[i].ToString());
            fileOut.Close();
                Console.Read();
        }
    }
}
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;
using System.Text;
 
namespace ConsoleApplication1
{
      
    class Vklad:IComparable
    {
        protected string name;
        protected string surname;
        protected string twoname;
        protected int number_vklad;
        protected int sum;
        protected int year;
 
        public Vklad(string s)
        {
            string[] mas = s.Split(' ');
            surname = mas[0];
            name = mas[1];
            twoname = mas[2];
            number_vklad = int.Parse(mas[3]);
            sum = int.Parse(mas[4]);
            year = int.Parse(mas[5]);
            
        }
 
        public int CompareTo(object obj)
        {
            Vklad b = (Vklad)obj;
            if (this.sum == b.sum) return 0;
            else if (this.sum > b.sum) return 1;
            else return -1;
        }
 
        public static bool operator <(Vklad a, int b)
        {
            return ((a.sum < b) ? true : false);
        }
        public static bool operator >(Vklad a, int b)
        {
            return ((a.sum > b) ? true : false);
        }
        public static bool operator ==(Vklad a, int b)
        {
            return ((a.sum == b) ? true : false);
        }
        public static bool operator !=(Vklad a, int b)
        {
            return ((a.sum != b) ? true : false);
        }
 
        public override string ToString()
        {
            return string.Format("{0} {1} {2} {3} {4} {5}", surname, name,twoname,number_vklad, sum,year);
        }
    }
}
Добавлено через 21 минуту
по ошибке выбрал не IComparable.

но теперь не записывает в файл результат.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2014, 10:07
Ответы с готовыми решениями:

На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сум
Как лучше всего это осуществить? На основе данных входного файла составить список вкладчиков банка,...

На основе данных входного файла составить список студентов группы, включив следующие данные
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...

На основе данных входного файла составить список сотрудников учреждения, включив следующие данные: ФИО, год принятия
Помогите пожалуйста написать программу на языке C#: :boredom: На основе данных входного файла...

На основе данных входного файла составить список студентов группы, включив следующие данные
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...

5
3 / 3 / 5
Регистрация: 18.07.2012
Сообщений: 89
02.12.2014, 12:07 2
какую ошибку пишет?
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 22
02.12.2014, 13:09  [ТС] 3
самое интересное, что без ошибок
0
3 / 3 / 5
Регистрация: 18.07.2012
Сообщений: 89
02.12.2014, 14:51 4
C#
1
if (vk[i] == now_year)
C#
1
2
3
4
public static bool operator ==(Vklad a, int b)
        {
            return ((a.sum == b) ? true : false);
        }
вот и не выводит
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 22
02.12.2014, 14:53  [ТС] 5
так у меня по сути условие "Вывести в новый файл
информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их
по сумме вклада."


вот я такое условие и написал
0
3 / 3 / 5
Регистрация: 18.07.2012
Сообщений: 89
02.12.2014, 15:54 6
для простоты решения можно изменить тип доступа к переменным
и сравнивать
C#
1
vk[i].year == now_year
Добавлено через 57 минут
Цитата Сообщение от egorikftp Посмотреть сообщение
так у меня по сути условие "Вывести в новый файл
информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их
по сумме вклада."
когда вы
пишете
C#
1
vk[i] == now_year
при перегрузки вашего оператора
вы ищете грубо говоря тех вкладчиков чья сумма задолженности равна году который вы ввели

здесь либо переписывать перегрузку либо ибо изменять уровень доступа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2014, 15:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

на основе данных входного файла составить список вкладчиков(ФИО,№ счёта,сумма,год открытия счёта)Вывести в new файл инфу об открывших счёт в этом году
Решить задачу, используя структуру, содержащую члены-данные и члены-функции. Замечание....

На основе данных входного файла составить список студентов
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...

На основе данных входного файла составить список студентов группы
Помогите пожалуйста срочно испраить программу!! 1. исходная информация хранится в текстовом файле...

Составить список студентов группы на основе данных входного файла
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.