Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 21

Работа с xml файлом c++

06.07.2019, 23:10. Показов 5331. Ответов 7
Метки xml (Все метки)

Студворк — интернет-сервис помощи студентам
Привет народ,нужна помощь с с++,дело в том ,что нам дали задание,а эту тему мы вообще не трогали.
Суть в чем,Дан XML-файл, содержащий в себе некоторое количество однообразных элементов (записей).
Пример:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<students>
<student>
<fullname>"Ulyana Rzhevskaya"</fullname>
<age>18</age>
<group>5836</group>
<achievments>
<achievment>
<name>Ne otchislena!</name>
<year>2019</year>
</achievment>
<achievment>
<name>"Zakonchila shkolu"</name>
<year>2018</year>
</achievment>
<achievment>
<name>"Rodilas"</name>
<year>2000</year>
</achievment>
</achievments>
</student>
</students>
Задания и условия такие:Необходимо:
1. прочитать содержимое файла, построить двураправленный список
2. реализовать графическое представление записей на экране (отображение записей по одной, переходы между записями)
3. произвести сортировку списка по выбранному пользователем аттрибуту
4. записать остортированный список в XML-файл
Элемент списка должен содержать в себе:
1. не менее 1 строкового значения
2. не менее 2 числовых значений
3. вложеную структуру
Описание структуры данных, работа с XML и списком реализовать в виде отдельных подключаемых файлов (*.h, *.c,*.cpp).

Народ очень нужна помощь,в этой теме я вообще не шарю,со списками не работали,а препод уперся и ничего не хочет объяснять,можете просто в расписать,что и как,дальше сам доделаю,а если не в лом то и с заданиями помочь,спасибо заранее.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.07.2019, 23:10
Ответы с готовыми решениями:

Работа с xml файлом
Здравствуйте, я чайник, но решил соорудить какую нибудь полезную прогу. Суть в том что из zip контейнера .docx файла берется document.xml,...

Работа с XML файлом
Добрый день. Помогите пожалуйста с xml файлом вида: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Search&gt; &lt;TSI...

Работа с Xml файлом
Есть xml фаил как из него получить набор строк: Insert into table (Title,Numbe) values ('&quot; + Title + &quot;','&quot; + Number + &quot;') ...

7
Эксперт .NET
 Аватар для Rius
13030 / 7597 / 1663
Регистрация: 25.05.2015
Сообщений: 23,138
Записей в блоге: 14
07.07.2019, 11:32
Объединитесь с коллегой и решите самостоятельно:
Реализовать конвертер XML-JSON


Цитата Сообщение от GrinSecuce Посмотреть сообщение
со списками не работали,а препод уперся и ничего не хочет объяснять
Цитата Сообщение от GrinSecuce Посмотреть сообщение
дело в том ,что нам дали задание,а эту тему мы вообще не трогали.
Этим оправдываются так часто, что даже не смешно...
1
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
07.07.2019, 19:54
Лучший ответ Сообщение было отмечено GrinSecuce как решение

Решение

Тут ест разбор простого xml файла, может как то поможет разобрать ваш случай, если сами разберетесь что да как
Вложения
Тип файла: rar XML.rar (980 байт, 51 просмотров)
0
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 21
07.07.2019, 23:26  [ТС]
Привет Народ!
Дали задание по работе с xml файлом в с++.
Не разбираюсь в теме,но задания надо делать.
Вообщем задания такие:
Необходимо:
1. прочитать содержимое файла, построить двунаправленный список
2. реализовать графическое представление записей на экране (отображение записей по одной, переходы между записями)
3. произвести сортировку списка по выбранному пользователем аттрибуту
4. записать отсортированный список в XML-файл
Элемент списка должен содержать в себе:
1. не менее 1 строкового значения
2. не менее 2 числовых значений
3. вложенную структуру

Для прочтения файла написал прогу:
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
#include "pch.h"
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
#include <windows.h>
#include <string>
using namespace std;
 
 
struct infoContact
{
    char fullname[30];
    int age;
    int group;
    char name[50];
    int year;
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i = 0;
    char xmlFile[20];
    infoContact contact[10];
    ifstream readFile;
 
    cout << "Please enter the file: ";
    cin >> xmlFile;
 
    readFile.open(xmlFile, ios::in);
 
    readFile.ignore(256, '\n');
    readFile.ignore(256, '\n');
 
    char tag[50];
 
