С#: "Масив в структурах"

Тема в разделе ".NET", создана пользователем kurzon, 13 окт 2007.

  1. kurzon

    kurzon Гость

    Условие:

    Код (Text):
    Массив записей структура которого автор, год издания, упорядочить по году издания.
    Я сделал ету программу, с двума масивами, а надо сделать с структурами(где два масива)?


    Работоспособная программа.

    Код (Text):
    using System;
    using System.Collections.Generic;
    using System.Text;
    namespace ConsoleApplication6
    {
    class Program
    {
    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)];
    }
    }
    static void Main(string[] args)
    {
    int i, x, size = 10;
    string y;
    string[] b = new string[100];
    int[] d = new int[100];
    Console.WriteLine("Генерация масива");
    Random a = new Random();
    Random c = new Random();
    for (i = 0; i < size; i++)
    {
    b[i] = Teenager.Complain();
    d[i] = c.Next(2007);
    Console.WriteLine("Название книги :" + b[i] + " Год : " + d[i]);
    }
    Console.ReadLine();

    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;
    y = b[i - 1];
    b[i - 1] = b[i];
    b[i] = y;
    }
    }
    }

    Console.WriteLine("Cортованый масив");
    for (i = 1; i < size; i++)
    {
    Console.WriteLine(" Название книги :" + b[i] + " Год : " + d[i]);
    }
    Console.ReadLine();
    }
    }
    }
    Вот я сам сделал, но ошибки ктото может исправить?

    Код (Text):
    using System;
    using System.Collections.Generic;
    using System.Text;
    namespace Struct
    {

    struct Books
    {
    public string[] autor;
    public int[] god;
    public Books(string[] a, int[] b)
    {
    autor=a;
    god=b;
    }
    }
    struct 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 structions
    {
    public static void Main()
    {
    string[] a = new string[6];
    int[] b;
    int i,j,x, size=10;

    Random c = new Random();
    for (i = 0; i < size; i++)
    {
    a = Teenager.Complain();
    b = c.Next(2007);
    Books book = new Books(a, b);
    Console.WriteLine("Название книги :" + book.autor[i] + " Год : " + book.god[i]);

    }
    Console.ReadLine();

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

    }
    }
    }
    Console.WriteLine("Cортованый масив");
    for (i = 1; i < size; i++)
    {
    Console.WriteLine(" Название книги :" + book.autor[i] + " Год : " + book.god[i]);
    }
    Console.ReadLine();
    }
    }
    }
     
  2. kurzon

    kurzon Гость

    Я уже переделал, не работает?

    Код (Text):
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Struct
    {

    struct Bookss
    {
    private string _author;  
    public string Author
    { get {return _author; } }  
    private int _year;  
    public int year;
    public void book(string author, int year)
    {     _author = author;   _year = year;  }
    }
    struct 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 structions
    {
    public static void Main()
    {
    string a;
    int b;
    int i,j,x, size=10;

    Random c = new Random();

    Bookss Books = new Bookss();

    for (i = 0; i < size; i++)
    {
    a = Teenager.Complain();
    b = c.Next(2007);
    Books.Add(new book(a, b));
    Console.WriteLine("Название книги :" + book.author[i] + " Год : " + book.year[i]);

    }

    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++)
    {
    Console.WriteLine(" Название книги :" + book.author[i] + " Год : " + Books.year[i]);
    }
    Console.ReadLine();
    }
    }

    }
    Может ктото исправит ошыбки?
     
  3. kurzon

    kurzon Гость

    Хоть ктото поможет мене?
     
  4. Pasha

    Pasha Гость

    Для: kurzon
    Что именно не работает?
     
  5. kurzon

    kurzon Гость

    Error 1 'Struct.Bookss' does not contain a definition for 'Add'
    Error 2 The type or namespace name 'Books' could not be found (are you missing a using directive or an assembly reference?)
    Error 3 'Struct.Bookss' does not contain a definition for 'author'
    Error 4 Cannot apply indexing with [] to an expression of type 'int'
    Error 5 The name 'book' does not exist in the current context
     
  6. Pasha

    Pasha Гость

    Для: kurzon
    Вчитайся внимательно в свой код. Ты усиллено пытаешься использовать один экземпляр структуры для хранения сразу всех объектов книг. Должен быть список книг(List<Bookss> наверное), в кторый ты будешь делать Add, и кторый потом будешь сортировать.
     
  7. chm

    chm Гость

    kurzon, имхо в таких случаях датасеты использовать удобнее. Посмотрите в MSDN классы DataSet, DataTable, DataRow. Там хватает примеров по работе с датасетами.
     
  8. Pasha

    Pasha Гость

    Для: chm
    Это явно задача с условием "сделать через массив структур".
    DataSet-ы, кстати, нужно постепенно искоренять. И переходить на linq. :)
     
  9. kurzon

    kurzon Гость

    Уже всьо сделано.
     
Загрузка...
Похожие Темы - С# Масив структурах
  1. Sander
    Ответов:
    1
    Просмотров:
    504
  2. kipatilnik
    Ответов:
    1
    Просмотров:
    645
  3. olegvach
    Ответов:
    1
    Просмотров:
    1.071
  4. kobrin13
    Ответов:
    0
    Просмотров:
    998
  5. acs-nexus
    Ответов:
    0
    Просмотров:
    703

Поделиться этой страницей