Классы - добавление и удаление записей - C#
Формулировка задачи:
Изучаю классы и появилась проблема с добавлением и удалением записей( класс Записная книжка). Может кто добавить в мою программу эти возможности?
Сама программа
класс "Zapis"
И класс ZapisBook
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
ZapisBook zn = new ZapisBook("notebook.txt");
Console.Write("Введите номер телефона: ");
String tel = Console.ReadLine();
Zapis man = zn.SearchTelefon(tel.Trim());
if (man != null)
{
Console.WriteLine("С заданным номером телефона {0} нашлась запись:", tel);
man.print();
}
else
Console.WriteLine("С заданным номером телефона {0} записей не нашлось", tel);
Console.Write("Введите номер записи: ");
String nomer = Console.ReadLine();
Zapis mans = zn.SearchId(nomer.Trim());
if (mans != null)
{
Console.WriteLine("Запись с заданым номером найдена:", nomer);
mans.print();
}
else
Console.WriteLine("Записей с заданым номером не найденно", nomer);
}
}
}using System;
namespace ConsoleApplication1
{
class Zapis
{
private String _id;
private String _famil;
private String _telefon;
private Int32[] _date = new Int32[3];
public Zapis(String i, String f, String t, Int32 d, Int32 mn, Int32 y)
//конструктор класса
{
Id = i;
Famil = f.Trim();
Telefon = t.Trim();
Date[0] = d;
Date[1] = mn;
Date[2] = y;
}
// доступ к закрытым элементам класса
public String Id
{
get { return _id; }
set { _id = value; }
}
public String Famil
{
get { return _famil; }
set { _famil = value; }
}
public String Telefon
{
get { return _telefon; }
set { _telefon = value; }
}
public Int32[] Date
{
get { return _date; }
set { _date = value; }
}
// виртуальный метод, который можно переопределить в наследных классах.
public virtual void print()
{
Console.WriteLine(" {1}, родился {2}.{3}.{4}, его номер телефона: {5}",
Id, Famil, Date[0], Date[1], Date[2], Telefon);
}
}
}using System;
using System.Collections.Generic;
using System.IO;
namespace ConsoleApplication1
{
class ZapisBook
{
// закрытый масив записей
private List<Zapis> _mass = new List<Zapis>();
//конструктор класса подгружает данные из файла
public ZapisBook(String filename)
{
StreamReader sr = new StreamReader(filename);
String text = sr.ReadToEnd();
String[] lines = text.Split(new String[] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
foreach (String s in lines)
{
String[] zap = s.Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
_mass.Add(new Zapis(zap[0], zap[1], zap[2], Int32.Parse(zap[3]), Int32.Parse(zap[4]), Int32.Parse(zap[5])));
}
}
//поиск по номеру телефона
public Zapis SearchTelefon(String tel)
{
foreach (Zapis z in _mass)
if (z.Telefon == tel) return z;
return null;
}
//поиск по номеру записи
public Zapis SearchId(String nomer)
{
foreach (Zapis z in _mass)
if (z.Id == nomer) return z;
return null;
}
}
}
Студент и надо сдать зачет, не могу добавить эти возможности(
Решение задачи: «Классы - добавление и удаление записей»
textual
Листинг программы
class ZapisBook
{
// закрытый масив записей
private List<Zapis> _mass = new List<Zapis>();
private string filename;
//конструктор класса подгружает данные из файла
public ZapisBook(String filename)
{
using (StreamReader sr = new StreamReader(filename))
{
String text = sr.ReadToEnd();
String[] lines = text.Split(new String[] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
foreach (String s in lines)
{
String[] zap = s.Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
_mass.Add(new Zapis(zap[0], zap[1], zap[2], Int32.Parse(zap[3]), Int32.Parse(zap[4]), Int32.Parse(zap[5])));
}
}
this.filename = filename;
}
//поиск по номеру телефона
public Zapis SearchTelefon(String tel)
{
foreach (Zapis z in _mass)
if (z.Telefon == tel) return z;
return null;
}
//поиск по номеру записи
public Zapis SearchId(String nomer)
{
foreach (Zapis z in _mass)
if (z.Id == nomer) return z;
return null;
}
//добавление записи
public void AddZapis(Zapis zapis)
{
_mass.Add(zapis);
using (StreamWriter sw = new StreamWriter(filename, false))
{
foreach (Zapis z in _mass)
{
sw.WriteLine(z.Id.ToString() + ";" +
z.Famil.ToString() + ";" +
z.Telefon.ToString() + ";" +
z.Date[0].ToString() + ";" +
z.Date[1].ToString() + ";" +
z.Date[2].ToString());
}
}
}
//удаление записи
public bool RemoveZapis(Zapis zapis)
{
try
{
_mass.Remove(zapis);
}
catch(Exception) { return false; }
using (StreamWriter sw = new StreamWriter(filename, false))
{
foreach (Zapis z in _mass)
{
sw.WriteLine(z.Id.ToString() + ";" +
z.Famil.ToString() + ";" +
z.Telefon.ToString() + ";" +
z.Date[0].ToString() + ";" +
z.Date[1].ToString() + ";" +
z.Date[2].ToString());
}
}
return true;
}
}