ITD121 Programming Principles 代写

  • 100%原创包过,高质量代写&免费提供Turnitin报告--24小时客服QQ&微信:273427
  • ITD121 Programming Principles 代写

    QUTIC 2017 TP1
    1
    ITD121 Programming Principles
    Second Assignment – Problem Solving Task
    Annual Rainfall
    Weighting 10% - Due date: Week 7, Thursday 13 th April 2017 before midnight
    Trivia: The highest annual rainfall recorded in Australia
    was at Bellenden Ker in North Queensland in 2000 with
    over 12 metres of rain!
    [http://www.ga.gov.au/scientific-topics/national-
    location-information/dimensions/climatic-extremes]
    Specifications
    In this assignment you are to implement a program which will report on some simple aspects
    of (fictional) rainfall data. The main goal of this assignment is to demonstrate the
    manipulation of values stored in an array of arrays, and to use enumeration and Random
    variables competently.
    Each value stored will represent one day's rainfall (in mm) in a particular month. An array of
    arrays (a "jaggered" array) is used (instead of a 2D array) because months don't all have the
    same number of days.
    Functionality
    Your program is to:
     randomly generate fictional rainfall data in millimetres (mm) for each day of the year,
    according to the following rules:
    o the probability of rain falling on any day is 25% (i.e., 1 in 4); and
    o on any day when it does rain, less than 28mm will fall;
     store that data in the supplied 'jaggered' array representing 12 months, with each month
    to be as big as its number of days; (An array populated with the number of days in each
    month has been supplied. )
     output every day's rainfall total for each month;
     on input of a month by the user, output a rainfall report for that month which will consist
    of:
    o the number of days with no rain, and the number of days with rain;
    o the amount of the highest rainfall recorded (on a day) in that month;
    o the day of the month that the highest rainfall fell; and
    QUTIC 2017 TP1
    2
    o the average daily rainfall for rainy days for that month (i.e. excluding days with no
    rain). This value must be displayed to two (2) decimal places.
    See sample screenshots at the end of this document.
    Logistics
    You are to create a VS project called "Annual Rainfall" and add the near empty .cs which has
    been provided as a starting point. You must use this template! Do not change the enum,
    array declarations or method headers in any way.
    There are two method stubs provided, which must be implemented and used as described in
    the XML comments:
    public static void LetItRain(int[][] rainfall) {...
    public static int CountRainyDays(int[][] rainfall, Months month) {...
    Both of these methods must be called by your program.
    In order to test your understanding of arrays, loops and conditions, for this assignment you
    are not permitted to introduce other data structures or collection types to store the data
    other than those in the supplied .cs file. In particular, you are not to use ArrayList or
    List<T>. If you are in doubt, please ask one of the teaching staff.
    You will need to use two Random variables: one for deciding the likelihood of rain falling on
    a particular day and the other for the amount of rain that falls. There are three overloaded
    Random methods (Next), each returning a random number in a specific range depending
    upon the parameter(s) provided, see examples below:
    int number;
    number = randomGen.Next(); // 0 <= number < int.MaxValue
    number = randomGen.Next(100); // 0 <= number < 100
    number = randomGen.Next(1, 100); // 1 <= number < 100
    Initially declare a Random variable and supply a 'seed' (an integer parameter) e.g.:
    Random amountOfRain = new Random(10);
    This ensures that the same random sequence of numbers is produced every time the program
    is run. This enables you to check that the logic of your program is correct using the same data
    every time. Once you are confident that your program works correctly, you can delete the
    seed e.g.:
    Random amountOfRain = new Random();
    Now every run of your program will produce a different sequence of random numbers
    (actually pseudo-random). Note that any integer value can be used as the 'seed'.
    Documentation
    The class must be preceded by an XML comment containing your full name, student id and a
    short overall description of the program. It should be placed between the namespace and
    class declarations.
    QUTIC 2017 TP1
    3
    Each method must be preceded by an XML comment describing its purpose.
    Note that it is not sufficient to simply generate the XML comments and tags. You must add a
    description between each open/end tag pair (e.g. for the summary, param, returns).
    Any non-trivial code should also be commented – but only where it adds value to the
    readability of your solution.
    Assignment Goals
    The assignment problem is straightforward. The solution of the problem will be a C# project
    consisting of a single class which will use programming constructs covered in Lectures 1 to 4
    inclusive. You are free to use any valid C# programming construct, even if it has not been
    covered in lectures - except for the goto statement. You must not add any global variables
    (i.e. those declared outside methods, at the class level).
    Ensure that your code conforms to the Coding Style Guide, available on Blackboard under
    "Assessment".
    Though the code could be written as straight line code, the sheer number of lines would make
    the solution difficult to read, hard to understand, hard to modify and maintain, and much
    more likely to contain logical errors. A straight line code solution will not receive full marks
    even if it fulfils the required functionality.
    As demonstrated in lectures and prac exercises, your Main method should reflect a high level
    algorithm for your entire program. The only statements that will be in Main will be calls to
    methods which you have written or assignment statements for receiving the returned value
    from a method. There are to be NO input or output statements ( (i.e. writing to the screen or
    reading from the keyboard)  in the body of Main.
    You are required to use methods to provide a structure to your solution. Your program should
    consist of only one class containing at least five (5) methods (excluding Main and trivial
    methods such as ExitProgram and Welcome) as demonstrated in Lecture 2. The
    additional methods should be a mixture of value-returning and void methods. There is no
    upper limit on the number of methods used.
    ITD121 Programming Principles 代写
    See the CRA for detailed marking criteria.
    Sub-goals of the assignment are to experience:
     Top-down design & development
     Incremental Development & Incremental Implementation
     Translating simple algorithms into C# code
     More practice writing user defined methods and parameter passing
     The mechanics of editing, compiling (building) and running your program
     Random number generation
     Writing a program which uses input from the keyboard
     Working with array of arrays: storing and accessing data
     Building robust solutions
     Testing your program
    QUTIC 2017 TP1
    4
     Becoming confident and comfortable with programming in the small
    Academic Integrity
    This assignment is for individual assessment only. That means the work you submit must be
    your own work and not the work of anyone else. You are not permitted to collaborate with
    your peers on this assignment, other than to discuss high-level strategies. You are not
    permitted to show your code to (or allow your code to be seen by) another student, or to look
    at another student's code. You are not permitted to ask or commission someone else to write
    the assignment for you (including on-line sources), or help you write the assignment. If you
    are struggling to complete the assignment yourself, please see one of the teaching staff in
    consultation as soon as possible, or talk to them in class.
    If you are in any doubt as to what is permitted and what is considered a breach of academic
    integrity, please ask. QUT treats breaches of academic integrity very seriously, and being
    guilty of same is likely to have consequences that adversely affect the remainder of your
    academic career.
    Electronic Submission
    You will submit your assignment via the link in the Assessment folder on Blackboard (BB)
    before 11.59 pm on the due date. You can submit as many times as you like up to the
    deadline. Your last submission prior to the deadline will be marked.
    It is recommended that you upload your file to Blackboard from a workstation at QUTIC.
    Inability to access Blackboard from home is not a sufficient reason for submitting the
    assignment late or requesting an extension.
    Plan to be finished well before the afternoon of the due date! You should avoid writing all of
    the code in one sitting and then attempt a build (compilation). Remember Incremental
    Development and Incremental Implementation.
    Final Comments
    You must use the supplied .cs file as the starting point of your project. You must not change
    any of the supplied code. The code compiles successfully and runs albeit with no functionality.
    You should ensure that your project always compiles and does something.
    This assignment is not about screen design so do not waste time attempting to produce fancy
    screen output. However, you are free to alter and enrich the output statements, though it
    will not gain any additional marks.
    Hope you enjoy the challenge of working with arrays!
    QUTIC 2017 TP1
    5
    APPENDIX – sample output
    Figure 1: The data randomly generated for each day of each month of the year is displayed,
    under the provided heading (so it's easy to read!). Some days have 0 rain, and other days
    have some rain, displayed in millimetres. Each month has the correct number of days.
    Figure 2: The user has entered "12", and the statistical information is then displayed for the
    12 th month, i.e. December.
    ITD121 Programming Principles 代写