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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параметры обьектов 
:(
    Опции темы
Demonid
Дата 14.10.2007, 09:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как создать масив обьектов и запихнуть в параметры два значения?


Массив записей структура которого автор, год издания.


Код

 class Bookss
    {
         private string author;   
         public int year;
        public Bookss(string a, int b) 
        {       author = a;       year = b;   }
        public void PrintInfo()
        {
            Console.WriteLine("Название книги :{0}, Год :{1} ", author, year);
        }
    }
    class Teenager
    {
        private static Random r = new Random();
        private static int GetRamdomNumber(short upperLimit)
        { return r.Next(upperLimit); }
        public static string Complain()
        {
            string[] messages = new string[6] { "Троесент!", "Ватсон!", "Фаронов!", "Шилд!", "Агуров!", "Глинський!" };
            return messages[GetRamdomNumber(5)];
        }
    }
    class Metod
    {
        static public void otobrObject(params object[] lists)
        {
            for (int i = 0; i < lists.Length; i++)
            {
                if (lists[i] is Bookss)
                    ((Bookss)lists[i]).PrintInfo();
                else
                    Console.WriteLine(lists[i]);
            }
            Console.WriteLine("Нажмить на Ентер");
            string stroc=Console.ReadLine();
            }
        }
    class structions
    {
        public static void Main()
        {
            string a;
             int b;
            int i,j,x, size=10;
            
            Random c = new Random();
            Bookss book = new Bookss(a,b);
           
            
            for (i = 0; i < size; i++)
            {

                a = Teenager.Complain();
                b = c.Next(2007);
                book = new Bookss(a, b); 
                Bookss[i].PrintInfo();

                
            }

       }
    }
}     




Это сообщение отредактировал(а) Demonid - 14.10.2007, 10:01
PM MAIL   Вверх
mihryak
Дата 14.10.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



жудь какая =)
почему в последней строчке вместо вызова метода book.PrintInfo() свежесозданного экземпляра Bookss, ты почему-то обращаешься по индексу к самому имени класса?
и, кстати, добавление скольки бы то ни было букв s к имени класса само по себе не делает его коллекцией объектов =)
объясни лучше, что именно ты хочешь сделать
PM MAIL ICQ   Вверх
kurzon
Дата 14.10.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Цитата(mihryak @ 14.10.2007,  10:24)
жудь какая =)
почему в последней строчке вместо вызова метода book.PrintInfo() свежесозданного экземпляра Bookss, ты почему-то обращаешься по индексу к самому имени класса?
и, кстати, добавление скольки бы то ни было букв s к имени класса само по себе не делает его коллекцией объектов =)
объясни лучше, что именно ты хочешь сделать

Спасиба .
Я хачу сделать программку: 
Массив записей структура которого автор, год издания,  упорядочить по  году издания.

Добавлено через 1 минуту и 52 секунды
Спасиба .
Я хотел сделать программку:
Массив записей структура которого автор, год издания,  упорядочить по  году издания.
Но помощ нужна.
PM MAIL   Вверх
kurzon
Дата 14.10.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



2mihryak Ето я тот кто создавал тему...
Исправляю ошибку:

Код

 using System;
using System.Collections.Generic;
using System.Text;

