Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 2
Регистрация: 10.10.2016
Сообщений: 50
1

Задача по теме Работа с файлами

09.07.2017, 17:19. Показов 483. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа предназначена для работы с клиентами.
Есть главный файл (oldmast.txt) он содержит подробную информацию о клиенте номер счета (ключ), имя, кол-во денег или задолжность. Если произошла транзакция (покупка или получение денежных средств), она в носится в файл (trans.txt). В конце каждого делового цикла файл транзакции (trans.txt) вводится в главный файл (oldmast.txt). Таким образом, производится обновление записей заказов и платежей. После того как эти обновления сделаны, главный файл переписывается как новый файл (newmast.txt), который затем используется в конце следующего делового цикла, чтобы произвести процесс обновления.
Исходите из того что каждый файл является файлом последовательного доступа с записями, хранящимися в порядке возрастания номера счета.
Когда имеется пара записей, которые можно сопоставить (т.е. записи с одним и тем же номером счета в главном файле и файле транзакций), прибавьте сумму из транзакций к текущему балансу главного файла и поместить соответствующую запись в файл newmast.txt. (Предположим, что в файле транзакций заказ соответствует положительным денежным суммам, а полученный платеж - отрицательным). Когда для конкретного счета имеется главная запись, но не существует соответствующей записи в файле транзакции, то главная запись просто переносится в файл newmast.txt. Когда есть запись в файле транзакций но нет соответствующей главной записи, программа должна выдавать сообщение "Unmatched transaction record for account number... " (на месте многоточития должен стоять номер счета из записи файла транзакции.


А теперь к вопросам. Не понимаю как правильно все интерпретировать и как представить этот поиск по номеру счета из файла транзакций в главном файле.
Это пока то что получается ( 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
#include <stdio.h>
void function1 (void);
void function2 (void);
void function3 (void);
 
int main ()
{
    int a;
 
    printf ("1 - database record, 2 - enter transactions, 3 - Update the database\n");
    scanf ("%d", &a);
    while (a <= 2)
    {
        switch(a)
        {
            case 1:
            function1();
            break;
            case 2:
            function2();
            break;
            case 3:
            function3();
            break;
        }
    printf ("1 - database record, 2 - enter transactions, 3 - Update the database\n");
    scanf ("%d", &a);
    }
    return 0;
}
 
 
void function1 (void)
{
    int account;
    char name [30];
    float balance;
    FILE *ofPtr;
 
    if  ((ofPtr = fopen ("oldmast.txt", "w")) == NULL)
        printf ("File oldmast.txt could  not be opened\n");
    else
    {
        printf ("Enter the account, name, and balance.\n");
        printf ("Enter EOF to end input.\n");
        printf ("? ");
        scanf ("%d%s%f", &account, name, &balance);
 
        while (!feof (stdin))
        {
            fprintf (ofPtr, "%d %s %.2f\n", account , name, balance);
            printf ("? ");
            scanf("%d%s%f", &account, name, &balance);
        }
        fclose(ofPtr);
    }
}
 
 
void function2 (void)
{
    float costs;
    int account;
    FILE *tfPtr;
    if  ((tfPtr = fopen ("trans.txt", "w")) == NULL)
        printf ("File trans.txt could  not be opened\n");
    else
    {
        printf ("Enter the account and costs.\n");
        printf ("Enter EOF to end input.\n");
        printf ("? ");
        scanf ("%d%f", &account, &costs);
 
        while (!feof (stdin))
        {
            fprintf (tfPtr, "%d  %.2f\n", account , costs);
            printf ("? ");
            scanf("%d%f", &account, &costs);
        }
        fclose(tfPtr);
    }
}
 
void function3 (void)
{
    FILE *nfPtr;
        if ((nfPtr = fopen ("newmast.txt", "w")) == NULL)
            printf ("File newmast.txt could  not be opened\n");
    
}
Добавлено через 19 часов 37 минут
в чем тут ошибка? эта функция должна читать сначала из одного файла строку, потом из другого и сверять их по ключу (account), если первая не равно, то из второго файла (oldmast.txt) читается следующая строчка и т.д, если совпадение найдено то выполняется операция и вписывается в третий файл (newmast.txt).
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
void function3 (void)
{
    int account1, account;
    float costs, balance, a;
    char name [30];
    FILE *ofPtr;
    FILE *nfPtr;
    FILE *tfPtr;
    tfPtr = fopen ("trans.txt", "r");
    ofPtr = fopen ("oldmast.txt", "r");
    nfPtr = fopen ("newmast.txt", "w");
    fscanf (tfPtr, "%d%f", &account1, &costs);
    while (!feof (stdin))
    {
    fscanf (tfPtr, "%d%f", &account1, &costs);
    fscanf (ofPtr, "%d%s%f", &account, name, &balance);
        while (!feof (stdin))
        {
        fscanf (ofPtr, "%d%s%f", &account, name, &balance);
            if (account1 == account)
            {
                a = balance + (costs);
                fprintf (nfPtr, "%d%s%.2f", account, name, a);
            }
        }
    }
    fclose(ofPtr);
    fclose(tfPtr);
    fclose(nfPtr);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2017, 17:19
Ответы с готовыми решениями:

Выручайте, пожалуйста, с задачей по теме Работа с файлами!
Просто в самый последний день получил задание, а мозги после работы не варят до завтрашнего утра...

Напишите пожалуйста программу по теме работа с файлами
Создать файл произвольных символов (символы вводятся с клавиатуры). Вывести в один файл цифры в...

Задача 1 (работа с файлами)
Нужна программа, которая читает произвольный текстовой файл, подсчитывает и печатает кол-во...

Задача на палиндромы(работа с текстовыми файлами)
Всех приветствую.у меня возникла следующая проблема.Не знаю,как убрать знаки препинания в...

0
09.07.2017, 17:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2017, 17:19
Помогаю со студенческими работами здесь

Работа с Ini-файлами, простая задача (считывание)
Помогите сделать так, чтоб выбирая породу из ComboBox (которая берется из Ini файла), выводилась...

задача по теме линзы
оптическая сила линзы 12 дптр определите расстояние от линзы до предмета, если избражение мнимое,...

Задача по теме механика
Диск радиусом R=0,2 м вращается согласно уравнению φ(t) = A+Bt+Ct3, где А=3 рад; В=-1 рад/с; С=0,1...

Задача по теме записи
1. Для работы необходимо создать новое приложение. 2. Объявите тип данных запись, а также...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru