Добавил:
выбрасываю тут свой мусор, надеюсь, что он кому-то может пригодится... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laba4.docx
Скачиваний:
5
Добавлен:
03.12.2023
Размер:
840.2 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Ф едеральное государственное бюджетное образовательное учреждение высшего образования

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ им. Р.Е.АЛЕКСЕЕВА

Институт радиоэлектроники и информационных технологий

Компьютерные технологии в проектировании и производстве

Изучение базовых принципов проектирования объектно-ориентированных программ

ОТЧЕТ

Лабораторная работа №4

по дисциплине

Объектно-ориентированное программирование

РУКОВОДИТЕЛЬ:

________________

(подпись) (фамилия, и.,о.)

СТУДЕНТ:

________________

(подпись) (фамилия, и.,о.)

(шифр группы)

Работа защищена «___» ____________

С оценкой ________________________

Нижний Новгород 2019

Содержание

Цель работы 3

Изучение базовых принципов проектирования объектно-ориентированных программ. Изучение UML-диаграмм последовательностей и деятельностей, а также принципов тестирования пользовательского интерфейса. 3

Задание на лабораторную работу 3

Рис. 1 Обозреватель тестов 5

5

Рис.2 Диаграмма классов 5

6

Рис. 3 Основная форма 6

Тесты 7

Рис.4-6 Работа приложения 9

9

Вывод 10

Цель работы

Изучение базовых принципов проектирования объектно-ориентированных программ. Изучение UML-диаграмм последовательностей и деятельностей, а также принципов тестирования пользовательского интерфейса.

Задание на лабораторную работу

Разработать программную реализацию представления фирмы на основной форме в системе взаимоотношений с клиентами с обеспечением возможностей:

  • выбора состава полей для отображения;

  • выполнения фильтрации фирм по содержимому нескольких полей и контактов;

  • добавления новых фирм и редактирования полей существующих фирм и их контактов для основного подразделения.

Необходимо также разработать автономные тесты, обеспечивающие проверку правильности добавления новой фирмы и фильтрацию фирм по значениям полей «Город» и «Дата начала контакта» с использованием графического_интерфейса.

Рис. 1 Обозреватель тестов

Рис.2 Диаграмма классов

Рис. 3 Основная форма

Код класса Firm.Cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace laba4

{

public class Firm

{

private List<Field> fields;

public void set_firm_field(int i, Field new_field)

{

fields[i] = new_field;

}

public void Set_fields_list(List<Field> new_fields)

{

fields = new_fields;

}

public List<Field> Get_fields_list()

{

return fields;

}

public int Count_fields()

{

return fields.Count();

}

public Firm()

{

fields = FieldTypeCol.get_cpy();// add all fields to firm

}

public Field get_firm_field(int i)

{

return fields[i];

}

}

}

Тесты

using System;

using System.Text;

using System.Collections.Generic;

using System.Linq;

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace TestProject1

{

[TestClass]

public class Testunit1

{

[TestMethod]

public void Filter_by_town()

{

laba4.FirmMngr firm_manager = new laba4.FirmMngr();

laba4.FilterContr filter_contr = new laba4.FilterContr(firm_manager);

laba4.LogExpFactory factory = new laba4.LogExpFactory();

laba4.FirmCol.Create_new_col();

string[] str = { "Сладкие булочки", "Нижегородский регион", "Россия", "Нижний Новгород", "603045", "13.11.1999", "15.02.2019", "без сайта", "продает коней", "50" };

string[] str2 = { "Босс", "Московский регион", "Россия", "Москва", "455384", "12.09.1890", "12.09.2019", "без сайта", "продает мишек", "123" };

string[] str3 = { "Настенька", "Томский регион", "Россия", "Томск", "293826", "03.10.2001", "13.07.2007", "без сайта", "продает детскую одежду", "15" };

laba4.frmAddFirm.add_firm(str);

laba4.frmAddFirm.add_firm(str2);

laba4.frmAddFirm.add_firm(str3);

factory.add_filter("Город", "Москва", "string", 1);

laba4.LogExpEnum filters = factory.get_filters();

filter_contr.sort(filters);

List<laba4.Firm> col_firm = firm_manager.get_firms();

List<laba4.Field> firm_fields = col_firm[0].Get_fields_list();

if (col_firm.Count == 1)

{

Assert.AreEqual("Москва", firm_fields[3].get_value());

}

else Assert.Fail();

}

[TestMethod]

public void Filter_by_date()

{

laba4.FirmMngr firm_manager = new laba4.FirmMngr();

laba4.FilterContr filter_contr = new laba4.FilterContr(firm_manager);

laba4.LogExpFactory factory = new laba4.LogExpFactory();

laba4.FirmCol.Create_new_col();

string[] str = { "Сладкие булочки", "Нижегородский регион", "Россия", "Нижний Новгород", "603045", "13.11.1999", "15.02.2019", "без сайта", "продает коней", "50" };

string[] str2 = { "Босс", "Московский регион", "Россия", "Москва", "455384", "12.09.1890", "12.09.2019", "без сайта", "продает мишек", "123" };

string[] str3 = { "Настенька", "Томский регион", "Россия", "Томск", "293826", "03.10.2001", "13.07.2007", "без сайта", "продает детскую одежду", "15" };

laba4.frmAddFirm.add_firm(str);

laba4.frmAddFirm.add_firm(str2);

laba4.frmAddFirm.add_firm(str3);

factory.add_filter("Дата начала", "12.09.2019", "date", 1);

laba4.LogExpEnum filters = factory.get_filters();

filter_contr.sort(filters);

List<laba4.Firm> col_firm = firm_manager.get_firms();

List<laba4.Field> firm_fields = col_firm[0].Get_fields_list();

if (col_firm.Count == 1)

{

Assert.AreEqual("12.09.2019", firm_fields[6].get_value());

}

else Assert.Fail();

}

[TestMethod]

public void Add_test()

{

laba4.FirmCol.Create_new_col();

laba4.Firm firm = new laba4.Firm();

List<laba4.Firm> firms = laba4.FirmCol.Get_firms();

int start_size = firms.Count;

string[] str = { "1", "2", "3", "4", "5", "6", "7", "7", "9", "55" };

laba4.frmAddFirm.add_firm(str);

firms = laba4.FirmCol.Get_firms();

int end_size = firms.Count;

Assert.AreEqual(start_size + 1, end_size);

}

}

}

Соседние файлы в предмете Объектно-ориентированное программирование