| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Создание класса с операциями |
| Автор: posthuman 13.12.2009, 15:53 |
| Общие данные: Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы; свойства, индексаторы; перегруженные операции. Функциональные элементы класса должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения. Дана такая задачка: Описать класс "предметный указатель". Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя. В общем вот такая она, задачка. |
| Автор: PaZ1T1V 13.12.2009, 19:12 |
| а в чем собственно проблема то ? |
| Автор: ДобренькийПапаша 13.12.2009, 19:41 |
| Собственно, человек спроектировать грамотно не может. Мне бы тоже в качестве учебного примера было бы интересно посмотреть на грамотную реализацию. |
| Автор: posthuman 13.12.2009, 23:37 | ||
На самом деле я даже представить не могу что должно получиться, но вроде как что-то на подобии указателя как в конце книги, ну это на мой взгляд. Вот то что я сделал, но все работает у меня боком раком. Во-первых, у меня это объявлено как структура, переделывал в класс что-то не работает. Во-вторых, не знаю как сделать так, чтобы для каждого слова было произвольное количество страниц. Тут кажется нужен ступенчатый массив. Ну а вообще, указатель должен выглядить так: A Abort 12,13,14 Abs 50,62,17 B base 12,17 BigMul 13 D DataSet 123 E EndRead 250,253 Что-то вроде этого. |
| Автор: ДобренькийПапаша 14.12.2009, 14:05 | ||
Если здесь единственное что требуется реализовать это то, что есть массив слов, а у каждого элемента этого массива есть массив чисел (страниц на которых есть слово), то проще всего, ИМХО, воспользоваться Dictiontary;
Dictionary это стандартное обобщение с методами типа Add(), Remove(), Clear(). В общем все удобства. Почитайте про это обобщение. Думаю это то, что решает ваше задачу самым простым способом. |
| Автор: posthuman 14.12.2009, 18:50 | ||
Как бы этот метод еще сложен для меня. Можно как-нибудь попроще задавать?
Как можно вводить это с клавиатуры, чтобы введенное слово соответсвовало страницам? |
| Автор: ДобренькийПапаша 14.12.2009, 19:42 | ||
Вот программа в консоли. Работает. Запустите и введите Ivanov для проверки)))
|
| Автор: posthuman 14.12.2009, 19:57 | ||
Во. в отдельном классе работает. |
| Автор: ДобренькийПапаша 14.12.2009, 20:05 | ||
| Ну разделил... А вообще советую изучить основы)))
p.s. Интересно кто за -3 проголосовал на все мои посты в этой теме?))) |
| Автор: posthuman 14.12.2009, 23:09 |
| А можно как-нибудь попроще сделать тоже самое? Задание это по классам(глава 7), а то что напрограммировано в конце книги(глава 13). Я основы читал и до сих пор читаю, просто задание на самом деле не легкое. Я - не ставил(недостаточно у меня постов). |
| Автор: ДобренькийПапаша 15.12.2009, 10:09 | ||
Вот со структурой)))
|
| Автор: posthuman 15.12.2009, 19:12 |
| неее. там же в задачке класс, а не структура. но сделать его как-нибудь попроще. НАпример, как нибудь мой 2ой пост в этой теме переделать в класс можно? или только в этой задачке Dictionary подойдет? |
| Автор: ДобренькийПапаша 15.12.2009, 19:25 |
| В моём последнем посте можешь структуру заменить на класс, изменив одно слово. Сделано предельно просто. Куда ещё проще я не знаю. Элементарно всё... |
| Автор: posthuman 15.12.2009, 19:27 |
| Ихменив струтуру на класс, придется менять и функцию main. Создавать нужно иначе экземпляр класса с аргументами, и производить ввод данных. |
| Автор: ДобренькийПапаша 15.12.2009, 19:54 |
| Я только что изменил слово struct на class. Всё запустилось и работало. Я даже не знаю зачем я проверял это... Не знаю откуда вы взяли чего-то там про ввод и создание... p.s. Да, в C# структура от класса сильно отличается, это правда. Но это другая история. |
| Автор: SpbFlush09 17.12.2009, 20:50 |
| Ребят, помогите класс создать, у меня с ними полнейший завал, не понимаю их совсем!!! Задача : Описать класс, представляющий круг. Предусмотреть методы для создания объектов вычисления площади круга, длины окружности и проверки попадания заданной точки внутрь круга. Описать свойства для получения состояния объекта. Написать программу, демонстрирующую все разработанные элементы класса. |