Explore BrainMass

2D Array in C to Generate Report for a Service Calls Company

2 dimensional arrays Service Calls Company Report

Service Calls Company Report

The Service Handlers Company handles daily service calls (phone calls) from customers. The company handles clients' problems over the phone. The company needs to generate a a summary on the calls made in a given month.
The data collected is each day's service calls that come in are recorded in a file named SericeCalls.dat.
The data indicates the type of service call made and the number of minutes that service call lasted. The company handles several different kinds of calls and each day there will be several different entries for a given call. The input will be two numbers per line where the first number is the type of service call and the second is the number of minutes that call lasted. Each input line is a record of one service call. There are 25 different types of services rendered that are numbered 1 to 25.
For example:
3 30 service number 3 and lasted 30 min.
21 45 service number 21 lasted 45 min.
6 28 service number 6 lasted 28 min.
The company can handle up to 25 different kinds of services. The input file is one month of data.
You are to count the number of service calls for each type of service and the number of minutes the call took.
The report should have in it the following information.
• The report should have a title and headings.
• Output for each type of service call rendered,
• the total number of that service call handle for the month,
• the total number of minutes spent on that type of service call,
• the average number of minutes each service type took to handle,
• the overall average a service calls took for the month.
• You must use a 2-D array, pass array, and use functions.
Your 2-D array use the row number as the type of service call (1-25) (you can ignore row 0 so your 2-D array will have 26 rows, 1 to 25 and row 0 not used), column 0 as the accumulated times for the given service call, column 1 that count the times the given kind of service call (count the calls for service call 1, call 2 ... call 25 that was used in the given month), col 2 for the average for each service call made for the month.


Solution Preview

// main.c
// ServiceCalls

#include <stdio.h>
#define SERVICE 25
#define COL 3

int read_calls(float arr[SERVICE+1][COL])
FILE *fp = NULL;
int i=0,j=0;
//Open file to read the calls information
fp = fopen("/tmp/ServiceCalls.txt", "r");
if (!fp)
printf("Error opening file");

Solution Summary

The solution is a C program file which shows how to
a) define and pass a 2D array from one function to another
b) how to read space separated column of numbers from a file into a 2D array
c) how to accumulate a running total based on a category or service type (in this instance)
d) how to tally a counter or create a frequency table (e.g., histogram) of an event, i.e., the number of times a category appears in the data file
e) how to calculate a running average using the above information for different categories of event