Member 12673270 Ответов: 1

Я ищу не конкретные ответы, а скорее какое-то руководство.


Ниже я расскажу, что мне нужно сделать. Я уже создал 3 класса, но это почти все, что я получил. Я действительно не знаю, что делать, я действительно борюсь в своем классе. Любая помощь будет оценена по достоинству.

Установка:
Вы создадите новый проект Visual Studio с именем "FirstnameLastname_CE01", используя шаблон консольного приложения C#.
Классификация:
Пожалуйста, обратитесь к вкладке CE: 01 этой рубрики, чтобы понять процедуры оценки для этого задания.
Результаты:
Вы будете сжимать и загружать файл с именем "FirstnameLastname_CE01.zip" со следующим содержанием со следующими названиями:
Проект-папка, содержащая весь ваш проект и все файлы, необходимые для создания проекта(csproj, файлы .cs, App.config и папка свойств).

Обязательно загрузите правильный проект и все необходимые файлы в первый раз, так как будет разрешена только одна подача. Если будут загружены неправильные файлы, то не будет предоставлено никакого дополнительного времени или внимания.
Инструкции:
Для сегодняшней лаборатории вы будете создавать классы, которые взаимодействуют друг с другом через конструкторы, методы и переменные-члены. Расположение классов описано ниже, а также В приведенной ниже диаграмме UML. Вы будете включать инструкции печати по всему приложению, чтобы документировать то, что происходит при запуске приложения.
Используйте следующие рекомендации для завершения этого приложения:
Занятия
Создать 3 класса
Их можно, но не обязательно, называть ClassA, ClassB и ClassC.
Каждый класс должен иметь 3 примитивные переменные-члена, каждая из которых имеет уникальный тип
(Исх. инт типа bool, string или некоторые другие комбинации).
Каждый класс должен иметь различную комбинацию типов членов от других классов.
Каждый класс должен иметь 2 дополнительные переменные-члена, типы которых являются двумя другими классами.
(Например, ClassA содержит член ClassB и ClassC и т. д.)
Проектировщики
Каждый класс должен иметь конструктор по умолчанию, который просто выводит на консоль: “ ‘ClassName’ default constructor”, чтобы указать, когда это происходит.
Каждый класс должен иметь конструктор, который имеет 3 параметра с типами, соответствующими 3 переменным-членам этого класса.
Внутри конструктора значения переменных-членов должны быть установлены в значения параметров.
Они должны печатать "конструктор параметров’ ClassName '3".
Каждый класс должен иметь 2 дополнительных конструктора.
Каждый из них должен иметь один параметр, который является одним из двух других классов.
(Исх. Класса classa бы тот, который берет в classb и еще один, который принимает в ClassC).
Переменная-член одного и того же типа должна быть установлена в значение параметра для обоих этих конструкторов.
Они должны печатать “ 'ClassName' с параметром: 'ParameterType’".
дополнительный метод
Каждый класс должен содержать метод, параметром которого является один из двух других классов
(Например, ClassA будет ClassB или ClassC).
Затем метод должен создать экземпляр класса, который вы не использовали в качестве параметра
(Экс. Если ClassB является параметром, то создайте экземпляр ClassC).
При создании экземпляра этого класса используйте конструктор, который принимает тот же параметр, что и этот метод
(Экс. Если то был параметр этой функции, а затем использовать конструктор, который classb является параметром).
Новый объект должен храниться в переменной-члене текущего класса.
Метод печати “ ‘имя класса’ метод значение parametertype параметр ”

Что я уже пробовал:

Единственное, что я сделал, - это создал класс, и я не знаю, что делать дальше. Наверное, я просто борюсь с тем, что делать дальше.

BillWoodruff

Почему вы не следовали очень конкретным инструкциям в задании ?

Кстати, это очень "сумасшедшее" задание с точки зрения множества экземпляров каждого из трех классов ... несколько экземпляров класса, передаваемых в качестве параметров и т. д. ... Внутри каждого из трех классов.

Это назначение серьезно нарушает принципы программной инженерии разделения забот и единой ответственности и просто не имеет "никакого здравого смысла"."

1 Ответов

Рейтинг:
7

David_Wimbley

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

Да, это задание глупо и не имеет абсолютно никакой базы в реальном программировании. Единственное,что я вижу в этой передаче, - это перегрузка метода/перегрузка конструктора. Кроме того, он учит вас больше плохим привычкам, чем чему-либо еще.

Я придумал ClassA, ClassB, ClassC как объекты какой-то "вещи" (человек, адрес, транспортное средство), так что параметры имеют какое-то знакомое имя, отличное от "ClassA". Я также использовал отражение, чтобы получить имена классов, потому что это задание глупо и не хотело идти к каждому конструктору и жестко кодировать имена классов.

Видя, что это, вероятно, вводный курс, Я избавлю вас от того, что я сделал бы по-другому, но надеюсь, что вы возьмете этот код, изучите его и посмотрите, сможете ли вы понять, что происходит. Но одно дело, если вы не в состоянии научить себя или научиться самостоятельно постигать новые / сложные концепции...посмотри хорошенько на свою специальность, легче не бывает.

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

static void Main(string[] args)
        {
            Console.WriteLine("Default constructors");
            var classa = new ClassA();
            var classb = new ClassB();
            var classc = new ClassC();

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Pass the class into the constructor");

            var classa2 = new ClassA(classb);
            var classa3 = new ClassA(classc);
            var classb2 = new ClassB(classa);
            var classb3 = new ClassB(classc);
            var classc2 = new ClassC(classa);
            var classc3 = new ClassC(classb);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Pass in individual properties to constructor");

            var classa4 = new ClassA("myname", 99, true);
            var classb4 = new ClassB("100 main street", 1111, true);
            var classc4 = new ClassC("Ford", 2005, true);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Run print methods");
            
            classa.Print(classb);
            classb.Print(classc);
            classc.Print(classa);

            Console.ReadLine();
        }
    }

    public class ClassA
    {
        public ClassA()
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' default constructor", classname);
        }

        public ClassA(string name, int age, bool ismale)
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' three parameter constructor", classname);

            this.Name = name;
            this.Age = age;
            this.IsMale = ismale;
        }

        public ClassA(ClassB address)
        {
            var classname = this.GetType().Name;
            var paramname = address.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Address = address;
        }

        public ClassA(ClassC vehicle)
        {
            var classname = this.GetType().Name;
            var paramname = vehicle.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Vehicle = vehicle;
        }

        public void Print(ClassB classb)
        {
            this.Vehicle = new ClassC(classb);
        }

        public string Name { get; set; }
        public int Age { get; set; }
        public bool IsMale { get; set; }

        public ClassB Address { get; set; }
        public ClassC Vehicle { get; set; }
    }

    public class ClassB
    {
        public ClassB()
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' default constructor", classname);
        }

        public ClassB(string address, int zipcode, bool isinternational)
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' three parameter constructor", classname);

            this.Address = address;
            this.ZipCode = zipcode;
            this.IsInternaltional = isinternational;
        }

        public ClassB(ClassA person)
        {
            var classname = this.GetType().Name;
            var paramname = person.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Person = person;
        }

        public ClassB(ClassC vehicle)
        {
            var classname = this.GetType().Name;
            var paramname = vehicle.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Vehicle = vehicle;
        }

        public void Print(ClassC classc)
        {
            this.Person = new ClassA(classc);
        }

        public string Address { get; set; }
        public int ZipCode { get; set; }
        public bool IsInternaltional { get; set; }

        public ClassA Person { get; set; }
        public ClassC Vehicle { get; set; }
    }

    public class ClassC
    {
        public ClassC()
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' default constructor", classname);
        }

        public ClassC(string vehmake, int vehyear, bool istruck)
        {
            var classname = this.GetType().Name;

            Console.WriteLine("'{0}' three parameter constructor", classname);

            this.VehicleMake = vehmake;
            this.VehicleYear = vehyear;
            this.IsTruck = istruck;
        }

        public ClassC(ClassA person)
        {
            var classname = this.GetType().Name;
            var paramname = person.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Person = person;
        }

        public ClassC(ClassB address)
        {
            var classname = this.GetType().Name;
            var paramname = address.GetType().Name;

            Console.WriteLine("'{0}' with parameter: '{1}'", classname, paramname);

            this.Address = address;
        }

        public void Print(ClassA classa)
        {
            this.Address = new ClassB(classa);
        }

        public string VehicleMake { get; set; }
        public int VehicleYear { get; set; }
        public bool IsTruck { get; set; }

        public ClassA Person { get; set; }
        public ClassB Address { get; set; }
    }