Записывается в файл только последний элемент массива. - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую вас. Нужна помощь в массивах объекта. Есть класс. Класс делает, то что составляет бланк заказа. Создан динамический массив:
Console.WriteLine("Введите число заказов\n");
                        int n = Convert.ToInt32(Console.ReadLine());
                        blank1 s = new blank1();
После чего выводится запрос на запись информации в файл. Но проблема в то что записывается только последнее введенное. Как взять адрес первого элемента массива в с++ там можно с помощью переменное хранящий адрес и данные по этому адресу " *Per ". А как здесь все это сделать? Жду вашей помощи. За ранее спасибо.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using func;

namespace func_dll
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Выберите пункт меню:\n");
            Console.WriteLine("Введите-y: Для оформления заказа\n");
            Console.WriteLine("Введите-e: Для выхода из меню\n");

            string key;
            key=Console.ReadLine();
 
            switch (key)
            {
                case "y":
                    
                        Console.WriteLine("Введите число заказов\n");
                        int n = Convert.ToInt32(Console.ReadLine());
                        blank1 s = new blank1();
                        int i;

                        for (i = 0; i < n; i++)
                        {
                               s.vvod();
                             //  s.vivod();
                           // s.TextFile();
                        }   

                        for (i = 0; i < n; i++)
                        {
                            
                             s.vivod();
                            
                        }

                        string key1;
                        Console.WriteLine("Записать в файл?");
                        key1 = Console.ReadLine();  
                      
                        switch (key1)
                        {
 
                            case "y":
                                for (i = 0; i < n; i++) { s.TextFile(); }

                                break;
                            case "e":
                                break;
                        
                        }

                    break;
                case "e":
                     //Environment.Exit(0);
                     break;
            }
            Console.WriteLine("Для завершения нажмите любую клавишу\n");
            Console.ReadLine();
        }
    }
}

Решение задачи: «Записывается в файл только последний элемент массива.»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
struct blank1
{
    private int Nt;
 
    private string nb;
    private double cena;
 
    public void vvod()
    {
        
        
            Console.WriteLine("Введите номер стола\n");
            Nt = Convert.ToInt32(Console.ReadLine());
            
 
            Console.WriteLine("Введите Название блюда\n");
            nb = Console.ReadLine();
            
 
            Console.WriteLine("Введите цену\n");
            cena = Convert.ToDouble(Console.ReadLine());
           
        
    }
 
    public void vivod()
    {
        Console.WriteLine("№Стола | Блюдо | цена\n");
        Console.WriteLine(Nt+ " " + nb + " " + cena);
    }
 
    public void TextFile()
    {
        StreamWriter file = new StreamWriter(@"D:\text.txt", true);
 
        file.WriteLine("№Номер стола |Название |Цена ");
        file.Write(Nt);
        file.Write(" ");
        file.Write(nb);
        file.Write(" ");
        file.WriteLine(cena);
        file.Close();
    
    }
}
 
 
namespace Blank
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число заказов\n");
            int n = Convert.ToInt32(Console.ReadLine());
           
            blank1[] s = new blank1[n];
            for (int i = 0; i < n; i++)
            {
                s[i].vvod();
             //   s[i].vivod();
          //      s[i].TextFile();
                
            }
 
            for (int i = 0; i < n; i++)
            {
                   s[i].vivod();            
 
            }
 
            string key;
            Console.WriteLine("Записать файл? y(да)/e(нет)\n");
            key = Console.ReadLine();
           
            if (key == "y")
            {
                for (int i = 0; i < n; i++)
                {
 
                    s[i].TextFile();
 
                }
            }
 
            if (key == "e")
            {
                Console.WriteLine("Для завершения нажмите любую клавишу\n");
                Console.ReadLine();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы