Материал: ЛР7студенты

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

Национальный исследовательский университет «МЭИ»

Институт ИнЭИ

Кафедра БИТ

ПРАКТИЧЕСКАЯ РАБОТА №5

Задание №7

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

«Объектно-ориентированный анализ и программирование»

Тема

« Разработка программного продукта »

Студент

Газизова Ю.М.

Группа

_______________________

Лектор

Овсянникова М.Р.

_______________________

Руководитель

_______________________

Работа защищена

_______________________

оценка

_______________________

дата

Москва

2020

1. Условие задачи

1. Разработать модель предметной области (таблица 1). Предусмотреть несколько классов объектов (как минимум, два). Определить характеристики для класса объектов, исходя из предметной области и стоящих задач (таблица 1).

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

Описать классы объектов.

2. Реализовать функции:

- ввод с клавиатуры конкретных объектов класса и сохранение их в файле,

- вывод на экран класса объектов в удобном для пользователя виде,

- вывод на экран одного или нескольких объектов класса,

- определение мощности класса объектов,

- добавление объектов класса,

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

- изменение одного или нескольких свойств одного или нескольких объектов класса.

Замечания.

1. Исходные данные вводятся с клавиатуры. Предусмотреть проверку корректности исходных данных.

2. При работе с файлом не должно быть непредвиденных ситуаций.

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

Аналогично, при попытке записи в файл необходимо выполнить проверку на предмет «файл с таким именем уже существует в указанной папке».

Вывод такого рода сообщений необходимо предусмотреть в программе.

Согласно варианту для выполнения работы необходимо выполнить следующие требования:

Предметная область-кадры студентов

Вычисление- количество студентов, проживающих в Москве.

2. Состав данных

В таблице 1 показаны данные используемые в программе.

Таблица 1

Название

Тип данных

Значение

surname

string

Публичная переменная для ФИО в классе описания человека

city

string

Публичная переменная для места рождения в классе описания человека

city_2

string

Публичная переменная для места рождения в классе описания человека

gender

string

Публичная переменная для определения пола в классе описания человека

birthday

unsigned int

Публичная переменная для даты рождения в классе описания человека

number

unsigned int

Публичная переменная для номера зачетной книжки в классе «студенты»

result

integer

Используется для сравнения на равенство в методе к другим студентам

stud_count

unsigned int

Используется для числа студентов в группе

add

unsigned int

Число добавленных студентов на данный момент

filename

string

Имя файла

info

string

Строковое представление

arr_stud

array

 Массив для группы студентов

surname_tb

textbox

Используется для ввода ФИО

city_tb

textbox

Используется для ввода города рождения

city2_tb

textbox

Используется для ввода города проживания

gender_cb

combobox

Используется для выбора пола

birthday_num

numericUpDown

Используется для ввода года рождения

number_num

numericUpDown

Используется для ввода номера зачетной книжки

add_stud_num

numericUpDown

Используется для просмотра добавленных студентов в группу

stud_num

numericUpDown

Сколько студентов нужно добавить в группу

student_list

listbox

Используется для вывода списка студентов

start_button

button

Кнопка запуска программы

add_student_button

button

Используется для добавления студента в группу

write_button

button

Используется для того, чтобы прочитать данные из файла

save1_button

button

 Используется для сохранения

save2_button

button

Используется для сохранения

read_button

button

Используется для того, чтобы вывести число учащихся, которые проживают в Москве

3. Текст программы

Для формы:

#pragma once

#include "Student's.h"

#include <stdlib.h>

