Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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

поля:

· имя;

· возраст;

· вес,

· настроение (начальное значение=10).

методы:

· «информация о человеке»;
отображаются имя, возраст и вес.

· «есть»:
если человек что-то съедает, то его вес увеличивается на количество съеденного.
Усовершенствуйте метод «есть» так, чтобы при съедании за один раз более 5 кг, его возраст увеличивался бы на год, а вес увеличивалсябы только на половину от съеденного.

· «гулять»
настроение увеличивается на 1.

· «танцевать»
настроение увеличивается на 2.
Дополните основную программу так, что бы человек после еды три раза потанцевал.

 

Решение

 

Код

public partial class Form1: Form

{

public Form1()

{

InitializeComponent();

}

class Worker

{

public string name;

public int age;

public double ves;

public int nastr;

public Worker(string n, int a, double v) //параметризованный конструктор

{

name = n;

age = a;

ves = v;

nastr = 10;

}

public double SetEat(double e)

{

if (e> 10)

{

age++;

ves += e / 2;

}

else

ves += e;

return ves;

}

public void show() //метод " информация о человеке"

{

MessageBox.Show(String.Format(" Рабочий: {0} \nВозраст: {1} \nВес: {2} ",

name, age, ves));

}

public int tanez(int n)//метод " танцевать"

{

nastr = n + 2;

return nastr;

}

 

 

}

private void button1_Click(object sender, EventArgs e)

{

//строим объект

//вызываем конструктор

//конструктор устанавливает начальные значения объекта с полей формы

//поля формы задают параметры конструктора

Worker work = new Worker(textBox1.Text, int.Parse(textBox3.Text), double.Parse(textBox2.Text));

//вызываем метод " информация о человеке"

work.show();

//выводмим данные о человеке до еды

MessageBox.Show(String.Format(" До обеда Рабочий: {0} \nВозраст: {1} \nВес: {2} \nНастроение {3}",

work.name, work.age, work.ves, work.nastr));

 

//определяем с помомощью метода " есть" вес человека с учетом еды

double eda = work.SetEat(double.Parse(textBox4.Text));

//выводим данные о человеке с учетом еды

MessageBox.Show(String.Format(" После обеда Рабочий: {0} \nВозраст: {1} \nВес: {2}",

work.name, work.age, work.ves));

//выводим текущее настроение

MessageBox.Show(String.Format(" Настроение до танцев: {0}", work.nastr));

//танцуем 3 раза

work.nastr=int.Parse(textBox5.Text);

for (int i = 1; i < 4; i++)

{ int tan = work.tanez(work.nastr); }

//выводим текущее настроение

MessageBox.Show(String.Format(" Настроение после танцев: {0}", work.nastr));

 

}

}

}

 

Порядок выполнения работы

1. Создатьновыйпроект (File – New – Project – Windows Forms Application).Определить новое имя проекта (практика10-1) и место его расположения (X: \2 курс\ОАП\Практические работы\Практическая работа №12).

2. Разместить на форме необходимые компоненты и настроить их внешний вид.

3. Написать программу решения задачи с использованием классов. При решении использовать конструкторы и параметрические методы:

Задача
  класс «комната» поля: · длина комнаты, · ширина комнаты, · высота потолков, · количество окон, · высота окна, · ширина окна. методы: · « вычисление площади комнаты »; · «вычисление объема комнаты»; · «информация о комнате»; · «ремонт»: Определить количество рулонов обоев, необходимое для ремонта данной комнаты. Предусмотреть работу с рулонами разной длины (10 м и 15 м).
  класс «автомобиль» поля: · объем бака (начальное значение этого поля установите прямо в классе); · количество бензина в баке (начальное значение ноль); · расход бензина на сотню (начальное значение установите в классе); · пробег; · год выпуска. методы: · «информация о машине»; · «заправить машину»: при заправке, количество бензина в баке будет увеличиваться, но так, чтобы в машине не стало бензина больше, чем туда может поместиться физически. Если весь желаемый бензин поместился, то функция должна возвращать ноль. Если что-то не поместилось, то функция должна возвращать это значение. · «ехать»: в качестве параметра нужно передавать количество километров. При езде бензин в баке должен уменьшаться, пробег - увеличиваться. Если бензин уже кончился, а до нужной точки еще не доехали, то надо выдать сообщение, сколько километров еще осталось. Если пробег пройдет порог очередной тысячи, то расход надо увеличивать на 10% и выводить об этом соответствующее сообщение. Усовершенствуйте метод «ехать» так, что бы после 5000 пробега машина не могла ехать вообще. · «техосмотр»: уменьшает расход бензина на 0, 5. · «надо ли заправляться»: метод будет возвращать значение истина, если в баке осталось меньше 10% бензина и ложь – в противном случае. · «капитальный ремонт»: этот метод должен сбрасывать в ноль общий пробег.
  класс «покупатель» поля: · название покупаемого продукта; · цена; · количество; · кошелек; · настроение (начальное значение=10). методы: · «информация о покупке»; отображается название купленного продукта, его количество и стоимость покупки. · «купить»: если человек что-то покупает, то стоимость покупки увеличивается, а наличность кошелька уменьшается. Усовершенствуйте метод «купить» так, чтобы выполнялась проверка: хватит ли денег в кошельке для совершения покупки. Кроме того, хотелось бывидеть, сколько денег осталось в кошельке после совершения покупки. Попробуйте догадаться: как изменить программу, чтобы можно было покупать несколько продуктов. Добавьте связь с настроением: если денег хватило на совершение покупки, то настроение увеличивается на 50% от суммы покупки, а если не хватило – то настроение уменьшается на количествоединиц, равное количеству денег, которых не хватило для совершения покупки. · «посмотреть настроение» Отслеживайте само настроение: - если настроение больше 15, то оно «бодрое», - если от 5 до 15, то – нормальное, - если от -10 до 5, то – плохое, - если меньше -10, то – депрессивное.
  Создать класс Point, разработав следующие элементы класса:
  1. Поля:
    1. int x, y; - задающие координаты точки на плоскости
  2. Конструкторы, позволяющие создать экземпляр класса:
    1. с нулевыми координатами;
i. с заданными координатами.
  1. Методы, позволяющие:
    1. вывести координаты точки на экран;
    2. рассчитать расстояние от начала координат до точки;
    3. переместить точку на плоскости на вектор (a, b).
  2. Свойства:
    1. получить-установить координаты точки (доступное для чтений и записи);
    2. позволяющие умножить координаты точки на скаляр (доступное только для записи).
  Создать класс Triangle, разработав следующие элементы класса:
  1. Поля:
    1. int a, b, c; -длины сторон треугольника
  2. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
  3. Методы, позволяющие:
    1. вывести длины сторон треугольника на экран;
    2. расчитать периметр треугольника;
    3. расчитать площадь треугольника.
  4. Свойства:
    1. позволяющее получить-установить длины сторон треугольника (доступное для чтения и записи);
    2. позволяющее установить, существует ли треугольник с данными длинами сторон (доступное только для чтения).
  Создать класс Rectangle, разработав следующие элементы класса:
  1. Поля:
i. int a, b; - длины строн прямоугольника;
  1. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
  2. Методы, позволяющие:
i. вывести длины сторон прямоугольника на экран; ii. расчитать периметр прямоугольника; iii. расчитать площадь прямоугольника.
  1. Свойства:
i. получить-установить длины сторон прямоугольника (доступное для чтения и записи); ii. позволяющее установить, является ли данный прямоугольник квадратом (доступное только для чтения).  
  Создать класс Money, разработав следующие элементы класса:
  1. Поля:
    1. int first; //номинал купюры
    2. int second; //количество купюр
  2. Конструктор, позволяющий создать экземпляр класса с заданными значениям полей.
  3. Методы, позволяющие:
    1. вывести номинал и количество купюр;
    2. определить, хватит ли денежных средств на покупку товара на сумму N рублей.
    3. определить, сколько шт товара стоимости n рублей можно купить на имеющиеся денежные средства.
  4. Свойства:
    1. позволяющее получить-установить значение полей (доступное для чтения и записи);
    2. позволяющее расчитатать сумму денег (доступное только для чтения).
   
  Создать класс для работы с двумерным массивом целых чисел. Разработать следующие элементы класса:
    1. Поля:
· int [, ] Int Array; · int n.
    1. Конструктор, позволяющий создать массив размерности n× n.
    2. Методы, позволяющие:
    • ввести элементы массива с клавиатуры;
    • вывести элементы массива на экран;
    • вычислить сумму элеметов i-того столбца.
    1. Свойства:
    • позволяющее вычислить количество нулевых элементов в массиве (доступное только для чтения);
    • позволяющее установить значение всех элементы главной диагонали массива равное скаляру (доступное только для записи).
 

4. Показатьрезультатысвоейработыпреподавателюисохранитьихксебенадиск
X: \2курс\ОАП\Практическиеработы\Практическаяработа№12.

Контрольныевопросы

1. Что такое класс?

2. Что такое объект?

3. Что такое конструктор?

4. Что такое свойства?

5. Расскажите о спецификаторе доступа public (private).

6. Назовите основные принципы ООП и дайте каждому из них характеристику.

Литература

1. Павловская, Т.А.C#.Программированиенаязыкевысокогоуровня.Учебникдлявузов./Т.А.Павловская.-СПб: Питер, 2009.-432с.: ил.

2. Абрамян, М.Э.Visual C#на примерах./М.Э.Абрамян. -СПб: БХВ-Петербург, 2008.-496с.: ил.

3. Шилдт, Г.С# 4.0: полное руководство: Пер.сангл./Г.Шилдт.–М.: ООО«И.Д.Вильямс», 2011.–1056с.: ил.

 

 

<== предыдущая лекция | следующая лекция ==>
Средства работы с трехмерными изображениями объектов | 
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал