КУРСОВАЯ РАБОТА
по
курсу «Программные средства систем управления»
СОДЕРЖАНИЕ
программа файл данные
Реферат
Введение
Техническое задание
Описание программы
Описание методов
Текст программы
Методика испытаний
Руководство оператора
Заключение
Список литературы
Приложения
РЕФЕРАТ
Пояснительная записка к курсовой работе содержит: 40с.
Цель проекта - обрести и закрепить практические навыки по разработке программных продуктов с использованием современных инструментальных средств программирования и отладки, в частности с использованием среды разработки Visual Studio.Net 2008. Кроме того цель работы включает в себя изучение требований ЕСПД по оформлению программной документации.
В курсовом проекте рассмотрен программный продукт с прилагающийся программной документацией для работ с файлами и текстом (строками).
Программа реализована на языке С#, с использованием программного пакета Microsoft Visual Studio 2008. Она реализует различные операции над строковыми типами данных, а также методы их обработки для получения заданных в задании результатов. Так же реализованы операции работы с файлами.
В пояснительной записке описаны такие разделы программной документации как: техническое задание, руководство оператору, методика испытаний и описание программы в соответствии с существующей системой ГОСТов.
С клавиатуры можно вводить только
цифры,запятые,и только в строке «U» добавлен знак «-» минус. Сохранение рабочих
данных реализовано методами сериализации, а также создан поисковый механизм
строки по номеру.
ВВЕДЕНИЕ
Язык С# создан компанией Microsoft для поддержки среды .NET Framework и опирается на богатое наследие в области программирования. Его главным архитектором был ведущий специалист в этой области - Андерс Хейлсберг. C# - прямой потомок двух самых успешных в мире компьютерных языков: С и С++. От С он унаследовал синтаксис, ключевые слова и операторы. Он позволяет построить и усовершенствовать объектную модель, определённую в С++. Также С# близко связан с языком Java. В состав его элементов включены такие понятия как делегаты (представители), свойства, индексаторы и события. Также добавлен синтаксис, который поддерживает атрибуты; упрощено создание компонентов за счёт исключения проблем связанных с СОМ (Component Object Model). C# предлагает средства динамического обнаружения ошибок, обеспечения безопасности и управляемого выполнения программ, дает программистам доступ к указателям. Таким образом, С# сочетает первозданную мощь С++ с типовой безопасностью Java, которая обеспечивается наличием механизма контроля типов (type checking) и корректным использованием шаблонных классов (template class). Более того, язык С# отличается тем, что компромисс между мощью и надёжностью тщательно сбалансирован и практически прозрачен (не заметен для пользователя или программы).
В настоящее время язык С# считается одним из
мощнейших языков и его усовершенствование не прекращается.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Данная курсовая работа представляет собой программную реализацию для курсового задания по разработке программы, реализующей работу с текстом и сохранением данных в файл.
Программа должна вычислить ток на участке цепи R2-R3 с заданными пользователем данными.
ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ
Задание на выполнение курсового проекта выдано кафедрой «Автоматика и управление в технических системах».
НАЗНАЧЕНИЕ РАЗРАБОТКИ
Данный программный продукт должен обеспечить пользователю удобную работу с данными, сохранение и считывание данных из файла.
ТРЕБОВАНИЯ К ПРОГРАММНОМУ ПРОДУКТУ
Функциональные характеристики
Программа должна осуществлять работу с данными на пользовательском уровне и иметь удобный интерфейс.
Входными данными являются цифровые значения. Результатом обработки данных является вывод цифровых вычислений. На основе введённых записей должен формироваться типизированный файл данных.
Должна быть предусмотрена возможность просмотра существующего файла, а также создание и запись данных в новый файл.
При вводе данных на обработку должны быть предусмотрены варианты работы в некорректных ситуациях, а именно:
Ввод неправильных символов;
Сортировка и сохранение результатов с указанным пользователем расширением;
Возможность просмотра всех входных данных;
Осуществление поиска по номеру сохранённой записи из файла.
Условия эксплуатации
Для нормальной эксплуатации программы необходим оператор со знанием ПК.
Состав и параметры технических средств
Программа рассчитана на использование в среде Windows. Минимальные требования к ПК определяются требованиями операционной системы, обязательно наличие устройства ввода данных (клавиатура), устройство управления (мышь) и устройство отображения информации (монитор). Минимальный объем свободного места на дисковом накопителе - 3мБ.
Информационная и программная совместимость.
Программный продукт должен функционировать в операционной системе Windows XP, и написан на языке С#.
ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ
К разрабатываемому продукту должны прилагаться следующие программные документы:
спецификация;
техническое задание;
описание программы;
текст программы;
руководство оператора;
методика испытаний;
СТАДИИ И ЭТАПЫ РАЗРАБОТКИ
Жизненный цикл программного средства состоит из двух стадий: стадии разработки и стадии эксплуатации. Стадия разработки программного средства включает в себя следующие этапы:
получение исходной информации;
проектирование алгоритмов;
кодирование программы;
тестирование и отладка программы;
оформление программной документации.
ОПИСАНИЕ ПРОГРАММЫ
Данная программа позволяет записать входные данные и полученный результат в типизированный файл. При этом можно как создать новый файл, так и сделать запись в уже существующий. Все записи в файлах нумеруются по порядку. Программой предоставляется возможность поиска сохраненных данных по номеру ключевого поля. Предусмотрена также проверка на корректность вводимых символов: разрешается ввод только латинских букв, запятой и точки, при этом ввод других символов исключён програмно.
Структура данных в файле состоит из номера ключевого поля, входных данных и результата. Файл типизирован, то есть состоит из множества одинаковых по структуре записей.
ОБЩИЕ СВЕДЕНИЯ
Наименование программного продукта:
«Разработка программы реального времени».
Программное обеспечение
Язык программирования
Программа была написана на языке программирования С# в среде Microsoft Visual Studio 2008.
ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ
Программа должна осуществлять работу с данными на пользовательском уровне. Для работы необходимо иметь файл с записями. Запись должна состоять из:
номера ключевого поля файла;
входных данных;
результата.
СВЯЗИ С ДРУГИМИ ПРОГРАММАМИ
Программа полностью автономна, а, следовательно, необходимость в использовании её в комплексе с другими программами отсутствует.
ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА
Функционирование программы целиком обеспечивается стандартной конфигурацией системы персональных ЭВМ с двуядерным процессором 2Ггц. Для эксплуатации программы необходимо запустить исполняемый файл «Dzhafarov.exe». При запуске программа перейдёт в диалоговый режим работы.
ВХОДНЫЕ ДАННЫЕ
Входными данными в программе являются цифровые значения резисторов и напряжения(напряжение можно задать как положительное так и отрицательное)введённые с клавиатуры.
ВЫХОДНЫЕ ДАННЫЕ
Выходными данными является: вычисления тока на
участке цепи R2-R3, определённые по формуле: =
(U/((R1*(R2+R3+R4+R5))+(R6*(R2+R3+R4+R5))+((R2+R3)*(R4+R5))))*(R4+R5) - в виде
цифровых данных.
ОПИСАНИЕ МЕТОДОВ
void button1_Click(object sender, EventArgs e)
Эта процедура, в зависимости от режима работы определяет активность компонента ввода. Также из этой подпрограммы осуществляется вызов процедуры обработки вводимых данных.
private void timer1_Tick (object sender, EventArgs e)
Эта процедура - таймер, который осуществляет контроль интервала времени между вводом символов.
private void Form1_Load(object sender, EventArgs e)
Эта процедура осуществляет вызов диалогового окна About. Также предоставляет информацию о дисковых накопителях.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
Эта процедура активизирует таймер для контроля интервала времени между вводом символов. Также с помощью этой функции происходит контроль правильности ввода символов и ограничение количества ввода символов.
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
Метод показывает время работы программы после закрытия основной формы.
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
Эта процедура закрывает основную форму при нажатии пункта меню Файл «Выход».void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
При выборе пункта меню «О программе» открывается форма приветствия.
private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)
При выборе пункта меню «Сохранить как…» из этой процедуры происходит вызов процедуры sfdSave.FileName, которая позволяет записать имя файла для сохранения.
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
Если выбран пункт меню Файл «Открыть», то происходит считывание данных из выбранного файла.
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
Эта процедура осуществляет запись данных в файл, если имя файла уже было задано, и вызов процедуры сохранитьКакToolStripMenuItem_Click(sender, e), если имя не задано.
private void FMain_FormClosing(object sender, FormClosingEventArgs e)
Процедура проверки сохранения данных программы перед её закрытием.
private void НакопителяхToolStripMenuItem_Click(object sender, EventArgs e)
При нажатии на пункт меню «Накопители» выводится окно с информацией о состоянии дисков.
public bool Write(string text)
Метод записи данных, введенных пользователем, в объект.string Read()
Метод считывания результата. void Work()
Метод, который выполняет основную задачу, поставленную перед программистом. void SetTime()
Метод записи начала работы программы.GetTime()
Метод возвращения времени начала работы программы.void SaveToFile()
Эта процедура производит запись данных в файл.
public void WriteSaveFileName(string N)
Метод записи имени файла в соответствующий номер.
public void ReadFromFile(System.Windows.Forms.DataGridView DGV)
Эта процедура переносит данные из файла в ячейку вывода данных.
public void Find(string N)
Этот метод совершает поиск строки по заданному пользователем номеру ключевого поля.void Generator()
Метод генератора ключевого поля.
ТЕКСТ ПРОГРАММЫ
.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;Dzhafarov
{partial class About : Form
{About()
{();
}void timer1_Tick(object sender, EventArgs e)
{();
}
}
}.csSystem;System.Windows.Forms;System.Drawing;System.IO;Dzhafarov
{partial class Form1 : Form
{object1 MyObject; // Основной объектbool click = false;Form1()
{();
}
// При закрытии программы.void fMain_FormClosed(object sender, FormClosedEventArgs e)
{S;wtime;= System.DateTime.Now - MyObject.GetTime(); // Время работы программы.= "Время работы программы: " + wtime.Hours.ToString().PadLeft(2, '0') + ":" + wtime.Minutes.ToString().PadLeft(2, '0') + ":" + wtime.Seconds.ToString().PadLeft(2, '0') + (char)13;// Вычисление времени работы программы и перевод времени в формат строки..Show(S, "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
}void Form1_Load(object sender, EventArgs e)
A.ShowDialog(); // Отображение формы About
}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{(ofdOpen.ShowDialog() == DialogResult.OK)
{.WriteOpenFileName(ofdOpen.FileName);.WriteSaveFileName(ofdOpen.FileName);.Text = MyObject.ReadFromFile();.Enabled = true;.Enabled = true;
}
}void timer1_Tick(object sender, EventArgs e) // Основной таймер (5 сек)
{.Stop();
}void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)
{(sfdSave.ShowDialog() == DialogResult.OK)
{
{.WriteSaveFileName(sfdSave.FileName);.Generator(); // Определяет кол-во строк в файле..SaveToFile();
}
}
}void выходToolStripMenuItem_Click(object sender, EventArgs e)
{();
}void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{A = new About();.ShowDialog();
}void сведенияОНакопителяхToolStripMenuItem_Click(object sender, EventArgs e)
{[] discs = System.IO.Directory.GetLogicalDrives(); // Получает сведения о накопителях.d = "";(int i = 0; i < discs.Length; i++)
{
{d1 = new DriveInfo(discs[i]);
d += d1.Name + " " + d1.TotalSize.ToString() + " " + d1.TotalFreeSpace.ToString() + (char)13; // Формирование необходимых сведений о конкретном накопителе.
}
{+= "Диск " + i + " не готов!" + (char)13;
}
}.Show(d, "Сведения");
}void Form1_FormClosed(object sender, FormClosedEventArgs e) // При закрытии программы
{S;wtime;= System.DateTime.Now - MyObject.GetTime(); // Время работы программы.= "Время работы программы: " + wtime.Hours.ToString().PadLeft(2, '0') + ":" + wtime.Minutes.ToString().PadLeft(2, '0') + ":" + wtime.Seconds.ToString().PadLeft(2, '0') + (char)13;// Вычисление времени работы программы и перевод времени в формат строки..Show(S, "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
}void button1_Click(object sender, EventArgs e)
{(click == false)
{.Start();.Text = "Сброс";.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;.Enabled = true;= true;
}
{.Stop();.Text = "Ввести";.Visible = false;.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "Ответ:";.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;.Enabled = false;= false;
}
}void timer1_Tick_1(object sender, EventArgs e)
{(textBox1.Text != "" & textBox2.Text != "" & textBox3.Text != "" & textBox4.Text != ""
& textBox5.Text != "" & textBox6.Text != "" & textBox7.Text != "")
{.Stop();
}
{.Visible = true;
}
}void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)045 || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, ",", "-" и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,-}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox4_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox6_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox7_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void textBox8_KeyPress(object sender, KeyPressEventArgs e)
{(Char.IsDigit(e.KeyChar) || e.KeyChar == (char)008 || e.KeyChar == (char)044)// Допускается ввод {0123456789}, "," и клавиши Backspace
{.Visible = false;.Stop(); .Start();
}
{.Show("Допустимые знаки этого поля: \r\n{0123456789,}", "Предупреждение");
e.Handled = true;// Неправильный символ не будет вводиться в TextBox.
}
}void button2_Click(object sender, EventArgs e)
{(textBox1.Text != "" & textBox2.Text != "" & textBox3.Text != "" & textBox4.Text != ""
& textBox5.Text != "" & textBox6.Text != "" & textBox7.Text != "")