COBOLの知識を使って実際に役立つシステムの構築を学びます。実際の業務に活かせるプロジェクトを通して、COBOLの利便性を理解し、スキルを深めることが目標です。ここでは、小規模な銀行システムを例に取り上げ、口座管理および取引履歴の処理を行うシミュレーションを行います。また、既存システムとのインターフェースの作成方法についても触れ、COBOLを使ったシステム連携の基本的な考え方を学びます。
4.1 小規模な銀行システム:口座管理および取引履歴の処理
このセクションでは、銀行の基本的な業務である「口座管理」と「取引履歴の処理」をシミュレートします。このシステムは、以下のような構成を持ちます:
- 口座管理:口座の開設、削除、残高確認の機能を提供します。
- 取引履歴管理:入出金履歴の記録と照会が可能です。
4.1.1 データ構造
まず、必要なデータ構造を定義します。銀行システムの基本的なデータ構造として、「顧客情報」、「口座情報」、「取引履歴」の3つを定義します。
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 CUSTOMER-ID PIC 9(5).
05 CUSTOMER-NAME PIC X(30).
05 CUSTOMER-ADDRESS PIC X(50).
FD ACCOUNT-FILE.
01 ACCOUNT-RECORD.
05 ACCOUNT-ID PIC 9(5).
05 CUSTOMER-ID PIC 9(5).
05 ACCOUNT-BALANCE PIC 9(9)V99.
FD TRANSACTION-FILE.
01 TRANSACTION-RECORD.
05 TRANSACTION-ID PIC 9(5).
05 ACCOUNT-ID PIC 9(5).
05 TRANSACTION-TYPE PIC X(1). *> "D" for deposit, "W" for withdrawal
05 TRANSACTION-AMOUNT PIC 9(9)V99.
05 TRANSACTION-DATE PIC 9(8). *> YYYYMMDD format
4.1.2 プログラムの流れ
プログラムの流れとして、主に以下のプロセスを実装します。
- 口座の開設:新規に顧客情報を入力し、口座情報を登録します。
- 入金と出金:指定された口座に対して、入金または出金の処理を行います。
- 残高照会:口座番号を指定して、現在の残高を確認します。
- 取引履歴の表示:特定の口座の取引履歴を照会します。
4.1.3 各プロセスの実装
1. 口座開設
顧客IDがすでに存在するかをチェックし、存在しない場合に新規口座を作成します。
PROCEDURE DIVISION.
OPEN OUTPUT CUSTOMER-FILE
MOVE "1" TO CUSTOMER-ID
MOVE "田中 太郎" TO CUSTOMER-NAME
MOVE "東京都千代田区1-1-1" TO CUSTOMER-ADDRESS
WRITE CUSTOMER-RECORD
CLOSE CUSTOMER-FILE
DISPLAY "口座が作成されました。"
2. 入金・出金処理
口座に対する入金または出金の処理を行います。口座残高のチェックを行い、処理可能な場合のみ更新します。
PROCEDURE DIVISION.
OPEN I-O ACCOUNT-FILE
MOVE "1" TO ACCOUNT-ID
READ ACCOUNT-FILE RECORD KEY IS ACCOUNT-ID
IF TRANSACTION-TYPE = "D"
ADD TRANSACTION-AMOUNT TO ACCOUNT-BALANCE
MOVE "入金完了" TO TRANSACTION-MESSAGE
ELSE IF TRANSACTION-TYPE = "W"
IF ACCOUNT-BALANCE >= TRANSACTION-AMOUNT
SUBTRACT TRANSACTION-AMOUNT FROM ACCOUNT-BALANCE
MOVE "出金完了" TO TRANSACTION-MESSAGE
ELSE
MOVE "残高不足" TO TRANSACTION-MESSAGE
END-IF
END-IF
WRITE ACCOUNT-RECORD
CLOSE ACCOUNT-FILE
DISPLAY TRANSACTION-MESSAGE
3. 残高照会
口座IDを指定して残高を照会するプロセスです。
PROCEDURE DIVISION.
OPEN INPUT ACCOUNT-FILE
MOVE "1" TO ACCOUNT-ID
READ ACCOUNT-FILE RECORD KEY IS ACCOUNT-ID
IF NOT END-OF-FILE
DISPLAY "現在の残高: " ACCOUNT-BALANCE
ELSE
DISPLAY "口座が見つかりません。"
END-IF
CLOSE ACCOUNT-FILE
4. 取引履歴の表示
特定の口座に対する取引履歴を表示するプロセスです。
PROCEDURE DIVISION.
OPEN INPUT TRANSACTION-FILE
MOVE "1" TO ACCOUNT-ID
PERFORM UNTIL END-OF-FILE
READ TRANSACTION-FILE NEXT
AT END MOVE "Y" TO END-OF-FILE
IF TRANSACTION-RECORD-ACCOUNT-ID = ACCOUNT-ID
DISPLAY "取引種別: " TRANSACTION-TYPE
DISPLAY "取引額: " TRANSACTION-AMOUNT
DISPLAY "取引日: " TRANSACTION-DATE
END-IF
END-PERFORM
CLOSE TRANSACTION-FILE
4.2 COBOLと他システムの連携
実務においては、COBOLで作成されたシステムが他の言語やプラットフォームのシステムと連携するケースも多くあります。ここでは、COBOLが他のシステムとインターフェースする一般的な方法を紹介します。
- ファイルによるデータ交換:テキストファイルやCSVファイルを介してデータをやり取りする手法。
- メッセージキュー:データをリアルタイムでやり取りするためにメッセージキューを使う方法(例:IBM MQ)。
- データベース連携:RDBMSに接続し、SQLを使用してデータを取得する方法。
ファイルによるデータ交換の例
他のシステムとの連携方法の一例として、CSV形式のファイルを用いたデータ交換のプロセスを紹介します。
OPEN OUTPUT CSV-FILE
MOVE "1,田中 太郎,東京都千代田区1-1-1" TO CSV-RECORD
WRITE CSV-RECORD
CLOSE CSV-FILE
DISPLAY "CSVファイルにデータを書き込みました。"
まとめ
この章では、銀行システムを例にCOBOLプログラムの実装方法を詳細に解説しました。これにより、COBOLで基本的なシステムを開発する力が身についたでしょう。また、他システムとのインターフェースについても学ぶことで、実務における応用力がさらに広がります。次の章では、この知識を活かしてさらに高度なシステム連携の方法に触れていきます。
初心者におすすめ!プログラミングスクールのススメ
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学の挫折率、驚きの87.5%!
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
有料と無料、スクールの違いは?
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
- 受講条件が異なる
- 学べるスキルやカリキュラム内容が異なる
- 就職や転職のサポート内容が異なる
どちらが自分に合っているか、よく考えて選ぶのが大事です。
サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
- 未経験者向けのわかりやすいカリキュラム
- 経験豊富なエンジニアのサポート
- オンラインで自分のペースで学習可能
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
終了後は副業もサポート!
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