Фортран 90 ОТКРЫТЫЙ файл

Я работаю над своим проектом о транзакциях по банковскому счету (снятие, внесение, обналичивание чека и запрос баланса) с использованием «account.txt». Мой ТА сказал, что я должен использовать временный файл. Этот временный файл будет читаться построчно, чтобы найти то, что ищет пользователь. Однако я вообще не понял этот временный ОТКРЫТЫЙ файл. Кто-нибудь объясняет, что это такое, и, если возможно, не могли бы вы приложить пример?

Вот инструкции по проекту: Этот проект посвящен написанию программы для выполнения транзакций по банковским счетам. Вам будет предоставлен файл, который содержит все счета в банке (файл называется «account.txt»). Ваша программа должна предоставить пользователям интерактивное меню для выполнения транзакций по этим счетам. Ваша программа должна обновлять файл учетной записи после каждой транзакции. Пользователь может выполнять транзакции на счетах, которые недоступны. Ваша программа должна вывести сообщение об ошибке на экран и вернуться в меню. Кроме того, ваша программа должна печатать, была ли транзакция успешной. В случае неудачной транзакции ваша программа распечатает причину неудачной транзакции.

Ваша программа должна иметь возможность обрабатывать следующие транзакции:

  • Внести деньги на счет
  • Снять деньги со счета
  • Чек обналичен на счет
  • Запрос баланса счета

Существует ограничение на количество чеков, которые можно обналичить на сберегательный счет. Лимит — 2 проверки в месяц. За каждый чек, обналиченный сверх лимита, взимается штраф в размере 0,25 доллара США. Если средств достаточно для обналичивания чека, но нет штрафа, транзакция должна пройти, и итоговый баланс будет равен нулю.

Вот формат в файле учетной записи для одной учетной записи (поля данных разделены ровно одним пробелом):

Account type, S for saving, C for checking (1 character)
Account number of 5 digits
Last name of account holder (15 characters)
First name of account holder (15 characters)
Balance of the account in the form xxxxx.xxx
An integer field indicating how many checks have been cahsed this month (three digit)
An interest rate in the form of xx.xx (e.g. 10.01 = 10.01%)
For names with fewer than 15 characters, the data will be padded to have width of 15 characters.

Вот пример файла учетной записи:

C 12345 Smith           John              100.000  10  0.00
S 45834 Doe             Jane             3462.340   0  0.30
C 58978 Bond            Jones              13.320   5  0.00

*Создание временного файла В FORTRAN есть способ создать временный файл. Используйте: OPEN(UNIT = , STATUS = "SCRATCH", ...) Нет необходимости предоставлять (ФАЙЛ = ""). Используя временный файл, вы можете скопировать учетные записи из файла учетных записей во временный файл. Затем, когда вы скопируете данные обратно из временного файла в файл учетной записи, выполните необходимые транзакции. Ваша программа не должна копировать учетные записи между этими двумя файлами, если транзакция должна быть неудачной.

Пожалуйста, простите мой английский, я японец.


person Community    schedule 05.04.2009    source источник
comment
Я отредактировал свой вопрос. Спасибо   -  person    schedule 05.04.2009


Ответы (1)


Говорят, что такое утверждение, как:

OPEN (7, ACCESS = 'DIRECT',STATUS = 'SCRATCH')

Вы можете создать временный файл, который будет существовать только до тех пор, пока вы его не закроете, и не будет сохранен на диск. Этому файлу не нужно имя (к нему никогда не будут обращаться по имени), только номер модуля (в моем примере 7).

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

  • Скопируйте все во временный файл
  • If the transaction succeeds, copy the data back to the main file but
    • Omit rows that are to be deleted
    • Добавьте в строки, которые должны быть вставлены

Это помогает?

person MarkusQ    schedule 05.04.2009
comment
Спасибо за ваш ответ. Это мне очень помогает. Во-первых, мне все еще нужно открывать файл account.txt, чтобы сделать это? Если да, нужно ли мне использовать тот же номер UNIT, который используется во временном файле? - person ; 05.04.2009
comment
Да, вам нужно открыть account.txt, но с другим номером объекта. - person MarkusQ; 05.04.2009