Автор: Пользователь скрыл имя, 18 Февраля 2013 в 23:42, курсовая работа
Пояснительная записка является полным описанием готового программного средства и принципа его работы.
Пояснительная записка содержит все необходимые разделы.
В разделе «Введение» указана оценка современного состояния решаемой проблемы, исходные данные для разработки курсового проекта, перечень решаемых в работе задач.
Конечной целью любого процесса тестирования является обеспечение такого ёмкого понятия как качество, с учётом всех или наиболее критичных для данного конкретного случая составляющих.
Качество можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:
Для тестирования данного программного средства мной было выполнено ряд действий. В таблице 3.1 приведены результаты тестирования программного продукта.
Таблица 3.1 – Результаты тестирования программного продукта
Действие |
Результат |
Запуск программы |
Программа запускается корректно без ошибок, идёт загрузка. |
Выбор уровня сложности |
После нажатия на одну из трех кнопок, появится главная форма с таймером обратного отсчета со значением, в зависимости от выбранного уровня сложности. |
Нажатие на две рядом лежащие одинаковые фишки |
Фишки удалятся. |
Нажатие на две разные фишки |
Фишки не удалятся. |
Вызов функции «Справка» |
Отображается справочная информация по работе с программой. |
В ходе тестирования были обнаружены ошибки в алгоритме программы и ошибки в интерфейсе. Все обнаруженные ошибки были мной устранены, после чего я провел повторное тестирование программы.
3.4 Полное тестирование
Данная программа была протестирована на различных компьютерах, на ОС Windows XP,Windows 7 и Windows 8 с установленным .NET Framework 4.0, различными пользователями. Никаких ошибок и несоответствия к предъявленным требованиям к данному ПО не обнаружено.
В результате чего, можно сделать вывод, что программа «Маджонг» пригодна для использования конечным пользователем.
4 Применение
4.1 Назначение
Логическая игра «Маджонг» предназначена для развлекательного времяпровождения. Также игра позволяет повысить внимательность и увеличить реакцию. Программа подходит для использования в учреждениях дошкольного типа и школах. В игру могут играть люди от 5 лет. Также программу можно использовать в конкурсах на скорость удаления фишек.
4.2 Среда функционирования
Средой функционирования являются операционные системы платформы Windows NT: Windows XP, Windows Vista, Windows 7. Также на компьютере должен быть установлен NET Framework 4.0.
4.3 Инсталляция
Для того, чтобы полноценно пользоваться данным программным продуктом, необходимо скопировать папку с программой на жесткий диск.
Рисунок 4.1 – Папка с программой на жестком диске
Рисунок 4.2 – Содержимое папки с программой
4.4 Сообщения системы
При нажатии на кнопку или «Выход» в любом окне программы выскакивает системное сообщение «Точно выйти?».
При нажатии на кнопку «Да» вы выходите из программы, при нажатии на кнопку «Нет» отменяете это действие.
Рисунок 4.3 – Окно подтверждения выхода из программы
ЗАКЛЮЧЕНИЕ
Мною была разработана логическая игра «Маджонг» в соответствии с предъявленными требованиями, а именно:
При разработке программы мною были использованы знания полученные в ходе теоритических и практических занятий по предмету «Конструирование программ и языки программирования».
ПРИЛОЖЕНИЕ А
(обязательное)
Текст программы
Окно «Заставка»
private void timer1_Tick(object sender, EventArgs e)
{
if (progressBar1.Value != 100)
{
++progressBar1.Value;
}
else
{
timer1.Stop();
this.Close();
}
Окно «Выбор уровня сложности»
private void button1_Click(object sender, EventArgs e)
{
int mtimer = 1;
SetLevel(mtimer);
Close();
}
private void button2_Click(object sender, EventArgs e)
{
int mtimer = 2;
SetLevel(mtimer);
Close();
}
private void button3_Click(object sender, EventArgs e)
{
int mtimer = 3;
SetLevel(mtimer);
Close();
}
Окно «Новая игра»
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 fMainForm = new Form1();
fMainForm.Close();
fMainForm.NewGameClick();
}
Окно «Главная форма»
public partial class Form1 : Form
{
int x, y, x1, y1, x2, y2,sec;
public int mtimer=1;
bool find = false;
string path=@"graph\skins\Классика\";
int[,] cMap = new int[10,10];
Random random = new Random();
PictureBox firstClicked = null;
PictureBox secondClicked = null;
String[,] MassivA = new String[8, 8];
int[,] Map = new int[10, 10];
List<int> xlist = new List<int>();
List<int> ylist = new List<int>();
public WMPLib.WindowsMediaPlayer WMP = new WMPLib.WindowsMediaPlayer();
public Form1()
{
InitializeComponent();
Splash();
SelectLevel();
PlayMusic(@"sound\main.mp3");
GetSettings();
AssignIconsToSquares();
SetMassiv();
SetMap();
TimerDown();
}
private void SetLevel()
{
}
public void PlayMusic(string sound_path)
{
WMP.URL = sound_path;
WMP.settings.volume = 100;
WMP.controls.play();
}
private void SetMassiv()
{
int q = 1;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
MassivA[i, j] = "pictureBox"+q;
q++;
}
}
}
private void SetMap()
{
for (int i = 0; i <10 ; i++)
{
for (int j = 0; j < 10; j++)
{
Map[i, j] = 1;
}
}
}
private void IndexDefinition(string idLabel)
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (MassivA[i, j] == idLabel)
{
x = i+1;
y = j+1;
}
}
}
}
private void AssignIconsToSquares()
{
List<string> icons = new List<string>()
{
"1.png","1.png","2.png","2.
"5.png","5.png","6.png","6.
"1.png","1.png","2.png","2.
"5.png","5.png","6.png","6.
"1.png","1.png","2.png","2.
"5.png","5.png","6.png","6.
"1.png","1.png","2.png","2.
"5.png","5.png","6.png","6.
};
foreach (Control control in tableLayoutPanel1.Controls)
{
PictureBox iconLabel = control as PictureBox;
iconLabel.BorderStyle = BorderStyle.FixedSingle;
iconLabel.BackColor = Color.FromName("Grey");
}
foreach (Control control in tableLayoutPanel1.Controls)
{
PictureBox iconLabel = control as PictureBox;
if (iconLabel != null)
{
int randomNumber = random.Next(icons.Count);
iconLabel.ImageLocation = path + icons[randomNumber];
icons.RemoveAt(randomNumber);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void CheckForWinner()
{
int count = 0;
foreach (Control control in tableLayoutPanel1.Controls)
{
PictureBox iconLabel = control as PictureBox;
if (iconLabel != null)
{
if (iconLabel.BackColor == Color.FromName("white"))
{
count++;
// return;
}
}
}
if (count == 62)
{
PlayMusic(@"sound\win.mp3");
timer2.Stop();
MessageBox.Show("Вы выйграли!!!", "Поздравления");
NewGame();
}
}
private void pictureBox_Click(object sender, EventArgs e)
{
if (timer1.Enabled == true)
return;
PictureBox clickedLabel = sender as PictureBox;
if (clickedLabel != null)
{
if (clickedLabel.BackColor == Color.FromName("White"))
return;
if (firstClicked == null)
{
firstClicked = clickedLabel;
IndexDefinition(firstClicked.
firstClicked.BorderStyle = BorderStyle.Fixed3D;
x1 = x;
y1 = y;
return;
}
secondClicked = clickedLabel;
IndexDefinition(secondClicked.
secondClicked.BorderStyle = BorderStyle.Fixed3D;
x2 = x;
y2 = y;
CheckForWinner();
if (firstClicked.ImageLocation == secondClicked.ImageLocation)
{
find = false;
if (x1+1==x2||x1-1==y2||y1-1==y2|
{
find = true;
}
else
{
FindWave(x1, y1, x2, y2);
}
if (find == true)
{
Map[x1, y1] = 0;
Map[x2, y2] = 0;
firstClicked.ImageLocation = "";
firstClicked.BackColor = Color.FromName("white");
secondClicked.ImageLocation = "";
secondClicked.BackColor = Color.FromName("white");
firstClicked = null;
secondClicked = null;
return;
}
}
timer1.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
firstClicked.BorderStyle = BorderStyle.FixedSingle;
secondClicked.BorderStyle = BorderStyle.FixedSingle;
firstClicked = null;
secondClicked = null;
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void GameOver()
{
PlayMusic(@"sound\gameover.
MessageBox.Show("Вы проиграли!!!", "");
NewGame();
}
private void TimerDown()
{
sec = mtimer *60 ;
timer2.Interval = 1000;
timer2.Enabled = true;
timer2.Start();
}
private bool FindWave(int startX, int startY, int targetX, int targetY)
{
if ((startX + 1 == 0 || startX - 1 == 0 || startY + 1 == 0 || startY - 1 == 0) &&
(targetX + 1 == 0 || targetX - 1 == 0 || targetY + 1 == 0 || targetY - 1 == 0))
{
return find = true;
}
else
{
return find = false;
}