Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 5

Не могу запустить тест. Пишет - недоступен из-за его уровня защиты

26.02.2018, 19:25. Показов 1879. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
public везде стоит

тест:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Cinema;
using System.Linq;
 
namespace UnitTestCinema2
{
 
    [TestClass()]
    public class PlaybillTests
    {
        [TestMethod()]
        public void PlaybillTest()
        {
            Playbill playbill = new Playbill();
 
            Assert.IsNotNull(playbill);
            Assert.IsTrue(playbill.movies.Count() > 0);
        }
 
        [TestMethod()]
        public void SearchMovieSuccessTest() //проверка успешного поиска
        {
            //Arrange (подготовка)
            string name = "Небо";
            DateTime date = new DateTime(2018, 01, 24, 09, 00, 00);
            Playbill playbill = new Playbill();
 
            //Act (выполнение)
            Movie result = playbill.SearchMovie(date, name);
 
            //Assert (проверка)
            Assert.IsNotNull(result); //проверка что результат не null, т.е. результат получен
            Assert.AreEqual(name, result.name); //проверка что имена совпадают
            Assert.AreEqual(date, result.datetime); //проверка что даты совпадают
 
            //!Кстати этот тест выявляет ошибку в проверяемом методе
            //у вас написано if (m.datetime.Date == date && m.name == name)
            //а должно быть if (m.datetime == date && m.name == name)
        }
 
        [TestMethod()]
        public void PrintMoviesTest()
        {
            Assert.Fail();
        }
    }
}

код программы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System;
 
namespace Cinema
{
    class Program
    {
        static void Main(string[] args)
        {
            Playbill playbill = new Playbill();
 
            // 1. Вывод сеансов
            playbill.PrintMovies();
 
            // 2. Ввод пользователем сеанса
            DateTime dt;
            Console.WriteLine("Введите дату:");
            if (!DateTime.TryParse(Console.ReadLine(), out dt))
            {
                Console.WriteLine("Не верный формат даты. Нажмите что-нибудь для выхода...");
                Console.ReadKey(true);
                return;
            }
 
            Console.WriteLine("Введите название фильма:");
            string filmname = Console.ReadLine();
 
            Movie mov;
            if ((mov = playbill.SearchMovie(dt, filmname)) == null)
            {
            }
 
            // 3.1 Вывод свободных мест в кинозале
            mov.PrintFreePlaces();
 
            int answ;
            // 3.2 Выбор места
            Console.WriteLine("Количество билетов: ");
            if (!Int32.TryParse(Console.ReadLine(), out answ))
            {
                Console.WriteLine("Не верный формат данных. Нажмите что-нибудь для выхода...");
                Console.ReadKey(true);
                return;
            }
 
            Console.ReadKey(true);
        }
    }
 
    // стуктруа "Место"
    public struct Place
    {
        public int row;// ряд
        public int place_number;// номер сиденья
        public Place(int r, int p)
        {
            row = r;
            place_number = p;
        }
    }
 
    // класс "Сеанс"
    public class Movie
    {
        public readonly DateTime datetime;// дата сеанса
        public readonly string name;
        public readonly int price;
        public readonly string genre;
        public readonly TimeSpan duration;// продолжительность сеанса
        public Place[] free_places;
        public int free_pl_count;// кол-во свободных мест
 
        public static readonly int fr_pl_MAX_cnt = 100;
        public static readonly int rows_MAX_cnt = 10;
 
        public static Random random = new Random(DateTime.Now.Millisecond);
 