    do
    {
        // Чтение тега.
        readFile.ignore(256, '<');
        readFile.get(tag, 50, '>');
        readFile.ignore(256, '\n');
 
        if (strcmp(tag, "student") == 0)
        {
 
            readFile.ignore(20, '>');
            readFile.get(contact[i].fullname, 50, '<');
            cout << "Имя,Фамилия:" << contact[i].fullname << endl;
            readFile.ignore(256, '\n');
 
            readFile.ignore(20, '>');
            readFile >> contact[i].age;
            cout << "Возраст:" << contact[i].age << endl;
            readFile.ignore(256, '\n');
            
            readFile.ignore(20, '>');
            readFile >> contact[i].group;
            cout << "Группа:" << contact[i].group << endl;
            readFile.ignore(256, '\n');
 
            // Пропуск закрывающего тега </student>.
            readFile.ignore(256, '\n');
 
            // Пустая строка между студентами.
            cout << endl;
        }
        do
        {
            // Чтение тега.
            readFile.ignore(256, '<');
            readFile.get(tag, 50, '>');
            readFile.ignore(256, '\n');
 
            if (strcmp(tag, "achievment") == 0)
            {
 
                readFile.ignore(20, '>');
                readFile.get(contact[i].name, 50, '<');
                cout << "Достижение:" << contact[i].name << endl;
                readFile.ignore(256, '\n');
 
                readFile.ignore(20, '>');
                readFile >> contact[i].year;
                cout <<"Год:"<< contact[i].year << endl;
                readFile.ignore(256, '\n');
 
 
                // Пропуск закрывающего тега </achievment>.
                readFile.ignore(256, '\n');
 
                // Пустая строка между достижениями.
                cout << endl;
            }
 
 
        } while (strcmp(tag, "/achievments") != 0);
 
 
    } while (strcmp(tag, "/students") != 0);
 
    return 0;
}
Файл XML такой:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<students>
  <student>
    <fullname>"Ulyana Rzhevskaya"</fullname>
    <age>18</age>
    <group>5836</group>
    <achievments>
      <achievment>
        <name>Ne otchislena!</name>
        <year>2019</year>
      </achievment>
      <achievment>
        <name>"Zakonchila shkolu"</name>
        <year>2018</year>
      </achievment>
      <achievment>
        <name>"Rodilas"</name>
        <year>2000</year>
      </achievment>
    </achievments>
  </student>
</students>
Что такое двунаправленный список хз,и что дальше делать тоже хз.Как сделать Графическое представление,да еще отображение по одному и переход между записями,и потом еще сортировку по атрибуту.
Может кто-нибудь подсказать или помочь,потому что в интернете не оч понятно.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.07.2019, 23:55
Цитата Сообщение от GrinSecuce Посмотреть сообщение
Для прочтения файла написал прогу:

Не по теме:

Слегка переделали то что вам скинули в предыдущем топике. По коду сразу видно что писал кто-то, кто вопросов "что такое двунаправленный список" задавать не будет. И на сдаче вы завалитесь на контрольном вопросе "а теперь объясни что такое ignore".

0
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 21
07.07.2019, 23:59  [ТС]
Работа сдается дистанционно,так что вряд ли
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
08.07.2019, 06:52
Немного покопавшись разобрал Ваш случай, на размеры строк и тип внимания не обращал
Вложения
Тип файла: rar StudXML.rar (1,006 байт, 35 просмотров)
0
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 21
08.07.2019, 07:09  [ТС]
Цитата Сообщение от marat_miaki Посмотреть сообщение
Немного покопавшись разобрал Ваш случай, на размеры строк и тип внимания не обращал
Спасибо,начало уже положено,осталось мне допереть как дальше делать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.07.2019, 07:09
Помогаю со студенческими работами здесь

работа с XML файлом
хочу написать анализатор XML для загрузки вопросов. &lt;Questions&gt; &lt;Question&gt; &lt;quest ans=&quot;5&quot;&gt;Вопрос...

Работа с xml файлом
Здравствуйте. Помогите пожалуйста с записью в конец XML файла. Структура xml файла выглядит следующим образом: &lt;?xml...

Работа с xml файлом
Доброго времени суток! Хочу в xml файле одни одинаковые слова поменять на другие, как это сделать?

Работа с XML файлом
Всем привет! Возникла проблема при извлечении данных из файла. Я давно играл в игру одну и мне было интересно, как средством php извлечь...

Работа с XML - файлом
Необходимо считывать данную структуру XML-файла для дальнейшей работы с ней, а затем сохранять при создании в моем случае новой записи,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru