Файл: Отчет по проектной работе Тема проекта Чудеса космоса Выполнили ученик 10 "С" класса Молдамуратова Багдат Проверила учитель информатики Казиев А. К.docx
Добавлен: 05.12.2023
Просмотров: 21
Скачиваний: 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 |
Пример формулировки цели и задачи проекта
Цель | Задачи | Время | Результат выполнил - ✔ Не выполнил -???? |
Создать приложение, которое будет делиться информацией о различных космических явлениях и объектов. |
| 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 Диаграмма Ганта
|
| ||||||||||||
Анализ требований | | ||||||||||||
Проектирование | | ||||||||||||
Дизайн | | ||||||||||||
Разработка | | ||||||||||||
Оптимизация кода и тестирование на ошибки | | ||||||||||||
Документация | |
Интерфейс программы
(+ скриншоты + объяснение)
Таблица 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. |
Тестирование
План теста
-
Тестирование программного кода по типам данных, а именно вводя экстремальные, нормальные и исключительные данные, наблюдая за выводом и записывая ее, представляя доказательства в виде скриншотов экрана
-
По устройству системы -
Альфа, бета тестирование -
Трассировочная таблица
Результаты тестирования программы
(+ скриншоты + объяснение)
По типам данных
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