Назначение и область применения приложения.
ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ.
1. Построение имитационной модели процесса (дифференциальные уравнения)
1.1. Шар брошен прямо вниз с вершины высокого здания. Начальная скорость шара равнее 10 м/с. При падении на землю его скорость равна 60 м/с. Какова высота здания?
2. Построить график функции для не менее чем 10-ти значений:
2.1. ;
3. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
а) 12510; б) 22910; в) 8810; г) 37,2510; д) 206,12510.
Назначение и область применения приложения.
Приложение предназначено для автоматизации:
Ø Вычисления результата с учетом ввода данных.
Ø Модулирование различных графиков функций за счет математических формул и вычислений.
Ø Преобразование различных чисел из одних систем счисления в другие.
Ø Работа с математическими формулами и вычислениями.
Область применения:
Приложение может использоваться для получения результата, например, калькулятор решит математические действия, с помощью графиков можно узнать определенные координаты, а в системе счисления можно выполнить преобразование из одной системы счисления в другую.
Описание основных технических решений.
Постановка задачи разработки программного приложения.
ü Осуществляются следующие функции:
ü ввода информации;
ü преобразования информации;
ü графический режим;
ü вывод информации на экран;
ü сохранение информации;
ü решение и вычисление определенного результата.
Основная задача программного приложения, разработка приложения для вычислений каких либо функций, решения математических задач, преобразования различных чисел.
Технические требования Microsoft Visual Studio: Интегрированная среда разработки, поддерживающая операционная система Windows 7, применяемые расширения С++, С#, и другие, у программы встроенные библиотеки и используются одновременно с работой программы.
Подпрограмма 1(Система счисления) предназначена для преобразования различных чисел из одних систем счисления в другие.
Подпрограмма 2(Графики) предназначена для модулирования различных графиков функций за счет математических формул и вычислений.
Подпрограмма 3(Калькулятор) предназначена для вычисления определенного результата с учетом ввода данных и решением математических вычислений.
Математический алгоритм решения задач.
Алгоритм решения и формулы:
Задание 1(Система счисления) Перевод числа из 10 системы счисления в двоичную , шестнадцатеричную, восьмеричную. Проверим в калькуляторе.
Задание 3(Калькулятор) Создать калькулятор и проверить работоспособность его вычислений. Проверим в Excel.
200+300=500 проверка пройдена.
Блок-схема.
Алгоритм – это точное предписание по выполнению некоторого процесса обработки данных, который через разумное конечное число шагов приводит к решению задачи данного типа для любых допустимых вариантов исходных данных.
Для разработки структуры программы удобнее пользоваться записью алгоритма в виде схемы. Для изображения основных алгоритмических структур и блоков в схемах используют специальные графические символы.
Согласно данному стандарту, схема программы состоит из: символов процесса, указывающих фактические операции обработки данных; линейных символов, указывающих поток управления; специальных символов, используемых для написания и чтения схемы.
Описание алгоритма, для начала создаем главную форму, далее выбираем главную форму и от нее переходим в другие формы, в этих формах мы выполняем задания и получаем результат, далее тестируем программу на наличие ошибок, далее компилируем, выполняется отладка и завершение программы.
Тестирование.
Ввод символов вместо чисел
2.Деление на 0 (233/0=бесконечность)
Инструкция пользователя
Мы открыли подпрограмму и видим что она нам предлагает ввести число, для того чтобы перевести его в другие системы счисления, и на выбор у нас есть 3 системы счисления: двоичная, восьмеричная и шестнадцатеричная.
Также в подпрограмме есть кнопка с названием «меню» она предназначена для возврата к главной форме. Далее выйдем в меню и откроем 2 подпрограмму под название «графики». Здесь нарисованы график функции синус, его можно масштабировать при помощи мышки, также запустить синусоиду с помощью кнопки старт, и также при помощи этой же кнопки остановить, и также изображен подсчет успеваемости в группе, также имеется кнопку возврата в меню.
Это простой калькулятор с обычными функциями умножение, сложение, деление, вычитание, также есть сброс кнопка С, ну и получение результата кнопка равно. также присутствует кнопка меню для возврата к главной форме.
Листинг программы.
Форма 1.
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)
{
Form2 newfrm = new Form2();//Form2 -- вторая форма
newfrm.Show();
this.Hide();
}
private void button3_Click(object sender, EventArgs e)
{
Form4 newfrm = new Form4();//Form4 -- четвертая форма
newfrm.Show();
this.Hide();
}
private void button2_Click(object sender, EventArgs e)
{
Form3 newfrm = new Form3();//Form3 -- третья форма
newfrm.Show();
this.Hide();
}
}
}
Форма 2.
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
{
public Form2()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
{
int i = Convert.ToInt32(textBox1.Text);
if (radioButton1.Checked == true)
{
textBox2.Text = Convert.ToString(i, 2);
}
else if (radioButton2.Checked == true)
{
textBox2.Text = Convert.ToString(i, 16);
}
else if (radioButton3.Checked == true)
{
textBox2.Text = Convert.ToString(i, 8);
}
}
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 2);
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 16);
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 8);
}
private void button1_Click(object sender, EventArgs e)
{
Form1 newfrm = new Form1();//Form3 -- первая форма
newfrm.Show();
this.Hide();
}
}
}
Форма 3.
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 Form3_Load(object sender, EventArgs e)
{
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, 50);
chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
chart1.ChartAreas[0].AxisY.ScaleView.Zoom(-1, 1);
chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisY.ScrollBar.IsPositionedInside = true;
for (int i=0;i<50;i++)
{
chart1.Series[0].Points.AddXY(i, Math.Sin(i));
}
}
int N = 49;
private void timer1_Tick(object sender, EventArgs e)
{
N++;
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, N);
chart1.Series[0].Points.RemoveAt(0);
chart1.Series[0].Points.AddXY(N, Math.Sin(N));
chart1.ChartAreas[0].AxisX.Minimum = N - 50;
chart1.ChartAreas[0].AxisX.Maximum = N;
}
private void button1_Click(object sender, EventArgs e)
{
if (timer1.Enabled)
{
timer1.Enabled = false;
button1.Text = "Стоп";
}
else
{
timer1.Enabled = true;
button1.Text = "Старт";
}
}
private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
timer1.Interval = hScrollBar1.Value;
}
int k = 0;
private void chart2_Click(object sender, EventArgs e)
{
if(k==0)
{
chart2.Series[0].Points.AddXY(k, 1);
chart2.Series[0].Points[k].LegendText = "Отлично";
}
if (k == 1)
{
chart2.Series[0].Points.AddXY(k, 4);
chart2.Series[0].Points[k].LegendText = "Хорошо";
}
if (k == 2)
{
chart2.Series[0].Points.AddXY(k, 3);
chart2.Series[0].Points[k].LegendText = "Удовлетворительно";
}
if (k == 3)
{
chart2.Series[0].Points.AddXY(k, 2);
chart2.Series[0].Points[k].LegendText = "Неудовлетворительно";
}
k++;
}
private void button2_Click(object sender, EventArgs e)
{
Form1 newfrm = new Form1();//Form3 -- первая форма
newfrm.Show();
this.Hide();
}
}
}
Форма 4.
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 Form4 : Form
{
Double value = 0;
String operation = "";
bool operation_pressed = false;
public Form4()
{
InitializeComponent();
}
private void button_Click(object sender, EventArgs e)
{
if ((result.Text == "0")!= (operation_pressed))
result.Clear();
operation_pressed = false;
Button b = (Button)sender;
result.Text = result.Text + b.Text;
}
private void button14_Click(object sender, EventArgs e)
{
result.Text = "0";
}
private void operation_click(object sender, EventArgs e)
{
Button b = (Button)sender;
operation = b.Text;
value = Double.Parse(result.Text);
operation_pressed = true;
equation.Text = value + "" + operation;
}
private void button18_Click(object sender, EventArgs e)
{
equation.Text = "";
switch(operation)
{
case "+":
result.Text = (value + Double.Parse(result.Text)).ToString();
break;
case "-":
result.Text = (value - Double.Parse(result.Text)).ToString();
break;
case "*":
result.Text = (value * Double.Parse(result.Text)).ToString();
break;
case "/":
result.Text = (value / Double.Parse(result.Text)).ToString();
break;
default:
break;
}
}
private void button17_Click(object sender, EventArgs e)
{
result.Clear();
value = 0;
}
private void button15_Click(object sender, EventArgs e)
{
Form1 newfrm = new Form1();//Form3 -- первая форма
newfrm.Show();
this.Hide();
}
}
}
Заключение.
В ходе выполнения курсового проекта мызакрепили теоретические знания по дисциплине «Программирование», приобретение студентами практических навыков самостоятельного углубленного изучения предметной области, выработка умения в области моделирования и проектирования программных приложений с графическим интерфейсом, освоение возможностей среды программирования, а также умение работать с источниками и литературой, анализировать факты и данные специальной литературы, излагать прочитанное современным литературным языком.
Задачами курсовой работы являлось:
· изучение и описание предметной области, для которой ведется разработка программного приложения, автоматизируемых функций, методов и средств разработки;
· разработка структуры программы;
· разработка описание алгоритма и (или) функционирования программы с обоснованием выбора схемы алгоритма решения задачи;
· создание программного приложения с графическим интерфейсом;
· оформление текста курсовой работы.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1. Алексеев В. Е. Вычислительная техника и программирование : практикум по программированию / В. Е. Алексеев. – М. : Высшая школа, 1991. – 356 с.
2. Басаков М. И. Сертификация продукции и услуг с основами стандартизации и метрологии / М. И. Басаков. – Ростов-на-Дону : Центр «Март», 2002.
3. Благодатских В. А. Стандартизация разработки программных средств : Учеб. Пособие / В. А. Благодатских [и др]. – М. : Финансы и статистика, 2003.
4. Гагарина Л. Г. Основы технологии разработки программных продуктов / Л. Г. Гагарина [и др.] – М. : ФОРУМ-ИНФРА-М, 2006.
5. Ковалевская Е. В. Технология разработки программного обеспечения / Ковалевская Е. В. – М. : МЭСИ, 2008.
6. Ковалевская Е. В., Комлева Н. В. Методы программирования / Е. В. Ковалевская, Н. В. Комлева. – М. : МЭСИ, 2011.
7. Крылова Г. Д. Основы стандартизации, сертификации, метрологии»: учебник для вузов / Г. Д. Крылова. – 2-е изд. – М. : ЮНИТИ-ДАНА, 2001.
8. Липаев В. В. Выбор и оценивание характеристик качества программных средств / В. В. Липаев. – М. : Синтег, 2001.
9. Орлов С. А. Технологии разработки программного обеспечения / С. А. Орлов. – СПб. : Питер, 2002.
10. Основные концепции и механизмы объектно-ориентированного программирования / Е. В. Пышкин. – СПб. : БХВ-Петербург, 2005.
ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ.
1. Построение имитационной модели процесса (дифференциальные уравнения)
1.1. Шар брошен прямо вниз с вершины высокого здания. Начальная скорость шара равнее 10 м/с. При падении на землю его скорость равна 60 м/с. Какова высота здания?
2. Построить график функции для не менее чем 10-ти значений:
2.1. ;
3. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
а) 12510; б) 22910; в) 8810; г) 37,2510; д) 206,12510.
Назначение и область применения приложения.
Приложение предназначено для автоматизации:
Ø Вычисления результата с учетом ввода данных.
Ø Модулирование различных графиков функций за счет математических формул и вычислений.
Ø Преобразование различных чисел из одних систем счисления в другие.
Ø Работа с математическими формулами и вычислениями.
Область применения:
Приложение может использоваться для получения результата, например, калькулятор решит математические действия, с помощью графиков можно узнать определенные координаты, а в системе счисления можно выполнить преобразование из одной системы счисления в другую.