Классы - добавление и удаление записей - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д