namespace Sort_Book
{
    class Bookss
    {
         private string author;   
         public int year;
        public Bookss(string a, int b) 
        {       author = a;       year = b;   }
        public void PrintInfo()
        {
            Console.WriteLine("Название книги :{0}, Год :{1} ", author, year);
        }
    }
    class Teenager
    {
        private static Random r = new Random();
        private static int GetRamdomNumber(short upperLimit)
        { return r.Next(upperLimit); }
        public static string Complain()
        {
            string[] messages = new string[6] { "Троесент!", "Ватсон!", "Фаронов!", "Шилд!", "Агуров!", "Глинський!" };
            return messages[GetRamdomNumber(5)];
        }
    }
    class Metod
    {
        static public void otobrObject(params object[] lists)
        {
            for (int i = 0; i < lists.Length; i++)
            {
                if (lists[i] is Bookss)
                    ((Bookss)lists[i]).PrintInfo();
                else
                    Console.WriteLine(lists[i]);
            }
            Console.WriteLine("Нажмить на Ентер");
            string stroc=Console.ReadLine();
            }
        }
    class structions
    {
        public static void Main()
        {
            string a;
             int b;
            int i,j,x, size=10;
            
            Random c = new Random();
            Bookss book = new Bookss(a,b);
           
            
            for (i = 0; i < size; i++)
            {
                a = Teenager.Complain();
                b = c.Next(2007);
               book = new Bookss(a, b);
               book.PrintInfo();
                
            }
            
            Console.ReadLine();
             
        }
    }



Но при исправлении ошибки есть  две ошибки..

Error    3    Use of unassigned local variable 'a'    
Error    4    Use of unassigned local variable 'b'    

Ето что за ошыбки?
PM MAIL   Вверх
1stain
Дата 14.10.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



Цитата(mihryak @  14.10.2007,  10:24 Найти цитируемый пост)
объясни лучше, что именно ты хочешь сделать

имхо, аффтар хочет изучить программирование на C# посредством этого форума.


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
mihryak
Дата 14.10.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну так это замечательно, только вопросы бы были поточнее
PM MAIL ICQ   Вверх
kurzon
Дата 14.10.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Цитата(mihryak @ 14.10.2007,  11:00)
ну так это замечательно, только вопросы бы были поточнее

Спасиба.

Вот задание:   Массив записей структура которого автор, год издания,  упорядочить по  году издания. ( Метод пузырьком )

Но две ошибки после твоих изменений остались:
Error 3 Use of unassigned local variable 'a'
Error 4 Use of unassigned local variable 'b' 





Это сообщение отредактировал(а) kurzon - 14.10.2007, 12:02
PM MAIL   Вверх
1stain
Дата 14.10.2007, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



Цитата(mihryak @  14.10.2007,  11:00 Найти цитируемый пост)
ну так это замечательно, только вопросы бы были поточнее

Ничего не имею против, самому приятно подсказать решение, если знаю его. Вот только будет ли аффтару удовольстве от программирования, если ВСЕ задачки за тебя будет решать кто-то на форуме?

з.ы. я так понял, что это пример с какой-то книжки. Если да, то в печку ее! Купи Троелсена или C# для профессионалов, прочитай половину, после этого купи Рихтера "CLR via C#" и читай параллельно.


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
kurzon
Дата 14.10.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Код

 Console.ReadLine();
            
             for (j = 0; j < size; j++)
             {
                 for (i = 1; i < size; i++)
                 {
                     if (book.year[i - 1] > book.year[i])
                      {
                          x = book.year[i - 1];
                          book.year[i - 1] = book.year[i];
                          book.year[i] = x;
                             

                       }
                  }
              }
                        Console.WriteLine("Cортованый масив");

              for (i = 1; i < size; i++)
              {
                  book.PrintInfo();
              }


 


А в етом куске программы сместо book.year[i] какой тег надо вставить? 


Это сообщение отредактировал(а) kurzon - 14.10.2007, 15:11
PM MAIL   Вверх
mihryak
Дата 14.10.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(1stain @  14.10.2007,  13:15 Найти цитируемый пост)
Ничего не имею против, самому приятно подсказать решение, если знаю его. Вот только будет ли аффтару удовольстве от программирования, если ВСЕ задачки за тебя будет решать кто-то на форуме?

ну так задачи решать вроде никто и не собирается ;)
а вот подсказать лучшие практики использования шарпа (при наличии собственного опыта) - совсем другое дело



kurzon, непонятно твоё желание использовать перечисление там, где его нет и быть не может.
заведи ещё один класс-контейнер, содержащий в себе коллекцию книг
если нужен отсортированный список - пользуй SortedList<int, Book> или просто List<Book>, вызывая при потребности метод Sort, но тогда потребуется реализовать свой компарер, чтобы сравнение происходило по свойству Year
PM MAIL ICQ   Вверх
kurzon
Дата 14.10.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Цитата(mihryak @ 14.10.2007,  19:24)
Цитата(1stain @  14.10.2007,  13:15 Найти цитируемый пост)
Ничего не имею против, самому приятно подсказать решение, если знаю его. Вот только будет ли аффтару удовольстве от программирования, если ВСЕ задачки за тебя будет решать кто-то на форуме?

