Файл: Отчет по проектной работе Тема проекта Чудеса космоса Выполнили ученик 10 "С" класса Молдамуратова Багдат Проверила учитель информатики Казиев А. К.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 22

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Назарбаев Интеллектуальная Школа химико-биологического направления города Актау

Отчет

по проектной работе

Тема проекта: Чудеса космоса

Выполнили: ученик 10 “С” класса Молдамуратова Багдат

Проверила: учитель информатики Казиев А.К.

Актау 2022

Содержание



Оглавление


Содержание 1

Анализ и исследование задачи 1

Модель жизненного цикла 1

Модель решения задачи в виде схемы 2

Блок схема: 2

Описание данных и методов 2

Метод сбора информации: 3

Описание входных и выходных данных 3

Логотип проекта 3

Математическая модель решения задачи 3

Таблица Дневника 4

Диаграмма Ганта 4

Интерфейс программы 4

Тестирование 4

Результаты тестирования программы 4

Оптимизация программы 6

Трассировочная таблица 6

Результаты тестирования: 6

Система хранения документов 6

Оригинальность текста: 6

Результаты проекта: 7

Руководство для пользователя: 7

Руководство по сопровождению системы: 7

Листинг программы 7

Список используемых литератур 11


Анализ и исследование задачи


Название проекта: Чудеса космоса

Гипотеза: Это тема была выбрана, потому что малое количество достоверной информации о космосе ограничивает возможности молодых любознателей космоса, проблему которой и будет решать этот проект

Цель: Создать приложение, которое будет делиться информацией о различных космических явлениях и объектов.

Задачи:

  • В приложении должно быть минимум 3 формы

  • Приложение должно быть связано с СУБД

  • Приложение должно включать окно авторизации

  • Программный код должен включать логическую конструкцию if() и цикл с параметрами

Smart – цели

Конкретный

Программа при авторизации будет открывать новую форму с информацией о 4 чудесах космоса

Измеримый

Программа будет способна работать с 3 формами, 4 чудесами космоса.

Достижимый

В проекте используются комментарии к блокам программы

Уместный

Предусмотрены все 4 чудеса космосу, каждой из которых предусмотрено таблица с не менее 5 столбцами

Ограниченный по времени

Проект я закончу к вечеру 1.05.22


Пример формулировки цели и задачи проекта

Цель

Задачи

Время

Результат выполнил -

Не выполнил -????

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


  1. Исследовать задачу

  • Определить входные и выходные данные;

  • Определить основной метод решения

29.03

+

2) Создать блок-схему решения задачи;

Дизайн

5.04 – 12.04

+

3) Создать программу на языке программирования С#;

19.04

+

4) - Создать таблицу для проверки необходимых данных;

- Провести тестирование на наличие ошибок

24.04

+

5) Распределить приложение 5 (10) пользователям для оценки приложения по критериям

24.04-1.05

+














Модель жизненного цикла




Рис. 1

Для реализации программы была использована поэтапная модель жизненного цикла. Я выбрала данную модель, потому что с данной моделью я могу возвращаться на предыдущие этапы, что очень удобно и продуктивно и обеспечивает меньшую трудоемкость по сравнению с остальными моделями.

Модель решения задачи в виде схемы


(Прототип и блок-схема + скриншоты + объяснение)

Прототип:



Рис.2



Рис.3



Рис.4

Прототип проекта был создан с помощью программы balsamiq, которая относится к методу Wireframe. Этот прототип показывает примерный вид приложения, в нем имеется 3 формы. Первая форма авторизация, вторая форма самой основной части приложения, а третья форма информация о проекте. Окончательный вид приложения отличается от прототип, во второй форме были изменены расположения компонентов, как и в третьей форме.


Блок схема:




Рис.5

Программа начинается с авторизации, в которой пользователь должен ввести пароль и логин, пароль будет равен факториалу числа 10, который указан в виде цикла с параметрами. Если пароль и логин неправильный, выведется окно с ошибкой, а если данные верны, то пользователя перенесет на вторую форму. В ней выводится информация о 4 космических объектах. Для каждой из них он будет способен находить расстояние, введя годовой параллакс с удобным ему единицей измерения. Также пользователь может перейти на форму с информацией о приложении.

Описание данных и методов


В программе используется логическая конструкция if() else для авторизации пользователя в 1ой форме, а также для выбора единицы измерения во 2ой форме.

Пример:

if (textBox1.Text == "space_is_awesome" && textBox2.Text == Convert.ToString(password)) //Проверяем правильность логина и пароля с помощью логической конструкции if()

{

Form2 newForm = new Form2();

newForm.Show();

this.Hide(); //в случае правильности введённых данных откроется вторая форма, а текущяя форма скрывается

}

else

{

MessageBox.Show("Вы ввели неправильный логин или пароль.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

//если пользователь ввёл неправильные данные то выведется окно об ошибке

}





Метод сбора информации:


Опрос

Я провела опрос среди своих друзей, чтобы понять актуальность проекта среди своих сверстников. Данный опрос хорошо помог мне с реализацией проекта и его результаты приведены ниже в виде скриншотов.



Рис.6



Рис.7



Рис.8

Описание входных и выходных данных


Входные данные:

Логин, пароль, годовой параллакс - компонент textbox

Выходные данные:

Информация о космических объектах - richtextbox

текст - пояснение, расстояние до космического объекта - label

таблица с информацией о космических объектах - datagridview

Переменные:

Входные переменные:

Таблица 1 Входные переменные

Имя переменной

Тип данных

Назначение

paralax1

double - вещественный

Используется для нахождения дистанции до космического объекта


Выходные данные:

Таблица 2 Выходные данные

Имя функции

Тип данных

Назначение

distance()

double - вещественный

Используется для нахождение расстояния до космического объекта путем деления 1 парсека на синус годового параллакса, затем выводится на экран в единице измерения, которую выбрал пользователь

Другие переменные:

  • password – переменная целочисленного типа, используемая для вычисления факториала числа 10, а также является паролем для входа в систему.

  • n – переменная целочисленного типа, используемая в качестве итератора в цикле for(), находящее факториал числа 10.

  • paralax - локальная переменная вещественного типа, которая используется внутри подпрограммы distance() и переносит значение переменной paralax1 в функцию distance()






Логотип проекта





Математическая модель решения задачи


(+ скриншоты + объяснение)



  • password = password * (n+1); Эта математическая вычисление находится в цикле for(), а точнее:

for (int n = 1; n < 10; n++)

{

password = password * (n+1);

}

Этот цикл находит факториал числа 10, и формулой данного цикла является password = password * (n+1).

  • Math.Sin() - математическая функция, находящее синус числа(в градусах)

  • distance() - функция/подпрограмма, которая находит расстояние до космического объекта с помощью математического вычисления: 1/Math.Sin(paralax);

distance()*SI[i] - вычисление, переводящее значение функции distance() под нужную единицу измерения.


Рис.10



Рис.11

Таблица Дневника


Таблица 3 Дневник

Дата

Этап работы

Что я выполнил?

Какие возникли трудности?

Что мне нужно сделать?

29.03

Анализ требований

Выбрала тему проекта, провела сбор информации путем анкетирования

Было сложно выбрать тему, но проведя исследование я смог определиться с ней

Выбрать тему, провести сбор информации

5.04

Проектирование

Создала прототип, блок - схему проекта

Проблем не возникло

Создать прототип и блок-схему проекта

12.04

Дизайн

Создала пользовательский интерфейс приложения, добавляя в форму нужные элементы управления и оформляя ее дизайн

Проблем не возникло

Создать пользовательский интерфейс


19.04

Разработка

Написала программный код приложения

Проблем не возникло

Написать программный код

24.04

Оптимизация кода и тестирование на ошибки

Выполнила оптимизацию программы, провела тестирование по grey, black, white box, а также по типам данных

Возникли огромные проблемы с оптимизацией, а также немало логических ошибок, которые были немедленно исправлены

Провести оптимизацию кода и тестирование приложения на ошибки

1.05

Документация

Заполнила отчет проекта в word формате, описывая все этапы создания проекта

Проблем не возникло

Заполнить отчет проекта, провести документацию


Диаграмма Ганта


Таблица 4 Диаграмма Ганта






Март-Апрель-Май

29.03

5.04

12.04

19.04

24.04

1.05



Анализ требований





Проектирование





Дизайн





Разработка





Оптимизация кода и тестирование на ошибки





Документация










Интерфейс программы


(+ скриншоты + объяснение)

Таблица 5 Интерфейс программы



Скриншот

Объяснение

1



Рис.12

Это окно появляется самой первой при открытии приложения. Пользователь должен ввести логин и пароль, чтобы войти в систему. Если пользователь ввел правильные данные, то программа переведёт его в основное окно(окно выбора страны), но если он введёт неправильные данные, то программа выведет ошибку. В форме присутствуют компоненты button, label, panel, tooltip, picturebox.

2




Рис.13

Эта форма открывается после успешной авторизации и дает информацию о 4ех космических объектов, также предоставляя пользователю возможность найти расстояние до космического объекта, введя параллакс и выбрав единицу измерения. Тут присутствуют такие компоненты, как: tabcontrol, label,textbox,richtextbox,picturebox,radiobutton,datagridview,groupbox,menustrip.

3



Рис.14

Данная форма позволяет пользователю получить дополнительные сведения о приложении, о его создателе, а также полезные ссылки на источники. Тут присутствуют компоненты: panel, menustrip, label,richtextbox,picturebox,linklabel.


Тестирование


План теста

  1. Тестирование программного кода по типам данных, а именно вводя экстремальные, нормальные и исключительные данные, наблюдая за выводом и записывая ее, представляя доказательства в виде скриншотов экрана

  1. По устройству системы

  2. Альфа, бета тестирование

  3. Трассировочная таблица

Результаты тестирования программы


(+ скриншоты + объяснение)
По типам данных

Black box:

Таблица 6 Black Box

Ввод данных

Ожидание

Результат

Нормальные/Экстремальные

Логин: space_is_awesome

Пароль: 3628800

Выполнение соответственно плану, операции выбранные пользователем

Выполнение соответственно плану, операции выбранные пользователем

Ошибочные

Логин: space_is_awesome

Пароль:4564646

Логин: IDSAdd

Пароль:3628000

Вывод окна сообщений об ошибке со словами “ Вы ввели неправильный логин или пароль.”

Вывод окна сообщений об ошибке со словами “ Вы ввели неправильный логин или пароль.”


Нормальные данные:



Рис.15



Рис.16


Ошибочные:



Рис.17


Рис.18
Тестирование методом черного ящика я провела с человеком, незнакомым с программным кодом и не являющимся специалистом в программировании – а именно со своей младшей сестрой. В ходе тестирования она ввела разные данные, сперва правильные, потом ошибочные. Так как нужно было ввести логин и пароль, правильные данные являются также и экстремальными данными. Приложение вывела на экран вышеприведенные (в фото доказательствах) результаты. Тестирование прошло по плану.
Тестирование методом серого ящика я провела со своим одноклассником, который разбирается в программирование но не знаком с кодом . Он вводил данные, в которых присутствуют и нормальные, и экстремальные, а также ошибочные данные. Как мы видим, программа вывела результаты для значений параллакса: 90(нормальные) и 1(экстремальные). Также программа вывела ошибку при вводе невозможного числа (0). Ожидаемые и фактические результаты совпали, тестирование прошло успешно
Grey box:

Таблица 7 Grey Box



п/п

Испытание

Вводимое значение

Ожидаемый результат

Фактический результат

1

Ввод параллакса

90

Число принято

Число принято

2

Ввод параллакса

1

Число принято

Число принято

3

Ввод параллакса

0

Число не принято

Число не принято




Рис.19



Рис.20



Рис.21

White Box:

Таблица 8 White Box



п/п

Испытание

Вводимое значение

Ожидаемый результат

Фактический результат

Доказательство

1

Ввод логина и пароля

Логин: space_is_awesome

Пароль: 3628800

Число принято

Число принято

Рис.18

2


Ввод логина и пароля

Логин:

Логин: space_is_awesome

Пароль:4564646


Число не принято

Число не принято

Рис.17


Тестирование с методом whitebox я провела с одноклассником, который знаком с программным кодом и согласился тестировать авторизацию программы. В ходе тестирования он заметил странные лаги, связанные с авторизацией и неэффективное использование кода. Он порекомендовал оптимизировать программный код, но в целом тестирование прошло успешно.

По устройству системы

Таблица 9 По устройству системы

По устройству системы

Результат

White Box

Positive

Black box

Positive

Grey box

Positive



Таблица 10 Альфа и Бета тестирование

Альфа тестирование

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

Бета тестирование

Бета тестирование я решила провести после оптимизации, для более широкой массы людей. Я отправила свое приложение в группу с шаныраком, где более 60 учеников, чтобы они протестировали приложение. Они отметили, что приложение работает без лагов и интерфейс является дружественным и удобным. Из минусов отметили отсутствие источников информации в приложении, что я и добавила в результате бета тестирования. С производительностью программы проблем обнаружено не было. После бета тестирования я подкорректировала недостающие элементы и пришла к завершению создания приложения.


Оптимизация программы



До оптимизации:



Рис. 22



Рис.23

Как мы видим, до оптимизации кода в нем не было комментариев, множество раз повторялась одна и та же математическая операция по нахождению расстояния, и одни и те же действия повторяются для разных кнопок, что являлось мусорным кодом и замедляло работу программы

После оптимизации:


Рис.24



Рис.25

После оптимизации была добавлена подпрограмма distance(), вместо повторящихся distance = 1/Math.Sin(paralax). Также было принято решение добавить условие, чтобы проверять введенные пользователем данные на допустимость. Также были добавлены комментарии к коду, чтобы код получился читабельным и понятным.


Трассировочная таблица


int password = 1; //обьявляем локальную переменную password и присваимаем ей значение 1

for (int n = 1; n < 10; n++)

{

password = password * (n + 1); //Цикл, определяющий факториал числа 10

}

Таблица 11 Трассировочная таблица

Шаг

Операция

n

password

Проверка условия(n<10)

1

-

-

1

-

2

password = password*(n+1)

1

2

1<10, true

3

password = password*(n+1)

2

6

2<10, true

4

password = password*(n+1)

3

24

3<10, true

5

password = password*(n+1)

4

120

4<10, true

6

password = password*(n+1)

5

720

5<10, true

7

password = password*(n+1)

6

5040

6<10, true

8

password = password*(n+1)

7

40320

7<10, true

9

password = password*(n+1)

8

362800

8<10, true

10

password = password*(n+1)

9

3628800

9<10, true

11

-

10

3628000

10<10, false

Трассировочная таблица позволяет пошагово проверить процессы в программе на потенциальные логические ошибки. Я построил трассировочную таблицу для цикла с параметром, который находит факториал числа 10, используемый в качестве пароля для входа в приложение. Тестирование прошло успешно.

Результаты тестирования:


В целом можно сказать что программа успешно прошла тестирование. Но это не значит что она идеальна, это значит она работает стабильно и её при желании можно улучшать, чем мы конечно же займемся.

Система хранения документов


https://drive.google.com/drive/folders/1YpbhIGFrOFK7k89N-SZWEMYVO2cvXWu5



Рис 26

В компьютере:

Путь: C:\Users\User\source\repos

Рис 28





Оригинальность текста:


Рис. 29

Оригинальность текста было проверено сайтом UniText24.ru, который показал 80-100%, тоесть высокую оригинальность текста.

Результаты проекта:




Руководство для пользователя:


Инструкций по применению программы: В начале программы на экран выведется окно авторизации, введите логин и пароль и войдите в программу. Вас перенесет на другую форму, в четыремя вкладками, которых хранится информация о космических объектах. В вышеупомянутых вкладках присутствуют таблицы, фото объектов, а также в каждой вкладке имеется возможность найти расстояние до космического объекта. Для этого вам нужно ввести годовой параллакс в градусах, а также выбрать нужную вам единицу измерения. Когда вы нажмете на кнопку, программа сделает все сама. В левом верхнем углу можно нажать на кнопку “О приложении”, где указана информация о создателе проекта, а также его логотип и ссылки на полезные источники. Нажимая на кнопку “Назад”, вы вернетесь на вторую форму.

Планы на будущее:

Я планирую улучшить свое приложение, добавив туда новые космические объекты. Также я планирую добавить закон Хаббла и уравнения светимости в будущем.

Руководство по сопровождению системы:



При создании программы я использовал среду разработки Visual Studio, а именно Windows forms application на языке C#.

Visual Studio Community - Полнофункциональная, расширяемая и бесплатная интегрированная среда разработки для создания современных приложений Android, iOS и Windows, а также веб-приложений и облачных служб.

Требования для использование программного кода:

Знание языка C#, программа Visual Studio, ОС Windows

Листинг программы


(Программный код)
Form1:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;
namespace Чудеса_космоса

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}


private void button1_Click(object sender, EventArgs e)

{

int password = 1; //обьявляем локальную переменную password и присваимаем ей значение 1

for (int n = 1; n < 10; n++)

{

password = password * (n + 1); //Цикл, определяющий факториал числа 10

}

if (textBox1.Text == "space_is_awesome" && textBox2.Text == Convert.ToString(password)) //Проверяем правильность логина и пароля с помощью логической конструкции if()

{

Form2 newForm = new Form2();

newForm.Show();

this.Hide(); //в случае правильности введённых данных откроется вторая форма, а текущяя форма скрывается

}

else

{

MessageBox.Show("Вы ввели неправильный логин или пароль.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

//если пользователь ввёл неправильные данные то выведется окно об ошибке

}

}

Form2:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;
namespace Чудеса_космоса

{

public partial class Form2 : Form

{

double[] SI = {206265, 1, 3.2616}; //объявляем глобальный вещественный массив SI, в котором хранятся константы значении единиц измерении относительно парсека

double paralax1; //объявляем глобальную переменную вещественного типа paralax1

public Form2()

{

InitializeComponent();

}

static double distance(double paralax)

{

return 1 / Math.Sin(paralax); /*функция(подпрограмма/процедура) distance считает расстояние до космического объекта и возращает

это значение в вещественном виде*/

}

private void Form2_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "космосDataSet3.Черные_дыры". При необходимости она может быть перемещена или удалена.

this.черные_дырыTableAdapter.Fill(this.космосDataSet3.Черные_дыры);

// TODO: данная строка кода позволяет загрузить данные в таблицу "космосDataSet2.Туманности". При необходимости она может быть перемещена или удалена.

this.туманностиTableAdapter.Fill(this.космосDataSet2.Туманности);

// TODO: данная строка кода позволяет загрузить данные в таблицу "космосDataSet1.Галактики". При необходимости она может быть перемещена или удалена.

this.галактикиTableAdapter.Fill(this.космосDataSet1.Галактики);

// TODO: данная строка кода позволяет загрузить данные в таблицу "космосDataSet.Звезды". При необходимости она может быть перемещена или удалена.

this.звездыTableAdapter.Fill(this.космосDataSet.Звезды);
}
private void button3_Click(object sender, EventArgs e)

{
paralax1 = Convert.ToDouble(textBox1.Text); //присваиваем глобальной переменной paralax1 значение textbox1.Text

if (paralax1 > 0 && paralax1 < 360)

{

if (radioButton1.Checked)

{
label5.Text = Convert.ToString(distance(paralax1) * SI[0]) + "а.е"; //расстояние в астрономических единицах будет отображаться на компоненте label5

}

else if (radioButton2.Checked)

{

label5.Text = Convert.ToString(distance(paralax1) * SI[1]) + "п.к"; //расстояние в парсеках будет отображаться на компоненте label5

}

else if (radioButton3.Checked)

{

label5.Text = Convert.ToString(distance(paralax1) * SI[2]) + "с.л"; //расстояние в световых годах будет отображаться на компоненте label5

}

else { MessageBox.Show("Выберите единицу измерения", "Ошибка"); } //сообщение о том, что надо выбрать единицу измерения

}

else

{

MessageBox.Show("Вы ввели невозможное значение", "Ошибка"); //проверяем на невозможные значения

}

}
private void button1_Click(object sender, EventArgs e)

{

paralax1 = Convert.ToDouble(textBox2.Text); //присваиваем глобальной переменной paralax1 значение textbox2.Text

if (paralax1 > 0 && paralax1 < 360)

{

if (radioButton6.Checked)

{
label6.Text = Convert.ToString(distance(paralax1) * SI[0]) + "а.е"; //расстояние в астрономических единицах будет отображаться на компоненте label6

}

else if (radioButton5.Checked)

{

label6.Text = Convert.ToString(distance(paralax1) * SI[1]) + "п.к"; //расстояние в парсеках будет отображаться на компоненте label6

}

else if (radioButton4.Checked)

{

label6.Text = Convert.ToString(distance(paralax1) * SI[2]) + "с.л"; //расстояние в световых годах будет отображаться на компоненте label6

}

else { MessageBox.Show("Выберите единицу измерения", "Ошибка"); } //сообщение о том, что надо выбрать единицу измерения

}

else

{

MessageBox.Show("Вы ввели невозможное значение", "Ошибка"); //проверяем на невозможные значения

}

}
private void button2_Click(object sender, EventArgs e)

{

paralax1 = Convert.ToDouble(textBox3.Text); //присваиваем глобальной переменной paralax1 значение textbox3.Text

if (paralax1 > 0 && paralax1 < 360)

{

if (radioButton9.Checked)

{
label11.Text = Convert.ToString(distance(paralax1) * SI[0]) + "а.е"; //расстояние в астрономических единицах будет отображаться на компоненте label11

}

else if (radioButton8.Checked)

{

label11.Text = Convert.ToString(distance(paralax1) * SI[1]) + "п.к"; //расстояние в парсеках будет отображаться на компоненте label11

}

else if (radioButton7.Checked)

{

label11.Text = Convert.ToString(distance(paralax1) * SI[2]) + "с.л"; //расстояние в световых годах будет отображаться на компоненте label11

}

else { MessageBox.Show("Выберите единицу измерения", "Ошибка"); } //сообщение о том, что надо выбрать единицу измерения

}

else

{

MessageBox.Show("Вы ввели невозможное значение", "Ошибка"); //проверяем на невозможные значения

}

}
private void button4_Click(object sender, EventArgs e)

{

paralax1 = Convert.ToDouble(textBox4.Text); //присваиваем глобальной переменной paralax1 значение textbox4.Text

if (paralax1 > 0 && paralax1 < 360)

{

if (radioButton12.Checked)

{
label16.Text = Convert.ToString(distance(paralax1) * SI[0]) + "а.е"; //расстояние в астрономических единицах будет отображаться на компоненте label16

}

else if (radioButton11.Checked)

{

label16.Text = Convert.ToString(distance(paralax1) * SI[1]) + "п.к"; //расстояние в парсеках будет отображаться на компоненте label16

}

else if (radioButton10.Checked)

{

label16.Text = Convert.ToString(distance(paralax1) * SI[2]) + "с.л"; //расстояние в световых годах будет отображаться на компоненте label16

}

else { MessageBox.Show("Выберите единицу измерения", "Ошибка"); } //сообщение о том, что надо выбрать единицу измерения

}

else

{

MessageBox.Show("Вы ввели невозможное значение", "Ошибка"); //проверяем на невозможные значения

}

}
private void оПриложенииToolStripMenuItem_Click(object sender, EventArgs e)

{

Form3 newForm = new Form3();

newForm.Show(); //откроется третья форма, а текущяя форма скрывается

this.Hide();

}
private void выйтиToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit(); //выход из приложения

}

}

}
Form3:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;
namespace Чудеса_космоса

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}
private void вернутьсяToolStripMenuItem_Click(object sender, EventArgs e)

{

Form2 newForm = new Form2();

newForm.Show();

this.Hide(); //откроется вторая форма, а текущяя форма скрывается

}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

}

}

Список используемых литератур



How do we measure distance in space? | Sky at Night (skyatnightmagazine.com)

Spacegid.com - интерактивныйгидвмирекосмоса

C# и .NET | Математические вычисления и класс Math (metanit.com)

Информатика учебник 10 класс

Физика учебник 10 класс

Физика учебник 9 класс

wikipedia.org

NASA