Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
#1

Работа на 2х сторонний список - C++

05.06.2011, 15:12. Просмотров 315. Ответов 3
Метки нет (Все метки)

Делаю курсач по программированию.
Курсач состоит из меню с вопросами.
Один из пунктов " Алфавитный список". В нем у меня список марок машин и кол-во л.сил сколько приходится на ту или инную машину.
Пример"
Хендаи 122
Ауди 220 и т.д.
А препод попросил сделать 2х сторонний список. Т.е. к примеру
Машинный список располагается по алфавиту,а при нажатии должен от обратного стороиться.
" От А до Я. щелкаем энтер
От Я до А."
Как это сделать есть пару задумок но пока не работают. Прошу помочь натолкнуть на мысль или помочь с кодом.
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
alfalist(struct z* client)
{
int i;
struct sp* nt;
char fio[20];
 
spisok=0;
for(i=0;i<NC;i++)
    vstavka(client,client[i].name);
window(1,1,80,25);
textattr(LIGHTGRAY);
clrscr();
printf("\n    Алфавитный список марок");
printf("\n    ===============================\n");
for(nt=spisok; nt!=0; nt=nt->sled)
        printf("\n %-20s %ld",nt->fio,nt->summa);
 
press();
}
 
 vstavka(struct z* client,char* fio)
{
int i;
struct sp *nov,*nt,*z=0;
for(nt=spisok; nt!=0 && strcmp(nt->fio,fio)<0; z=nt, nt=nt->sled);
if(nt && strcmp(nt->fio,fio)==0) return;
 
nov=(struct sp *) malloc(sizeof(struct sp));
strcpy(nov->fio,fio);
nov->sled=nt;
 
nov->summa=0;
for(i=0;i<NC;i++)
    if(strcmp(client[i].name,fio)==0)
        nov->summa+=client[i].summa;
 
if(!z) spisok=nov;
else z->sled=nov;
 
return;
}
Это естественно вырезка из курсача без массивных данных. Но суть все равно сводится к тому что я не знаю как перестроить код.
Поменять значения сравнения знаков в другую сторону? - Один из доводов
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа на 2х сторонний список (C++):

Как добавить готовый (сторонний) проект в Visual Studio 2012 - C++
Пытаюсь добавить проект в Visual Studio 2012, при компиляции пишет &quot;не удается запустить программу......&quot;. Думаю не стоит объяснять какой...

Работа с очередью, список - C++
Ребята, спасайте! обычно я прихожу сюда с недоделанным кодом/кодом в котором что-то неправильно работает, но тут времени совсем не...

Работа со стеком, список - C++
Ребята, спасайте! обычно я прихожу сюда с недоделанным кодом/кодом в котором что-то неправильно работает, но тут времени совсем не...

Закрыть сторонний процесс - VBA
Добрый день, требуется сделать так, чтоб при определённых обстоятельствах ексель закрывал определённый процесс Set WshShell =...

По умолчанию сторонний поиск - Удаление вирусов
Добрый день у меня аналогичная проблема как и была у Jeff777, не могли бы вы мне помочь &quot;Добрый день! Проблема в следующем не могу...

Завершить сторонний процесс - C#
Возможно ли, что бы программа выключала(убивала) процессы текущих приложений?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
05.06.2011, 16:10 #2
Ну в принципе инверсную сортировку сделать просто, например с помощью swap()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    char ch = 'a';
    int i,j;
    deque<char> sortList(10);    //искомый двусторонний список
    for (i=0; i<10; ++i)        //инициализация от a до j
    sortList[i] = ch++;
    for (i=0; i<sortList.size(); i++) //для проверки выводим 
        cout<<sortList[i];  //изначальное содержимое
    cout<<endl;
    for (i=0,j=9;i<sortList.size()/2;i++,j--) //меняем местами первый и последний
    swap(sortList[i],sortList[j]);      // второй и предпоследний и т.д.
    for (i=0; i<sortList.size(); i++)   //выводим результат
        cout<<sortList[i];
    system("pause");
    return 0;
}
но для этого помоему не обязательно использовать двустороннюю очередь. А если препод хотел что бы использовалась именно она, то нужно использовать то что в ней удобней всего добавляются и удаляются первый и последний элемент.... незнаю надо думать.
0
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
05.06.2011, 16:16  [ТС] #3
спасибо. это натолкнула на мысль одну. попробую пока что)
0
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
06.06.2011, 20:04  [ТС] #4
пробовал в итоге ничего так и не получилось. нужна помощь 8( завтра сдавать. не обязательно данный пример. можно и что-то подобное с работами на список.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 20:04
Привет! Вот еще темы с ответами:

Завершить сторонний процесс - Visual Basic
Столкнулся со следующей проблемой: Открыл из VB файл &quot;C:\Documents and Settings\Евгений\Рабочий стол\День.exe&quot; Как его закрыть из VB...

Добавить сторонний edittext - Программирование Android
Пытаюсь добавить библиотеку showhidepasswordedittext в свой проект. Gradle выдает ошибку сборки. Project gradle // Top-level build...

Запустить сторонний exe - VBA
и уж если можно(очень интересно) - как закрыть Windows? спасибо.

появляется сторонний скрипт - Безопасность
Здравствуйте. Обнаружил сторонний скрипт, указанный на фото. Мой сервер на localhost. Попробовал зайти на localhost через IE -...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.06.2011, 20:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru