База данных без базы данных

174
14 апреля 2017, 19:04

Здравствуйте, задача у меня странная. Необходимо сделать форму регистрации пассажиров, без использования баз данных, чисто C#. Как сделать так, чтобы можно было вставить переменную в имя объекта класса Passenger.

P.s. мне надо сделать так, чтобы можно было создавать неограниченное количествово объектов Passenger, и о каждом из них хранить информацию. Прошу помощи.

using System;
namespace Avia_registration
{
class Passenger
{
    public string name;
    public string surname;
    public string country;
    public int age;
    public Passenger()
    {
        Console.WriteLine("Give a name to your passenger");
        name = Console.ReadLine();
        Console.WriteLine("Give a surname to your passenger");
        surname = Console.ReadLine();
        Console.WriteLine("Where is " + name + " from?");
        country = Console.ReadLine();
        Console.WriteLine("How old is " + name + " ?");
        age = Convert.ToInt32(Console.ReadLine());
    }
    public static void Print()
    {
        Console.WriteLine("Here is information.");
        Console.WriteLine(name);
        Console.WriteLine(surname);
        Console.WriteLine(country);
        Console.WriteLine(age);
    }
}
class Plane
{
    //future programme(Seats count)
}
class MainClass
{
    public static void Main(string[] args)
    {
        Console.WriteLine("You have got a plane with five seats, choose who will fly away");
        string[] Namelist = new string[5];  //тут будут хранится имена всех пассажиров, чтобы потом вывести на экран
                                            //список перед "отправкой"
        Passenger one = new Passenger();
        Console.ReadKey();

    }
}
}

P.s. Я только начинаю...

Answer 1

Вы сейчас создаёте массив определённой размерности для имён. Я предлагаю вам создавать массив определённой размерности для всех данных на пассажиров (это называется коллекция). Попробуйте для этого следующий код (обратите внимание на метод Main() и подключённые библиотеки):

using System;
using System.Collections.Generic;
namespace Avia_registration
{
class Passenger
{
    public string name;
    public string surname;
    public string country;
    public int age;
    public Passenger()
    {
        Console.WriteLine("Give a name to your passenger");
        name = Console.ReadLine();
        Console.WriteLine("Give a surname to your passenger");
        surname = Console.ReadLine();
        Console.WriteLine("Where is " + name + " from?");
        country = Console.ReadLine();
        Console.WriteLine("How old is " + name + " ?");
        age = Convert.ToInt32(Console.ReadLine());
    }
    public static void Print()
    {
        Console.WriteLine("Here is information.");
        Console.WriteLine(name);
        Console.WriteLine(surname);
        Console.WriteLine(country);
        Console.WriteLine(age);
    }
}
class Plane
{
    //future programme(Seats count)
}
class MainClass
{
    public static void Main(string[] args)
    {
        Console.WriteLine("You have got a plane with five seats, choose who will fly away");
        List<Passenger>() passengersList = new List<Passenger>(5);  // тут будут хранится уже не только имена
                                                                   // а все данные на пассажиров
                                                                   // если в скобках указать число, то
                                                                   // коллекция будет создана числом этой размерности
        for (i = 0; i < passengersList.Length - 1; i++)
        {
            Passenger passenger = new Passenger();
            passengersList[i] = passenger; // так как коллекция расширяема (то есть это динамический массив),
                                           // мы можем добавить пассажира таким образом: passengersList.Add(passenger);
        }
        Console.ReadKey();
    }
}
}

Документация по List

Если же вы хотите сохранить только имена, то это можно сделать таким образом:

public static void Main(string[] args)
{
    Console.WriteLine("You have got a plane with five seats, choose who will fly away");
    string[] Namelist = new string[5];  //тут будут хранится имена всех пассажиров, чтобы потом вывести на экран
                                        //список перед "отправкой"
    for(i=0; i < Namelist.Length - 1; i++)
    {
        Passenger one = new Passenger();
        Namelist[i] = one.name
    }
    Console.ReadKey();
}

В обращении к атрибуту и в грамотности написания точно не уверен, потому что давно с C# не работаю, но по идее всё верно

READ ALSO
Функция из DLL (на Си) не работает в C#

Функция из DLL (на Си) не работает в C#

Как передать буфер для заполнения в функцию (функция в DLL-ке напна Си , исходника нету) я делаю так

206
Десериализация коллекции объектов JSON

Десериализация коллекции объектов JSON

Есть базовый класс и несколько его потомков:

223
Загрузить DataTable в файл Excel по частям. C#, ASP.NET

Загрузить DataTable в файл Excel по частям. C#, ASP.NET

Я использую ClosedXMLExcel для создания файла Excel из DataTable

269