Создайте класс «записная книжка». Предусмотрите возможность работы с произвольным числом записей - C#

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

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

Создайте класс «записная книжка». Предусмотрите возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавление или удаление записей, сортировки по фамилии и доступа к записи по номеру. Напишите программу, демонстрирующую работу с этим классом. Вот код.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    public class record
    {
        public int id;
        public string Name;
        public string Surname;
        public DateTime Birthday;
        public string PhoneNumber;
        public static bool brake = false;
 
        public record(int id, string Name, string Surname, DateTime Birthday, string PhoneNumber)
        {
            this.id = id;
            this.Name = Name;
            this.Surname = Surname;
            this.Birthday = Birthday;
            this.PhoneNumber = PhoneNumber;
        }
    }
 
    public class Notebook
    {
        private List<record> notebookRecords;
        public List<record> NotebookRecords
        {
            get { return notebookRecords; }
            set { notebookRecords = value; }
        }
 
        public Notebook()
        {
            notebookRecords = new List<record>();
        }
 
        public List<record> SearchRecords(string Name, string Surname, DateTime? Birthday, string PhoneNumber)
        {
            List<record> ret = new List<record>();
            foreach (record rec in notebookRecords)
                if (rec.Name == Name || rec.Surname == Surname || rec.Birthday == Birthday || rec.PhoneNumber == PhoneNumber)
                    ret.Add(rec);
            return ret;
        }
 
        public void AddRecord(int id, string Name, string Surname, DateTime Birthday, string PhoneNumber)
        {
            id = Convert.ToInt32(Console.ReadLine());
            Name = Convert.ToString(Console.ReadLine());
            Birthday = Convert.ToDateTime(Console.ReadLine());
            PhoneNumber = Convert.ToString(Console.ReadLine());
            record rec = new record(id, Name, Surname, Birthday, PhoneNumber);
            notebookRecords.Add(rec);
            Console.WriteLine(Convert.ToString(id),Name,Surname,Birthday,PhoneNumber);
        }
 
        public void DeleteRecords(string Name, string Surname, DateTime Birthday, string PhoneNumber)
        {
            List<record> records = SearchRecords(Name, Surname, Birthday, PhoneNumber);
            foreach (record rec in records)
                notebookRecords.Remove(rec);
        }
 
        public void SortBySurname()
        {
            notebookRecords.OrderBy(x => x.Surname);
        }
 
        private void test()
        {
            SearchRecords(null, null, null, null); //вернёт все записи
        }
    }
помогите сделать простое меню для консольного приложения с вводом и выводом данных классов.
меню такого вида. 1.добавить в книжку. 2. удалить из книжки. 3. поиск по имени или дате или номеру телефона. 4. сортировка по фамилии и вывод книжки. 5. выход из программы.

Решение задачи: «Создайте класс «записная книжка». Предусмотрите возможность работы с произвольным числом записей»

textual
Листинг программы
public class record
{
    public int id;
    public string Name;
    public string Surname;
    public string Birthday;
    public string PhoneNumber;
    public static bool brake = false;
 
    public record(int id, string Name, string Surname, string Birthday, string PhoneNumber)
    {
        this.id = id;
        this.Name = Name;
        this.Surname = Surname;
        this.Birthday = Birthday;
        this.PhoneNumber = PhoneNumber;
    }
 
    public override string ToString()
    {
        return string.Format("id = {0}, name = {1} , surname = {2}, birthday = {3}, phone = {4}", id, Name, Surname, Birthday, PhoneNumber)
    }
}
 
public void printlist(List<record> ret)
{
    foreach (record t in ret)
    {
        Console.WriteLine(t);
    }
}
 
public void pritfun()
{
    foreach (record c in notebookRecords)
    {
        Console.WriteLine(t);
    }
}
 
public void SortBySurname()
{
    IEnumerable<record> r = notebookRecords.OrderBy(name => name.Surname);
    foreach (record c in r)
    {
        Console.WriteLine(c);
    }
}

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


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

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

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