У вас вопросы?
У нас ответы:) SamZan.net

ОТЧЕТ ПО ЛАБОРАТОРНОМУ ПРАКТИКТИКУМУ Выполнил студент III курса группы ТСС 17с Ушанов С

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

Санкт- Петербургский государственный университет телекоммуникаций

имени профессора М.А. Бонч- Бруевича

ОТЧЕТ ПО ЛАБОРАТОРНОМУ ПРАКТИКТИКУМУ

Выполнил студент

III курса группы ТСС 17с

Ушанов С.В.

Проверил преподаватель

Акимов С.В.

Санкт- Петербург

2013 г.

Цель работы: изучение наследования и полиморфизма в объектно-ориентированном программировании.

Задание:

Придумать три класса, находящихся в отношении класс / подкласс (один базовый, два дочерних), на которых будет продемонстрирован пример наследования и полиморфизма. Решить, что будут выполнять данные классы. Утвердить у преподавателя.

Создать диаграмму классов. Продемонстрировать ее преподавателю. Создать проект, в котором будут созданы классы, и

продемонстрирован механизм наследования и полиморфизма. Продемонстрировать преподавателю.

Ход работы:

Исходный код класса Транспортное_средство:

public class Транспортное_средство {

public int Текущая_скорость { get; set; }

public virtual string Получить_параметры_движения() {

return "Текущая скорость: " + Текущая_скорость; }

}

Исходный код класса Автомобиль:

public class Автомобиль : Транспортное_средство {

public int Текущая_передача { get; set; }

public override string Получить_параметры_движения() {

return base.Получить_параметры_движения() + ", текущая передача: " + Текущая_передача;

} }

Исходный код класса Самолет:

public class Самолет : Транспортное_средство {

public int Текущая_высота { get; set; }

public override string Получить_параметры_движения() {

return "Полет на высоте " + Текущая_высота + " со скоростью " + Текущая_скорость;

} }

Исходный код создания объектов:

List<Транспортное_средство> транспорт = new List<Транспортное_средство>();

транспорт.Add(new Автомобиль { Текущая_скорость = 80, Текущая_передача = 4 }); транспорт.Add(new Автомобиль { Текущая_скорость = 120, Текущая_передача = 4 }); транспорт.Add(new Самолет { Текущая_скорость = 860, Текущая_высота = 10500 }); транспорт.Add(new Автомобиль { Текущая_скорость = 50, Текущая_передача = 3 }); транспорт.Add(new Самолет { Текущая_скорость = 540, Текущая_высота = 4500 });

List<string> параметры_движения = new List<string>();

foreach (Транспортное_средство транспортное_средство in транспорт) {

параметры_движения. Add(транспортное_средство.Получить_параметры_движения());

}

GridView1.DataSource = параметры_движения; Page.DataBind();

Label1.Text = транспорт[0].Текущая_скорость.ToString();

Label2.Text = ((Автомобиль)транспорт[0]).Текущая_передача.ToString(); Label3.Text = ((Самолет)транспорт[2]).Текущая_высота.ToString();


Цель
 работы: изучение классов коллекций и отношений между классами и объекта.

Ход работы:

Проект 3.1

Создать проект ASP.NET.

Создать коллекцию целых чисел и поэкспериментировать в заполнении     коллекции,     чтении,     добавлении,         удаления     элементов, получении числа элементов коллекции.

Проект 3.2

Создать копию последнего проекта лабораторной работы № 2.

Создать список объектов класса пользователь и заполнить его, создав два объекта. Значения атрибутов (свойств) установить, используя значения, введенные пользователем через форму ввода.

Вывести информацию о пользователях.

Проект 3.3

Создать копию последнего проекта лабораторной работы № 2.

Создать класс Адрес, содержащий следующие свойства: индекс, город, улица, номер дома, номер корпуса, номер квартиры и метод ToString(), выводящий информацию об адресе в виде строки.

Реализовать ассоциацию кратности один к одному между классами Пользователь и Адрес.

