Студопедия — UML діаграми станів. 13 страница
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

UML діаграми станів. 13 страница






 

Закінчення дод. Б

 

Закінчення табл. Б.3

       
Чи є тексти зрозумілими? Текст оформлено зрозуміло Так
Розмір шрифту досить великий?     Розмір шрифту достатній для читання Так
Колір шрифту підходящий і досить контрастний? Колір підходящий і контрастний Так
Стійкість до помилок
Перевірка на існування системи допомоги користувачу (довідки) Система допомоги відсутня Так

 

Таблиця Б.4

Функціональне тестування

Назва тесту Вхідні параметри Очікуваний результат Резу-льтат
  Навігація Перевірити корект-ність і простоту відкриття існуючих вікон, пунктів меню, тощо. Все відкривається коректно Так
  Обробка помилок Помилки виконання, некоректного вводу Видаються відповідні повідомлення Так
  Перевірка основних функцій системи Перевірка здійснюється згідно вимог замовника або раніше розроблених тест кейсів

 


ДОДАТОК В
Лістинг основних класів програми

Клас TwoPlayer.xaml.cs

 

using Newtonsoft.Json.Linq;

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Net.Http;

using System.Runtime.InteropServices.WindowsRuntime;

using Windows.Foundation;

using Windows.Foundation.Collections;

using Windows.UI.Popups;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Controls.Primitives;

using Windows.UI.Xaml.Data;

using Windows.UI.Xaml.Input;

using Windows.UI.Xaml.Media;

using Windows.UI.Xaml.Navigation;

 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556

 

namespace Quiz

{

/// <summary>

/// An empty page that can be used on its own or navigated to within a Frame.

/// </summary>

public sealed partial class TwoPlayer: Page

{

List<Classes.Items> items;

int randNumb;

int countTrueUnsverP1 = 0;

int countTrueUnsverP2 = 0;

bool P1Unsverd;

bool P2Unsverd;

int touch = 0;

string category;

public TwoPlayer()

{

this.InitializeComponent();

}

 

/// <summary>

/// Invoked when this page is about to be displayed in a Frame.

/// </summary>

/// <param name=«e»>Event data that describes how this page was reached.

/// This parameter is typically used to configure the page.</param>

protected override void OnNavigatedTo(NavigationEventArgs e)

{

category = e.Parameter.ToString();

}

 

private void Gen_Quest()

{

Random rand = new Random();

Продовження дод. В

 

randNumb = rand.Next(0, items.Count);

 

txtQuestionP1.Text = items[randNumb].question;

bttUnsver1P1Text.Text = items[randNumb].unsver1;

bttUnsver2P1Text.Text = items[randNumb].unsver2;

bttUnsver3P1Text.Text = items[randNumb].unsver3;

bttUnsver4P1Text.Text = items[randNumb].unsver4;

 

txtQuestionP2.Text = items[randNumb].question;

bttUnsver1P2Text.Text = items[randNumb].unsver1;

bttUnsver2P2Text.Text = items[randNumb].unsver2;

bttUnsver3P2Text.Text = items[randNumb].unsver3;

bttUnsver4P2Text.Text = items[randNumb].unsver4;

}

 

private void btnUnsverP1(object sender, RoutedEventArgs e)

{

 

}

 

private async void Page_Loaded(object sender, RoutedEventArgs e)

{

using (HttpClient httpClient = new HttpClient())

{

HttpRequestMessage request = new HttpRequestMessage();

httpClient.BaseAddress = new Uri(«https://api.parse.com/1/classes/» + category);

request.Method = new HttpMethod(«GET»);

request.Headers.Add(«X-Parse-Application-Id», «q8r9XYoXbEw1kXsWIXbyCNQm9ylcWfAS0fqlWWNx»);

request.Headers.Add(«X-Parse-REST-API-Key», «2nke5LSbXQmTiA9FaVytlBihjOOz4fPcoxjEHlee»);

 

var response = await httpClient.SendAsync(request);

var text = await response.Content.ReadAsStringAsync();

 

System.Diagnostics.Debug.WriteLine(text);

 

JObject results = JObject.Parse(text);

items = new List<Classes.Items>();

foreach (var result in results[«results»])

{

items.Add(new Classes.Items() { question = (string)result[«Question»], unsver1 = (string)result[«unsver1»], unsver2 = (string)result[«unsver2»], unsver3 = (string)result[«unsver3»], unsver4 = (string)result[«unsver4»], trueUnsver = (string)result[«trueUnsver»] });

//item.Add(new Item() { driveId = (string)result[«parentReference»][«driveId»], id = (string)result[«parentReference»][«id»], path = (string)result[«parentReference»][«path»] });

}

 

Gen_Quest();

}

}

 

private async void NextQuest()

{

touch = 0;

Продовження дод. В

 

if (P1Unsverd == false && P2Unsverd == false)

{

MessageDialog md = new MessageDialog(«Игра окончена! Никто не ответил верно! Правильный ответ: «+ items[randNumb].trueUnsver + Environment.NewLine + «Результаты игры:» + Environment.NewLine + «Игрок 1: «+ countTrueUnsverP1 + Environment.NewLine + «Игрок 2: «+ countTrueUnsverP2);

await md.ShowAsync();

Frame.GoBack();

}

 

P1Unsverd = false;

P2Unsverd = false;

 

bttUnsver1P1.IsEnabled = true;

bttUnsver2P1.IsEnabled = true;

bttUnsver3P1.IsEnabled = true;

bttUnsver4P1.IsEnabled = true;

 

bttUnsver1P2.IsEnabled = true;

bttUnsver2P2.IsEnabled = true;

bttUnsver3P2.IsEnabled = true;

bttUnsver4P2.IsEnabled = true;

 

txtScoreP1.Text = countTrueUnsverP1.ToString();

txtScoreP2.Text = countTrueUnsverP2.ToString();

 

Gen_Quest();

}

//}

 

private void btnUnsverP2Text_Tapped(object sender, TappedRoutedEventArgs e)

{

string unsver = (sender as TextBlock).Text.ToString();

 

if (unsver == items[randNumb].trueUnsver)

{

countTrueUnsverP2++;

P2Unsverd = true;

}

 

bttUnsver1P2.IsEnabled = false;

bttUnsver2P2.IsEnabled = false;

bttUnsver3P2.IsEnabled = false;

bttUnsver4P2.IsEnabled = false;

 

touch++;

 

if (touch == 2)

{

NextQuest();

}

}

 

//}

 

private void btnUnsverP1Text_Tapped(object sender, TappedRoutedEventArgs e)

{

 

Продовження дод. В

 

string unsver = (sender as TextBlock).Text.ToString();

if (unsver == items[randNumb].trueUnsver)

{

countTrueUnsverP1++;

P1Unsverd = true;

}

 

bttUnsver1P1.IsEnabled = false;

bttUnsver2P1.IsEnabled = false;

bttUnsver3P1.IsEnabled = false;

bttUnsver4P1.IsEnabled = false;

 

touch++;

 

if (touch == 2)

{

NextQuest();

}

}

}

}

 

Клас Ragistration.xaml.cs

 

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Runtime.InteropServices.WindowsRuntime;

using System.Xml.Linq;

using Windows.Foundation;

using Windows.Foundation.Collections;

using Windows.Storage;

using Windows.UI.Popups;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Controls.Primitives;

using Windows.UI.Xaml.Data;

using Windows.UI.Xaml.Input;

using Windows.UI.Xaml.Media;

using Windows.UI.Xaml.Navigation;

 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556

 

namespace Quiz

{

/// <summary>

/// An empty page that can be used on its own or navigated to within a Frame.

/// </summary>

public sealed partial class Registration: Page

{

public Registration()

{

this.InitializeComponent();

}

 

/// <summary>

Продовження дод. В

 

/// Invoked when this page is about to be displayed in a Frame.

/// </summary>

/// <param name=«e»>Event data that describes how this page was reached.

/// This parameter is typically used to configure the page.</param>

protected override void OnNavigatedTo(NavigationEventArgs e)

{

}

 

private async void btnRegist_Click(object sender, RoutedEventArgs e)

{

Classes.User[] com;

 

Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

Windows.Storage.StorageFile sampleFile = await storageFolder.GetFileAsync(«Users.xml»);

string users_text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

 

XDocument xDoc = XDocument.Parse(users_text);

 

 

com = xDoc.Root.Elements(«user»).Select(p =>

{

return new Classes.User()

{

login = p.Element(«login»).Value,

pass = p.Element(«pass»).Value

};

}).ToArray();

 

foreach (var item in com)

{

if (item.login == txtLogin.Text && item.pass ==txtPass.Password)

{

MessageDialog md = new MessageDialog(«Пользователья с таким именем уже существует!»);

await md.ShowAsync();

}

return;

}

 

string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

 

 

string newText = text.Replace(«</users>«, «\n<user>«

+ «\n<login>«

+ txtLogin.Text

+ «</login>«

+ «\n<pass>«

+ txtPass.Password

+ «</pass>«

+ «\n</user>«

+ «\n</users>«);

StorageFile sampleFile2 = await storageFolder.CreateFileAsync(«Users.xml», CreationCollisionOption.OpenIfExists);

await Windows.Storage.FileIO.WriteTextAsync(sampleFile2, newText);

 

System.Diagnostics.Debug.WriteLine(newText);

Продовження дод. В

 

MessageDialog md1 = new MessageDialog(«Пользователь успешно добавлен!»);

await md1.ShowAsync();

Frame.GoBack();

}

private void btnBack_Click(object sender, RoutedEventArgs e)

{

Frame.GoBack();

}

}

}

 

Клас Records.xaml.cs

 

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Runtime.InteropServices.WindowsRuntime;

using System.Xml.Linq;

using Windows.Foundation;

using Windows.Foundation.Collections;

using Windows.Storage;

using Windows.UI.Popups;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Controls.Primitives;

using Windows.UI.Xaml.Data;

using Windows.UI.Xaml.Input;

using Windows.UI.Xaml.Media;

using Windows.UI.Xaml.Navigation;

 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556

 

namespace Quiz

{

/// <summary>

/// An empty page that can be used on its own or navigated to within a Frame.

/// </summary>

public sealed partial class Registration: Page

{

public Registration()

{

this.InitializeComponent();

}

/// <summary>

/// Invoked when this page is about to be displayed in a Frame.

/// </summary>

/// <param name=«e»>Event data that describes how this page was reached.

/// This parameter is typically used to configure the page.</param>

protected override void OnNavigatedTo(NavigationEventArgs e)

{

}

 

private async void btnRegist_Click(object sender, RoutedEventArgs e)

{

Classes.User[] com;

 

Продовження дод. В

 

Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

Windows.Storage.StorageFile sampleFile = await storageFolder.GetFileAsync(«Users.xml»);

string users_text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

 

XDocument xDoc = XDocument.Parse(users_text);

 

com = xDoc.Root.Elements(«user»).Select(p =>

{

return new Classes.User()

{

login = p.Element(«login»).Value,

pass = p.Element(«pass»).Value

};

}).ToArray();

 

foreach (var item in com)

{

if (item.login == txtLogin.Text && item.pass ==txtPass.Password)

{

MessageDialog md = new MessageDialog(«Пользователья с таким именем уже существует!»);

await md.ShowAsync();

}

return;

}

 

string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

string newText = text.Replace(«</users>«, «\n<user>«

+ «\n<login>«

+ txtLogin.Text

+ «</login>«

+ «\n<pass>«

+ txtPass.Password

+ «</pass>«

+ «\n</user>«

+ «\n</users>«);

 

 

StorageFile sampleFile2 = await storageFolder.CreateFileAsync(«Users.xml», CreationCollisionOption.OpenIfExists);

await Windows.Storage.FileIO.WriteTextAsync(sampleFile2, newText);

 

System.Diagnostics.Debug.WriteLine(newText);

 

MessageDialog md1 = new MessageDialog(«Пользователь успешно добавлен!»);

await md1.ShowAsync();

Frame.GoBack();

}

 

private void btnBack_Click(object sender, RoutedEventArgs e)

{

Frame.GoBack();

}

}

}

 

Продовження дод. В

 

Клас OnePlayer2.xaml.cs

 

using Newtonsoft.Json.Linq;

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Net.Http;

using System.Runtime.InteropServices.WindowsRuntime;

using Windows.Foundation;

using Windows.Foundation.Collections;

using Windows.Storage;

using Windows.UI.Popups;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Controls.Primitives;

using Windows.UI.Xaml.Data;

using Windows.UI.Xaml.Input;

using Windows.UI.Xaml.Media;

using Windows.UI.Xaml.Navigation;

 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556

 

namespace Quiz

{

/// <summary>

/// An empty page that can be used on its own or navigated to within a Frame.

/// </summary>

public sealed partial class OnePlayer2: Page

{

List<Classes.Items> items;

int randNumb;

int countTrueUnsver = 0;

string category;

 

public OnePlayer2()

{

this.InitializeComponent();

}

 

/// <summary>

/// Invoked when this page is about to be displayed in a Frame.

/// </summary>

/// <param name=«e»>Event data that describes how this page was reached.

/// This parameter is typically used to configure the page.</param>

protected override void OnNavigatedTo(NavigationEventArgs e)

{

category = e.Parameter.ToString();

 

}

 

private void Gen_Quest()

{

Random rand = new Random();

randNumb = rand.Next(0, items.Count);

txtQuestion.Text = items[randNumb].question;

}

Продовження дод. В

 

private async void Page_Loaded(object sender, RoutedEventArgs e)

{

using (HttpClient httpClient = new HttpClient())

{

HttpRequestMessage request = new HttpRequestMessage();

httpClient.BaseAddress = new Uri(«https://api.parse.com/1/classes/» + category);

request.Method = new HttpMethod(«GET»);

request.Headers.Add(«X-Parse-Application-Id», «q8r9XYoXbEw1kXsWIXbyCNQm9ylcWfAS0fqlWWNx»);

request.Headers.Add(«X-Parse-REST-API-Key», «2nke5LSbXQmTiA9FaVytlBihjOOz4fPcoxjEHlee»);

 

var response = await httpClient.SendAsync(request);

var text = await response.Content.ReadAsStringAsync();

 

System.Diagnostics.Debug.WriteLine(text);

 

JObject results = JObject.Parse(text);

items = new List<Classes.Items>();

foreach (var result in results[«results»])

{

items.Add(new Classes.Items() { question = (string)result[«Question»], trueUnsver = (string)result[«trueUnsver»] });

}

 

Gen_Quest();

}

}

 

private async void Button_Click(object sender, RoutedEventArgs e)

{

if (string.Equals(txtBox.Text, items[randNumb].trueUnsver, StringComparison.CurrentCultureIgnoreCase))

{

MessageDialog md1 = new MessageDialog(«Это был правильный ответ!»);

await md1.ShowAsync();

txtBox.Text = ««;

countTrueUnsver++;

txtScore.Text = countTrueUnsver.ToString();

Gen_Quest();

}

else

{

MessageDialog md1 = new MessageDialog(«Вы отетили не верно! Правильный ответ: «+ items[randNumb].trueUnsver);

await md1.ShowAsync();

 

MessageDialog md = new MessageDialog(«Игра окночена! Сохранить результат в рекордах?»);

UICommand cancelBtn = new UICommand(«Нет»);

cancelBtn.Invoked = cancelBtn_CLick;

UICommand yesBtn = new UICommand(«Да»);

yesBtn.Invoked = yesBtn_CLick;

 

md.Commands.Add(cancelBtn);

md.Commands.Add(yesBtn);

 

Продовження дод. В

 

await md.ShowAsync();

}

}

 

private async void yesBtn_CLick(IUICommand command)

{

HttpClient httpClient = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage();

httpClient.BaseAddress = new Uri(«https://api.parse.com/1/classes/Record»);

httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(«application/json»));

 

string data = «{\»Name\»:\»«+ ApplicationData.Current.LocalSettings.Values[«UserName»].ToString() + «\»,\»Score\»:» + countTrueUnsver + «,\»Mode\»:\»MyUnsver\»}»;

 

request.Headers.Add(«X-Parse-Application-Id», «q8r9XYoXbEw1kXsWIXbyCNQm9ylcWfAS0fqlWWNx»);

request.Headers.Add(«X-Parse-REST-API-Key», «2nke5LSbXQmTiA9FaVytlBihjOOz4fPcoxjEHlee»);

 

request.Method = new HttpMethod(«POST»);

// var response = await httpClient.PostAsync(request, new StringContent(data, System.Text.Encoding.UTF8, «application/json»));

request.Content = new StringContent(data, System.Text.Encoding.UTF8, «application/json»);

await httpClient.SendAsync(request);

//Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

//Windows.Storage.StorageFile sampleFile = await storageFolder.GetFileAsync(«Records.xml»);

//string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

 

 

//string newText = text.Replace(«</records>«, «\n<record>«

// + «\n<name>«

// + ApplicationData.Current.LocalSettings.Values[«UserName»].ToString()

// + «</name>«

// + «\n<score>«

// + countTrueUnsver

// + «</score>«

// + «\n</record>«

// + «\n</records>«);

 

 

//StorageFile sampleFile2 = await storageFolder.CreateFileAsync(«Records.xml», CreationCollisionOption.OpenIfExists);

//await Windows.Storage.FileIO.WriteTextAsync(sampleFile2, newText);

 

//System.Diagnostics.Debug.WriteLine(newText);

 

MessageDialog md = new MessageDialog(«Рекорд успешно сохранен!»);

await md.ShowAsync();

Frame.GoBack();

}

 

private void cancelBtn_CLick(IUICommand command)

{

Продовження дод. В







Дата добавления: 0000-00-00; просмотров: 395. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия