Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a program that simulates an image viewer application. The program should allow typical viewer functionalities such as viewing an image, its previous image, its

Write a program that simulates an image viewer application. The program should allow typical viewer functionalities such as viewing an image, its previous image, its next image, slideshow, compress image, delete image... To do that, the program creates a doubly linked list of Images sorted by their names (ascending order of image names).

Each Image has two pointers to an Image, previous and next, and other private attributes as summarized below:

string name; // includes path

double size; // in Kbytes

string format; // jpg, bmp, png

string resolution; // 1024x1024, 640x480, 3376x6000

Image * previous; // pointer to previous Image node

Image * next; // pointer to next Image node

The class ImageViewer has the following private attributes:

Image * head; // pointer to list head

Image * current; // pointer to current node being viewed. It is initialized to NULL // and is updated as new images are viewed/deleted

ImageViewer has at least one constructor, one destructor, and the following member functions:

? void addImage(string iName, double iSize, string iFormat, string iResolution)

This function creates a new Image and initializes its data to iName, iSize, iFormat, and iResolution. The function then inserts the new Image into the list while maintaining the list order.

? void viewImage(string iName)

This function displays the details of the image whose name matches iName. The function should update the current pointer to point to this Image. If no such Image exists, an error message must be displayed.

? void viewNextImage()

This function updates the current pointer to point to the next image in the list, if there is any, and then displays its details. If the current image is the last element in the list, the current pointer should not be updated and a message should be displayed that this is the last image.

? void viewPreviousImage()

This function updates the current pointer to point to the previous image in the list, if there is any, and then displays its details. If the current image is the first element in the list, the current pointer should not be updated and a message should be displayed that no previous image exists.

? void deleteCurrentImage()

This function deletes the current image. It also updates the current pointer to point to either its previous image, next image if there is no previous image, or NULL if the list becomes empty.

? void compressCurrentImage (double ratio)

This function compresses the current image. Its new size becomes the product of its old size and the compression ratio.

? void slideshow()

This function traverses the list and prints the details of all images in order.

? void reverseSlideshow()

This function traverses the list and prints the details of all images in reverse order (backwards).

? void processTransactionFile()

This function reads a set of commands from the transaction file and executes the corresponding member functions.

After designing your Image and ImageViewer classes, you need to write the following in your main program:

int main()

{

ImageViewer viewer;

viewer.processTransactionFile( );

return 0;

}

A sample transaction file is shown below. You may use it to test your code: addImage C:/Users/Mayssaa/CS211/HW4/roadtrip 3840 jpg 3376x6000

addImage C:/Users/Mayssaa/CS211/HW4/graduation 4370 jpg 60003376

addImage C:/Users/Mayssaa/CS211/HW4/family 3330 jpg 24004240

addImage C:/Users/Mayssaa/CS211/HW4/party 373 jpg 9601280

addImage C:/Users/Mayssaa/CS211/HW4/car 1770 jpg 24483264

addImage C:/Users/Mayssaa/CS211/HW4/beach 302 jpg 20481365

addImage C:/Users/Mayssaa/CS211/HW4/mountains 243 png 1280798

addImage C:/Users/Mayssaa/CS211/HW4/baby 960 png 1024746

addImage C:/Users/Mayssaa/CS211/HW4/selfie 257 bmp 512512

addImage C:/Users/Mayssaa/CS211/HW4/faces 80.7 jpeg 717558

addImage C:/Users/Mayssaa/CS211/HW4/random 299 jpeg 537400

addImage C:/Users/Mayssaa/CS211/HW4/summer 257 bmp 512512

slideshow

viewImage car

viewNextImage

viewPreviousImage

viewPreviousImage

compressCurrentImage 0.8

viewPreviousImage

deleteCurrentImage

viewPreviousImage

viewNextImage

viewNextImage

viewNextImage

viewNextImage

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications 19th International Conference Dexa 2008 Turin Italy September 2008 Proceedings Lncs 5181

Authors: Sourav S. Bhowmick ,Josef Kung ,Roland Wagner

2008th Edition

3540856536, 978-3540856535

More Books

Students also viewed these Databases questions