Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 14
1

XML-Документы

02.02.2018, 10:17. Показов 1208. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите исправить ошибку в коде при вводе данных.
Условие:Worker: Фамилия и инициалы, Должность, Год поступления на работу, Зарплата. Создать массив объектов. Преобразовать данные из массива в XML файл и сохранить его на диск:
а) список работников, стаж работы которых на данном предприятии превышает заданное число лет;

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Xml.Linq;
using System.IO;
 
namespace ConsoleApplication31
{
 
    class Program
    {
        static void Main(string[] args)
        {
            Rabotnik[] MAS = new Rabotnik[2];
            ZAPOLNENIE(MAS);
           XML_P(MAS);
            Console.WriteLine("Введите Время Работы ");
            Console.WriteLine("Работники : " + Godraboti(MAS) + "\n");
            //  PRINT(MAS);
            Console.ReadKey();
 
            MyInt mi = new MyInt(MAS);
            foreach (var i in mi)
            {
                Console.Write(i + "\n\n");
            }
 
        }
        class MyInt : IEnumerable, IEnumerator
        {
            Rabotnik[] Mas;
            int index = -1;
            public MyInt(Rabotnik[] arg)
            {
                this.Mas = arg;
            }
 
            // Реализуем интерфейс IEnumerable
            public IEnumerator GetEnumerator()
            {
                return this;
            }
 
            // Реализуем интерфейс IEnumerator
            public bool MoveNext()
            {
                if (index == Mas.Length - 1)
                {
                    Reset();
                    return false;
                }
 
                index++;
                return true;
            }
 
            public void Reset()
            {
                index = -1;
            }
 
            public object Current
            {
                get
                {
                    return Mas[index];
                }
 
            }
        }
 
 
 
        //public static void PRINT(Rabotnik[] mass)
        //     {
        //       for (int i = 0; i < mass.Length; i++)
        //     {
        //       mass[i].ShowINFO();
        // }
        //}
 
        public static void XML_P(Rabotnik[] mass)
        {
            XDocument xdoc = new XDocument(
                   new XDeclaration("1.0", "utf-8", "yes"),
                       // This is the root of the document
                       new XElement("Books",
                       from emp in mass
                       select
    new XElement(new XElement("Должность", emp.GetNAZVAIE(), new XElement("ФИО", emp.GetF()), new XElement("Зарплата", emp.GetYEAR()), new XElement("Годы работы", emp.GetType())))));
            xdoc.Save("D:/Books.xml");
            Console.WriteLine("Файл Books.xml успешно сохранен!");
        }
        public static void ZAPOLNENIE(Rabotnik[] mass)
        {
            for (int i = 0; i < mass.Length; i++)
            {
                Console.WriteLine("Введите должность работника : ");
                Console.WriteLine("Введите ФИО Работника: ");
                Console.WriteLine("Введите год поступления на работу: ");
                Console.WriteLine("Введите Заработную плату: ");
                mass[i] = new Rabotnik(Console.ReadLine(), Console.ReadLine(), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
                Console.WriteLine();
 
            }
        }
        
        public static string Godraboti(Rabotnik[] mass)
        {
            string s = "";
            int god = int.Parse(Console.ReadLine());
            for (int i = 0; i < mass.Length; i++)
            {
                if (2018 - mass[i].GetYEAR() > god)
                {
                    s = s + "\n" + mass[i].GetNAZVAIE();
                }
            }
            return s;
        }
 
        public static string Zarplata(Rabotnik[] mass)
        {
            string s = "";
            int zar = int.Parse(Console.ReadLine());
            for (int i = 0; i < mass.Length; i++)
            {
                if (mass[i].Zarobotok() - zar > 0)
                {
                    s = s + "\n" + mass[i].GetNAZVAIE();
                }
            }
            return s;
        }
 
 
        public static string Dolzhnost(Rabotnik[] mass)
        {
 
            string s = "";
            string str = Console.ReadLine();
            for (int i = 0; i < mass.Length; i++)
            {
                if (mass[i].GetF() == str)
                {
                    s = s + "\n" + mass[i].GetNAZVAIE();
                }
            }
            return s;
        }
    }
 
 
    class Rabotnik
    {
        private string FIOF;
        private string DOL;
        private int Postypil;
        private int Zarplata;
 
