-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDESIGN
40 lines (30 loc) · 1.82 KB
/
DESIGN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Fiona Cai, Soojin Choi, Joyce Liao
Description: Typing Test
Technical Design:
Working with files - storing text files that the user can select, maintaining a local scoreboard
Finding information about files - listing the length of available files to let the user choose between short/long practice files
Signals - used to clear all local data of the application
Shared memory - used to store current best score for each level
Semaphores - only one user can modify the leadership board at once
Description of Project:
We are creating a typing helper application in the terminal. Each user enters their name and selects from a list of text files to use for their practice. If the user can’t decide on a file, they can choose the random file chooser, and a random file will be chosen. Once they begin typing, a timer will start and the user will begin typing based on the words displayed from their selected file. Afterwards, their total time and typing speed will be displayed. The user’s statistics will be added to a leadership board, with all previous results displayed as well.
User Interface:
All actions will be performed in the terminal.
Roles: Everyone will be collaboratively working for the most part.
- Fiona:
Start menu and loading the correct text files based on the user’s selection
- Soojin:
Running the timer and calculating scores
- Joyce:
Recording best scores/adding scores to the main scoreboard
Data Structures:
A linked list (structs) for local high score board
Structs for storing username, lesson, and statistics from a typing session
Algorithms Used:
Sorting user statistics for the leaderboard
Random generator for random file chooser
Timeline:
12/28: Finish proposal
1/9: Basic Textfiles and the start-up menu
1/15: Using the timer, recording scores of each text.
1/19: Setting up the score-board and adding scores to it