CA 3 - Grid Generation

An in-class activity assigned Monday, 04/15/2019. Due Wed, Apr. 17 in class or via submission portal

Write a C++ program that allows the user to select an option from the following menus and generates an appropriate grid:

----------------------------------
 WELCOME TO GRID GENERATOR: MENU 1
----------------------------------
Select the format of your grid:
1. Create an n by n grid [square]
2. Create a x by y grid [rectangle]
3. Create a random grid size

----------------------------------
 WELCOME TO GRID GENERATOR: MENU 2
----------------------------------
Select the design of your grid:
1. Points  [.]
2. Stars   [*]
3. Lines   [|]
4. Boxes   [_]
5. Custom  [?]

In-Class Progress

#include <iostream>
using namespace std;

int getDimension(){
  int dimension;
  cout << "Enter a dimension: ";
  cin >> dimension;
  return dimension;
}

void printStars(int x, int y){
  for (int row = 0; row < x; row++){
    for (int col = 0; col < y; col++){
      cout << "* ";
    }
    cout << endl;
  }
}

int main() {
  int format;
  cout << "----------------------------------" << endl;
  cout << "    WELCOME TO GRID GENERATOR     " << endl;
  cout << "----------------------------------" << endl;
  cout << "Select a format: " << endl;
  cout << "1. Create an n by n grid [square]" << endl;
  cout << "2. Create an x by y grid [rectangle]" << endl;
  cout << "3. Create a random sized grid" << endl;
  cin >> format;
  int design;
  cout << "Select a design: "<< endl;
  cout << "1. Stars *" << endl;
  cout << "2. Crosses + " << endl;
  cout << "3. Custom ?" << endl;
  cin >> design;
  cout << "You have selected format #" << format << " and design #" << design << ". " << endl;
  int length; 
  int width;
  switch(format) {
    case 1: // square grid
      length = getDimension();
      width = length;
      break;
    case 2:
      length = getDimension();
      width = getDimension();
      break;
    case 3:
      srand(time(0));
      length = rand() % 11 + 1; // # between 1 & 10
      width = rand() % 11 + 1;
      break;
  }
  switch (design){
    case 1: // Stars
      printStars(length, width);
      break;
  }
}

Sample Transcripts

Showing the generation of a rectangular grid (6 rows, 4 columns) made of ‘boxes’.

/*
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the format of your grid:
1. Create an n by n grid [square]
2. Create a x by y grid [rectangle]
3. Create a random grid size
2
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the design of your grid:
1. Points  [.]
2. Stars   [*]
3. Lines   [|]
4. Boxes   [_]
5. Custom  [?]
4
Enter a dimension: 6
Enter a dimension: 4
----------------------------------
       BOXES GRID (6 x 4)
----------------------------------
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
*/

Showing the generation of a square grid (10 rows, 10 columns) made of ‘points’.

/*
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the format of your grid:
1. Create an n by n grid [square]
2. Create a x by y grid [rectangle]
3. Create a random grid size
1
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the design of your grid:
1. Points  [.]
2. Stars   [*]
3. Lines   [|]
4. Boxes   [_]
5. Custom  [?]
1
Enter a dimension: 10
----------------------------------
       POINTS GRID (10 x 10)
----------------------------------
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
 .  .  .  .  .  .  .  .  .  .
*/

Showing the generation of a grid of randomized dimensions, made using a custom symbol.

/*
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the format of your grid:
1. Create an n by n grid [square]
2. Create a x by y grid [rectangle]
3. Create a random grid size
3
----------------------------------
    WELCOME TO GRID GENERATOR
----------------------------------
Select the design of your grid:
1. Points  [.]
2. Stars   [*]
3. Lines   [|]
4. Boxes   [_]
5. Custom  [?]
5
----------------------------------
       CUSTOM GRID (5 x 8)
----------------------------------
Enter a symbol to denote a cell: R
 R  R  R  R  R  R  R  R
 R  R  R  R  R  R  R  R
 R  R  R  R  R  R  R  R
 R  R  R  R  R  R  R  R
 R  R  R  R  R  R  R  R
 */

Things to Consider

  • Your program should follow the “pretty code” guidelines
  • How can you test that your program will work for most (or perhaps all) cases?
  • Which cases are the exceptions?

Submission Portal: https://forms.gle/Ec2QtmVUrhpmZfog8


© 2020. Some rights reserved.