Name Matching Project

Verified

Added on  2019/09/16

|5
|1037
|235
Project
AI Summary
This project requires the development of a Python program to match names from two lists: one containing conference attendee names and another with partially decrypted names of potential threats. The program must calculate matching percentages, considering partial matches for specific characters, and generate a CSV report. Additionally, it should print perfect and high-percentage matches to the screen. The project also includes creating a program schedule chart, a detailed algorithm, a test plan, and a flowchart. The program must be compatible with Python 3.4.1 and submitted with all associated documentation.
Document Page
Given the problem statement below, complete the following
Program schedule chart
Detailed algorithm written in English / pseudocode
Test plan
Program that runs correctly In order to receive credit, your code MUST run and complete at least
some of the steps; comment out the code that shows your attempt but does not work
Coding style and comments
o meaningful identifiers, indentation, etc.
o header comment with your name and course info at the top of the file
o comments explaining your code
algorithm as a flowchart
Problem statement
For this program, you are to help US Department of Homeland Security determine potential unwanted
individuals at the next United Nations conference scheduled in New York City. The US office received an
encrypted list of ill-intentioned people who may want to show up to the conference and needs to be able
to match the names on this list to the names of actual attendees. The problem that they are facing is that
they managed to only partially decrypt the names of potential troublemakers. The decryption process is
taking a long time and the conference is about to begin. You need to write a program that matches the list
of partially decrypted names to the names of actual attendees and generate a report that shows matching
percentages between the names on both lists.
While solving this problem, you may not use Python constructs that have not been discussed in class so
far.
Input
You will be given two lists with names: one with all conference attendee names and another with the
partially decrypted names of unwanted individuals. You will need to ask the user running your program
for the specific filenames, but what we do know is that each file will be saved as a txt file, with one name
per file line. All names will be written in uppercase characters and consist of two main parts separated by
one blank character: the first name and the last name.
There are two sample test files provided for you. They are called attendees.txt and
threatlist.txt.
This is the sample run of the beginning of the program (yellow highlighting indicate possible user input):
Enter the name of the file with attendees names: attendees.txt
Enter the name of the file with suspect names: threatlist.txt
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Matching
In order to match a name from the partially decrypted list, you must compare it character by character,
against all of the names on the conference attendee list. For each name on the decrypted list, determine
if there is a match in the list of conference attendees within a certain percentage level. The percentage
levels that will need to be appear in the report are:
Perfect matches
Matches in the range [90, 100)
Matches in the range [80, 90)
Matches in the range [70, 80)
The actual percentage level for two names is calculated as the number of exact character matches, by
position, in the overall length of a string. Matches for the first name are calculated separately from the
matches for the last name, and then added up together. There are also two characters that count as
partial matches:
@ symbol that matches a vowel counts as 0.75 match
$ symbol that matches a consonant counts as 0.5 match
Here are some examples:
Decrypted Name Conference Attendee Percentage
Level
Note
BEN SMITH BEN SMITH 100 Perfect Match
B@N SMITH BEN SMITH [90, 100) 7.75 character match out of 8
B@N $MITH BEN SMITH [90, 100) 7.25 character match out of 8
B@# SM*TH BEN SMITH [70, 80) 5.75 character match out of 8
$%# SMI^H BEN SMITH 4.5 character match out of 8
FRANK SMITH BEN SMITH 5 character match out of 10
BEN SMITH BENJAMIN BLACKSMITH 3 character match out of 18
Output
Your program has to generate a report as a csv file, called matches.csv. The report has to contain all
names that appear on the partially decrypted list, and their percentage matches to actual attendees.
Examine and follow the format of the provided sample output file, matches.csv.
In addition, count and print all perfect and [90, 100) matches to the screen as follows:
**************************************************
> 90% MATCH
Threat: B@N SMITH
Attendee: BEN SMITH
**************************************************
**************************************************
PERFECT MATCH
Threat: BEN SMITH
Attendee: BEN SMITH
**************************************************
**************************************************
Document Page
> 90% MATCH
Threat: @V@ HILL
Attendee: EVE HILL
**************************************************
[90, 100] match count: 3
Flowchart
A flowchart is a graphical representation of an algorithm and two good examples are provided in the
textbook on p. 126 and p. 136. Note that the flowchart elements include a rectangle to indicate
calculations, a diamond to indicate a decision point, and a parallelogram to indicate input/output. You
need to provide a detailed flowchart.
Program Submission
If you want your assignment to be graded, it has to be compatible with our platform, namely Python 3.4.1
The source code is to be called yourNetid_project1.py
On or before the due date, use the link posted in Canvas next to Programming Assignment 1 to submit
your code and all associated documentation. Make sure you know how to do that before the due date
since late assignments will not be accepted. Valid documentation file formats are: doc, docx, rtf, pdf.
Document Page
PROGRAM SCHEDULE
Date Completed
Milestone Planned Actual
Assignment received.
Requirements understood;
detailed specification recorded.
Top level of design complete.
All levels of top-down design complete
Coding complete (clean compile).
Testing planned.
Testing complete.
Program ready to turn in; all
external and internal documentation
complete.
Assignment turned in.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
TEST PLAN
Reason for test case Input values Expected output________________________
chevron_up_icon
1 out of 5
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]