МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
Национальный исследовательский университет «МЭИ»
|
Институт ИнЭИ
Кафедра БИТ |
ПРАКТИЧЕСКАЯ РАБОТА №5
Задание №7
по дисциплине
«Объектно-ориентированный анализ и программирование»
Тема
« Разработка программного продукта »
|
Студент
|
Газизова Ю.М. |
|
Группа
|
_______________________ |
|
Лектор
|
Овсянникова М.Р. _______________________ |
|
Руководитель
|
_______________________ |
|
|
|
Работа защищена |
_______________________ оценка |
_______________________ дата |
Москва |
2020 |
1. Разработать модель предметной области (таблица 1). Предусмотреть несколько классов объектов (как минимум, два). Определить характеристики для класса объектов, исходя из предметной области и стоящих задач (таблица 1).
Предусмотреть поле, поддерживающее уникальность объекта (например, номер зачетной книжки – для студентов, табельный номер – для сотрудников, и т.д.).
Описать классы объектов.
2. Реализовать функции:
- ввод с клавиатуры конкретных объектов класса и сохранение их в файле,
- вывод на экран класса объектов в удобном для пользователя виде,
- вывод на экран одного или нескольких объектов класса,
- определение мощности класса объектов,
- добавление объектов класса,
- вычисление по заданным критериям с выводом результата с соответствующими комментариями,
- изменение одного или нескольких свойств одного или нескольких объектов класса.
Замечания.
1. Исходные данные вводятся с клавиатуры. Предусмотреть проверку корректности исходных данных.
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 |
Используется для того, чтобы вывести число учащихся, которые проживают в Москве |
Для формы:
#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
//