->Homepage
->Schedule
->Courses
-->CS183
-->Tentative Schedule
-->Objectives
-->Quiz 1
-->Lab 1
-->Lab 2
-->Lab 3
-->Lab 4
-->SE281
->Course Policies
->Electronic Submission
->Documentation Standards
->Old Exams
->C++ Examples
->MSVC++ Info
->Software
->Support Forum
->Unix Info
->Nature Photos

[Home]
[Rich][Home][Rich]
[Author]
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.

Last Updated: Thursday, 01-Jan-2015 14:37:37 EST