        public Rabotnik(string Fio, string Dolzhnosti, int GodPosty, int Zarpl)
        {
            FIOF = Fio;
            DOL = Dolzhnosti;
            Postypil = GodPosty;
            Zarplata = Zarpl;
        }
 
        //       public void ShowINFO()
        //     {
        //       Console.WriteLine( "\nДолжность:   " + DOL + "ФИО работника:  " + FIOF + "\nГод Поступления: " + Postypil + "\nЗаработная плата: " + Zarplata);
        // }
 
        public string GetNAZVAIE()
        {
            return DOL;
        }
        public string GetF()
        {
            return FIOF;
        }
        public int GetYEAR()
        {
            return Postypil;
        }
        public int Zarobotok()
        {
            return Zarplata;
        }
 
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2018, 10:17
Ответы с готовыми решениями:

Подсчитать количтво нодов в XML при помощи LINQ to XML
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Root&gt; &lt;host&gt; 192.168.1.1 &lt;/host&gt; &lt;host&gt; ...

Объединение 2 xml файлов по ключу в 1 xml с использованием linq
День добрый. Я уже отписывался в другой теме с объединением 2 xml, но увы тот метод для меня...

Xml сериализация многострочных строк, отступы в xml файле
У меня есть класс который сериализуется в xml и содержит многострочную строку. class...

Получаю xml по url, как сохранить содержимое в новый xml файл, только чтобы структура не нарушилась?
Когда делаю так, структура нарушается WebRequest request =...

4
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
02.02.2018, 11:41 2
какой смысл вы вложили вот в эту строку? :
Цитата Сообщение от SerzhPevets Посмотреть сообщение
C#
1
mass[i] = new Rabotnik(Console.ReadLine(), Console.ReadLine(), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
0
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
02.02.2018, 11:43 3
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
какой смысл вы вложили вот в эту строку?
Походу никакой, т.к. код по всей видимости чужой
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
02.02.2018, 11:48 4
Почтальон, возможно, но это верх разума дать вывод всей информации что вводить с двоеточием в конце, а после составлять класс по построчному вводу этой информации когда нужно догадаться, что всё что выше написано нужно вводить в новой строке по отдельности .

p.s
Цитата Сообщение от SerzhPevets Посмотреть сообщение
Помогите исправить ошибку в коде при вводе данных.
описали всё, кроме ошибки, и в чём она заключается. Ошибки имеют такое классное свойство как текст этой ошибки если программная, либо же поведение неверное если логическая.
0
22 / 25 / 8
Регистрация: 17.09.2017
Сообщений: 61
03.02.2018, 14:30 5
Лучший ответ Сообщение было отмечено SerzhPevets как решение

Решение

SerzhPevets, используй сериализацию в XML массива объектов.
Как сериализовать список объектов xml?
https://metanit.com/sharp/tutorial/6.4.php
https://msdn.microsoft.com/ru-... .120).aspx
0
03.02.2018, 14:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2018, 14:30
Помогаю со студенческими работами здесь

Создание документа XML через LINQ-to-XML
как создать новый документ xml через LINQ-to-xml XDocument doc =new...

Создание XML строки не используя System.Xml
Каким образом сформировать строку XML и сохранить её содержимое в виде XML файла, не используя...

Копирование элементов из одного XML в новый XML
Доброго всем времени суток. На входе имеется XML файл со сложной структурой: &lt;?xml...

Создание xml документа посредством LINQ to XML
Добрый день. Мне необходимо создать xml-документ который будет включать следующие элементы: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru