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

ECS 36B

Spring 2023

Homework #4 (5%)

Due: May 17, 11:59 pm

This is a group project involving exactly two students.

For homework 3, you have been asked to design C++ classes to accomplish the following –

The ecs36b lecture on Wednesday, April 12 of 2023 ended at 6 pm in the room 176 of Everson Hall at UC Davis. The instructor took the Unitrans L line from the Silo Station, leaving at 6:10 pm, and the bus driver was a Psychology student named Tiffany. On the same bus, there was another ecs36b student, John. John asked the instructor some questions about homework assignment #2 (using his own computer), before he got off the bus at the 8th and J Street stop at 6:20 pm on the same date. After John being off the bus, the instructor started playing an online game on an Android device. The instructor said “thank you” to the bus driver, Tiffany, before he himself got off at the Moore and Pollock stop at 6:32 pm.

You designed and implemented classes such as Person, Thing (e.g., bus, computer, device, ), GPS (i.e., locations for classroom and the bus stops), Time (e.g., JvTime), and particular Record (when, where, who, and which things) to cover four events --

1. Class room at 6:00 pm

2. Silo station at 6:10 pm

3. 8th and J Street at 6:20 pm

4. Moore and Pollock at 6:32 pm

Part 1 (3%) -- For HW#4, your team will find another team in our class (as a partner) to evaluate each other’s HW3 submission (i.e., design + implementation). The following will need to be submitted (by each team) as the evaluation report of *** NO MORE THAN 2 Pages ***

1. What are the differences between those two designs? The differences might be the design of the classes, the usage of Object-Oriented paradigm for HW3 or anything beyond the basic requirements (or implicit assumptions made). You have a lot of freedom to define differences!

2. Based on the differences, please justify the pros and cons regarding those differences.

3. Both teams (4+ students) will need to have one meeting together (zoom is fine, you decide, but safety first please), and you share with one another regarding your findings and analysis about each other. Then, you will discuss whether you agree or have other thoughts about their findings about yours. Based on that conversation, please write down the key take-away (from the discussion), maybe just 2-4 sentences. You are welcome (if you all agree) to record the discussion (video or audio).

Part 2 (2%) implement the member function JSON2Object (see github mobility)

virtual bool <class_name>::JSON2Object(Json::Value);

Your program from HW3 will produce four Json::Value records, and we will save them in a file in string JSON format. Then, your test program will read the file, create four new Record objects, and then use the JSON2Object virtual member function to fill up the value. Finally, you will call dump2JSON again on those four new Records. The new produced JSONs should be identical to those in the file.

The ecs36b_JSON.cpp, file handling functions, has been provided in github mobility for this homework assignment. Here are a few other requirements (1) each class need to be saved and stored for individual files, *.cpp and *.h. (2) you need to use Makefile with separate rules for each class file. (3) for g++, please use c++14.

For submission via canvas, please follow the steps:

· Create a subdirectory ecs36b_s2023, and then cd ecs36b_s2023. (mkdir, cd)

· Create a subdirectory hw4, and then cd hw4.

· Put all your programs and Makefile under the hw4 directory.

· You should also provide a README file to explain how to run your program.

· cd ..

· tar zcvf ecs36b_s2023_hw4_submission_<your_TEAM_id>.tar.gz hw1

· upload ecs36b_s2023_hw4_submission_<your_TEAM_id>.tar.gz to Canvas

· ONLY one member of the team needs to submit with team name and both student IDs included in the README file.