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

Приложение, позволяющее вводить, хранить и обрабатывать информацию для учета участников Олимпиады

27.03.2017, 15:24. Показов 1934. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нород, добрый день! Помогите пожалуйста или направьте в нужном направлении ,есть задание которое нужно сделать в ближайшее время, выглядит оно следующим образом.

Реализовать программное приложение, позволяющее вводить, хранить и обрабатывать информацию для учета участников Олимпиады.
Для обеспечения динамической работы с данными их следует программно организовать в виде односвязного списка, каждый отдельный элемент которого содержит информацию об одном участнике, включая: ФИО участника, страна, вид спорта, его дата рождения, рост, вес.

Программа должна обеспечивать выполнение следующих операций:
а) начальное формирование списка;
б) добавление нового элемента списка;
в) вывод всего списка на экран в виде таблицы;
г) упорядочивание списка по полю «ФИО участника»;
д) удаление элементов по значению первичного ключа;
е) формирование отчета: итоговое количество участ¬ников по виду спорта, указанному пользователем.

Выбор необходимой операции пользователем производится с помощью меню, выводимого на экран. Выполнение каждого пункта меню программно организовать в виде отдельной функции.
Программа должна обеспечить запрос и ввод с клавиатуры необходимых входных данных, а также контроль возможных ошибок при вводе.

Не могу сообразить каким образом его нужно реализовать, в виде динамических структур? Если да то как, у меня есть свои написанные структуры данных , которые выглядят следующим образом.

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
#include <iostream>
 
using namespace std;
 
struct accounting  { //учёт участников олимпиады
    char *surname;
    char *city;
    char *country;
    char *kind_of_sport; 
    float Date_of_Birth;
    int growth;
    int the_weight;
    char *floor;
};
 
int main(int argc, const char * argv[]) {
 
    accounting participant;
    participant.surname = "petrov"; //Фамилия участника - Петров
    participant.city = "ozersk"; // Город участника - Озёрск
    participant.country = "Russian"; //Страна участника - Россия
    participant.kind_of_sport = "Footboall"; //Вид спорта участника - Футбол
    participant.Date_of_Birth =  26; //Возраст участника - 26 лет.
    participant.growth = 182; // Рост участника - 182 см.
    participant.the_weight = 68; //Вес участника - 68 кг.
    participant.floor = "man"; //Пол участника - мужской.
 
    cout << "participant surname " << participant.surname <<"\n" << "participant city " << participant.city <<"\n" << "participant country " << participant.country <<"\n" << "kind_of_sport " << participant.kind_of_sport <<"\n" << "Date_of_Birth " << participant.Date_of_Birth <<"\n" << "growth " << participant.growth <<"\n" << "the_weight " << participant.the_weight <<"\n" << "floor " <<participant.floor <<endl;
 
 
    ;cin.get();
    return 0;
}
Подскажите пожалуйста, что мне нужно добавить или изменить, для того что бы следовать в нужном направлении.
Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2017, 15:24
Ответы с готовыми решениями:

Приложение, позволяющее вносить и хранить информацию об автомобилях
Разработать приложение позволяющее вносить и хранить информацию о автомобилях (марку, цвет, владельца, телефон владельца, дату...

Программа для учета в ларьке - как хранить информацию
Учу Шарп, для практики хочу написать програмку,нужна помощь в выборе правельных сердств. Програмка впринципе ничего сложно.... О...

Приложение, позволяющее хранить список городов России
Написать приложение, позволяющее хранить список городов России. Внешний вид которого, представлен на рисунке: 1. Создайте массив, в...

6
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.03.2017, 17:07
Цитата Сообщение от pocheto Посмотреть сообщение
Для обеспечения динамической работы с данными их следует программно организовать в виде односвязного списка
По спискам можно здесь посмотреть
Большая коллекция решенных задач
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.03.2017, 17:08
Во-первых, не связывайся с указателями для текстовых полей в структуре, используй массивы char, ещё лучше std::string.
Цитата Сообщение от pocheto Посмотреть сообщение
что мне нужно добавить или изменить
Список нужно создать. В структуру добавить поле next - указатель на следующий элемент. Тем со списками куча. Вот здесь есть про списки: Большая коллекция решенных задач
0
0 / 0 / 0
Регистрация: 08.12.2016
Сообщений: 14
30.03.2017, 20:53  [ТС]
Народ, спасибо за ответы!

Попробовал реализовать все по заданию, вот что получилось.

Попробовал реализовал с меню как и задано в задании. Получилось следующие.

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
#include <cstdlib> 
#include <iostream> 
#include "conio.h" 
using namespace std; 
int main() 
{ 
setlocale(LC_ALL, "rus"); 
// Выбранный вариант меню 
int variant; 
cout << "Выберите вариант\n" << endl; 
cout << "1. Начальное формирование списка\n" 
<< "2. Добавление нового элемента списка\n" 
<< "3. Вывод всего списка на экран в виде таблицы\n" 
<< "4. Упорядочивание списка по полю «ФИО участника\n" 
<< "5. Удаление элементов по значению первичного ключа\n"
<< "6. формирование отчета: итоговое количество участ¬ников по виду спорта, указанному пользователем\n"
<< "7. выйти\n" << endl; 
cout << " >> "; 
cin >> variant;
return variant; 
_getch(); 
struct accounting { //учёт участников олимпиады 
char *surname; 
accounting *next; //ссылка на следующий элемент 
}; 
 
{ 
accounting *head; 
accounting *temp, *h; 
 
head = new accounting; //указатель на голову списка 
head->surname = "Andrey Petrov"; 
 
temp = head; //head настолько важен, что я создаю отдельный указатель "temp" чтобы "не тревожить" (не изменять) "head" (лучше изменять "temp" - дальше в программе) 
 
h = new accounting; 
h->surname = "Vlad Ivanov"; 
h->next = NULL; 
temp->next = h; 
temp = h;//переход по списку 
 
 
h = new accounting; 
h->surname = "Jenya Sidorov"; 
temp->next = h; 
temp = h;//переход по списку 
 
h = new accounting; 
h->surname = "Dima Volkov"; 
h->next = NULL; 
temp->next = h; 
temp = h;//переход по списку 
 
 
//Выводим на экран. 
 
accounting *vuvod = head; 
while (vuvod != NULL) 
{
cout << vuvod->surname << " "; 
 
vuvod = vuvod->next; //переход к следующиму узлу. 
} 
 
cin.get(); // что бы консоль не закрывалась. 
return 0; 
}
Но, при отладке выдает ошибку, что конец файла обнаружен ранее чем левая фигурная скобка "{". Я так и не увидел, где я со скобками накосячил. Не пойму еще как реализовать сортировку по фио и сделать, что бы в виде таблицы выводилось.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.03.2017, 20:57
И почему это всё за пределами mian() оказалось? Указатели убери - я уже говорил об этом.
0
0 / 0 / 0
Регистрация: 08.12.2016
Сообщений: 14
30.03.2017, 21:15  [ТС]
Подскажите мне пожалуйста как связать меню со списком?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
30.03.2017, 22:06
Цитата Сообщение от pocheto Посмотреть сообщение
Подскажите мне пожалуйста как связать меню со списком?
Вот один из возможных вариантов:
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
void InitList()
{
    // .....
}
 
void AddElement()
{
    // .....
}
 
// .....
 
int main()
{
    int variant;
 
    while (true)
    {
        cout << "Выберите вариант\n" << endl;
        cout << "1. Начальное формирование списка\n"
        << "2. Добавление нового элемента списка\n"
        << "3. Вывод всего списка на экран в виде таблицы\n"
        << "4. Упорядочивание списка по полю ФИО участника\n"
        << "5. Удаление элементов по значению первичного ключа\n"
        << "6. формирование отчета: итоговое количество участников по виду спорта, указанному пользователем\n"
        << "7. выйти\n" << endl;
        cout << " >> ";
        cin >> variant;
 
        switch (variant)
        {
            case 1: InitList();    break;
            case 2: AddElement();  break;
            case 3: PrintList();   break;
            case 4: SortByName();  break;
            case 5: RemoveByKey(); break;
            case 6: PrintReport(); break;
            case 7: cout << "Goodbye!\n"; exit(0); break;
            default: cout << "Wrong command! Try again.\n";
        }
    }
}
Это только скелет программы. Самое сложное - реализовать функции InitList(), AddElement() и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.03.2017, 22:06
Помогаю со студенческими работами здесь

Создать визуальное приложение, позволяющее вводить матрицу N×M
Создать визуальное приложение, позволяющее вводить матрицу N×M (размерность задает пользователь) и с помощью функции выводить все её...

Создать оконное приложение, позволяющее вводить с клавиатуры список строк в поле редактора Memo
а затем нажатием кнопки добавить строки, содержащие более 5 символов.

Приложение, позволяющее просматривать информацию о процессе
Нужно создать приложение, позволяющее просматривать информацию о процессе, к системным каталогам Windows. Дополнительные WinAPI функции:...

Определить наименьшее количество комнат, достаточного для размещения участников олимпиады
Олимпиада ***На олимпиаду по информатике прибыли n команд , каждая из которых состоит из ai мальчиков и bi девочек ( i = 1 .. n ) . Для...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru