// GenMicroBank.cpp - GENERATE MICROBANK LOAN DATA // // MODULE INDEX // NAME CONTENTS // ErrFun Database error handling function // GenName Generate executive or customer name // Main Main line // // MAINTENANCE HISTORY // DATE PROGRAMMER AND DETAILS // 03-11-03 PFT Original // //----------------------------------------------------------------------------- #include // Standard input/output declarations #include // String manipulation functions #include // Standard library #include // Unix standard library #include // Mathematical functions //----------------------------------------------------------------------------- // GLOBAL DEFINITIONS #define DB_NAME "Microbank" // Database name #define MIN_AMT 100 // Minimum loan amount ($) #define MAX_AMT 1000 // Maximum loan amount ($) #define DLR_SCALE 100.0 // Dollar scale #define N_LOANS 1000000 // Number of loans #define N_EXEC 1000 // Number of executives #define DEL_PROB 0.01 // Executive deletion probability #define NP_LOAN_PROB 0.30 // Non-performing loan probability //----------------------------------------------------------------------------- // EXECUTIVE DATA STRUCTURE typedef struct { int execCode; // Executive code short execDel; // Deleted flag } Exec_t; //----------------------------------------------------------------------------- // DATABASE ERROR HANDLING FUNCTION void ErrFun () { exec sql rollback work; printf ("DB error SQLCODE=%d ", SQLCODE); printf ("errd[1]=%d ", sqlca.sqlerrd[1]); printf ("errm=%s\n", sqlca.sqlerrm); exit (1); } //----------------------------------------------------------------------------- // GENERATE EXECUTIVE/CUSTOMER NAME void GenName ( char *name) // Name buffer { char nam[21]; // Name int namLen; // Name length int i, j; // General purpose indices // Generate last name namLen = (int)(4 + lrand48() % 3); for (i=0; i