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

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

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

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

19.12.2010, 12:49. Просмотров 447. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С использованием очереди за один просмотр файла напечатать элементы (C++):

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

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2010, 12:49
Привет! Вот еще темы с ответами:

За один просмотр файла вывести за алфавитом абитуриентов, которые набрали наименьшее количество баллов - C++
Собственно само задание: Создать файл записей с полями:Фамилия абитуриента, оценки за вступительные экзамены. За один просмотр файла...

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

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

Извлечь из очереди начальные элементы и вывести их значения и новые адреса начала и конца очереди - C++
Дано число N (&gt; 0) и указатели P1 и P2 на начало и конец непустой очереди. Извлечь из очереди N начальных элементов и вывести их значения...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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