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

Текстовые файлы (На основе таблицы, содержащей данные об услугах, оказываемых компьютерной фирмой написать программу) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ двухмерные массивы (Сформулировать вектор) http://www.cyberforum.ru/cpp-beginners/thread783960.html
Дан массив А(n,n).Сформулировать вектор B(k) из a(i,j)<0. На печать вывести исходный массив, полученный вектор и его размерность.
C++ Матрица. Заменить нулями все ее элементы, расположенные на главной диагонали и выше ее 2. Дана действительная квадратная матрица порядка 6. Заменить нулями все ее элементы, расположенные на главной диагонали и выше ее. Заранее благодарен! http://www.cyberforum.ru/cpp-beginners/thread783956.html
Найти сумму всех элементов матрицы, расположенных ниже главной диагонали C++
Дан массив A(n,n) найти сумму всех его элементов, расположенных ниже главной диагонали Название темы должно отражать ее суть
Начало программирования на C++ C++
Всем доброго времени суток. Сразу прошу прощения за тавтологию, знаю, что подобных вопросов куча, но я так и не смог найти для себя что-то нужное (плохо искал, наверное). Суть — хочу научиться процедурному программированию на C++. Имею навыки кодинга в паскале, делфи, в общем, базовые навыки программирования имеются. Хочу освоить более перспективный ЯП, но проблема в том, что не получается. На...
C++ Формирование нового списка или из pascal -> с++ http://www.cyberforum.ru/cpp-beginners/thread783924.html
Добрый вечер всем! Друзья помогите пожалуйста решить задачу на языке С++. Комп содержит записи, состоящие из трех полей: 1) фамилия 2) год рождения 3) соц положение (1- крестьянин 2-рабочий 3-интелегент). Прога должна сформировать новый список записей из 2-х полей. 1) фамилия 2) год рождения в которые войдут ТОЛЬКО КРЕСТЬЯНЕ. Вот задача) Попробывал ее решить на паскале вроде получилось....
C++ Инстанцирование шаблонного класса Уважаемые форумчане! Помогите в не сложном, как я полагаю, для Вас вопросе. Имеется шаблонный класс-контейнер оформленный в виде модуля (два файла: файл интерфейса "name.h" и файл реализации "name.cpp"). При его использовании нужно каждый раз лезть в его файл реализации "name.cpp" и вбивать туда явное инстанцирование на те типы данных, с которыми данный класс-контейнер будет ... подробнее

Показать сообщение отдельно
ruspat
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 24
11.02.2013, 16:55     Текстовые файлы (На основе таблицы, содержащей данные об услугах, оказываемых компьютерной фирмой написать программу)
Само задание: На основе таблицы, содержащей данные об услугах, оказываемых компьютерной фирмой (название услуги, её стоимость, налог на добавленную стоимость(6%), срок выполнения)
написать программу, которая вводит эту информацию и печатает следующие данные: таблицу, расположив названия услуг в порядке неубывания их срока выполнения.
(Т.е. файл с входными данными имеет вид | услуга | стоимость | ндс | срок |)

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

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
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <Windows.h>
 
struct usluga {
    char nazvanie[10];
    float stoimost;
    float nds;
    int srok;
};
 
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    FILE *in, *out;
    int kolichestvo, i=1, flag;
    usluga *tablica, temp;
    char strend;
 
    in = fopen ("in.txt", "r");
    out = fopen ("out.txt", "w");
 
    if ((in = fopen ("in.txt", "r")) != NULL)
    {
        while (!feof (in))
        {
            fscanf (in, "%c", &strend);
            if (strend == '\n')
                i++;
        }
 
        kolichestvo = i;
        tablica = new usluga[kolichestvo];
 
        fclose (in);
        in = fopen ("in.txt", "r");
 
        i = 0;
        while (!feof (in))
        {
            fscanf (in, "%s", &tablica[i].nazvanie);
            fscanf (in, "%f", &tablica[i].stoimost);
            tablica[i].nds = tablica[i].stoimost * 0.06;
            fscanf (in, "%d", &tablica[i].srok);
            i++;
        }
    }
 
    else
    {
        printf ("\n Ошибка!");
        getch();
        return 0;
    }
 
    do
    {
        flag = 1;
        for (i = 0; i < kolichestvo - 1; i++)
            if (tablica[i].srok > tablica[i+1].srok)
            {
                flag = 0;
                temp = tablica[i];
                tablica[i] = tablica[i+1];
                tablica[i+1] = temp;
            }
    } while (!flag);
 
    for (i = 0; i < kolichestvo; i++)
        fprintf (out, "%s\t%.2f\t%.2f\t%d\n", tablica[i].nazvanie, tablica[i].stoimost, tablica[i].nds, tablica[i].srok);
    
    printf ("\n Успешно");
 
    getch();
    fclose (in);
    fclose (out);
    delete [] tablica;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru