Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/41: Рейтинг темы: голосов - 41, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 11

Создать класс Box (книгу)

19.03.2013, 20:42. Показов 7639. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Пожалуйста, помогите, учительница сказала выполнить задание как можно более простым путём, а я вообще не могу понять, как надо. Даже сложным. Задание:
Создать класс Box (книгу), включает в себя :
-поле названия книги;
-поле название издательства;
-поле количество страниц;
-поле автор книги;
-поле год выпуска;
- конструктор без параметров и несколько конструкторов с параметрами в зависимости от входных данных конструктора.
- методы
инициализации экземпляра класса;
метод отображения содержимого класса на консоли программы.

В основной программе (функция Main()) организовать инициализацию нескольких экземпляров класса Box с использованием различных конструкторов класса.

Рекомендации.
При создании поля автор книги желательно использовать рассмотренный класс Persona;
Типы остальных полей должны соответствовать смысловому назначению соответствующего поля.

Вот примеры кода с урока:

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
public class Persona
    {
        private string name;
        string fam;
        string otch;
 
        public string Name
        {
            get { return string.IsNullOrEmpty(name) ? "..." : name; }
            set { name = value; }
        }
        public string Fam
        {
            get { return string.IsNullOrEmpty(fam) ? "..." : fam; }
            set { name = value; }
        }
        public string Otch
        {
            get { return string.IsNullOrEmpty(otch) ? "..." : otch; }
            set { name = value; }
        }
 
        public Persona() { }
        public Persona(string n) { name = n; }
        public Persona(string n, string f) : this(n) { fam = f; }
        public Persona(string f, string n, string ot) : this(n, f) { otch = ot; }
 
        public void Show()
        {
            Console.WriteLine("{0} {1} {2} ", Fam, Name, Otch);
 
        }
        public int Show(string s)
        {
            Console.WriteLine("{0} {1} {2} ", Fam, Name, Otch);
            return 0;
        }
        public void Show(int x)
        {
          
 
        }
        public override string ToString()
        {
 
            return base.ToString();
        }
    }
 
class Program
    {
        static void Main(string[] args)
        {
            Persona per = new Persona();
            per.Show();
            Persona per1 = new Persona("Матвей");
            per1.Show();
            Persona per2 = new Persona("Сидоров", "Матвей");
            per2.Show();
            Persona per3 = new Persona("Сидоров", "Матвей", "Игоревич");
            per3.Show();
            per3.Show(1);
            Console.ReadKey();
        }
    }
ОГРОМНОЕ СПАСИБО!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.03.2013, 20:42
Ответы с готовыми решениями:

Создать класс box, конструктору которого передаются три значения double, представляющие собой длины сторон параллелепипеда
Создать класс box, конструктору которого передаются три значения double, пресдтавляющие собой длины сторон параллелепипеда. Класс box...

Создать класс колесо, имеющее радиус. Определить конструкторы. Создать класс машин, содержащий класс колесо
Создать класс колесо, имеющее радиус. Определить конструкторы. Создать класс машин, содержащий класс колесо. Дополнительно есть марка,...

Создать абстрактный класс «Товар», на его основе создать класс «Автомобиль»
Вечер добрый, а может и не добрый. В изучении C# столкнулся с такой проблемой - как исключения. Имею такую задачу. Создать абстрактный...

49
 Аватар для andrew_w2k
341 / 341 / 90
Регистрация: 04.03.2010
Сообщений: 648
19.03.2013, 23:58
учительнице можно сказать, что с framework 4.0 появилась дефолтная инициализация...
1
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 11
21.03.2013, 21:13  [ТС]
Да, но нужен код... Может кто-нибудь знает, как создать этот класс? Пожалуйста, очень нужно до понедельника...
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
21.03.2013, 21:41
Ну как бы приведённые в примере подмены пустых строк многоточиями имеют смысл для отображения этих многоточий в UI в случае, если юзер вычистит значение поля.

А учительнице я бы сказал, что ученики нашли самый простой способ выполнения задания.
Только при таком раскладе вообще непонятно, зачем люди пытаются это задание выполнять.
1
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
21.03.2013, 21:55
Скажите учительнице, что имена Persona, Otch и Fam - плохие, называть переменные транслитерацией с русского языка - плохая идея. И пусть выбросит учебник Павловской, зачиталась.
Учительнице надо сказать, что если этого метода не будет, то ничего не изменится, следовательно, он не нужен:
C#
1
2
3
4
public override string ToString()
{
    return base.ToString();
}
Учительнице надо сказать, что она путает обучающихся вот этим
C#
1
2
3
private string name;
string fam;
string otch;
Если не знаешь языка, можно предположить что только переменная name является private, а fam и otch - нет, однако это не так.
Цитата Сообщение от ksk Посмотреть сообщение
А учительнице я бы сказал, что ученики нашли самый простой способ выполнения задания.
Как говорит мой преподаватель по неврологии: "Locus minoris resistentiae" (точка наименьшего сопротивления)
3
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
21.03.2013, 22:19
Преподаватель по неврологии прав.
Лишь бы потом к таким ученикам на работу не пришлось наниматься.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
22.03.2013, 00:01
Лучший ответ Сообщение было отмечено как решение

Решение

Вот, примерно как это должно выглядеть. Сразу говорю, класс Book не должен выводить инфу никуда, он должен давать эту инфу, а вывод на экране должен делать другой класс.
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
using System;
 
namespace ConsApp_Book
{
    class Program
    {
        static void Main(string[] args)
        {
            Book[] books = 
                {
                    new Book("Похищение манхэттена", "Джон Стиц", "АСТ", 432u, 1993u), 
                    new Book("C# 4.0. Полное руководство", "Герберт Шилдт", "Вильямс", 1056u, 2013u),
                    new Book("Иррациональный мозг. Почему мы думаем одно, а делаем - другое", "Антон Малютин", "Эксмо", 352u, 2011u),
                    new Book("LINQ. Язык интегрированных запросов в C# 2010 для профессионалов", "Адам Фримен, Джозеф Раттц-мл.", "Вильямс", 656u, 2011u),
                    new Book("Принципы, паттерны и методики гибкой разработки на языке C#", "Р. С. Мартин, М. Мартин", "Символ-Плюс", 768u, 2011u),
 
                    new Book("Какая-то книга 1", "Какой-то издатель 1"),
                    new Book("Какая-то книга 2")
                };
 
            Display(books);
 
            Console.ReadKey();
        }
 
        static void Display(Book[] books) //выводить на экран должен этот класс, а никак не Book, иначе быдлокод
        {
            foreach (var book in books)
            {
                WriteColoredLine("----------------------------------------", ConsoleColor.Yellow);
                Console.WriteLine(book); //Автоматом будет вызван метод ToString()
                Console.WriteLine();
            }
        }
 
        static void WriteColoredLine(string text, ConsoleColor color)
        {
            ConsoleColor currentColor = Console.ForegroundColor;
            Console.ForegroundColor = color;
            Console.WriteLine(text);
            Console.ForegroundColor = currentColor;
        }
    }
 
    public class Book
    {
        #region Поля
 
        private string _title; //названия книги
        private string _author; //автор книги
        private string _publisherName; //название издательства
        private uint _pageQuantity; //количество страниц
        private uint _publicationDate; //год выпуска (дата публикации)
        #endregion
 
        #region Конструкторы
 
        public Book(string title)
            : this(title, string.Empty, string.Empty, 1u, 0u)
        {
        }
 
        public Book(string title, string author)
            : this(title, author, string.Empty, 1u, 0u)
        {
        }
 
        public Book(string title, string author, string publisherName, uint pageQuantity, uint publicationDate)
        {
            Title = title;
            Author = author;
            PublisherName = publisherName;
            PageQuantity = pageQuantity;
            PublicationDate = publicationDate;
        }
        #endregion
 
        #region Свойства
 
        public string Title
        {
            get { return _title; }
            set { _title = value; }
        }
 
        public string Author
        {
            get { return _author; }
            set { _author = value; }
        }
 
        public string PublisherName
        {
            get { return _publisherName; }
            set { _publisherName = value; }
        }
 
        public uint PageQuantity
        {
            get { return _pageQuantity; }
            set { _pageQuantity = value; }
        }
 
        public uint PublicationDate
        {
            get { return _publicationDate; }
            set { _publicationDate = value; }
        }
        #endregion
 
        public override string ToString()
        {
            return string.Format("Название: {0}\r\nАвтор: {1}\r\nНазвание издательства: {2}\r\nКоличество страниц: {3}\r\nГод выпуска: {4}",
                Title, Author, PublisherName, PageQuantity.ToString(), PublicationDate.ToString());
        }
    }
}
Вложения
Тип файла: rar ConsApp_Book.rar (7.4 Кб, 60 просмотров)
6
22.03.2013, 09:46

Не по теме:

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

1
22.03.2013, 09:52

Не по теме:

Цитата Сообщение от ksk Посмотреть сообщение
Пока будут такие дяденьки, поощряющие таких школьников, у этой страны не будут будущего.
Во-первых, мне было тупо интересно это написать. Вроде мелочь простейшая, а интересно. Во-вторых это ничего абсолютно не изменит и на будущее страны вообще не повлияет, есть миллион других факторов, которые реально влияют на будущее. Взять то что твориться в школах и на улице, вот это реально влияет. И вообще, как посчитал нужным, так и сделал, как-то всё равно что там кому не нравится.

Добавлено через 1 минуту
А вот то, что чел в 0:51 зашёл, скачал проект и молча ушёл - как-то мягко говоря нагло, хотя бы спасибо сказал.

1
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
22.03.2013, 11:26
Я понимаю такие вещи, когда нравится решать программистские задачки

Цитата Сообщение от Casper-SC Посмотреть сообщение

Не по теме:


Добавлено через 1 минуту
А вот то, что чел в 0:51 зашёл, скачал проект и молча ушёл - как-то мягко говоря нагло, хотя бы спасибо сказал.

Этот курс в школе этот чел наверное тоже аутсорсингом сдавал.
0
22.03.2013, 13:36

Не по теме:

Знаете ли,C# в школе - перебор,я сам школьник,у нас и Паскаль еле знают.

1
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
22.03.2013, 14:02
Ни разу не перебор. Мы с товаришем на С писали, когда я был в восьмом а он в 9м. А он ещё и Ассемблером баловался.

A C# - это же просто большой красивый цветной детский конструктор.
Кстати Паскаль я до сих пор не знаю и надеюсь, что не придётся.
0
22.03.2013, 14:51

Не по теме:

Цитата Сообщение от ksk Посмотреть сообщение
A C# - это же просто большой красивый цветной детский конструктор.
Что могу сказать,сам я еще C# и никакие языки семейства Cи не пробовал(но собираюсь).Для меня большой конструктор-Delphi.

0
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 11
22.03.2013, 15:39  [ТС]
Хочу сказать большое спасибо, что помогли, особенное спасибо Casper-SC. Просто спасли. Учительница не запрещает просить помощи у знающих людей, она говорит одно, - не просто списать, а вникнуть, понять, уметь объяснить и наперед это знать (сегодня как раз буду разбираться и вникать). Предыдущий преподаватель сам еле знал эти коды, странно, но это так. Теперь же с нуля начинаю, но я действительно хочу научиться программировать, это не для галочки. Спасибо!
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
22.03.2013, 15:41
Delphi - он принципиально другой. В моей голове не уместились два столь разных подхода.
0
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 11
22.03.2013, 16:20  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
Вот, примерно как это должно выглядеть. Сразу говорю, класс Book не должен выводить инфу никуда, он должен давать эту инфу, а вывод на экране должен делать другой класс.
Только что посмотрел код в консоли, он выглядит идеально... Ещё раз спасибо!))

Добавлено через 7 минут
Неправильно выразился, т.е. не выглядит идеально, а он и есть идеальный
0
45 / 45 / 9
Регистрация: 19.11.2012
Сообщений: 124
22.03.2013, 22:20
Цитата Сообщение от AntonDan Посмотреть сообщение
Только что посмотрел код в консоли, он выглядит идеально... Ещё раз спасибо!))

Добавлено через 7 минут
Неправильно выразился, т.е. не выглядит идеально, а он и есть идеальный
Идеального кода не существует.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
22.03.2013, 22:28
Цитата Сообщение от AntonDan Посмотреть сообщение
Неправильно выразился, т.е. не выглядит идеально, а он и есть идеальный
Цитата Сообщение от fictiont Посмотреть сообщение
Идеального кода не существует.
Идеального по сути вообще ничего не существует. Если кто-то напишет лучше, тогда идеальным станет его код .
Вообще метод ToString() можно было бы доработать, чтобы пустые строки не выводил, а так вроде всё гуд. Ну свойства можно было сделать автоматическими.

Добавлено через 1 минуту
В этом коде фишка ещё в том, что данные о книгах реальные. Просто от нефиг делать гуглил сидел инфу искал
1
45 / 45 / 9
Регистрация: 19.11.2012
Сообщений: 124
22.03.2013, 22:31
Цитата Сообщение от Casper-SC Посмотреть сообщение
Идеального по сути вообще ничего не существует. Если кто-то напишет лучше, тогда идеальным станет его код .
Вообще метод ToString() можно было бы доработать, чтобы пустые строки не выводил, а так вроде всё гуд. Ну свойства можно было сделать автоматическими.

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

P.s. а главное, отлично подобрана палитра цветов, желтенький выгодно смотрится на бирюзовом, спасибо =D

P.p.s. очень не люблю неявные вызовы чего-либо, в данном случае ToString(). Но это так, оффтоп.
0
22.03.2013, 22:58

Не по теме:

Цитата Сообщение от Андрей_Новичок Посмотреть сообщение
сам я еще C#
И давно это у вас ? ))
Цитата Сообщение от fictiont Посмотреть сообщение
P.p.s. очень не люблю неявные вызовы чего-либо, в данном случае ToString(). Но это так, оффтоп.
fictiont, ToString() головного мозга ?

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2013, 22:58
Помогаю со студенческими работами здесь

Создать класс Point, на его основе создать класс Line
Здравствуйте, есть такая часть задачки: "Создать класс Point, на его основе создать класс Line. В классах описать следующие элементы: ...

Создать generic класс Box
Создать generic класс Box *ящик для вложенных объектов и определить в нем: конструктор, принимающий экземпляр вложенного объекта ...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru