Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание библиотек классов 
:(
    Опции темы
karabickay
Дата 22.1.2014, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 22.1.2014

Репутация: нет
Всего: нет



Подключить к консольному приложению созданную библиотеку классов.
Разместить в консольном приложении код, позволяющий осуществить тестирование класса из созданной библиотеки классов
Как сделать? Код я написала.

using System;
 
class program
{
    static void Main()
    {
        Triangle tr1 = new Triangle(new Point(0, 0), new Point(0, 3), new Point(3, 0)),
            tr2 = new Triangle(new Point(0, 0), new Point(0, 3), new Point(10, 1));
        Console.WriteLine("Треугольник 1: {0}, P = {1}, S = {2}, Прямоугольный = {3}", tr1, tr1.P(), tr1.S(), tr1.IsRightAngled());
        Console.WriteLine("Треугольник 2: {0}, P = {1}, S = {2}, Прямоугольный = {3}", tr2, tr2.P(), tr2.S(), tr2.IsRightAngled());
        switch (tr1.CompareTo(tr2))
        {
            case 1: Console.WriteLine("Треугольник 1 больше"); break;
            case -1: Console.WriteLine("Треугольник 2 больше"); break;
            case 0: Console.WriteLine("Треугольники равны"); break;
        }
        Console.WriteLine("Типы треугольников {0}", tr1.Equals(tr2) ? "совпадают" : "различны");
        Console.Read();
    }
 
    struct Point : IEquatable<Point>
    {
        int x, y;
        public int X { get { return x; } }
        public int Y { get { return y; } }
 
        public Point(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
 
        public bool Equals(Point other)
        {
            return this.x == other.x && this.y == other.y;
        }
 
        public static double Length(Point a, Point b)
        {
            return Math.Sqrt(Math.Pow(b.x - a.x, 2) + Math.Pow(b.y - a.y, 2));
        }
 
        public override string ToString()
        {
            return string.Format("(x:{0}, y:{1})", this.x, this.y);
        }
    }
 
 
    class Triangle : IComparable<Triangle>, IEquatable<Triangle>
    {
        Point A, B, C;
 
        public Triangle(Point a, Point b, Point c)
        {
            if (a.Equals(b) || a.Equals© || b.Equals©)
                throw new ArgumentException("Это не треугольник");
            this.A = a;
            this.B = b;
            this.C = c;
        }
 
        public Triangle(Triangle triangle) : this(triangle.A, triangle.B, triangle.C)
        {
        }
 
        public double S()
        {
            return 0.5 * Math.Abs(((A.X - C.X) * (B.Y - C.Y) - (B.X - C.X) * (A.Y - C.Y)));
        }
 
        public double P()
        {
            return Point.Length(this.A, this.B) + Point.Length(this.A, this.C) + Point.Length(this.B, this.C);
        }
 
        public bool IsRightAngled()
        {
            return (this.B.X - this.A.X) * (this.C.X - this.A.X) + (this.B.Y - this.A.Y) * (this.C.Y - this.A.Y) == 0 ||
                (this.A.X - this.B.X) * (this.C.X - this.B.X) + (this.A.Y - this.B.Y) * (this.C.Y - this.B.Y) == 0 ||
                (this.B.X - this.C.X) * (this.A.X - this.C.X) + (this.B.Y - this.C.Y) * (this.A.Y - this.C.Y) == 0;
        }
 
        public int CompareTo(Triangle other)
        {
            return this.S().CompareTo(other.S());
        }
 
        public bool Equals(Triangle other)
        {
            return this.IsRightAngled() == other.IsRightAngled();
        }
 
        public override string ToString()
        {
            return string.Format("A:{0}, B:{1}, C:{2}", this.A, this.B, this.C);
        }
    }
}
PM MAIL   Вверх
Certain
Дата 22.1.2014, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: 1
Всего: 4



Перечитал раза 3 шапку сообщения и не могу понять в чем вопрос. 
Что именно не получается?
Подключить библиотеку к консольному проекту? 
Выделить классы в отдельную библиотеку?
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
karabickay
Дата 22.1.2014, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 22.1.2014

Репутация: нет
Всего: нет



Разместить в консольном приложении код тестирующий работу библиотеки
PM MAIL   Вверх
dzaraev
Дата 23.1.2014, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



Цитата(Certain @  22.1.2014,  18:23 Найти цитируемый пост)
Перечитал раза 3 шапку сообщения и не могу понять в чем вопрос. 

Студентка хочет, чтобы за неё сделали лабу, что тут непонятного?


karabickay, Создавайте новый проект (консольное приложение), подключайте к ней библиотеку с вашим кодом (который вы выложили в топике) и пишите программу, которая будет тестировать ваш код.
Можете начать с простых unit-тестов, протестировать ваши классы Triangle и Point.
Чтобы научиться составлять тесты - поможет гугл и форум типа такого: http://software-testing.ru/forum/index.php...7-testirovanie/
Сам код писать вы умете. Могу еще посоветовать фреймворки для юнит-тестирования в .NET: это конечно же NUnit или стандартный майкрософтский MSTest.
Хотя скорее всего от вас просто требуется набросать простой тестирующий код безо всяких фреймворков.
Просто определитесь - как должен работать класс Triangle например, и в консольном приложении напишите код, который будет вызывать его методы и проверять - адекватно ли класс реагирует на входные данные (параметры методов) - правильное ли у него после вызова метода состояние, правильный ли (ожидаемый) результат возвращает метод и т.д. и т.п. Грубо говоря это и есть юнит-тест или модульное тестирование.

Это сообщение отредактировал(а) dzaraev - 23.1.2014, 10:19
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.