Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 920; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.20.56 (0.552 с.) |