Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 21:26   #1
raulsky
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 1
По умолчанию C#. Структура начальники и подчиненные.

Доброе время суток! Застрял на выводе дерева сотрудников...
Задание следующее: Необходимо вывести в консольном приложении дерево сотрудников по подчиненности. За входные данные берется файл test.txt, в котором указаны: 1) id сотрудников, 2) id сотрудника, которому подчиняется, 3)фамилия сотрудника. Разделителем является символ "|".

Формат вывода следующий:
Петров
---Сидоров
------Пупкин
------Медведев
---------Морозов
---Иванов
---Ульянов
------Козлов
------Кирилов

Запись в файл я организовал. Но вот с выводом, да еще и с иерархией, никак не соображу. Использовал StreamReader, но понял только как выводить все строчки файла без сортировки.

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;

namespace ConsoleApplication2
{
    public class Sotrudnik
    {
        public int Id;
        //индекс подчинения
        public int Podchin;//если никому не подчиняется, то ставится цифра 0
        public string Fam;
    }
    class Program
    {
        static void Main(string[] args)
        {
            
            Console.WriteLine("Введите количество сотрудников");
            string s = Console.ReadLine();
            int KolSotr = Convert.ToInt32(s);

            //создание и открытие файла для записи
            StreamWriter sw = File.CreateText("D:/test.txt");

            Sotrudnik[] sotrudniki = new Sotrudnik[KolSotr];
            for (int i = 1; i < sotrudniki.Length + 1; i++)
            {

                Console.WriteLine("Введите Id " + i + "-го сотрудника");
                string Id = Console.ReadLine();
                Console.WriteLine("Введите индекс подчинения " + i + "-го сотрудника");
                string Podchin = Console.ReadLine();
                Console.WriteLine("Введите фамилию " + i + "-го сотрудника");
                string Fam = Console.ReadLine();



                sw.Write(Id);
                sw.Write("|");
                sw.Write(Podchin);
                sw.Write("|");
                sw.WriteLine(Fam);
                sw.WriteLine();
            }
                        
            sw.Close();

            StreamReader sr = File.OpenText("D:/test.txt");

            Sotrudnik[] sotrudniki2 = new Sotrudnik[KolSotr];
            for (int i = 1; i < sotrudniki.Length + 1; i++)
            {
  
            }

	    sr.Close();
           
        }
       
    }
}
Буду признателен за помощь.
raulsky вне форума Ответить с цитированием
Старый 02.12.2012, 22:17   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Перед сохранением я бы сортировал сотрудников по ид. для определения уровня вложенности.. А при выводе добавлял пробелы пере фамилией в зависимости от степени вложенности
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подчиненные списки Jimmy Lenox Microsoft Office Access 30 14.12.2012 21:35
Подчиненные формы, связь. Angelo4ka Microsoft Office Access 0 19.07.2012 16:30
структура.. С#... Serg94 C# (си шарп) 1 27.02.2012 19:45
разнести подчиненные формы по вкладкам access user Microsoft Office Access 1 17.07.2011 18:02
mdb+ADO главная и подчиненные таблцы masal77 БД в Delphi 2 03.04.2011 09:34