        public Movie(DateTime datetime, string name, int price, string genre, TimeSpan duration)
        {
            this.datetime = datetime;
            this.name = name;
            this.price = price;
            this.genre = genre;
            this.duration = duration;
 
            free_pl_count = random.Next(1, fr_pl_MAX_cnt);
            GenerateFreePlaces();
        }
        public void GenerateFreePlaces()
        {
            // рандомное генерирование свободных мест
            free_places = new Place[random.Next(1, rows_MAX_cnt)];
            for (int i = 0; i < free_places.Length; i++)
                free_places[i] = new Place(random.Next(0, rows_MAX_cnt), random.Next(0, fr_pl_MAX_cnt));
        }
        public bool CheckForPlace(int row, int pnumber)
        {
            foreach (Place p in free_places)
                if (row == p.row && pnumber == p.place_number)
                    return true;
            return false;
    }
        public void PrintFreePlaces()
        {
            Console.WriteLine("Количество свободных мест | Ряд | Места");
            Console.WriteLine(free_pl_count);
            foreach (Place p in free_places)
                Console.WriteLine("\t\t\t     {0}\t  {1}", p.row, p.place_number);
        }
    }
 
    // класс "Киноафиша"
    class Playbill
    {
        public Movie[] movies;
        public Playbill()
        {
            movies = new Movie[3];
            movies[0] = new Movie(new DateTime(2018, 01, 12, 14, 00, 00), "Матрица", 19, "Фантастика", new TimeSpan(2, 0, 0));
            movies[1] = new Movie(new DateTime(2018, 01, 15, 19, 00, 00), "Елеки", 13, "Фантастика", new TimeSpan(1, 0, 0));
            movies[2] = new Movie(new DateTime(2018, 01, 24, 09, 00, 00), "Небо", 11, "Фантастика", new TimeSpan(1, 30, 0));
 
        }
        public Movie SearchMovie(DateTime date, string name)
        {
            // поиск сеанса с заданной датой и названием
            foreach (Movie m in movies)
                if (m.datetime.Date == date && m.name == name)
                    return m;
                else
                    continue;
 
            return null;
        }
        public void PrintMovies()
        {
            Console.WriteLine("  Дата\t  |\tВремя | Название фильма | Стоимость билета |\t Жанр\t   | Время сеанса");
            foreach (Movie m in movies)
                Console.WriteLine("{0}\t{1:d2}:{2:d2}\t{3}\t\t\t{4}р.\t\t{5}\t{6} мин.", m.datetime.Date.ToShortDateString(),
                                       m.datetime.Hour, m.datetime.Minute, m.name, m.price, m.genre, m.duration.TotalMinutes);
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2018, 19:25
Ответы с готовыми решениями:

Ошибка "System.Data.Range" недоступен в силу его уровня защиты
Добрый день! class RangeAndInfo { public WordType Type; public Range R; public List&lt;Info&gt;...

Взлом программы или "'ThePit.World.Cursor' недоступен из-за его уровня защиты"
Решил я сделать хак для игры &quot;Swords Of The Stars The Pit&quot;. В общем все бы было ничего если бы не одно но. При том что в Reflector +...

Элемент недоступен из-за уровня его защиты
Ситуация такая: пишу программу, используя Windows Forms, столкнулась со следующей проблемой: Мне нужно было создать глобальный массив,...

1
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.02.2018, 09:35
C#
1
class Playbill
не везде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2018, 09:35
Помогаю со студенческими работами здесь

Func.blank1 недоступен из-за его уровня защиты
Вопрос. из-за чего ошибка? Пишу на MVS 2010 C# Есть два файла. Библиотека DLL (&quot;func.dll&quot;) и основная программа. Класс blank1. ...

System.Func<T1, T2> недоступен в силу его уровня защиты
есть partial класс в котором объявлен делегат с лямбдой есть пользовательские типы T1 и T2 public partial class MyClass { ...

Ошибка CS0122: ConfigurationElement.this[ConfigurationProperty]" недоступен из-за его уровня защиты
Configuration con = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); MessageBox.Show(con.AppSettings +...

Library.Program недоступен в силу его уровня защиты. Возможна обработка только общих типов
В общем суть такова. Запускаю прогу, ввожу add, добавляю через запятую имя автора, название книги, название издательства, потом нажимаю...

Ошибка "Объект недоступен в силу его уровня защиты"
В общем думаю, проблема видна из скрина


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru