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

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

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

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

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

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

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

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

ОТЧЕТ

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

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

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

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

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

СТУДЕНТ:

________________

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

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

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

С оценкой ________________________

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

Содержание

Цель работы 3

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

Contact.cs 10

ContType.cs 11

ContTypeCol.cs 12

FirmFactory.cs 12

Program.cs 12

SubFirm.cs 13

SbFirmType.cs 14

SubFirmTypeCol.cs 15

Рис.3 Структура 17

Цель работы

Изучение принципов декомпозиции решаемой задачи на отдельные классы. Изучение диаграмм классов и принципов модульного тестирования.

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

Разработать программную реализацию модели предметной области системы взаимоотношений с клиентами. Система взаимоотношений с клиентами должна обеспечивать хранение информации (адресная информация, контактная информация, 5 дополнительных текстовых полей с названием пользователя) о фирме и ее подразделениях и информацию о различных видах контактов с данными подразделениями. Система должна обеспечивать выборку фирм в зависимости от значения одного или нескольких полей, наличия или отсутствия некоторого контакта заданного типа или в заданный период. Система также должна обеспечивать простановку некоторого значения поля или контакта для фирм попавших в выборку.

Необходимо также разработать модульные тесты, обеспечивающие проверку работоспособности сконструированных классов.

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

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

using System;

using System.Collections.Generic;

using System.Collections;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Shtan

{

public class Firm

{

public Dictionary<string, string> _usrFields;

public List<SubFirm> _sbFirms;

public List<Contact> _contacts;

private string country;

private string email;

private string dateIn;

private string name;

private string region;

private string postInx;

private string street;

private string town;

private string web;

public string Country

{

get

{

return country;

}

set

{

country = value;

}

}

public string Email

{

get

{

return email;

}

set

{

email = value;

}

}

public string DateIn

{

get

{

return dateIn;

}

set

{

dateIn = value;

}

}

public string Name

{

get

{

return name;

}

set

{

name = value;

}

}

public string Region

{

get

{

return region;

}

set

{

region = value;

}

}

public string PostInx

{

get

{

return postInx;

}

set

{

postInx = value;

}

}

public string Street

{

get

{

return street;

}

set

{

street = value;

}

}

public string Town

{

get

{

return town;

}

set

{

town = value;

}

}

public string Web

{

get

{

return web;

}

set

{

web = value;

}

}

public int SbFirmsCount

{

get { return _sbFirms.Count; }

}

public SubFirm this[int index]

{

get { return _sbFirms[index]; }

set { _sbFirms[index] = value; }

}

// методы

public void AddCont(Contact new_contact)

{

_contacts.Add(new_contact);

}

public void AddContToSbFirm(Contact new_contact)

{

foreach (SubFirm cur_sub in _sbFirms)

cur_sub.AddCont(new_contact);

}

public void AddField(string field_name, string value)

{

_usrFields.Add(field_name, value);

}

public void AddSbFirm(SubFirm new_sub_firm)

{

_sbFirms.Add(new_sub_firm);

}

public bool ExistContact(Contact contact_for_search)

{

foreach (Contact cur_contact in _contacts)

if (cur_contact == contact_for_search)

return true;

return false;

}

public string GetField(string key)

{

string value;

_usrFields.TryGetValue(key, out value);

return value;

}

public void RenameField(string old_key, string new_key)

{

string value;

_usrFields.TryGetValue(old_key, out value);

_usrFields.Remove(old_key);

_usrFields.Add(new_key, value);

}

public void SetField(string field_name, string value)

{

_usrFields.Remove(field_name);

_usrFields.Add(field_name, value);

}

public Firm()

{

_usrFields = new Dictionary<string, string>();

_sbFirms = new List<SubFirm>();

_contacts = new List<Contact>();

}

public Firm(Dictionary<string, string> _newDictionary)

{

_usrFields = _newDictionary;

_sbFirms = new List<SubFirm>();

_contacts = new List<Contact>();

}

//получение полей

public string[] GetMain()

{

string[] result = new string[9];

result[0] = country;

result[1] = dateIn;

result[2] = email;

result[3] = name;

result[4] = postInx;

result[5] = region;

result[6] = street;

result[7] = town;

result[8] = web;

return result;

}

}

}

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