Модифицировать свойство Резюме класса Пользователь таким образом, чтобы выводилась информация о пользователе, включая адрес. Для формирования части строки, отвечающий за адрес, воспользоваться методом ToString() класса Адрес.

Модифицировать форму ввода, добавив поля, необходимые для ввода информации об адресе.

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

Вывести информацию о пользователях. Продемонстрировать результаты преподавателю.

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

Реализовать связь (ассоциацию) один ко многим между классами Пользователь и Телефон (один пользователь может иметь несколько телефонных номеров, а может не иметь ни одного).

В классе Пользователь добавить метод Добавить_номер_телефона(), который будет добавлять новый номер телефона в коллекцию номеров телефонов.

В класс Пользователь добавить метод Получить_телефоны_пользователя(), выводящий все номера телефонов пользователя в виде строки.

Модифицировать свойство Резюме класса Пользователь таки образом, чтобы выводилась информация о пользователе, включая номера телефонов.

Модифицировать код программы, в котором создаются пользователи, и выводится информация об этих пользователях, добавив по несколько номеров телефонов каждому пользователю. Номера телефонов можно добавить непосредственно в коде («программно»), не используя формы ввода.

Медитировать код класса Пользователь согласно своему варианту (таблица 2).

Таблица 2 Модификация класса Пользователь, согласно варианту

Вариант Дополнительные атрибуты класса Пользователь

1 Создать метод, создающий новый номер телефона пользователя. Метод должен принимать тип телефона (string) и, собственно номер (string).

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

Модифицировать свойство Резюме таким образом, чтобы в строке выводилось число телефонных номеров данного пользователя.

Исследовать созданный проект. Результаты работы программы продемонстрировать преподавателю.

Пояснения к выполнению лабораторной работы

Пример работы с классом коллекции List:

List<int> числа = new List<int>(); for (int i = 1; i < 11; i++)

{

числа.Add(i); }

Label1.Text = числа.Count.ToString(); числа.RemoveAt(4);

Label2.Text = числа.Count.ToString(); Метка.Text = числа[4].ToString();

ListBox1.DataBind();

Код класса Пользователь:

public class Пользователь {

private string _Фамилия; public string Фамилия

{

get {

return _Фамилия; }

set {

_Фамилия = value; }

}

private string _Имя; public string Имя

{

get {

return _Имя; }

set {

_Имя = value; }

}

private string _Отчество; public string Отчество

{

get {

return _Отчество; }

set {

_Отчество = value; }

}

public Пользователь(string фамилия, string имя, string отчество) {

_Фамилия = фамилия; _Имя = имя;


_Отчество = отчество; }

public Пользователь() {

_Фамилия = ""; _Имя = ""; _Отчество = "";

}

public string ФИО {

get {

return _Фамилия + " " + _Имя + " " + _Отчество; }

}

private Адрес _Адрес = new Адрес(); public Адрес Домашний_адрес

{

get {

return _Адрес; }

}

public string Резюме {

get {

return ФИО + ". " + Домашний_адрес.ToString()

+ ". Телефоны: " + получить_номера_телефонов(); }

}

private List<Номер_телефона> _Номера_телефонов = new List<Номер_телефона>(); public List<Номер_телефона> Номера_телефонов

{

get {

return _Номера_телефонов; }

}

public void Добавить_номер_телефона(Номер_телефона номер) {

_Номера_телефонов.Add(номер); }


private string получить_номера_телефонов() {

string номера = "";

foreach (Номер_телефона номер_телефона in _Номера_телефонов) {

номера = номера + ", " + номер_телефона.ToString(); }

return номера.Remove(0, 2); }

}

Код класса Номер_телефона:

public class Номер_телефона {

public string Тип { get; set; } public string Номер { get; set; }

public Номер_телефона(string тип, string номер) {

Тип = тип; Номер = номер;

}

public override string ToString() {

return Номер + " (" + Тип + ")"; }

}

