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

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

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

С использованием очереди за один просмотр файла напечатать элементы - C++

19.12.2010, 12:49. Просмотров 417. Ответов 0
Метки нет (Все метки)

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

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
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
struct och {
    char data;
    struct och *next;
};
    struct och *head=NULL, *ends1=NULL;
 
void voch (och **no, och **ko, char x)
{
    struct och *tmp1;
    tmp1 = new struct och;
    tmp1 -> data = x;
    tmp1 -> next = NULL;
    if ((*no)==NULL)
    {
        (*no) = tmp1;
        (*ko) = tmp1;
    }
    else
    {
        (*ko) -> next = tmp1;
        (*ko) = tmp1;
    }
}
 
void izoch (och **no)
{
    och *tmp1;
    if (*no == NULL)
        cout << "ochered' pusta";
    else
    {
        tmp1 = (*no);
        *no = (*no) -> next;
        delete tmp1;
    }
}
void main ()
{
clrscr();
int a,b,i,j,n,imc,ims,m,imz,k,proverka;
char c,sim;
char massiv_chisel[50],massiv_simv[50],massiv_zn[50];
FILE *f1;
ims = 0;
imc = 0;
imz = 0;
j = 0;
k = 0;
i = 0;
proverka = 0;
char chisla[10] = {'1','2','3','4','5','6','7','8','9','0'};
char znak[6]  = {'!','?',',','.',':',';'};
f1 = fopen("f3.dat","r");
while (!feof(f1))
{
    fscanf(f1, "%c", &c); 
    {
    proverka = 0;
        for (j=0; j<strlen(chisla); j++) 
        {
            if (c == chisla[j] && j < 10)
            {
            massiv_chisel[imc] = c;
            imc ++;
            n = imc;
            proverka = 1;
            }
        }
        for (i=0; i<strlen(znak); i++)
        {
            if (c == znak[i] && i < 6)
            {
                massiv_zn[imz] = c;
                imz ++;
                m = imz;
                proverka = 1;
            } 
        }
            if (proverka == 0)  
                {
                massiv_simv[ims] = c;
                ims ++;
                k = ims;
                }       
    }
}
for (ims = 0; ims < k - 1; ims ++)
{
    sim = massiv_simv[ims];
    voch (&head, &ends1, sim);
}
for (imz = 0; imz < m - 1; imz++)
{
    sim = massiv_zn[imz];
    voch (&head, &ends1, sim);
}
for (imc = 0; imc < n - 1; imc ++)
{
    sim = massiv_chisel[imc];
    voch (&head, &ends1, sim);
}
 
while (head != NULL)
    {
    cout<<" " << head -> data;
        izoch (&head);
    }
 
getch();
fclose;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 12:49     С использованием очереди за один просмотр файла напечатать элементы
Посмотрите здесь:

С помощью очереди за один просмотр файла напечатать элементы файла в заданном порядке - C++
Сформировать файл из вещественных чисел и с помощью очереди за один просмотр файла напечатать элементы файла в следующем порядке: сначала...

Используя очередь, за один просмотр файла напечатать все числа, удовлетворяющие условию - C++
Дан файл из вещественных чисел. Используя очередь, за один просмотр файла напечатать сначала все числа, меньшие a, затем все числа из...

Очереди. За один просмотр файла вывести на экран каждое третье слово, а затем каждое четвертое - C++
Помогите студенту сделать задачу на с++, вот условие: Создать файл вещественных чисел за один просмотр файла вывести на экран каждое...

За один просмотр файла сформировать список чисел - C++
В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один просмотр файла сформировать список этих...

За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами - C++
За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами, а с четными увеличить на заданное...

За один просмотр файла выбрать числа из него и посчитать среднее арифметическое - C++
В текстовом файле есть целые числа, записанные через пробел. Может быть и несколько строк. Считывать их только построчно, А результат...

За один просмотр файла без использования сортировки сформировать список чисел упорядоченный по неубыванию - C++
В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один просмотр файла, без использования...

За один просмотр файла, без использования сортировки, сформировать список чисел, упорядоченный по неубыванию - C++
Доброго времени суток! Пытался написать программу, которая без использования сортировки перемещала числа из одного файла в другой и при...

Напечатать все элементы типизированного файла - C++
Напечатать все элементы типизированного файла, каждый элемент файла — отдельное слово. Рассмотреть два варианта: а) известно, что в...

Файлы:Напечатать все элементы типизированного файла - C++
Напечатать все элементы типизированного файла, каждая запись которого - число. Рассмотрим два варианты: 1) известно, что в существующем...

Массив строк в один textbox, по очереди - C++
Есть массив строк, хочу каждую вывести в один текст бокс по очереди, так, чтобы пользователь мог глазами увидеть как происходит перебор...

STL, Queue (в очереди изменить один элемент на другой?) - C++
Реально ли в очереди изменить один элемент на другой? Использовать другую очередь естественно разрешено и не одну, если да - подскажите...


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

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

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