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

CS 120 Final Project

For this project, you will design and implement a large-scale C++ program that incorporates concepts from at least two modules in an interactive and visual project.


Deadlines

• Proposal: due by 11:59pm ET on Tuesday, April 26th.

-  It must list all collaborators.

-  It must detail your plans for this project and how you will satisfy all the requirements below. - Note that you may modify details of your plan as you implement the project. - It must be submitted in    PDF format.

• Project repo and video links: due by 11:59pm on Monday, May 9th.

-  Note that this is the Monday of finals week.


Requirements

• You have the option to work in teams of one to four people.

-  You may reuse code from previous projects (which you must cite in your README file). If you choose to do this, you will be expected to build on the previous projects significantly.

• All of your programming files should be in a private GitHub repository in the course organization.

- Your repository must be named with the convention: Final-Project-netid[-netid2- netid3netid4], where netid is your UVM NetID username.

-  The repository should have a .gitignore file and a README file.

-  In your README file, write all the directions necessary for someone who has never run your program to use it fully. It should include, but is not limited to:

-  the name(s) of the collaborator(s)

-  a summary of the program

-  a description of the concepts used and which modules they came from

-  the operating system(s) you have run the project on

-  any added installations necessary to run the program

-  any citations from code not authored by yourselves or the instructor - what grade you think you deserve and how it satisfies the rubric items

• Your program must use concepts from at least two of Modules 2-4.

-    2: Class relationships (Has-A and Is-A), Abstract classes, overriding methods, polymorphism.

-    3: CLI commands

-    4:  graphics program, Ex: 3d-graphics

• Your program must include some form of user input, and the input must be validated.

• Your program must include at least one visual element (something outside of the console window). This could be a graph, picture, website frontend, graphics window, etc.

• You must test all appropriate nontrivial class methods.

-  It is recommended that you create a separate testing program for this.



• Create a video (10- 15 minutes) of yourself giving a brief overview of the program, including a demo.

-  You can record the video on Microsoft Teams or a different program of your choosing. Instructions to record in Teams are at the bottom of this spec.

-  If you are collaborating on this project, all team members should be present and speak in the demo video.

• Submit both the link to your repository and the link to your video.

-  You can upload your video to OneDrive or a different platform of your choosing in order to obtain a link.

-  If you are collaborating, all team members have to submit.

Topics from the Modules

Module 2: C++ Has-A and Is-A class relationships, polymorphism, I/O streams

Module 3: Command line interface, multiple programming languages

Module 4: C++ Graphics (keyboard and mouse input, integrating with C++ classes)



Grading

Grading for the final project is out of 150 points:

-  10 points are for the proposal.

-  The remaining 140 points are denoted according to the table below.

-  Please note that your project will be graded significantly lower if you do not have a demo video.

(20 pts) Design: Was it well-thought-out? Does the project idea include all of the requirements in ways that make sense?

(50 pts) Execution: Did you accomplish enough to satisfy the requirements? Is your project welldocumented? Does your code have good style?

(20 pts) Usability: Is your program user-friendly? Is it interactive? Does it validate inputs? Is the output clear and readable? Is your program useful, fun, and/or interesting?

(50 pts) Complexity: Is your program robust? Does it contain a lot of functionality or many pieces? Is the scope and size of the project appropriate for a final project in an advanced programming course?


Poor (5 pts)

Fair (10 pts)

Good (20 pts)

Great (35 pts)

Stellar (50 pts)

Design

Did not fulfill all requirements and/or didnt    design the        project well

Missed some requirements and/or had          pieces that didnt make sense

Satisfied all       requirements in ways that make sense

Execution

Program does   not run and/or is minimal

Program runs but doesnt do much, or has

runtime/logic

errors

Program has a  good amount of work put into it, but is unfinished

Program has a minor bug or    two, and/or       some style inconsistencies

Program has no  errors and is       well-documented



Usability

Program is not user-friendly

Program has a    decent amount of functionality but   some minor problems

Program is clear, useful, and          interesting/fun

Complexity

Program is trivial

Program is as

complex as a

guided project

Program is as     complex as a      small openended project

Program is as     complex as a      large openended project

Program is

appropriately

complex for a

final project

How to Create a Video in MS Teams

1)  Go to Calendar.

2)  Click the "Meet now" button.

3)  The name of the meeting defaults to "Meeting with [your name]" but you can edit it. Click the "Start meeting" button.

4)  Now you have options:

• Make sure your audio is on.

•  It’s nice to also have video, if it’s available to you.

• There may also be the option to blur your background or choose a background image. Here’s a chance for creativity.

5)  Click the "Join now" button.

6)  Out of the options across the top of the window, click on the three dots icon for more options. This is where you will find the button to "Start recording".

7)  Click on the "Share content" button (to the right of the audio and video buttons). Choose your share option.

• This will make the Teams window minimize, and you will see a small black box in the corner of your screen. The part of your screen that is being shared is outlined in red.

8)  Once you are finished the demo, click the red hang-up button.

9)  Go to the Chat tab on Teams. There should be a chat there with the name of your meeting. Click on it.

10)When your recording is ready (it doesn’t usually take long), a thumbnail will appear in the chat. Click the three dots in the upper-right corner of the video and choose Open.

11) This will open the video in OneDrive/Sharepoint. Click the Share button in the top left corner.           12)Click the text that says "Only the people you specify who have this link will have access to viewonly"

and change the visibility to "People in University of Vermont with the link". Then click Apply. 13)Click the "Copy link" button. This is the link you should submit for your video.