На основе данных входного файла составить список вкладчиков банка, включив следующие данные - C#
Формулировка задачи:
На основе данных входного файла составить список вкладчиков банка, включив
следующие данные: ФИО, № счета, сумма, год открытия счета. Вывести в новый файл
информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их
по сумме вклада.
После запуска выдает 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()'
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();
}
}
}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);
}
}
}
по ошибке выбрал не IComparable.
но теперь не записывает в файл результат.
Решение задачи: «На основе данных входного файла составить список вкладчиков банка, включив следующие данные»
textual
Листинг программы
vk[i] == now_year