![]()
Заглавная страница
Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Назначение руководства программиста ⇐ ПредыдущаяСтр 2 из 2 Руководство программиста относится к эксплуатационно-технической документации и требуется в тех случаях, когда система тем или иным образом предоставляет возможность написания, редактирования или использования программного кода. Примерами могут служить: – библиотека функций; – платформа или среда для разработки ПО; – ПО с открытым кодом. Документ должен предоставлять всю необходимую информацию для того, чтобы разработчик мог воспользоваться возможностями системы. Для решения этой задачи содержание документа может включать в себя: – назначение, структуру входных и выходных данных программных функций; – возможности по созданию программного кода, особенности его интерпретации и компиляции; – синтаксические особенности используемого языка программирования; – возможные правила и ограничения при работе с программным кодом; – различные инструкции по работе с программой. Список возможных тем этим не ограничивается, все зависит от особенностей конкретной системы. Надо сказать, что руководство программиста бывает очень полезно и для разработчиков системы, являясь справочником по текущей реализации логики работы ПО. Состав типового руководства программиста В соответствии с требованиями ГОСТ руководство программиста должно содержать следующие разделы: – Назначение и условия применения программы, где указывают область применения ПО и технические требования, необходимые для его работы. – Характеристика программы, где описывают режим работы программы, показатели скорости ее работы и другие важные для использования характеристики. – Обращение к программе, где указывают способы и параметры запуска программы; – Входные и выходные данные, где описывают формат, способ организации и другие требования к входным и выходным данным; – Сообщения, где приводят тексты сообщений, выдаваемых программой в различных ситуациях и действия, которые необходимо при этом предпринять. Различные примеры, иллюстрации и таблицы целесообразно приводить в приложениях к документу. Стандарты для руководства программиста ГОСТы регламентируют и этот документ, в данном случае это ГОСТ 19.504. (Приложение 1) В соответствии с ним определяется структура и содержание Руководства программиста. Для разработки приложения я использовал Microsoft Visual Studio. Для начала разработки нажимаем Файл --- Создать --- Создать проект --- Приложение WPF. Откроется пустая форма. На форме я разместил фон (картинку для фона я предварительно загрузил в ресурсы будущей программы), компоненты Label (свойство content Приветственное сообщение), TextBox (сюда будет вводиться имя тестируемого), кнопки Button для вызова справки и начала теста. Группирую все компоненты формы в Canvas. По нажатию на кнопку «Справка» - вызывается форма справки, на которой расположен TextBox со справкой по использованию программы и кнопка возврата к стартовой форме.
private void spravkaButton_Click(object sender, RoutedEventArgs e) { Hello.Visibility = Visibility.Hidden;//Скрыть элементы стартовой формы Spravka.Visibility = Visibility.Visible;//Показать окно справки }
private void closeSpravkaButton_Click(object sender, RoutedEventArgs e) { Hello.Visibility = Visibility.Visible;//показать окно стартовой формы Spravka.Visibility = Visibility.Hidden;//скрыть элементы формы справка }
При нажатии на кнопку «Начать тест», при условии, что заполнено поле ввода имени, открывается окно тестирования, на котором расположен TextBox, куда выводятся вопросы, ListBox, куда выводятся варианты ответов, и кнопки «Следующий вопрос» и «Предыдущий вопрос». Если поле ввода имени не заполнено, то выдаётся сообщение, о том, что необходимые поля не заполнены.
private void Button_Click(object sender, RoutedEventArgs e)
{ subjectName = User.Text;
if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath)) // проверяем заполнено ли поле { Start.Visibility = Visibility.Hidden; Test.Visibility = Visibility.Visible; xmlLoad(); //подгружаем файл с вопросами step = 0; } else { MessageBox.Show("Не заполнены необходимые поля");//вывод сообщения об ошибке } }
void xmlLoad() { mainXml = XDocument.Load(testFilePath); var qstns = mainXml.Root.Element("questions").Elements(); countSteps = qstns.Count(); foreach (var question in qstns) { questionsList.Add(question.Element("text").Value); answers.Add(question.Element("answers")); } } void loadStep(int _locStep, int beforeStep) { foreach (var curEl in mainXml.Root.Element("questions").Elements()) { Vopros.Text = questionsList[_locStep]; Otvet.Items.Clear(); var currentAnswers = answers[_locStep]; foreach (var answer in currentAnswers.Elements()) { Otvet.Items.Add(answer.Value); } } }
По окончании тестирования откроется форма результатов тестирования, на которой расположен TextBox с результатом тестирования, и кнопки «Начать заново» и «Выход». if (_step == countSteps) { Next.Content = "Начать заново"; Prev.Content = "Выход"; string sum = score.Sum().ToString(); string numeric = GetDeclension(int.Parse(sum), "правильный ответ", "правильных ответа", "правильных ответов"); string message = "Уважаемый(ая) " + subjectName + ". Благодарим Вас за прохождение теста. Ваш результат " + sum + " " + numeric + " из " + countSteps; Vopros.Text = message; Otvet.Visibility = Visibility.Hidden; } else { Next.Content = "Далее"; loadStep(_step, beforeStep); } } } string testFilePath = "Resources/testTest.xml";
Полный код программы с комментариями находится в Приложении 2 ЗАКЛЮЧЕНИЕ
Во время прохождения практики я расширил свои навыки в среде разработки языка программирования C#. Все цели практики были достигнуты: ¾ расширение, углубление и систематизация знаний, полученных в процессе теоретического обучения; ¾ закрепление практических навыков по разработке и модификации информационных систем; ¾ формирование профессиональных компетенций. Выполнил все задачи практики, а именно: ¾ Ознакомился с условиями работы предприятии и со своим рабочим местом, а именно с правилами внутреннего распорядка, требованиями по безопасности, физиолого-гигиеническими основами трудового процесса и требованиями санитарии; ¾ изучил нормативные и методические материалы, фундаментальной и периодической литературы в соответствии с индивидуальным заданием; ¾ использовал информационно-коммуникационные технологии; ¾ выбрал средство разработки программных продуктов; ¾ выполнил индивидуального задания (разработал тестирующую программу); ¾ оформил отчет по практике. СПИСОК ИСТОЧНИКОВ
1. Джон Скит. C# для профессионалов: тонкости программирования, 3-е издание, новый перевод = C# in Depth, 3rd ed.. — М.: «Вильямс», 2014. — 608 с. 2. Кристиан Нейгел и др. C# 5.0 и платформа .NET 4.5 для профессионалов = Professional C# 5.0 and .NET 4.5. — М.: «Диалектика», 2013. — 1440 с. 3. Джозеф Албахари, Бен Албахари. C# 6.0. Справочник. Полное описание языка = C# 5.0 in a Nutshell: The Definitive Reference. — М.: «Вильямс», 2015. — 1008 с. 4. https://habrahabr.ru/ 5. http://www.cyberforum.ru/
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ 1 Г О С У Д А Р С Т В Е Н Н Ы Й С Т А Н Д А Р Т С О Ю З А С С Р
Постановлением Государственного комитета стандартов Совета Министров СССР от 12 января 1979 г. ¹ 74 срок введения установлен С 01.01. 1980 г. Настоящий стандарт устанавливает требования к содержанию и оформлению программного документа «Руководство программиста», определённого ГОСТ 19.101-77. Стандарт полностью соответствует СТ СЭВ 2095-80. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Структуру и оформление документа устанавливают в соответствии с ГОСТ 19.105-78. Составление информационной части (аннотации и содержания) является обязательным. 1.2. Руководство программиста должно содержать следующие разделы: · назначение и условия применения программ; · характеристика программы; · обращение к программе; · входные и выходные данные; · сообщения. В зависимости от особенностей документы допускается объединять отдельные разделы или вводить новые. СОДЕРЖАНИЕ РАЗДЕЛОВ 2.1. В разделе «Назначение и условия применения программ» должны быть указаны назначение и функции, выполняемые программой, условия, необходимые для выполнения программы (объем оперативной памяти, требования к составу и параметрам
периферийных устройств, требования к программного обеспечению и т.п.). 2.2. В разделе «Характеристика программы» должно быть приведено описание основных характеристик и особенностей программы (временные характеристики, режим работы, средства контроля правильности выполнения и самовосстанавливаемости программы и т.п.). 2.3. В разделе «Обращение к программе» должно быть приведено описание процедур вызова программы (способы передачи управления и параметров данных и др.). 2.4. В разделе «Входные и выходные данные» должно быть приведено описание организации используемой входной и выходной информации и, при необходимости, ее кодирования. 2.5. В разделе «Сообщения» должны быть указаны тексты сообщений, выдаваемых программисту или оператору в ходе выполнения программы, описание их содержания и действий, которые необходимо предпринять по этим сообщениям. 2.6. В приложении к руководству программиста могут быть приведены дополнительные материалы (примеры, иллюстрации, таблицы, графики и т.п.).
*Переиздание (Ноябрь 1987 г.) с Изменением № 1, утвержденным в сентябре 1981 г (ИУС 11-81)
ПРИЛОЖЕНИЕ 2
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Xml; using System.Xml.Linq;
namespace Самотестер { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary> public partial class MainWindow : Window { string subjectName = "";//Переменная имени тестируемого private int _step;// Локальная переменная шага тестирования int countSteps;// Количество вопросов в тесте (получается динамически из выбранного файла тестирования) XDocument mainXml = new XDocument(); // Инициализируем объект XML документа, для считывания файла теста List<string> questionsList = new List<string>();// Список вопросов, наполняется из файла тестирования List<XElement> answers = new List<XElement>();// Список ответов List<int> score = new List<int>();// Кол-во набранных очков
//string testFilePath = ""; // Attributes int step // Глобальная переменная шага { get { return _step;// Получаем значение локальной переменной шаг }
set { var beforeStep = _step; // Устанавливаем предыдущий шаг _step = value;// Устанавливаем текущий шаг if (_step == countSteps + 1)// Проверка, равен ли текущий шаг общему кол-ву шагов, действие по кнопке начать заново { score.Clear();// Очищаем набранные очки Otvet.Visibility = Visibility.Visible;// Показываем ListBox в который мы отображаем ответы текущего вопроса _step = 0;//Снова переходим на нулевой шаг } if (_step == 0)// Проверяем, нулевой ли это у нас шаг {
Prev.Content = "Выход";// Назначаем кнопке "Предыдущий вопрос" значение "Выход" } else if (_step < 0)// Проверяем шаг меньше ли нуля { Close();//Закрываем программу } else { Prev.Content = "Назад";// Назначение кнопке "Предыдущий вопрос", значения Назад "Предыдущий вопрос" }
if (_step > 0)// Если шаг больше нулевого { var _answers = answers[_step - 1].Elements().ToList();// Записываем все варианты ответов на текущий вопрос в переменную var selectedIndex = Otvet.SelectedIndex;// Смотрим какой вариант ответа был выбран в прошлом шаге var index = beforeStep; var val = (selectedIndex != -1) ? (_answers[selectedIndex].Attribute("true-answer") != null && _answers[selectedIndex].Attribute("true-answer").Value == "true") ? 1 : 0 : 0;// Проверяем был ли ответ правильным if (score.Contains(_step))// Смотрим отвечали ли мы на вопрос ранее { score[_step] = val;// Устанавливаем для предыдущего вопроса ответили мы правильно } else { score.Add(val);// Устанавливаем для предыдущего вопроса ответили мы правильно } } /*Выводим если ответили на последний вопрос результаты тестирования*/ if (_step == countSteps) { Next.Content = "Начать заново"; Prev.Content = "Выход"; string sum = score.Sum().ToString(); string numeric = GetDeclension(int.Parse(sum), "правильный ответ", "правильных ответа", "правильных ответов"); string message = "Уважаемый(ая) " + subjectName + ". Благодарим Вас за прохождение теста. Ваш результат " + sum + " " + numeric + " из " + countSteps; Vopros.Text = message; Otvet.Visibility = Visibility.Hidden; } else { Next.Content = "Далее"; loadStep(_step, beforeStep); } } } string testFilePath = "Resources/testTest.xml"; public MainWindow() { InitializeComponent(); Test.Visibility = Visibility.Hidden; }
void loadStep(int _locStep, int beforeStep) { foreach (var curEl in mainXml.Root.Element("questions").Elements()) { Vopros.Text = questionsList[_locStep]; Otvet.Items.Clear(); var currentAnswers = answers[_locStep]; foreach (var answer in currentAnswers.Elements()) { Otvet.Items.Add(answer.Value); } } } public static string GetDeclension(int number, string nominativ, string genetiv, string plural) { number = number % 100; if (number >= 11 && number <= 19) { return plural; }
var i = number % 10; switch (i) { case 1: return nominativ; case 2: case 3: case 4: return genetiv; default: return plural; }
}
private void prevButton_Click(object sender, RoutedEventArgs e) { if (Prev.Content.ToString().Trim() == "Выход") { Close(); return; } step--; }
private void nextButton_Click(object sender, RoutedEventArgs e) { step++; } void xmlLoad() { mainXml = XDocument.Load(testFilePath); var qstns = mainXml.Root.Element("questions").Elements(); countSteps = qstns.Count(); foreach (var question in qstns) { questionsList.Add(question.Element("text").Value); answers.Add(question.Element("answers")); } }
private void Button_Click(object sender, RoutedEventArgs e)
{ subjectName = User.Text;
if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath)) { Start.Visibility = Visibility.Hidden; Test.Visibility = Visibility.Visible; xmlLoad(); step = 0; } else { MessageBox.Show("Не заполнены необходимые поля"); }
}
private void spravkaButton_Click(object sender, RoutedEventArgs e) { Hello.Visibility = Visibility.Hidden; Spravka.Visibility = Visibility.Visible; }
private void closeSpravkaButton_Click(object sender, RoutedEventArgs e) { Hello.Visibility = Visibility.Visible; Spravka.Visibility = Visibility.Hidden; } } }
|
||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 771; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.213.63.130 (0.004 с.) |