Классы - добавление и удаление записей - C#

Узнай цену своей работы

Формулировка задачи:

Изучаю классы и появилась проблема с добавлением и удалением записей( класс Записная книжка). Может кто добавить в мою программу эти возможности? Сама программа
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);
 
        }
 
        }
 
    }
класс "Zapis"
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);
        }
    }
}
И класс ZapisBook
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;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы