Advertisement
Guest User

Untitled

a guest
Jul 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 7.49 KB | None | 0 0
  1. * JLU Record Filing Program v0.0.1a
  2. * Description: This program is for entering and displaying data to/from a file on JLU members.
  3.  
  4.  
  5. *23456789       - column numbers
  6.  
  7.        IDENTIFICATION DIVISION.
  8.        PROGRAM-ID.      JLU-Record-Filing.
  9.        AUTHOR.          Dick Stallman.
  10.      
  11.      
  12.      
  13.        ENVIRONMENT DIVISION.
  14.      
  15.      
  16.      
  17.      
  18.        DATA DIVISION.
  19.        
  20.        FILE SECTION.
  21.        
  22.        
  23.        WORKING-STORAGE SECTION.
  24.        
  25.        
  26.         01 Cmd              PIC X.          *> The variable to store command input
  27.                
  28.        
  29.         01 JLU-Member-Database.
  30.             02 Number-Of-Records        PIC 999 USAGE IS BINARY.        *> Number of records to enter
  31.            
  32.             02 Current-User-Number          PIC 999 USAGE IS BINARY VALUE 0.            *> The current user record being entered/displayed
  33.            
  34.             02 JLU-Member-Record OCCURS 0 TO 100 TIMES DEPENDING ON Number-Of-Records INDEXED BY Member-Pointer.        *> Individual records, since OCCURS cannot work with 01/77/66 or 88 level numbers
  35.                
  36.                 03 User-Num         PIC 999 USAGE IS BINARY VALUE 0.        *> Unique number for the current record in the table
  37.                
  38.  
  39.                 03 Second-Life-Data.
  40.                     04 SL-UUID          PIC X(8)-X(4)-X(4)-X(4)-X(12) VALUE "00000000-0000-0000-0000-000000000000".
  41.                    
  42.                     04 SL-First-Name        PIC X(31).
  43.                     04 SL-Last-Name     PIC X(31).
  44.                    
  45.                     04 SL-Birth-Date        PIC 99/99/9999 VALUE "00/00/0000".
  46.                    
  47.                     04 SL-Rank          PIC X(25).          *> Position of power
  48.                    
  49.                     04 SL-Partner.
  50.                         05 SL-Partner-First-Name        PIC X(31).
  51.                         05 SL-Partner-Last-Name     PIC X(31).
  52.            
  53.            
  54.            
  55.                
  56.                 03 Real-Life-Data.
  57.                     04 RL-First-Name        PIC A(20).
  58.                     04 RL-Last-Name     PIC A(20).
  59.                    
  60.                     04 RL-Age           PIC 999.
  61.                    
  62.                     04 RL-Birth-Date        PIC 99/99/9999 VALUE "00/00/0000".
  63.                    
  64.                     04 RL-Occupation        PIC X(25).
  65.                    
  66.                     04 RL-Location.
  67.                         05 Country      PIC X(20).
  68.                         05 State-Prov       PIC X(20).
  69.                         05 ZIP-Postal       PIC X(6).       *> Zip or Postal code
  70.                         05 Street-Address   PIC X(20).
  71.                
  72.        
  73.        
  74.        
  75.             02 Online-Record OCCURS 0 TO 100 TIMES DEPENDING ON Number-Of-Records INDEXED BY Member-Pointer.
  76.            
  77.                 03 Number-Of-Entries    PIC 999 USAGE IS BINARY.
  78.                
  79.                 03 Online-Entry OCCURS 500 INDEXED BY Online-Pointer.
  80.                     04 Date-Logged          PIC 99/99/9999.
  81.                     04 Hours-Online     PIC 999.
  82.                
  83.                    
  84.                
  85.        
  86.        
  87.        
  88.                
  89.  
  90.  
  91.  
  92. * -------------------------------------------------------------------
  93. * MAIN SUBROUTINE
  94. * -------------------------------------------------------------------    
  95.  
  96.      
  97.        PROCEDURE DIVISION.
  98.        
  99.        
  100.         *> Two carriage returns before displaying anything
  101.         DISPLAY "".
  102.         DISPLAY "".
  103.        
  104.        
  105.         PERFORM InputCmd.           *> Ask for input
  106.        
  107.        
  108.         *> DISPLAY UUID OF Second-Life-Data OF JLU-Member-Record(1).
  109.        
  110.         STOP RUN.
  111.        
  112.        
  113.        
  114. * END OF PROGRAM
  115.        
  116.        
  117. * ------------------------------------------------------------------
  118. * SUB-ROUTINES
  119. * ------------------------------------------------------------------
  120.        
  121.        *> InputCmd will ask for a one character long input that performs different commands
  122.        InputCmd.
  123.        
  124.             DISPLAY "Input command: " WITH NO ADVANCING.
  125.             ACCEPT Cmd.
  126.        
  127.             IF Cmd = "i" OR "I"     *> Command for entering records
  128.                 PERFORM EnterRecords
  129.                
  130.             ELSE
  131.            
  132.                 IF Cmd = "d" OR "D"     *> Command for displaying records
  133.                     PERFORM DisplayRecords
  134.                 .
  135.                
  136.                 IF Cmd = "x" OR "X"     *> Command for exiting the program
  137.                     DISPLAY "Exiting...".
  138.                     STOP RUN.
  139.             .
  140.            
  141.            
  142.        
  143.        
  144.        
  145.        *> EnterRecordS will ask all data required for entering a record
  146.        EnterRecords.
  147.             DISPLAY "Enter number of records: " WITH NO ADVANCING.
  148.             ACCEPT Number-Of-Records OF JLU-Member-Database.
  149.            
  150.             DISPLAY "Entering " Number-Of-Records OF JLU-Member-Database " records...".
  151.            
  152.             PERFORM Number-Of-Records OF JLU-Member-Database TIMES
  153.                
  154.                 ADD 1 TO Current-User-Number
  155.                
  156.                 MOVE Current-User-Number OF JLU-Member-Database TO User-Num OF JLU-Member-Record(Current-User-Number)
  157.                
  158.                
  159.                 *> SECOND LIFE DATA
  160.                
  161.                
  162.                 *> Avatar UUID
  163.                 DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Avatar UUID: " WITH NO ADVANCING
  164.                 ACCEPT SL-UUID OF JLU-Member-Record(Current-User-Number)
  165.                
  166.                 *> SL First Name
  167.                 DISPLAY "Entry #" Current-User-Number " -- Enter Second Life First Name: " WITH NO ADVANCING
  168.                 ACCEPT SL-First-Name OF JLU-Member-Record(Current-User-Number)
  169.                
  170.                 *> SL Last Name
  171.                 DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Last Name: " WITH NO ADVANCING
  172.                 ACCEPT SL-Last-Name OF JLU-Member-Record(Current-User-Number)
  173.                
  174.                 *> SL Birthdate
  175.                 DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Birthdate (Format: xx/xx/xxxx): " WITH NO ADVANCING
  176.                 ACCEPT SL-Birth-Date OF JLU-Member-Record(Current-User-Number)
  177.                
  178.                 *> SL Rank
  179.                 DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Rank: " WITH NO ADVANCING
  180.                 ACCEPT SL-Rank OF JLU-Member-Record(Current-User-Number)
  181.                                
  182.                 *> SL Partner
  183.                 DISPLAY "-- Do they have a Second Life Partner? (y/n): " WITH NO ADVANCING
  184.                 ACCEPT Cmd
  185.                
  186.                
  187.                 IF Cmd = "y" OR "Y"
  188.                     DISPLAY "Entry #" Current-User-Number " -- Second Life Partner First Name: " WITH NO ADVANCING
  189.                     ACCEPT SL-Partner-First-Name OF JLU-Member-Record(Current-User-Number)
  190.                    
  191.                     DISPLAY "Entry #" Current-User-Number " -- Second Life Partner Last Name: " WITH NO ADVANCING
  192.                     ACCEPT SL-Partner-Last-Name OF JLU-Member-Record(Current-User-Number)
  193.                    
  194.                 END-IF
  195.                
  196.                
  197.                
  198.                
  199.                
  200.                 *> REAL LIFE DATA
  201.                
  202.                
  203.                 *> RL First Name
  204.                 DISPLAY "Entry #" Current-User-Number " -- Enter Real Life First Name: " WITH NO ADVANCING
  205.                 ACCEPT RL-First-Name OF JLU-Member-Record(Current-User-Number)
  206.                
  207.                 *> RL Last Name
  208.                 DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Last Name: " WITH NO ADVANCING
  209.                 ACCEPT RL-Last-Name OF JLU-Member-Record(Current-User-Number)
  210.                
  211.                 *> RL Age
  212.                 DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Age: " WITH NO ADVANCING
  213.                 ACCEPT RL-Age OF JLU-Member-Record(Current-User-Number)
  214.                
  215.                 *> RL Birthdate
  216.                 DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Birthdate (Format: xx/xx/xxxx): " WITH NO ADVANCING
  217.                 ACCEPT RL-Birth-Date OF JLU-Member-Record(Current-User-Number)
  218.                
  219.                 *> RL Occupation
  220.                 DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Occupation: " WITH NO ADVANCING
  221.                 ACCEPT RL-Occupation OF JLU-Member-Record(Current-User-Number)
  222.                
  223.                 *> RL Country
  224.                 DISPLAY "Entry #" Current-User-Number " -- Enter Country: " WITH NO ADVANCING
  225.                 ACCEPT Country OF JLU-Member-Record(Current-User-Number)
  226.                
  227.                 *> RL State/Province
  228.                 DISPLAY "Entry #" Current-User-Number " -- Enter State/Province: " WITH NO ADVANCING
  229.                 ACCEPT State-Prov OF JLU-Member-Record(Current-User-Number)
  230.                
  231.                 *> RL ZIP/Postal Code
  232.                 DISPLAY "Entry #" Current-User-Number " -- Enter ZIP/Postal Code: " WITH NO ADVANCING
  233.                 ACCEPT ZIP-Postal OF JLU-Member-Record(Current-User-Number)
  234.                
  235.                 *> RL Street Address
  236.                 DISPLAY "Entry #" Current-User-Number " -- Enter Street Address: " WITH NO ADVANCING
  237.                 ACCEPT Street-Address OF JLU-Member-Record(Current-User-Number)
  238.                
  239.                    
  240.                    
  241.                    
  242.                
  243.                
  244.                 DISPLAY ""
  245.                 DISPLAY "Record #" Current-User-Number " Complete!"
  246.                
  247.                
  248.                 *> Display two carriage returns before entering the next record
  249.                 DISPLAY ""
  250.                 DISPLAY ""
  251.                
  252.             END-PERFORM.
  253.            
  254.            
  255.            
  256.            
  257.    
  258.            
  259.            
  260.        
  261.        *> DisplayRecords will display records
  262.        DisplayRecords.
  263.             DISPLAY "Displaying records".
  264.        
  265.        
  266. * EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement