Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ENGR 131: Elementary Computer Programming

Project Description

INTRODUCTION

One of the fundamental activities of scientists and engineers is recording, processing, analyzing, and presenting real-world data.  This is true whether you are measuring muscle activity or analyzing oscillating signals (sound, seismography, etc.). For this project, you will tasked with bringing together the concepts you have learned in the course to design, develop, and implement a graphical user interface (GUI) that can read meteorological data from a file and perform statistical analyses across a span of time selected by a user.

This will be a team activity and you are encouraged to break the effort into separate pieces.  This project will require documentation of your work as described in the Deliverables below.  The project will be due in stages as per ENGR 131 23S-IN-020-04-Z (Course Calendar).  The exact appearance of the GUI, the types of controls you use, and its overall operation are yours to develop, but it must be capable of performing the following functions:

REQUIRED FUNCTIONALITY:

•   Load data from/to a file (CLEWeatherData.mat).

•   A means of selecting the starting and ending years of data to analyze

•   Plot the maximum temperature (Tmax) over the year range set by the user.  The user selects from raw, yearly average (with ± standard deviation), or number of days per year over or under a temperature value entered or selected by the user.  Use red for this plot.

•   Plot the precipitation and snowfall over the year range set by the user.  The user selects from raw, yearly totals, yearly average (with ± standard deviation), or number of days per year over or under a value entered or selected by the user.  Use green and blue for these plots.

•   All plots must have proper titles, labeling, and limits

•   Find and list the five most extreme years based on average Tmax, total precipitation & snow fall.  Have a means for the user to select if they want the highest or lowest extremes.  Show these years in a table.

•   Get all user inputs and plot all results in the GUI

•   Save the plotted data to a .xls file with each type of weather in its own tab.

DELIVERABLES & GRADE BREAKDOWN:

1.   Program flow chart showing (10%):

a.   Functions to be implemented

b.   Variables passed

c.   Team member responsible for developing each function

2.   Plan for GUI including layout of controls and displays ( 10%, does not have to be working a drawing, PowerPoint slide, or non-functional mlapp file is fine)

3.   Functional GUI that can do the following:

a.   Load the data file (2.5%)

b.   Find the rows of the start and end dates for each year in the file (1998 – 2016) (7.5%)

c.   A means for the user to set the start and end years to include in the analysis. (5%)

d.   A means for the user to set the over/under temperature value (2.5%)

e.   Functions to compute:

i.   The yearly temperature average (with standard deviation, 10%)

ii.   The number of days per year over or under a value set by the user (10%)

f.   Plot the raw (daily), average, or number of days over/under temperature over the year range set by the user (7.5%).

4.   Functional GUI that, in addition to D3, can also:

a.   Compute and plot the total, average, and number of days over/under for rain and snow over the year span set by the user (5%).

b.   Find the five highest and lowest extremes for each type of weather and list in a table in the GUI (10%).

c.   Save the data used in the weather plots to an xls file located in the same directory as the GUI file (the current working directory) (10%).

OTHER FACTORS:

Be as efficient with your code as possible, if a process or algorithm is repeated, you should automate it.  The number of lines of functional code (not commenting) you use will be assessed and compared to the solution. Those with substantially more code will be penalized accordingly.  Those with less lines than the solution, will receive bonus credit.

As with all coding assignments in this class, 10% of the final project grade will be assessed on your use of appropriate documentation and commenting. You will be permitted to revise and resubmit each deliverable once for improved credit.  Revisions are due 1 week from their original due date and are to be submitted to the same assignment prompt on Canvas.

TEAM-BASED LEARNING

To prepare you for a career in engineering you will be conducting your design project in teams of four students.  Teams will be assigned using CATME, a validated team building and evaluation system.  Students will use this system to perform peer-reviews of their teammates in order to assess participation.  The outcome of this peer review will scale your final design project grade by 80% to 105%.  Please keep in mind that this scaling can have a substantial impact on your overall final grade, so be sure to keep up with your team.

Revision

Description

Date

A

Original Document

3/ 14/2023