Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 6 Никитина Дарья ПИН 31Д

.docx
Скачиваний:
10
Добавлен:
16.07.2021
Размер:
1.26 Mб
Скачать

Лабораторная работа 6. Касса в магазине

Конструирование программного обеспечения

дарья Никитина пин-31Д

Разработать программу в соответствии со своим вариантом и подготовить к ней набор модульных тестов. Провести Unit-тестирование и анализ покрытия кода в модульных тестах.

Модульное тестирование:

Авторизация

Прием поставки

До поставки сток:

Приме поставки:

После приема поставки:

Информация об остатках на складе

Возврат товара

Сток до возврата:

Возврат:

Сток после возврата:

Продажа товара

Сток до продажи:

Продажа:

Сток после продажи:

Unit-тестирование классов:

Autorization

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace Project4

{

class Autorization

{

public static void Main()

{

string[,] E = new string[,]

{

{"divano29", "123" },

{"admin", "456" }

};

while (true)

{

Console.WriteLine("Введите логин сотрудника:");

string l = Console.ReadLine();

bool fl = false;

string pass="";

for (int i=0; i<2; i++)

{

if (E[i,0] == l)

{

pass = E[i,1];

fl = true;

}

}

if (!fl)

{

Console.WriteLine("Сотрудника с таким логином не существует");

}

else

{

Console.WriteLine("Введите пароль сотрудника:");

string l2 = Console.ReadLine();

if (l2 == pass)

break;

else

{

Console.WriteLine("Пароль не верен");

break;

}

}

}

Console.ReadLine();

}

}

}

Работает корректно

Delivery

Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.

Employee

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace CashDesk

{

public class Employee

{

protected string _login = "ivaniv";

public virtual string Login

{

get

{

return _login;

}

set

{

_login = value;

}

}

protected string _password = "ivaniv123";

public virtual string Password

{

get

{

return _password;

}

set

{

_password = value;

}

}

public virtual string GenerateNewPassword()

{

int num = 8;

char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();

Random rand = new Random();

_password = "";

for (int i = 1; i <= num; i++)

{

int letter_num = rand.Next(0, letters.Length - 1);

_password += letters[letter_num];

}

return _password;

throw new System.NotImplementedException();

}

}

}

Menu

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

NewCheck

Аналогично с Delivery: Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.

Product

Данный класс содержит только атрибуты, поэтому тестирование не имеет смысла.

Return

Аналогично с Delivery и NewCheck: Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.

Search

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace Project4

{

class Search

{

public static void Main()

{

int[,] S = new int[,]

{

{1, 12 },

{2, 21 }

};

Console.WriteLine("Для получения информации о количестве товара на складе введите его артикул. Для выхода - esc");

string line = Console.ReadLine();

int st = 0;

bool f = false;

if (line != "esc")

{

for(int i=0; i<2; i++)

{

if (S[i,0] == Convert.ToInt32(line))

{

st = S[i,1];

f = true;

}

}

if (f)

{

Console.WriteLine("На складе есть:");

Console.WriteLine(st);

}

else

Console.WriteLine("Товара с таким артикулом нет на складе");

}

Console.ReadLine();

}

}

}

Работает корректно.

Stock

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace Project4

{

class Search

{

public static void Main()

{

int[,] S = new int[,]

{

{1, 12 },

{2, 21 }

};

string Type = Console.ReadLine();

int Art = Convert.ToInt32(Console.ReadLine());

int Value = Convert.ToInt32(Console.ReadLine());

if (Type == "true")

{

bool flag = false;

for(int i=0; i<2; i++)

{

if (S[i,0] == Art)

{

S[i,1] += Value;

flag = true;

}

}

if (flag == false)

{

S[2,1] = Art;

S[2,2] = Value;

}

}

else

{

bool flag = false;

for (int i = 0; i < 2; i++)

{

if (S[i, 0] == Art)

{

S[i, 1] -= Value;

flag = true;

}

}

if (flag == false)

{

Console.WriteLine("Товара с таким артикулом нет на складе");

}

}

Console.WriteLine(Convert.ToString(S[0,0]) + " " + Convert.ToString(S[0,1]) + " " + Convert.ToString(S[1,0]) + " " + Convert.ToString(S[1,1]));

Console.ReadLine();

}

}

}

Работает корректно