CS183 -- Lab 1: Using Existing Classes
Spring 2004
Objectives Addressed
- Understand the rationale for object-oriented design and programming.
- Understand data abstraction and abstract data types.
- Be able to document the design and implementation of small software
systems.
Overview
The purpose of this lab is to design and implement a stand-alone
program that incorporates basic C++ programming concepts. These concepts,
covered in CS-182, are prerequisites for CS-183.
Problem Statement
Write a program that will make use of the LogEntry
class to read in entries from a http log file and indicate the following:
- Number of requests for files over 30KB
- Number of requests occuring between 3pm and 5pm
- Total amount of data served between 3pm and 5pm
- Number of invalid requests (404 status)
- Most popular browser (userAgent that appears most frequently in the
log file)
You should not modify the LogEntry
files, but you will need to add them to your project.
You may not use any global data objects (at file scope).
Notes
- If you have never used the Microsoft Visual C++ compiler, you may want
to take a look at the following CS182
lab assignment for help on how to
create a project workspace in MSVC++.
- You will need to download LogEntry.zip and
add the LogEntry.cpp and
LogEntry.h files to your project.
- You will need to download
03DecPhotos.zip which
contains an http log file
(03DecPhotos.log).
- On very large log files, reading the file can take a significant amount
of time. Some of you may be interested (this is not required) in
experimenting with a fastReader class
(fastReader.h and
fastReader.cpp) that reads lines of
text files significantly faster than the getline function defined
in the string class.
Interim Activity Log (due 11:00pm, the day prior to week 2 lab)
You should submit an activity log to indicate
your activity and progress on this assignment during the first week.
Lab report (due 11:00pm, the day prior to week 3 lab)
Here is a template file to use as a starting point
for this report.
The lab report should consist of the following:
- Your design documentation. (One or two paragraphs describing your
approach to solving the problem. This section should convince me
that you were thinking when you made the decisions that you did about
how to design your program.)
- Your reaction (a couple of paragraphs on what you learned and what you
thought about while working on this assignment)
- Any suggestions you have for how the lab could be improved.
- An activity log indicating how much time you spent on each phase of the
assignment. You should use the format found in the
template XML file and report the time in
the following categories:
- Design
- Coding
- Debug (before you think it's working)
- Test (after you think it's working)
- Writing Report
- Other
- Results of your program when run on the example log file.
- The documented source code
for your program. Do not include the files in
LogEntry.zip or 03DecPhotos.zip.
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 XML help video
and/or 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.
Acknowledgment
This laboratory was developed by Dr. Chris Taylor.
|