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

Цикл - C++

Восстановить пароль Регистрация
 
luciy93
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 10
18.03.2012, 14:59     Цикл #1
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
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
  struct main_file {
    int kc;
    int ku;
    int tn;
    char fio_r[100];
    char fio_f[100];
    char fio_io[100];
    char date[10];
    int output;
    int price;
};
 
int main()
{int P=50;
main_file*b=new main_file[P];
 
setlocale (LC_ALL,".1251");
int k=0;
int g,j;
char qu;
char a[100],d[100];
FILE*f;
 
 
    for (int i=0;i<P;i++)
        {
          cout << "Введите код цеха : "; 
               cin >> b[i].kc; 
               cout << "Введите код участка : ";
               cin >> b[i].ku;
               cout << "Введите табельный номер : ";
               cin >> b[i].tn;
               cout << "Введите ФИО рабочего : ";
               cin.getline(b[i].fio_r,100); 
               gets(b[i].fio_r);
               for(g=0;g<strlen(b[i].fio_r); g++)
               {
               if(b[i].fio_r[g]==' ')
               break;
               a[g] = b[i].fio_r[g];
               }
               a[g] = '\0';
               strcpy(b[i].fio_f,a);
               for(g++,j=0;g<strlen(b[i].fio_r);g++,j++)
                    d[j]=b[i].fio_r[g];
               d[j]='\0';
               strcpy(b[i].fio_io,d);
               cout << "Дата : ";
               cin.getline(b[i].date,10); 
               cout << "Количество выработанных деталей : ";
               cin >> b[i].output;
               cout << "Цена за 1 деталь : ";
               cin >> b[i].price;
 
               k=k+1;
 
                
               f=fopen("main_file.txt","w"); 
               for (int i=0;i<P;++i)
                     fwrite(&b[i],sizeof(b[i]),1,f);
               fclose(f);
 
                cout << "\nДля продолжения нажмите Y, для завершения - N \n \n";
 
                do {
                cin >> qu;
                }
                while (qu!='Y'&&qu!='N');
    
                switch (qu){
                case ('Y'):
                    continue;
                    break;
                case ('N'):
                    break;
                    break;
                }
                
                
        }
Почему-то не происходит досрочное завершение цикла по нажатию N. Подскажите пожалуйста в чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 14:59     Цикл
Посмотрите здесь:

Цикл for C++
цикл for... C++
Цикл for C++
C++ Цикл
цикл While C++
цикл do - while C++
C++ Цикл do while.
C++ Цикл while

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
18.03.2012, 15:14     Цикл #2
Цитата Сообщение от luciy93 Посмотреть сообщение
Почему-то не происходит досрочное завершение цикла по нажатию N. Подскажите пожалуйста в чем проблема?
Потому что

C++
1
2
3
case ('N'):
                                        break;
                                        break;
первый break срабатывает и выходит так сказать с case? в второй break не считывается!

сделай лучше через if() {};

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
#include "StdAfx.h"
#include "conio.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
  struct main_file {
        int kc;
        int ku;
        int tn;
        char fio_r[100];
        char fio_f[100];
        char fio_io[100];
        char date[10];
        int output;
        int price;
};
 
int main()
{int P=50;
main_file*b=new main_file[P];
 
setlocale (LC_ALL,".1251");
int k=0;
int g,j;
char qu;
char a[100],d[100];
FILE*f;
 
 
        for (int i=0;i<P;i++)
        {
          cout << "Введите код цеха : "; 
               cin >> b[i].kc; 
               cout << "Введите код участка : ";
               cin >> b[i].ku;
               cout << "Введите табельный номер : ";
               cin >> b[i].tn;
                           cout << "Введите ФИО рабочего : ";
                           cin.getline(b[i].fio_r,100); 
                           gets(b[i].fio_r);
                           for(g=0;g<strlen(b[i].fio_r); g++)
                           {
                           if(b[i].fio_r[g]==' ')
                           break;
                           a[g] = b[i].fio_r[g];
                           }
                           a[g] = '\0';
                           strcpy(b[i].fio_f,a);
                           for(g++,j=0;g<strlen(b[i].fio_r);g++,j++)
                                        d[j]=b[i].fio_r[g];
                           d[j]='\0';
                           strcpy(b[i].fio_io,d);
                           cout << "Дата : ";
               cin.getline(b[i].date,10); 
                           cout << "Количество выработанных деталей : ";
               cin >> b[i].output;
                           cout << "Цена за 1 деталь : ";
               cin >> b[i].price;
 
                           k=k+1;
 
                            
                           f=fopen("main_file.txt","w"); 
                           for (int i=0;i<P;++i)
                     fwrite(&b[i],sizeof(b[i]),1,f);
                           fclose(f);
 
                            cout << "\nДля продолжения нажмите Y, для завершения - N \n \n";
 
                                do 
                                {
                                    cin >> qu;
                                }
                                while (qu != 'Y' && qu != 'N');
 
 
                                if(qu == 'Y')
                                {
                                    continue;
                                }
                                else if (qu == 'N')
                                {
                                    break;
                                }
        
                              
                                
                                
                }
}
Добавлено через 43 секунды

Не по теме:

P.S код не структурировал

luciy93
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 10
18.03.2012, 15:27  [ТС]     Цикл #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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
cout << "\n \n \n";
    f=fopen("main_file.txt","r"); 
 
    for (int i=0;i<1;++i) {
        cout << "\n\n\t Код\t Код \t Табельный \tФИО \t Дата \t Количество\tРасценка "; 
        cout << " \t цеха\t участка номер \t\tрабочего \t выработанных  за деталь";
        cout << " \t \t \t \t \t \t \t деталей \n";
        cout << "--------------------------------------------------------------------------------";
 
        for (int i=0;i<k;++i) {
            for (int i=0;i<k-1;i++)
            {
                for (int j=1+i;j<k;j++)
                    {   int a,c,d,e,f;
                        char g[10];
                        char l[100];
                        char k[100];
                        if (b[i].kc>b[j].kc)
                        {
                            a=b[i].kc;
                            b[i].kc=b[j].kc;
                            b[j].kc=a;
 
                            c=b[i].ku;
                            b[i].ku=b[j].ku;
                            b[j].ku=c;
 
                            d=b[i].tn;
                            b[i].tn=b[j].tn;
                            b[j].tn=d;
 
                            e=b[i].output;
                            b[i].output=b[j].output;
                            b[j].output=e;
 
                            f=b[i].price;
                            b[i].price=b[j].price;
                            b[j].price=f;
 
                            strcpy(g,b[i].date);
                            strcpy(b[i].date,b[j].date);
                            strcpy(b[j].date,g);
 
                            strcpy(l,b[i].fio_f);
                            strcpy(b[i].fio_f,b[j].fio_f);
                            strcpy(b[j].fio_f,l);
 
                            strcpy(k,b[i].fio_io);
                            strcpy(b[i].fio_io,b[j].fio_io);
                            strcpy(b[j].fio_io,k);
                        }   
 
                        if (b[i].kc!=b[j].kc)
                            continue;
 
                        if (b[i].kc=b[j].kc) {
                            if (b[i].ku>b[j].ku)
                                {
                                    c=b[i].ku;
                                    b[i].ku=b[j].ku;
                                    b[j].ku=c;
                    
                                    d=b[i].tn;
                                    b[i].tn=b[j].tn;
                                    b[j].tn=d;
 
                                    e=b[i].output;
                                    b[i].output=b[j].output;
                                    b[j].output=e;
 
                                    f=b[i].price;
                                    b[i].price=b[j].price;
                                    b[j].price=f;
 
                                    strcpy(g,b[i].date);
                                    strcpy(b[i].date,b[j].date);
                                    strcpy(b[j].date,g);
 
                                    strcpy(l,b[i].fio_f);
                                    strcpy(b[i].fio_f,b[j].fio_f);
                                    strcpy(b[j].fio_f,l);
 
                                    strcpy(k,b[i].fio_io);
                                    strcpy(b[i].fio_io,b[j].fio_io);
                                    strcpy(b[j].fio_io,k);
                                }
 
                                if (b[i].ku!=b[j].ku)
                                    continue;
 
                                if (b[i].ku=b[j].ku) {
                                    if (b[i].tn>b[j].tn)
                                        {
                                                    
                                            d=b[i].tn;
                                            b[i].tn=b[j].tn;
                                            b[j].tn=d;
 
                                            e=b[i].output;
                                            b[i].output=b[j].output;
                                            b[j].output=e;
 
                                            f=b[i].price;
                                            b[i].price=b[j].price;
                                            b[j].price=f;
 
                                            strcpy(g,b[i].date);
                                            strcpy(b[i].date,b[j].date);
                                            strcpy(b[j].date,g);
 
                                            strcpy(l,b[i].fio_f);
                                            strcpy(b[i].fio_f,b[j].fio_f);
                                            strcpy(b[j].fio_f,l);
 
                                            strcpy(k,b[i].fio_io);
                                            strcpy(b[i].fio_io,b[j].fio_io);
                                            strcpy(b[j].fio_io,k);
                                        }
                                }
                        }
                    }
            }
            cout << i+1 << "\t " << b[i].kc << "\t  " << b[i].ku << "\t " << b[i].tn << "\t \t" << b[i].fio_f << "\t" << b[i].date << "\t  " << b[i].output << "\t \t  " << b[i].price << endl;
            cout << "\t\t\t\t   " << b[i].fio_io << "\n \n";
        }
        fclose(f);
    }
Yandex
Объявления
18.03.2012, 15:27     Цикл
Ответ Создать тему
Опции темы

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