ну так задачи решать вроде никто и не собирается ;)
а вот подсказать лучшие практики использования шарпа (при наличии собственного опыта) - совсем другое дело



kurzon, непонятно твоё желание использовать перечисление там, где его нет и быть не может.
заведи ещё один класс-контейнер, содержащий в себе коллекцию книг
если нужен отсортированный список - пользуй SortedList<int, Book> или просто List<Book>, вызывая при потребности метод Sort, но тогда потребуется реализовать свой компарер, чтобы сравнение происходило по свойству Year

Так
Код

class Metod
    {
        static public void otobrObject(params object[] lists)
        {
            for (int i = 0; i < lists.Length; i++)
            {
                if (lists[i] is Bookss)
                    ((Bookss)lists[i]).PrintInfo();
                else
                    Console.WriteLine(lists[i]);
            }
            Console.WriteLine("Нажмить на Ентер");
            string stroc=Console.ReadLine();
            }
        }

PM MAIL   Вверх
1stain
Дата 15.10.2007, 09:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



не проще ли переопределить в Books метод ToString() и не парицца с проверкой типов, тем более через is


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
kurzon
Дата 15.10.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Вот я сделал сортировку, а надо сделать сортировку пузырьком?

Код

using System;

namespace Sort_Book
{
    struct Book
    {
        public Book(string author, int year)
        {
            this._year = year;
            this._author = author;
        }

        private int _year;

        public int Year
        {
            get { return this._year; }
            set { this._year = value; }
        }

        private string _author;

        public string Author
        {
            get { return this._author; }
            set { this._author = value; }
        }

        public override string ToString()
        {
            return String.Format("Название книги :{0}, Год :{1}", Author, Year);
        }
    }
    
    class Teenager
    {
        private static Random random = new Random();
        private static readonly string[] messages = new string[6]
            { 
                "Троесент!", 
                "Ватсон!", 
                "Фаронов!", 
                "Шилд!", 
                "Агуров!", 
                "Глинський!" 
            };

        public static string Complain()
        {
            return messages[random.Next(messages.Length)];
        }
    }

    class Program
    {
        static void PrintBookTitles(Book[] books)
        {
            foreach (Book book in books)
            {
                Console.WriteLine(book);
            }
        }

        static void Main(string[] args)
        {
            Book[] books = new Book[10];
            Random random = new Random();

            for (int i = 0; i < books.Length; i++)
            {
                books[i] = new Book(Teenager.Complain(), random.Next(2007));
            }

            PrintBookTitles(books);

            Array.Sort(books, 
                    delegate(Book a, Book b)
                    {
                        return a.Year.CompareTo(b.Year);
                    });

            Console.WriteLine("После сортировки:");

            PrintBookTitles(books);
        }
    }
}


Мене задали методом сортировка пузырьком ...

А тут сама сортировка:

Код

 for (j = 0; j < size; j++)
                        {
                            for (i = 1; i < size; i++)
                            {
                                if (d[i - 1] > d[i])
                                {
                                    x = d[i - 1];
                                    d[i - 1] = d[i];
                                    d[i] = x;
                                    
                                 }
                             }
                        }


А надо ету сортировку вставить в основную программу?
 


Это сообщение отредактировал(а) kurzon - 15.10.2007, 20:38
PM MAIL   Вверх
zaver
Дата 15.10.2007, 20:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



юзай метод Sort - он будет оптимальнее твоей сортировки
PM MAIL WWW ICQ Skype YIM MSN   Вверх
kurzon
Дата 15.10.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: -11



Цитата(zaver @ 15.10.2007,  20:30)
юзай метод Sort - он будет оптимальнее твоей сортировки


Мене задали методом сортировка пузырьком ...

Мене задали задание и надо ето сделать пажалуста  ?

Это сообщение отредактировал(а) kurzon - 15.10.2007, 20:38
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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