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

Очередь на основе массива - C++

Восстановить пароль Регистрация
 
kyzavr
 Аватар для kyzavr
2 / 2 / 0
Регистрация: 22.05.2013
Сообщений: 123
26.05.2013, 23:41     Очередь на основе массива #1
Есть код) помогите переделать его под очередь на основе массива =)
еще кто знает как перенести функцию вывода print() в дружественную функцию класса так как сказали мне что тип нельзя сделать как метод класса вывод очереди
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
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <locale.h>
#include <windows.h>
const int NotUsed = system("color F0");
using namespace std;
struct tovar
{ 
 int koll;
 double prise;
 tovar* next;
};
 
class cklad
{
public:
      tovar* begin;
      int bkoll;
      double bprise;
 
cklad(){begin=NULL;}
~cklad(){while(begin)take();}
void add()
      {
        tovar* temp= new tovar,*temp1=begin;
        cout<<"Ââåäèòå êîëè÷åñòâî òîâГ*Г°Г*"<<endl;  
        cin>>temp->koll; 
        cout<<"Ââåäèòå öåГ*Гі òîâГ*Г°Г* "<<endl;
        cin>>temp->prise; 
        temp->next=NULL;
        if(begin)
        {
          while(temp1->next)temp1=temp1->next;
          temp1->next=temp;
        }
        else begin=temp;
      }
void print()
      {
       tovar* temp=begin;
       if(begin)
       {
        cout<<" Êîëè÷åñòâî òîâГ*Г°Г* = "<<temp->koll<<" ГЏГ® öåГ*ГҐ = "<<temp->prise<<endl;
        temp=temp->next;
        while(temp)
        {
          cout<<" Êîëè÷åñòâî òîâГ*Г°Г* = "<<temp->koll<<" ГЏГ® öåГ*ГҐ = "<<temp->prise<<endl;
          temp=temp->next;
        }
        cout<<endl;
       }
       else cout<<"                      ";cout<< "ÑêëГ*Г¤ ГЇГіГ±ГІ"<<endl;  
      }
tovar take()
      {
      
       if(begin)
         {
           tovar* temp,temp1;
           temp=begin;
           temp1=*temp;
           free(temp);
           begin=begin->next;
           
           return temp1;
         }
       else cout<<"                     ";cout<<"ÑêëГ*Г¤ ГЇГіГ±ГІ"<<endl;
       tovar temp1;
       temp1.koll=0;
       return temp1;
      }
 
   
};
void SetColor(int text, int background)
{
        HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
int main()
{
    HWND hwnd;       
    char Title[1024];
    GetConsoleTitle(Title, 1024); // ÓçГ*Г*ГҐГ¬ èìÿ îêГ*Г*
    hwnd=FindWindow(NULL, Title); // ÓçГ*Г*ГҐГ¬ hwnd îêГ*Г*
    MoveWindow(hwnd,300,100,1000,800,TRUE);//xnew,ynew,wnew,hnew -Г*îâûå ïîëîæåГ*ГЁГҐ x,y, øèðèГ*Г* ГЁ âûñîòГ*
setlocale(LC_ALL,"RUS");
int i,fl=1,koll,kolll;
double summ;
cklad cklad1;
struct tovar btovar;
btovar.koll=0;btovar.prise=0;
tovar temp;
while(fl)
 {
    
    cout<<"\n                       ";SetColor(0,7);cout<<" Г€Г*òåðôåéñ "<<endl;SetColor(0,15);
    cout<<"                    ";cout<<"1 äîáГ*ГўГЁГІГј òîâГ*Г°"<<endl;
    cout<<"                    ";cout<<"2 ÏðîäГ*ГІГј òîâГ*Г°"<<endl;
    cout<<"                    ";cout<<"3 Âûâåñòè ñîñòîÿГ*ГЁГҐ Г±ГЄГ«Г*Г¤Г*"<<endl;
    cout<<"                    ";cout<<"0 âûõîä"<<endl;
    cin>>i;
    system("cls");
    if(i==0){fl--;}
    if(i==1){cklad1.add();}
    if(i==2)
    {   summ=0;
        SetColor(0,7);printf("\n Ñêîëüêî ïðîäГ*ГІГј òîâГ*Г°Г*: ");SetColor(0,15);
        scanf("%d",&koll);
        while (koll!=0)
        {
          if(btovar.koll==0)btovar=cklad1.take();
          if(btovar.koll==0){SetColor(3,15);printf("Ãðóñòü ГЇГҐГ·Г*ëü Г*åõâГ*ГІГ*ГҐГІ %d òîâГ*Г°Г*",koll);SetColor(0,15);koll=0;}
          else
          if(btovar.koll>=koll&&koll)
          {
          printf("\n ГЊГ» ïðîäГ*ГҐГ¬ %d òîâГ*Г°Г* ГЇГ® öåГ*ГҐ %lf $ Г*Г* ñóììó=%lf $ \n",koll,btovar.prise,koll*btovar.prise);
          summ+=koll*btovar.prise;
          btovar.koll-=koll;
          koll=0;
            }
            else
            {
            koll-=btovar.koll;
            kolll=btovar.koll;btovar.koll=0;
            printf("\n ГЊГ» ïðîäГ*ГҐГ¬ %d òîâГ*Г°Г* ГЇГ® öåГ*ГҐ %lf $ Г*Г* ñóììó=%lf $ \n",kolll,btovar.prise,kolll*btovar.prise);            
            summ+=kolll*btovar.prise;
            }
           
      }
      SetColor(0,7);printf("\n ГЌГ*  Г®ГЎГ№ГѕГѕ ñóììó=%lf $\n",summ);SetColor(0,15);
    }
 
    if(i==3)
    {
    cout<<" >Гў ðåçåðâå< Êîëè÷åñòâî òîâГ*Г°Г* = "<<btovar.koll<<" ГЏГ® öåГ*ГҐ = "<<btovar.prise<<endl;
    cklad1.print();
    }
 
      
       
 }
    return 0;
}

Добавлено через 4 часа 26 минут
серьезно не кто не знает как эту байду сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 23:41     Очередь на основе массива
Посмотрите здесь:

Очередь на основе массива C++
Очередь на основе STL C++
Очередь на основе массива C++
C++ Очередь на основе статического массива
Очередь на основе динамического массива C++
C++ Очередь на основе массива
Очередь на основе динамического массива. Изучение функций ввода/вывода в программном интерфейсе Win32 C++
C++ "Очередь" на основе динамического массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru