CS285 -- Lab 4: Email Search

-->Quiz 1
-->Lab 1
-->Lab 2
-->Lab 3
->Lab 4
-->Lab 5
-->Lab 6
->Electronic Submission
->Old Exams
->C++ Examples
->MSVC Info
->STL Help
->Book Errata
->Tentative Schedule
->Support Forum
->Course Policies


Fall 2002

Objectives Addressed

  • Understand and apply complex data structures and algorithms.
  • Use appropriate algorithms (and associated data structures) to solve complex problems.
  • Have a thorough understanding of the Standard Template Library.
  • Be able to use data structures in software design and implementation.
  • Be able to apply the STL in software design.


In this lab, you will write a program to allow advanced searches through an email file.


You are required to design, implement, and test a program that will will read in one or more email files and perform advanced searches on the email messages. You should be able to search based on any and/or all of the following:

  • Sender's email address
  • Limit the date range (search only messages sent between XX-XX-XXXX and YY-YY-YYYY
  • Keyword phrase with support for boolean AND or OR, e.g.,
    • "constructor" should return all messages with constructor in the body of the message.
    • ".cpp AND .h" should return all messages with both .cpp and .h somewhere in the body of the message.
    • ".cpp OR .h" should return all messages with either .cpp or .h (or both) somewhere in the body of the message.
  • Case sensitive or insensitive searches

The search results should be displayed using the "Message summary" format from the Message class developed in lab 2. The user should then be able to select one of these messages and display the entire contents of the message. Note You may wish to take a look at the last lab assignment since design decisions you make now may impact your ability to complete the final lab in a timely manner.

Lab report (due 11:00pm, the day prior to week 8 lab)

Your report should include:

  • A discussion of how you approached the problem. This should contain a sufficient level of detail to convince your instructor that you were thinking as you worked on this assignment.
  • The Documented source code for your program.
  • Sample program output.
  • A brief description of any problems you encountered or questions you have regarding the lab.
  • A discussion of how you worked together as a team.
  • A summary of your activity log indicating how much time you spent on the assignment (following the template provided in the lab4.xml template document). Please use the following categories:
    • Design
    • Coding
    • Debug (before you think it's working)
    • Test (after you think it's working)
    • Documentation
    • Other
  • Any suggestions you have for how the lab could be improved.

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic submission guidelines. (You may wish to consult the sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost. It may be wise to keep a diskette backup as well.

IMPORTANT NOTE: Be sure to save your program for future use. We will be using this assignment in next week's lab assignment.

Your grade will depend on quality of design, clarity of code and documentation, as well as whether your program produces the correct results. If you have any questions, consult your instructor.

© 2001-2002 Dr. Christopher C. Taylor Office: CC-27C Phone: 277-7339 Last Updated: Wed Jul 3 16:24:25 2002
I am responsible for all content posted on these pages; MSOE is welcome to share these opinions but may not want to.