Код класса Адрес:

public class Адрес {

public string Индекс { get; set; } public string Город { get; set; } public string Улица { get; set; } public int Номер_дома { get; set; } public override string ToString()

{

return Индекс + ", " + Город + ", " + Улица + ", " + Номер_дома.ToString();

} }

Создание объекта класса Пользователь:

Пользователь пользователь = new Пользователь("Иванов", "Иван", "Иванович");


пользователь.Домашний_адрес.Индекс = "198500"; пользователь.Домашний_адрес.Город = "Санкт-Петербург"; пользователь.Домашний_адрес.Улица = "Невский проспект"; пользователь.Домашний_адрес.Номер_дома = 56; пользователь.Добавить_номер_телефона(new Номер_телефона("Домашний", "753-12-87"));

пользователь.Добавить_номер_телефона(new Номер_телефона("Рабочий", "380-57-18"));

Информация_о_пользователе.Text = персоналия.Резюме;


Цель работы:
изучение платформы Entity Framework, обеспечивающую сохранение / восстановление объектов, и основ объектно-ориентированного проектирования.

Задание:

Придумать пример предметной области, на которой будет изучаться платформа Entity Framework. Утвердить у преподавателя.

Создать пустую базу данных для проекта. Создать новый проект.

Добавить в проект пустую Entity Model, названную EModel.

Создать модель предметной области. Результат продемонстрировать преподавателю.

Сгенерировать SQL код структуры базы данных, для сохранения состояния объектов.

Реализовать методы создания, вывода, удаления, поиска и модификации объектов.

Сделать дамп базы данных.

Выполнить тестирование системы. Результаты продемонстрировать преподавателю.

Ход работы:

Последовательность создания новой объектной модели:

1. Создать базу данных

a. Запустить Sql Server Management Studio b. Выполнить подключение

c. Выделить на дереве проектов «Базы данных», нажать правую кнопку мыши и выбрать «создать базу данных»

d. Ввести имя базы данных (латиницей)

2. Создать новое приложение в Visual Studio или WebDeveloper

3. В проводнике проекта открыть вкладку «Обозреватель баз данных» и подключить вновь созданную базу данных

4. Добавить новую Entity Model (рис. 9).

a. В меню «Проект» выбрать «Добавить новый элемент» b. Выбрать «Модель ADO.NET EDM»

c. Назвать ее EModel

d. В мастере создания сущностных моделей выбрать «Пустая модель»

5. В конструкторе моделей создать модель предметной области (Entity Model)

a. Создать новый сущностный класс (Сущность) b. Выбрать имя сущности

c. Выбрать имя набора сущностей

d. В качестве типа идентификатора использовать Guid и не забывать устанавливать поле Store Generated Pattern в None.

e. Создать другие сущностные классы

f. Создать ассоциации и указать их кратность

Пример объектной модели предметной области, состоящей из сущностных классов Персоналия и      Номер_телефона, между котоыми установлена ассоциация кратности один ко многим, приведен на рис. 10.

Приведем последовательность создания структуры базы данных, для сохранения состояния объектов сущностной модели.

Установить курсор на пустое пространство объектной модели.

Нажать правую кнопку мыши и выбрать пункт «Создать базу данных на основе модели» (рис. 11).

Выполнить сгенерированный SQL код. Пример сгенерированного SQL кода:

-- --------------------------------------------------

-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure -- --------------------------------------------------

-- Date Created: 03/24/2011 14:12:05

-- Generated from EDMX file: c:\users\сергей\documents\visual studio 2010\Projects\PrimerPrilozhenija\PrimerPrilozhenija\EModel.edmx

-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF; GO

USE [Primer]; GO

IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]'); GO


Выбираем пустую модель

Добавление объектной модели


Ассоциация

Свойства навигации

Графическое представление объектной модели (Entity Model)

Генерация SQL кода структуры базы данных


-- --------------------------------------------------

-- Dropping existing FOREIGN KEY constraints -- --------------------------------------------------

-- ---------------------------------------------------- Dropping existing tables

-- ---------------------------------------------------- ---------------------------------------------------- Creating all tables

-- --------------------------------------------------

-- Creating table 'Персоналии' CREATE TABLE [dbo].[Персоналии] (

[Идентификатор] uniqueidentifier NOT NULL, [Фамилия] nvarchar(max) NOT NULL,

[Имя] nvarchar(max) NOT NULL, [Отчество] nvarchar(max) NOT NULL, [Год_рождения] int NOT NULL

); GO

-- Creating table 'Номера_телефонов' CREATE TABLE [dbo].[Номера_телефонов] (

[Идентификатор] uniqueidentifier NOT NULL, [Тип] nvarchar(max) NOT NULL,

[Номер] nvarchar(max) NOT NULL, [Персоналия_Идентификатор] uniqueidentifier NOT NULL

); GO

-- ---------------------------------------------------- Creating all PRIMARY KEY constraints -- --------------------------------------------------

-- Creating primary key on [Идентификатор] in table 'Персоналии' ALTER TABLE [dbo].[Персоналии]

ADD CONSTRAINT [PK_Персоналии]

PRIMARY KEY CLUSTERED ([Идентификатор] ASC); GO

-- Creating primary key on [Идентификатор] in table 'Номера_телефонов' ALTER TABLE [dbo].[Номера_телефонов]

ADD CONSTRAINT [PK_Номера_телефонов]

PRIMARY KEY CLUSTERED ([Идентификатор] ASC); GO

-- ---------------------------------------------------- Creating all FOREIGN KEY constraints -- --------------------------------------------------

-- Creating foreign key on [Персоналия_Идентификатор] in table 'Номера_телефонов'


ALTER TABLE [dbo].[Номера_телефонов]

ADD CONSTRAINT [FK_ПерсоналияНомер_телефона] FOREIGN KEY ([Персоналия_Идентификатор]) REFERENCES [dbo].[Персоналии]

([Идентификатор])

ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ПерсоналияНомер_телефона' CREATE INDEX [IX_FK_ПерсоналияНомер_телефона]

ON [dbo].[Номера_телефонов] ([Персоналия_Идентификатор]);

GO

-- ---------------------------------------------------- Script has ended

-- --------------------------------------------------

Код обработчика события добавления новой сущности:

protected void Add_Click(object sender, EventArgs e) {

//Создание новой модели

EModelContainer model = new EModelContainer(); //Создание нового объекта персоналии Персоналия персоналия = new Персоналия(); //Генерация нового GUID персоналия.Идентификатор = Guid.NewGuid(); //Загрузка информации из формы ввода персоналия.Фамилия = Фамилия.Text.Trim(); персоналия.Имя = Имя.Text.Trim(); персоналия.Отчество = Отчество.Text.Trim();

персоналия.Год_рождения = System.Convert.ToInt32(Год_рождения.Text.Trim());

//Добавление персоналии в коллекцию model.Персоналии.AddObject(персоналия); //Сохранение изменений model.SaveChanges();

//Перенаправление на главную страницу Response.Redirect("/");

}


Цель работы:

Задание:

Разработать модель будущей


PAGE   \* MERGEFORMAT12




1. Данные по ИЛ-у62М
2. на тему- Разработка технологической карты на кладку стен из кирпича
3. Mrketing Reserch Project for Russin Compny
4.  АЗАРЦЕВ Олександр Володимирович
5. Критическое изображение светского общества в романе война и мир
6. Предметы выделяющиеся своей яркостью звучностью и т
7. ВАРИАНТ 9 Задача 1
8. Где он ~ парень сжал плечи девушки в своих сильных руках ну же Отвечай злость уже давно поселилась в этом.html
9. тема предназначена для освещения больших елочных гирлянд и подобных им иллюминационных систем
10. на тему- Организация производства зерна в ОАО Сатинское Сампурского района Тамбовской области