Зайцы бандиты

  • Задание на курсовую работу

Банда из k зайцев совершила разбойный налѐт на склад с капустой и похитила n кочанов.Лиса в это время пробегала мимо и предложила им поделить награбленную капусту поровну между всеми членами банды. Зайцы согласились, условившись с лисой, что всем зайцам достанется одинаковое количество кочанов капусты, а остаток размером менее k кочанов лиса сможет забрать себе как плату за эту услугу. Между тем, при разделе капусты к банде присоединился один заяц, который не принимал участия в налѐте. Он получил ровно такую же долю, как и члены банды, однако остался незамеченным. «Почему?» - спросите вы. Дело в том, что каждый заяц получил такое же количество кочанов капусты, какое получил бы, если бы самозванец при разделе не присутствовал. Найдите минимальное количество зайцев в банде, при  котором такое могло произойти.

 

  • Описание принципа работы приложения

При запуске приложения пользователю предложено ввести данные задачи :

- Количество кочанов капусты N

- Количество зайцев в банде K

На все значения накладываются определенные ограничения с целью получения корректного решения, то есть нельзя вводить текст.

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

В данном приложении пользователь может создать задачу с новыми данными, не выходя из приложения. Данные просто нужно ввести заново или изменить некоторые значения.

Пользователь может сохранить данные проекта, для этого нужно нажать кнопку Сохранить.

Если у пользователя возникли проблемы с работой с приложением, он может обратиться за помощью к Справке. Справка содержит текст задачи, а так же информацию о том, кто разработал данное приложение.

 

Содержание отчета к программе:

Введение

  • Задание на курсовую работу
  • Постановка задачи
    • Круг пользователей приложения
    • Информация, вводимая пользователем приложения
    • Результаты, которые необходимо получить с помощью приложения
    • Сохранение информации
    • Требования к пользовательскому интерфейсу и приемы обработки ошибок пользователя

 

  • Проектная часть
    • Описание принципа работы приложения
    • Структура свойств объектов
    • Таблицы объектов и идентификаторов
  • Функциональное описание
  • Пример работы программы

 

Заключение

Приложение

 

namespace Task

{
     public partial class Form1 : Form

    {
        int n, k; //переменные кочанов капусты  и зайцев
        private Log log = Log.Instance;//переменная для работы с классом Log ( для открытия данных из файла)
        private List<Result> resultList;//определение переменной
        public Form1()

        {
            InitializeComponent();//инициализация
            resultList = new List<Result>();
        }
        private void справкаToolStripMenuItem_Click(object sender, EventArgs e)//событие нажатия кнопки справка
        {
            HelpForm help = new HelpForm();//создание формы
            help.ShowDialog();//вызов формы
        }

         private void выходToolStripMenuItem_Click(object sender, EventArgs e)//событие нажатия кнопки выход

        {
           Close();//закрытие приложения
        }

         private void calc(int n, int k)//ф-я расчетов

        {
            Result res = new Result();//переменная результата

            int pay = n / k;//количество кочанов, которое ожидает получить каждый участник банды
            int residue = n % k;//плата лисе
            if (residue == 0)//если палата = 0, значит участники ограбления рассчитывают на n / k кочанов, и при присоединении к ним зайца он будет раскрыт (плата каждому участнику уменьшится)
            {
                System.Windows.Forms.MessageBox.Show("Присоединившийся заяц будет замечен (см. условие задачи)");//текстовое сообщение
                return;
            }
 
            res.Cabbages = n;
            res.Hares = k;
            //ищем такое количество участников, что при добавлении еще 1 плата уменьшается
            int new_pay = 0;//текущая плата
            int catch_band = 0;//после цикла переменная сожержит такое кол-во банд, при котором зайца раскроют

            do//цикл с постусловием (выполняется. пока не выполнится условие pay == new_pay )

            {
                catch_band = --k + 1;
                new_pay = n / (catch_band);
            }

            while (pay == new_pay);//если плата изменяется, зайца раскроют
            int min_band = catch_band + 1; //находим минимальное кол-во банд, при которых зайца не раскроют
            res.Message = String.Format(" Минимальное количество зайцев (k) = {0} ", min_band);//вывод сообщения
            listOfRes.Items.Add(res.Message);//добавляем в листбокс данные
            resultList.Add(res);
        }

        private void btnProc_Click(object sender, EventArgs e)//событие кнопки рассчитать

        {
            try//проверка условия
            {//если введены цифры (можно только цифры)
                n = System.Convert.ToInt32(txtN.Text);//конвертация вводимых данных в формат Int
                k = System.Convert.ToInt32(txtK.Text);//конвертация вводимых данных в формат Int
                 if ((k > n) || (k == 0) || (n == 0)) throw new Exception();
            }
            catch (Exception)//если введены не цифры. либо данные некорректны
            {
                System.Windows.Forms.MessageBox.Show("Данные введены неверно!");//уведомление
                return;
            }
            calc(n, k);//вызов функции подсчета
        }

Содержание архива

  • исходный код  на C# для Visual Studio 2010
  • пояснительная записка к курсовой работе

Присоединяйся

Зарегестрируйся с помощью социальных сетей.

Публикуй

Опиши работу, прикрепи файлы и назначь цену.

Зарабатывай

Получай пассивный доход с продажи работ.

Тебе понадобится 5 минут для публикации работы на сайте.
Купить

780,00 

(без учета комиссии 3,8 %)

Task_upd_new.rar
254661
Оцени работу

рейтинг

Поделись работой с друзьями

Мы не грузим циферки, чтоб ты увидел контент как можно быстрее;

Комментарии (0)

klausms

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Зайцы бандиты
Курсовая работа (курсовой проект) по программированию Программа создана в среде разработки Microsoft Visual Studio
Категория: Образование
Стоимость: 780,00