namespace CppCLRWinformsProjekt {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace System::Collections::Generic;

using namespace System::IO;

public ref class Form1 : public System::Windows::Forms::Form

{

array<Student^>^ arr_stud; // Группа студентов (массив)

unsigned int stud_count; // Число студентов в группе

unsigned int add; // Число добавленных студентов на данный момент

String^ result;

public:

Form1(void)

{

InitializeComponent();

gender_cb->SelectedIndex = 0;

}

protected:

~Form1()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::Button^ add_student_button;

private: System::Windows::Forms::Button^ start_button;

protected:

private: System::Windows::Forms::Button^ save1_button;

private: System::Windows::Forms::Button^ write_button;

private: System::Windows::Forms::Button^ save2_button;

private: System::Windows::Forms::Button^ read_button;

private: System::Windows::Forms::TextBox^ surname_tb;

private: System::Windows::Forms::TextBox^ city_tb;

private: System::Windows::Forms::TextBox^ city2_tb;

private: System::Windows::Forms::ComboBox^ gender_cb;

private: System::Windows::Forms::NumericUpDown^ birthday_num;

private: System::Windows::Forms::NumericUpDown^ number_num;

private: System::Windows::Forms::NumericUpDown^ add_stud_num;

private: System::Windows::Forms::NumericUpDown^ stud_num;

private: System::Windows::Forms::Label^ label1;

private: System::Windows::Forms::Label^ label2;

private: System::Windows::Forms::Label^ label3;

private: System::Windows::Forms::Label^ label4;

private: System::Windows::Forms::Label^ label5;

private: System::Windows::Forms::Label^ label6;

private: System::Windows::Forms::Label^ label7;

private: System::Windows::Forms::Label^ label8;

private: System::Windows::Forms::ListBox^ student_list;

private: System::Windows::Forms::Label^ label9;

private:

System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

void InitializeComponent(void)

{

this->add_student_button = (gcnew System::Windows::Forms::Button());

this->start_button = (gcnew System::Windows::Forms::Button());

this->save1_button = (gcnew System::Windows::Forms::Button());

this->write_button = (gcnew System::Windows::Forms::Button());

this->save2_button = (gcnew System::Windows::Forms::Button());

this->read_button = (gcnew System::Windows::Forms::Button());

this->surname_tb = (gcnew System::Windows::Forms::TextBox());

this->city_tb = (gcnew System::Windows::Forms::TextBox());

this->city2_tb = (gcnew System::Windows::Forms::TextBox());

this->gender_cb = (gcnew System::Windows::Forms::ComboBox());

this->birthday_num = (gcnew System::Windows::Forms::NumericUpDown());

this->number_num = (gcnew System::Windows::Forms::NumericUpDown());

this->add_stud_num = (gcnew System::Windows::Forms::NumericUpDown());

this->stud_num = (gcnew System::Windows::Forms::NumericUpDown());

this->label1 = (gcnew System::Windows::Forms::Label());

this->label2 = (gcnew System::Windows::Forms::Label());

this->label3 = (gcnew System::Windows::Forms::Label());

this->label4 = (gcnew System::Windows::Forms::Label());

this->label5 = (gcnew System::Windows::Forms::Label());

this->label6 = (gcnew System::Windows::Forms::Label());

this->label7 = (gcnew System::Windows::Forms::Label());

this->label8 = (gcnew System::Windows::Forms::Label());

this->student_list = (gcnew System::Windows::Forms::ListBox());

this->label9 = (gcnew System::Windows::Forms::Label());

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->birthday_num))->BeginInit();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->number_num))->BeginInit();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->add_stud_num))->BeginInit();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->stud_num))->BeginInit();

this->SuspendLayout();

//

// add_student_button

//

this->add_student_button->Location = System::Drawing::Point(468, 70);

this->add_student_button->Name = L"add_student_button";

this->add_student_button->Size = System::Drawing::Size(147, 41);

this->add_student_button->TabIndex = 0;

this->add_student_button->Text = L"Добавить студента в группу";

this->add_student_button->UseVisualStyleBackColor = true;

this->add_student_button->Click += gcnew System::EventHandler(this, &Form1::add_student_button_Click);

//

// start_button

//

this->start_button->Location = System::Drawing::Point(325, 70);

this->start_button->Name = L"start_button";

this->start_button->Size = System::Drawing::Size(137, 41);

this->start_button->TabIndex = 1;

this->start_button->Text = L"СТАРТ";

this->start_button->UseVisualStyleBackColor = true;

this->start_button->Click += gcnew System::EventHandler(this, &Form1::start_button_Click);

//

// save1_button

//

this->save1_button->Location = System::Drawing::Point(507, 118);

this->save1_button->Name = L"save1_button";

this->save1_button->Size = System::Drawing::Size(75, 50);

this->save1_button->TabIndex = 2;

this->save1_button->Text = L"Сохранить в файл";

this->save1_button->UseVisualStyleBackColor = true;

this->save1_button->Click += gcnew System::EventHandler(this, &Form1::save1_button_Click);

//

// write_button

//