МИНОБРНАУКИ РОССИИ
Ф едеральное государственное бюджетное образовательное учреждение высшего образования
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ им. Р.Е.АЛЕКСЕЕВА
Институт радиоэлектроники и информационных технологий
Компьютерные технологии в проектировании и производстве
Изучение базовых принципов проектирования объектно-ориентированных программ
ОТЧЕТ
Лабораторная работа №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);
}
}
}