Set fs script before processing records

Assignment Help Programming Languages
Reference no: EM13889920

Assignment:

Given a file of expense entries of the following form :

,2014-01-06,Food,Aldis,26.76
3048,2014-01-06,Home,Bob's Heating,468

Set FS script before processing records. This is also a good place to set up an array of month names in chronological order. Look at split().

The 1st entry is a charge on a debit card and the second entry is for a written check. Individual fields are comma delimited.

  • 1st field is either a number of or blank.
  • 2nd field is date the date in the form yyyy-mm-dd.
  • 3rd field is a general catagory of expense type such as Food or Utility.
  • 4th field is who check is for.
  • 5th is the amount. Write an awk script that reads the file ~berezin/Data/bank.data and accumulates various sums.

    Your script should sum the amount paid by check and by debit separately. Do this by testing if field 1 is empty (debit) or has numbers in it (check).

    Use an associative array to sum expenses on each catagory type. Use field 3, the expense catagory, as the key to select the array element and use field 5, the amount to be accumulated.

    Also, provide a summery of monthly totals by testing field 2 for the month. The month is the middle 2 digits of field2, so -01- is January, -02- is February, etc. You may use either an associative or indexed array. But when you print out report, give month name.

    See below about using substr and sprintf to cut just the month out of the date field and convert the string to a number.

    Most if not all of the output will be done after all data is processed, so most of the print statements will appear in a END actoin block.

    Tricks :

    Use split to create an array of month names. If you do them in chronological order, they will be indexed in that order.

    Use substr to parse out the "2 digit" month number. This will yield 01, 02, etc. which are strings and not nubmers whch is not exactly correct but close. If you cut carefully, you should get just the 2 digits.

    Use sprintf to convert the convert the string number to a real number. sprintf works like printf except the output can be assigned to a variable rather than going to the screen.

    num = sprintf( "%d", strnum );

    If you take the substring you cut from the date field and run it through sprintf, you will get a real number which can be used to index the monthly cost accumulation.

    You can now use a straight index from 1 to 12 to get both the month's name from the month name array and the costs for that month from the monthly cost array with the same index.

    What your output should look like. Make it look nice, but you can change titles and spacing if you want.

    Checks and debits
    Checks :          9478.67
    Debits :          9867.22
    
    Expenses by catagory
    Insurance         3285.00
    Auto               219.23
    Utility           5189.52
    Health             455.02
    Food              7492.91
    Gas                110.27
    Books              170.90
    Computer            37.24
    Utiity             157.76
    Home              2228.04
    
    Expenses by month
    January           2749.11
    February          1387.66
    March             2054.58
    April             1409.43
    May               1269.69
    June              2413.25
    July              2091.96
    August            2303.77
    September         1269.73
    October           1110.81
    November          1085.27
    December           200.63
    

    If you want to try sorting the catagory section, feel free to do so. The class lecture section on predefine variables has an example on using asorti to work with an associative array's keys in ASCII order.

  • Reference no: EM13889920

    Questions Cloud

    Determining the primary action : Evaluated three scenarios described by determining the primary action(s) that you should take to limit liability and impact on operations; thoroughly specified which ethical theory best supports your decision.
    Demands, along with selling price and material costs : The Morning Brew Coffee Shop sells Regular, Cappuccino, and Vienna blends of coffee. The shop's current daily labor cost is $320, the equipment cost is $125, and the overhead cost is $225.
    Prepare a monthly cash budget for citizens produce co-op : Prepare a monthly cash budget for Citizens Produce Co-op for the quarter ended September 30. Should Citizens Produce anticipate taking out a loan during the quarter? If so, how much should it borrow, and when?
    Focus of future developments in the business : This is a prediction of the focus of future developments in the Business Law course 10 years from the present. It includes how it will apply to a student's current or future career, including rationale, research, and if there are any alternative p..
    Set fs script before processing records : Set FS script before processing records. This is also a good place to set up an array of month names in chronological order - you want to try sorting the catagory section.
    Why might you expect there to be economies of scale : Why might you expect there to be economies of scale in airline transportation? How are the development of hub-and-spoke networks related to economies of scale and scope?
    Describe an example of political tides : Describe an example of political tides having sway over public administration decisions. Is a public administrator who alters his/ her position due to political pressures merely responding to the will of the people or neglecting his/ her duties as..
    Complete the anova table : a)Complete the ANOVA table. b)  What is the multiple standard error of the estimate?c) What is R2?
    What would happen to your biome? : What would happen to your biome?

    Reviews

    Write a Review

    Programming Languages Questions & Answers

      Use perl script on window

    Use Perl script on window to read in all file in a directory and concatenate them in one big file.

      Program to output circle-s radius-diameter-circumference

    Write a program to prompt the user to enter center and a point on circle. Program must then output circle's radius, diameter, circumference, and area.

      Create logic for application to produce report

    Create the logic for application which produces report which lists each event number, host name, validated date, meal code, entrée name, number of guests.

      Design program to accepts account number

    Design a program that accepts an account number, the account owner's first and last names, and a balance. Print the projected running total balance for each year for the next 20 years.

      Write driver class to instantiates-updates flight objects

    Write a driver class called FlightTest whose main method instantiates and updates several Flight objects. Two classes are needed for this project: Flight and FlightTest.

      Analysis of a group of weight measurements

    Prepare a program that takes an input weight and puts the correct value - An analysis of a group of weight measurements involves converting a weight value into an integer category number that is determined as given:

      Create a custom application using eclipse

    Create a custom Application Using Eclipse Android Development

      Define four user-defined exceptions

    You will need to define four user-defined exceptions; one for unknown movies, one for unknown member, one for unknown payment method.

      Program ask user to enter starting amount in savings account

    There is a Savings and a Checking account. Your program should begin by asking the user to enter the starting amount in the checking and savings accounts.

      Create the program uses two arrays to hold employee names

    Create the program which uses two arrays: one to hold employee names and one to hold employee salaries (standard US currency, two decimal points). The program must prompt user to enter employee names.

      Write a function word_counts

    Write a function word_counts that parses the string s into words and returns an array (of arrays of the form [word, count]) representing the frequency of each word. Words are case-insensitive:

      How can the two arrays share the same memory

    This results in the two arrays sharing the same portion of memory. Can you picture this? How can the two arrays share the same memory?

    Free Assignment Quote

    Assured A++ Grade

    Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

    All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd