Ask Programming Language Expert

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.

  • Programming Language, Programming

    • Category:- Programming Language
    • Reference No.:- M91564005
    • Price:- $80

    Guranteed 48 Hours Delivery, In Price:- $80

    Have any Question?


    Related Questions in Programming Language

    Assignment - haskell program for regular expression

    Assignment - Haskell Program for Regular Expression Matching Your assignment is to modify the slowgrep.hs Haskell program presented in class and the online notes, according to the instructions below. You may carry out th ...

    Assignment task -q1 a the fibonacci numbers are the numbers

    Assignment Task - Q1. (a) The Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and are characterised by the fact that every number after the first two is the sum of the ...

    Question - create a microsoft word macro using vba visual

    Question - Create a Microsoft Word macro using VBA (Visual Basic for Applications). Name the macro "highlight." The macro should highlight every third line of text in a document. (Imagine creating highlighting that will ...

    Assignmentquestion onegiving the following code snippet

    Assignment Question One Giving the following code snippet. What kind of errors you will get and how can you correct it. A. public class HelloJava { public static void main(String args[]) { int x=10; int y=2; System.out.p ...

    Assignment - proposal literature review research method1

    Assignment - Proposal, Literature Review, Research Method 1. Abstract - Summary of the knowledge gap: problems of the existing research - Aim of the research, summary of what this project is to achieve - Summary of the a ...

    1 write a function named check that has three parameters

    1. Write a function named check () that has three parameters. The first parameter should accept an integer number, andthe second and third parameters should accept a double-precision number. The function body should just ...

    Assignment - horse race meetingthe assignment will assess

    Assignment - Horse Race Meeting The Assignment will assess competencies for ICTPRG524 Develop high level object-oriented class specifications. Summary The assignment is to design the classes that are necessary for the ad ...

    Task silly name testeroverviewcontrol flow allows us to

    Task: Silly Name Tester Overview Control flow allows us to alter the order in which our programs execute. Building on our knowledge of variables, we can now use control flow to create programs that perform more than just ...

    Structs and enumsoverviewin this task you will create a

    Structs and Enums Overview In this task you will create a knight database to help Camelot keep track of all of their knights. Instructions Lets get started. 1. What the topic 5 videos, these will guide you through buildi ...

    Task working with arraysoverviewin this task you will

    Task: Working with Arrays Overview In this task you will create a simple program which will create and work with an array of strings. This array will then be populated with values, printed out to the console, and then, w ...

    • 4,153,160 Questions Asked
    • 13,132 Experts
    • 2,558,936 Questions Answered

    Ask Experts for help!!

    Looking for Assignment Help?

    Start excelling in your Courses, Get help with Assignment

    Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

    Ask Now Help with Problems, Get a Best Answer

    Why might a bank avoid the use of interest rate swaps even

    Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

    Describe the difference between zero coupon bonds and

    Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

    Compute the present value of an annuity of 880 per year

    Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

    Compute the present value of an 1150 payment made in ten

    Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

    Compute the present value of an annuity of 699 per year

    Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As