Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 15
1

Программа для ведения учета записей

28.11.2019, 21:00. Показов 3162. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО ПО ПРОГРАММИРОВАНИЮ С#

Задача: Необходимо разработать консольную программу для ведения учета записей по варианту

В программе должен быть предусмотрено:

1) добавление, удаление, изменение и просмотр списка основных записей. Основная запись должна содержать все указанные в варианте поля, но может содержать и дополнительные
2) разделение основной записи на подвиды. Подвиды вам нужно придумать самостоятельно (минимум два), они должны дополнять основную запись новыми полями. Например, основная запись: «Здание» с полями: «Адрес» и «Этажность».
Подвид 1: «Жилое здание» с доп. полем «Жилая площадь». Подвид 2:
«Промышленное здание» с доп. полем «Класс опасности»

Программа должна содержать меню из следующих разделов

1) Добавить запись (выбор подвида записи и ввод данных)
2) Просмотреть записи (список записей, отсортированных по заданному критерию, см. таблицу с вариантами). В списке должны быть отражены:
номер/идентификатор записи, название подтипа записи, поля основной записи
3) Изменить запись (поиск записи по номеру/идентификатору и ввод измененной версии записи)
4) Удалить запись (поиск записи по номеру/идентификатору и подтверждение удаления)
5) Выход. Выход из программы

Структура программы:

Программа должна быть разделена на три логических блока:
1) Интерфейс
2) Хранение данных
3) Бизнес-логика

Логический блок «Интерфейс»:

Это класс `Program`.
• Его задача создавать классы бизнес-логики и хранения данных, а также взаимодействовать с пользователем
• Только в этом классе должно быть обращение к классу `Console`
Логический блок «Хранение данных»:
Создайте класс `MemoryDataSource`, который будет отвечать за хранение записей вашей программ в оперативной памяти. Этот класс должен реализовывать интерфейс `IDataSource`:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    /// <summary> 
    /// Ваш класс основной записи 
    /// </summary> 
    abstract public class MainRecord 
    {         public int id; // Должен генерироваться автоматически после записи в хранилище.                         // 0 обозначает новую, еще не сохраненную запись         // ... остальные поля ... 
    } 
 
    /// <summary> 
    /// Интерфейс для реализации хранилища записей 
    /// </summary> 
    public interface IDataSource 
    { 
        /// <summary> 
        /// Сохранение записи в хранилище.  
        /// Если у записи id == 0, то значит выполняется добавление новой записи,  
        /// для нее нужно сгенерировать id (порядковый номер). Иначе - обновление записи 
        /// </summary> 
        /// <param name="record">Добавляемая или обновляемая запись</param> 
        /// <returns>Запись из хранилищая с id</returns> 
        MainRecord Save(MainRecord record); 
 
        /// <summary> 
        /// Возвращает одну запись из хранилища по ее идентификатору 
        /// </summary> 
        /// <param name="id">Идентификатор записи</param> 
        /// <returns>Найденная запись или null, если записи с таким id нет</returns> 
        MainRecord Get(int id); 
 
        /// <summary> 
        /// Удаляет одну запись из хранилища по ее идентификатору 
        /// </summary> 
        /// <param name="id">Идентификатор записи</param>         /// <returns>true, если запись успешно удалена</returns>         bool Delete(int id); 
 
        /// <summary> 
        /// Возвращает все записи из хранилища 
        /// </summary> 
        /// <returns>Все записи</returns> 
        List<MainRecord> GetAll(); 
    } 
 
    /// <summary> 
    /// Хранение записей в оперативной памяти 
    /// ! Для предотвращения изменения записей извне, 
    /// все методы, возвращающие записи должны возвращать      /// их копии     /// </summary> 
    public class MemoryDataSource : IDataSource 
    {         private List<MainRecord> records = new List<MainRecord>(); 
 
        public MainRecord Save(MainRecord record) 
        { 
            // ... реализация ... 
        }          
        public MainRecord Get(int id) 
        { 
            // ... реализация ... 
        }  
        public bool Delete(int id) 
        { 
            // ... реализация ... 
        }  
        public List<MainRecord> GetAll() 
        { 
            // ... реализация ... 
        } 
 
    }
Где `MainRecord` - класс вашей основной записи (переименуйте его согласно вашему варианту)
Логический блок «Бизнес-логика»:

Создайте класс основной логики, содержащий:

1) Методы добавления и изменения основной записи. Должны принимать на вход объект класса основной записи и возвращать объект обратно с уже присвоенным идентификатором (идентификатор присваивается методом Save в MemoryDataSource, см. выше). Внутри методов должна быть проверка правильности введенных данных (см. вариант). Если пользователь ввел неверные данные, методы должны бросать исключение (Exception). В этом случае нужно запросить повторный ввод данных в классе интерфейса
2) Метод удаления. Должен принимать на вход объект класса основной записи и возвращать true в случае успешного удаления.
3) Метод получения списка записей. Должен возвращать список записей, отсортированный по полям, указанным в таблице с вариантом. Сначала сортируется по первому полю, если первое поле равно – по второму.
4) Метод получения записи по идентификатору. Должен вызывать метод Get из MemoryDataSource. Если записи с таким идентификатором нет, то возвратить null
Конструктор класса бизнес логики должен принимать на вход объект класса хранилища данных (IDataSource)

В отчете нужно предоставить:

1) Постановка задачи
2) Код программы
3) UML-диаграмму классов вашей программы
4) Демонстрацию работы программы


1 Учет документов Документ
• Название
• Дата добавления
• Дата завершения
• Описание

Дата добавления, название
1.Даты в формате: ГГГГММ-ДД:
2019-10-14

2.Дата завершения больше или равна дате начала

Пример структуры программы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
   // Класс бизнес-логики    public class BusinessLogic 
    { 
        private IDataSource dataSource; 
                 
        public BusinessLogic(IDataSource source) 
        { 
            dataSource = source; 
        } 
 
        // Получение отсортированного списка         public List<MainRecord> GetList() 
        { 
            List<MainRecord> list = dataSource.GetAll(); 
 
            // ... сортировка  ... 
 
            return list; 
        } 
 
        // [... остальные методы ...] 
    }  
    class Program     { 
        static BusinessLogic logic; 
 
        static void PrintMenu() 
        { 
            // [...] 
        }  
        static void PrintList() 
        { 
            List<MainRecord> list = logic.GetList(); 
 
            // [... печать заголовка списка ...] 
 
            foreach (MainRecord record in list) 
            { 
                // [... печать элемента ...] 
            } 
        } 
 
        // [... прочие методы ...] 
 
        static void Main(string[] args) 
        { 
            logic = new BusinessLogic(new MemoryDataSource());             bool exit = false; 
 
            while (!exit)             { 
                PrintMenu(); 
                string command = Console.ReadLine(); 
                switch (command)                 {                     // [...]                     case "2":                         PrintList();                         break; 
                    // [...]                     
                }                
            } 
        } 
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2019, 21:00
Ответы с готовыми решениями:

Программа для ведения склада
Подскажите фунции и как ими пользоваться для работы с DateGridView. Мне нужно в Form.DateGridView...

Подскажите программу для ведения учёта
Доброго дня вам товарищи: Подскажите программку или как сделать вот такое : Нужно вести учет ...

База для ведения учета расхода электроэнергии и оплат
Доброго времени суток. Моих знаний не хватает, увы. Никак не могу сделать пристойного вида форму...

Выбор конфигурации для ведения складского учета и обмена с сайтом
В 1С я новичек, ее только начали применять. Подскажите как создать склад в 1С, можно ли как-то...

7
2 / 1 / 1
Регистрация: 26.11.2019
Сообщений: 11
29.11.2019, 11:08 2
Это курсовая работа.... и что за извращение делать такую работу в консоле....
0
Usaga
29.11.2019, 12:09
  #3

Не по теме:

Aleks_Zharkih, а что, каждому приложению обязательно нужен сверкающий UI с анимациями?)

0
2 / 1 / 1
Регистрация: 26.11.2019
Сообщений: 11
29.11.2019, 16:54 4
необязательно,но если делать то красиво)
0
nicolas2008
30.11.2019, 01:34
  #5

Не по теме:

Aleks_Zharkih, курсовая это чтобы сдать, а не чтобы красиво

0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 15
30.11.2019, 17:48  [ТС] 6
Aleks_Zharkih, сможете помочь?
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 15
08.12.2019, 14:08  [ТС] 7
Usaga,сможете помочь?

Добавлено через 25 секунд
nicolas2008, Сможете помочь?
0
1144 / 853 / 262
Регистрация: 30.04.2009
Сообщений: 3,581
09.12.2019, 00:55 8
gigi1, за спасибо вам это никто не сделает, а мое время будет стоить слишком дорого для вас, уж поверьте.
0
09.12.2019, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2019, 00:55
Помогаю со студенческими работами здесь

Подскажите простую CMS для ведения учета доходов и расходов
Ищу CMS для ведения расходов и доходов на подобие приложений типа домашняя бухгалтерия. Объект:...

Задача с очередью. Составить программу для ведения очереди и учета количества компьютеров в филиалах
Имеется следующая задача: Поставщик направляет товар Заказчику. Заказчик имеет сеть филиалов....

Можно ли в Прологе написать программу для ведения записей?
Добрый день! Подскажите пожалуйста, в принципе реально в Прологе написать программу для ведения...

Программа для ведения счёта в VB 6.0
Прошу помочь всех, кто может это сделать. Я новичок в этом деле... Ближе к делу: Необходимо...

Программа для ведения договоров
Добрый вечер! Подскажите пожалуйста как &quot;слепить&quot; программку для ведения и учета договоров ? ...

Программа для ведения малого бизнеса
Здраствуйте! Извините что не туда наверное пишу!!! Если что поправте пожалоста. Прошу помощи,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru