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

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

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

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

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

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

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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2019, 21:00
Ответы с готовыми решениями:

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

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

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

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

Не по теме:

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

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

Не по теме:

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

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

Добавлено через 25 секунд
nicolas2008, Сможете помочь?
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
09.12.2019, 00:55
gigi1, за спасибо вам это никто не сделает, а мое время будет стоить слишком дорого для вас, уж поверьте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2019, 00:55
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru