In: Electrical Engineering
The major advantage of using structs is to make the C++ code simpler, easier to read, and easier to work with. After completing this assignment, students will be able to: • use structs to create and/or introduce new custom data types • implement structs to group fixed numbers of pieces of data of different types • implement structs within structs • chaining using the dot operators to access nested fields • copy an entire structure • create an array of a structured data type • combine structs and arrays with one another Task Description: A Decoration Store Manager wants you to create a program to keep track some of the best-selling items. You are given 4 files: Furnitire.txt, Art.txt, Fabric.txt, and Book.txt. Your task is to create an array of structs for each file to hold the entries. The first line of each file will be a number indicating how many entries are in the file. Furnitire.txt 1. Name 2. Color 3. Amount of Inventory 4. Date Created (month:day:year) 5. Price Art.txt 1. Name 2. Price 3. Amount of Inventory 4. Date Created (month:day:year) 5. Dimensions of Art (height:width:depth) Fabric.txt 1. Name 2. Color 3. Amount of Inventory 4. Price Book.txt 1. Name 2. Hardcover? (1 for yes 0 for no) 3. Amount of Pages 4. Price 5. Amount of Inventory 6. Date Published (month:day:year) Write a C++ program to help the Decoration Store Manager. Create four arrays of structs named Furniture, Art, Fabric, and Book. The size of the array should be read in from the file. Structs should be created to hold the variables that won’t fit a standard data type. The main() function of your program should be very simple. The main function should be a collection of variables declaration and functions call. You will need to use four different functions to read the data from the four files. You can add more functions if you want. You are to give the user the ability to print out each section’s records (Furniture, Art, Fabric, and Book). Do NOT use global variables.
These are the files given:
1) Art.txt
12 WaterColorPainting 25.95 20 07:02:2015 20:20:1 AcrylicPainting 10.22 89 06:15:2014 12:14:1 Photo 2.50 4 06:25:2017 10:10:1 LatexPainting 22.49 11 08:29:2015 18:13:1 PencilDrawing 5.25 56 05:01:2010 12:10:1 ClaySculpture 20.25 16 04:19:2011 12:12:3 GlassSculpture 15.40 40 09:05:2002 4:18:15 PlasticSculpture 2.96 22 05:20:2010 10:10:10 WoodenSculpture 27.89 9 03:11:2016 14:12:4 MetalSculpture 14.65 1 06:24:2013 18:15:7 ConcreteSculpture 3.69 0 03:29:2016 19:28:4 MarbleSculpture 29.99 16 06:15:2013 13:20:7
2) Book.txt
16 PrideandPrejudice 1 209 10.99 10 04:01:2010 ToKillaMockingbird 0 276 10.99 3 03:10:2013 TheGreatGatsby 1 257 7.99 3 06:21:2000 JaneEyre 1 294 10.99 8 06:01:2005 TheCatcherintheRye 1 171 10.99 2 07:06:2006 LittleWomen 0 354 10.99 3 02:26:2008 HuckleberryFin 1 269 7.99 2 02:27:2015 MobyDick 0 278 10.99 1 07:13:2012 AliceinWonderland 1 494 10.99 7 08:17:2015 LordoftheFlies 1 133 10.99 1 06:06:2016 AnimalFarm 1 119 7.99 5 03:22:2015 GreatExpectations 0 287 10.99 9 06:13:2013 1984 0 275 10.99 8 04:14:2017 GreatExpectations 1 360 10.99 7 07:23:2016 Frakenstein 0 146 10.99 3 03:20:2010 TheScarletLetter 1 248 10.99 5 02:28:2014
3) Fabric.txt
10 WoolRug white 10 24.20 NaturalFiberRug red 21 18.65 Drapes brown 15 10.60 DoorMat green 50 21.20 TableMat red 60 5.95 CottonRug white 10 14.26 SyntheticRug blue 15 18.10 PlaceMat brown 26 2.55 ClothNapkins white 18 3.05 Curtains grey 28 12.32
4)
14 Table brown 10 01:16:2000 100.00 Chair black 20 05:14:2006 25.20 Couch brown 5 10:21:2015 325.50 LoveSeat yellow 3 09:08:2011 145.70 RockingChair red 15 06:03:2013 45.60 Desk brown 5 11:10:2004 50.00 Lamp blue 8 12:06:2014 10.95 Light grey 10 06:12:2003 11.00 Bed red 7 07:18:2006 150.00 HighChair white 11 08:22:2007 25.60 FootRest brown 5 08:23:2015 15.95 CoffeeTable white 0 06:25:2016 57.10 BedsideTable black 2 04:23:2015 45.23 Stool brown 25 08:26:2014 20.00
C++ code
#include<iostream>
#include<fstream>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
using namespace std;
struct Furniture
{
char Name[100];
char Color[100];
double Amount;
char Date[100];
double Price;
};
struct Fabric
{
char Name[100];
char Color[100];
double Amount;
double Price;
};
struct Book
{
char Name[100];
int Hardcover;
double Amount_pages;
double Price;
double Amount_Inventory;
char Date_Published[100];
};
struct Art{
char Name[100];
double Price;
int Amount_Inventory;
char Date_Created[100];
char Dimensions_Art[100];
};
int main()
{
struct Art ArtArray[100];
struct Book BookArray[100];
struct Furniture FurnitureArray[100];
struct Fabric Fabricarray[100];
cout<<"\n----------------------------------------"<<endl;
cout<<"\n*** Demonstration of Structure Array
**"<<endl;
cout<<"\n----------------------------------------"<<endl;
cout<<"\n*** Art Structure ****"<<endl;
ifstream artfile,bookfile,furniturefile,fabricfile;
char Name[100];
char Date[100],Dimensions[100];
double price,Amount;
artfile.open("Art.txt");
int i=0,art_length,book_length,FurnitureLength,FabricLength;
while(i<13)
{
if(i==0)
{
artfile>>art_length;
}
else
{
artfile>>Name;
strcpy(ArtArray[i].Name,Name);
artfile>>price;
ArtArray[i].Price=price;
artfile>>Amount;
ArtArray[i].Amount_Inventory=Amount;
artfile>>Date;
strcpy(ArtArray[i].Date_Created,Date);
artfile>>Dimensions;
strcpy(ArtArray[i].Dimensions_Art,Dimensions);
}
i++;
}
artfile.close();
cout<<"\n------------------------------"<<endl;
cout<<"\nName\tPrice\tInventaryAmount\tData\tDimensions"<<endl;
for(int i=0;i<art_length;i++)
{
cout<<ArtArray[i].Name<<setw(20)
<<ArtArray[i].Price<<setw(20)
<<ArtArray[i].Amount_Inventory<<setw(20)
<<ArtArray[i].Date_Created<<setw(20)
<<ArtArray[i].Dimensions_Art<<endl;
}
cout<<"\n-------------------------------"<<endl;
cout<<"\n****** Book Structure *********"<<endl;
cout<<"\n-------------------------------"<<endl;
bookfile.open("Book.txt");
i=0;
while(i<17)
{
if(i==0)
{
bookfile>>book_length;
}
else
{
bookfile>>BookArray[i].Name;
bookfile>>BookArray[i].Hardcover;
bookfile>>BookArray[i].Amount_Inventory;
bookfile>>BookArray[i].Price;
bookfile>>BookArray[i].Amount_pages;
bookfile>>BookArray[i].Date_Published;
}
i++;
}
bookfile.close();
cout<<"Name\t\tHardcpver\t\tAmount\t\tPrice\t\tAmount_pages\t\tDate"<<endl;
for(int i=0;i<book_length;i++)
{
cout<<BookArray[i].Name<<setw(20)
<<BookArray[i].Hardcover<<setw(20)
<<BookArray[i].Amount_Inventory<<setw(20)
<<BookArray[i].Price<<setw(20)
<<BookArray[i].Amount_pages<<setw(20)
<<BookArray[i].Date_Published<<endl;
}
cout<<"\n-------------------------------"<<endl;
cout<<"\n****** Furniture Structure
*********"<<endl;
cout<<"\n-------------------------------"<<endl;
furniturefile.open("Furniture.txt");
i=0;
while(i<15)
{
if(i==0)
{
furniturefile>>book_length;
}
else
{
furniturefile>>FurnitureArray[i].Name;
furniturefile>>FurnitureArray[i].Color;
furniturefile>>FurnitureArray[i].Amount;
furniturefile>>FurnitureArray[i].Date;
furniturefile>>FurnitureArray[i].Price;
}
i++;
}
furniturefile.close();
cout<<"Name\t\tColor\t\tAmount\t\tDate\t\tPrice"<<endl;
for(int i=0;i<book_length;i++)
{
cout<<FurnitureArray[i].Name<<setw(20)
<<FurnitureArray[i].Color<<setw(20)
<<FurnitureArray[i].Amount<<setw(20)
<<FurnitureArray[i].Date<<setw(20)
<<FurnitureArray[i].Price<<endl;
}
cout<<"\n-------------------------------"<<endl;
cout<<"\n****** Fabric Structure
*********"<<endl;
cout<<"\n-------------------------------"<<endl;
fabricfile.open("Fabric.txt");
i=0;
while(i<11)
{
if(i==0)
{
fabricfile>>FabricLength;
}
else
{
fabricfile>>Fabricarray[i].Name;
fabricfile>>Fabricarray[i].Color;
fabricfile>>Fabricarray[i].Amount;
fabricfile>>Fabricarray[i].Price;
}
i++;
}
fabricfile.close();
cout<<"Name\t\tColor\t\tAmount\t\tPrice"<<endl;
for(int i=0;i<FabricLength;i++)
{
cout<<Fabricarray[i].Name<<setw(20)
<<Fabricarray[i].Color<<setw(20)
<<Fabricarray[i].Amount<<setw(20)
<<Fabricarray[i].Price<<endl;
}
return 0;
}
Output:-
*** Demonstration of Structure Array **
----------------------------------------
*** Art Structure ****
------------------------------
Name Price InventaryAmount Data Dimensions
0 0
WaterColorPainting 25.95 20 07:02:2015 20:20:1
AcrylicPainting 10.22 89 06:15:2014 12:14:1
Photo 2.5 4 06:25:2017 10:10:1
LatexPainting 22.49 11 08:29:2015 18:13:1
PencilDrawing 5.25 56 05:01:2010 12:10:1
ClaySculpture 20.25 16 04:19:2011 12:12:3
GlassSculpture 15.4 40 09:05:2002 4:18:15
PlasticSculpture 2.96 22 05:20:2010 10:10:10
WoodenSculpture 27.89 9 03:11:2016 14:12:4
MetalSculpture 14.65 1 06:24:2013 18:15:7
ConcreteSculpture 3.69 0 03:29:2016 19:28:4
-------------------------------
****** Book Structure *********
-------------------------------
Name Hardcpver Amount Price Amount_pages Date
0 0 0 0
PrideandPrejudice 1 209 10.99 10 04:01:2010
ToKillaMockingbird 0 276 10.99 3 03:10:2013
TheGreatGatsby 1 257 7.99 3 06:21:2000
JaneEyre 1 294 10.99 8 06:01:2005
TheCatcherintheRye 1 171 10.99 2 07:06:2006
LittleWomen 0 354 10.99 3 02:26:2008
HuckleberryFin 1 269 7.99 2 02:27:2015
MobyDick 0 278 10.99 1 07:13:2012
AliceinWonderland 1 494 10.99 7 08:17:2015
LordoftheFlies 1 133 10.99 1 06:06:2016
AnimalFarm 1 119 7.99 5 03:22:2015
GreatExpectations 0 287 10.99 9 06:13:2013
1984 0 275 10.99 8 04:14:2017
GreatExpectations 1 360 10.99 7 07:23:2016
Frakenstein 0 146 10.99 3 03:20:2010
-------------------------------
****** Furniture Structure *********
-------------------------------
Name Color Amount Date Price
0 0
Table brown 10 01:16:2000 100
Chair black 20 05:14:2006 25.2
Couch brown 5 10:21:2015 325.5
LoveSeat yellow 3 09:08:2011 145.7
RockingChair red 15 06:03:2013 45.6
Desk brown 5 11:10:2004 50
Lamp blue 8 12:06:2014 10.95
Light grey 10 06:12:2003 11
Bed red 7 07:18:2006 150
HighChair white 11 08:22:2007 25.6
FootRest brown 5 08:23:2015 15.95
CoffeeTable white 0 06:25:2016 57.1
BedsideTable black 2 04:23:2015 45.23
-------------------------------
****** Fabric Structure *********
-------------------------------
Name Color Amount Price
0 0
WoolRug white 10 24.2
NaturalFiberRug red 21 18.65
Drapes brown 15 10.6
DoorMat green 50 21.2
TableMat red 60 5.95
CottonRug white 10 14.26
SyntheticRug blue 15 18.1
PlaceMat brown 26 2.55
ClothNapkins white 18 3.05