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

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

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

Программа предназначена для работы с клиентами.
Есть главный файл (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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2017, 17:19
Ответы с готовыми решениями:

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2017, 17:19

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

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

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


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

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

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