Advertisement
C_Volume2 Complete Applications #82323

Car Dealership Database Search

This loads a database of cars from a file into an array and searches through them for Make Model Year Price Mileage and Lot... i hope you like it, it is a really cool program.

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
/*
  Name: Robert Cleaver
  Date: 9-7-02
  Prog: CARPRICE.CPP
  Desc: Loads a database file and searches through it.
*/
#include<iostream.h>
#include<iomanip.h>
#include<fstream.h>
#include<conio.h>
#include<lvp/string.h>
#include<ctype.h>
typedef String stype[8];
void StartProg();
char GetSearch();
void LoadDatabase(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter);
void StartSearch(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter, char SearchItem);
void SearchMake(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter);
void SearchModel(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter);
void SearchYear(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter);
void SearchPrice(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter);
int main()
{
	StartProg();
	return(0);
}
void StartProg()
{
	stype Make, Model, Price, Mileage, Lot, Year;
	int Counter;
	char SearchItem;
	clrscr();
	SearchItem = GetSearch();
	Counter = 0;
	LoadDatabase(Make, Model, Year, Price, Mileage, Lot, Counter);
	StartSearch(Make, Model, Year, Price, Mileage, Lot, Counter, SearchItem);
}
void LoadDatabase(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter)
{
	ifstream in_file;
	in_file.open("U:\cars.rdb");
	while (! in_file.eof()) {
		Counter++;
		getline(in_file, Make[Counter]);
		getline(in_file, Model[Counter]);
		getline(in_file, Year[Counter]);
		getline(in_file, Price[Counter]);
		getline(in_file, Mileage[Counter]);
		getline(in_file, Lot[Counter]);
	}
}
char GetSearch()
{
	char MenuItem;
	cout<<"--- Search Menu ---"<<endl;
	cout<<" A. Make"<<endl;
	cout<<" B. Model"<<endl;
	cout<<" C. Year"<<endl;
	cout<<" D. Price"<<endl;
	cout<<" X. Exit"<<endl;
	cout<<"-------------------"<<endl;
	cout<<"Search(A,B,C,D,X): ";
	cin>>MenuItem;
	MenuItem=toupper(MenuItem);
	return(MenuItem);
}
void StartSearch(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int & Counter, char SearchItem)
{
	char SelItem;
	switch (SearchItem) {
	case 'A':
		SearchMake(Make, Model, Year, Price, Mileage, Lot, Counter);
		break;
	case 'B':
		SearchModel(Make, Model, Year, Price, Mileage, Lot, Counter);
		break;
	case 'C':
		SearchYear(Make, Model, Year, Price, Mileage, Lot, Counter);
		break;
	case 'D':
		SearchPrice(Make, Model, Year, Price, Mileage, Lot, Counter);
		break;
	case 'X':
		break;
	default:
		clrscr();
		SelItem = GetSearch();
		SelItem = toupper(SelItem);
		StartSearch(Make, Model, Year, Price, Mileage, Lot, Counter, SelItem);
		break;
	}
}
void SearchMake(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter)
{
	int SearchLoop, Matches;
	String MakeMatch;
	SearchLoop = 0;
	Matches = 0;
	clrscr();
	cout<<"Make: ";
	cin>>MakeMatch;
	clrscr();
	for (SearchLoop = 0; SearchLoop <= Counter; SearchLoop++)
	{
		if (Make[SearchLoop] == MakeMatch)
		{
			cout<<"Make: "<<Make[SearchLoop]<<endl;
			cout<<"Model: "<<Model[SearchLoop]<<endl;
			cout<<"Year: "<<Year[SearchLoop]<<endl;
			cout<<"Price: "<<Price[SearchLoop]<<endl;
			cout<<"Mileage: "<<Mileage[SearchLoop]<<endl;
			cout<<"Lot: "<<Lot[SearchLoop]<<endl;
			cout<<"\n################\n"<<endl;
			Matches = Matches + 1;
		} else if (Matches == 0 && SearchLoop == Counter) {
			cout<<"No matches found in database\n"
			  <<"containing "<<Counter<<" Cars.\n\n"
			  <<"Hit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
		if (Matches != 0 && SearchLoop == Counter)
		{
			cout<<"\n\nHit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
	}
}
void SearchModel(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter)
{
	int SearchLoop, Matches;
	String ModelMatch;
	SearchLoop = 0;
	Matches = 0;
	clrscr();
	cout<<"Model: ";
	cin>>ModelMatch;
	clrscr();
	for (SearchLoop = 0; SearchLoop <= Counter; SearchLoop++)
	{
		if (Model[SearchLoop] == ModelMatch)
		{
			cout<<"Make: "<<Make[SearchLoop]<<endl;
			cout<<"Model: "<<Model[SearchLoop]<<endl;
			cout<<"Year: "<<Year[SearchLoop]<<endl;
			cout<<"Price: "<<Price[SearchLoop]<<endl;
			cout<<"Mileage: "<<Mileage[SearchLoop]<<endl;
			cout<<"Lot: "<<Lot[SearchLoop]<<endl;
			cout<<"\n################\n"<<endl;
			Matches = Matches + 1;
		} else if (Matches == 0 && SearchLoop == Counter) {
			cout<<"No matches found in database\n"
			  <<"containing "<<Counter<<" Cars.\n\n"
			  <<"Hit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
		if (Matches != 0 && SearchLoop == Counter)
		{
			cout<<"\n\nHit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
	}
}
void SearchYear(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter)
{
	int SearchLoop, Matches;
	String MinimumYear, MaximumYear;
	char YearRange;
	//String ModelMatch;
	SearchLoop = 0;
	Matches = 0;
	MinimumYear = "0";
	MaximumYear = "0";
	clrscr();
	cout<<"--- Year Ranges --- "<<endl;
	cout<<"A. 1970-1975"<<endl;
	cout<<"B. 1976-1980"<<endl;
	cout<<"C. 1981-1985"<<endl;
	cout<<"D. 1986-1990"<<endl;
	cout<<"E. 1991-1995"<<endl;
	cout<<"F. 1996-2000"<<endl;
	cout<<"G. 2001-2005"<<endl;
	cout<<"------------------- "<<endl;
	cout<<"Year Range: ";
	cin>>YearRange;
	YearRange=toupper(YearRange);
	switch (YearRange) {
	case 'A':
		MinimumYear="1970";
		MaximumYear="1975";
		break;
	case 'B':
		MinimumYear="1976";
		MaximumYear="1980";
		break;
	case 'C':
		MinimumYear="1981";
		MaximumYear="1985";
		break;
	case 'D':
		MinimumYear="1986";
		MaximumYear="1990";
		break;
	case 'E':
		MinimumYear="1991";
		MaximumYear="1995";
		break;
	case 'F':
		MinimumYear="1996";
		MaximumYear="2000";
		break;
	case 'G':
		MinimumYear="2001";
		MaximumYear="2005";
		break;
	default:
		clrscr();
		cout<<"That year is not available."<<endl;
		cout<<"Hit any key to return to the \"Search\" menu."<<endl;
		getch();
		StartProg();
		break;
	}
	clrscr();
	for (SearchLoop = 0; SearchLoop <= Counter; SearchLoop++)
	{
		if (Year[SearchLoop] >= MinimumYear && Year[SearchLoop] <= MaximumYear)
		{
			cout<<"Make: "<<Make[SearchLoop]<<endl;
			cout<<"Model: "<<Model[SearchLoop]<<endl;
			cout<<"Year: "<<Year[SearchLoop]<<endl;
			cout<<"Price: "<<Price[SearchLoop]<<endl;
			cout<<"Mileage: "<<Mileage[SearchLoop]<<endl;
			cout<<"Lot: "<<Lot[SearchLoop]<<endl;
			cout<<"\n################\n"<<endl;
			Matches = Matches + 1;
		} else if (Matches == 0 && SearchLoop == Counter) {
			cout<<"No matches found in database\n"
			  <<"containing "<<Counter<<" Cars.\n\n"
			  <<"Hit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
		if (Matches != 0 && SearchLoop == Counter)
		{
			cout<<"\n\nHit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
	}
}
void SearchPrice(stype &Make, stype &Model, stype &Year, stype &Price, stype &Mileage, stype &Lot, int &Counter)
{
	clrscr();
	int SearchLoop, Matches;
	SearchLoop = 0;
	Matches = 0;
	String PriceMatch, StartPrice, EndPrice;
	cout<<"*Note* Do not Include commas or dollar signs\n\n";
	cout<<"Starting Price: ";
	cin>>StartPrice;
	clrscr();
	cout<<"*Note* Do not Include commas or dollar signs\n\n";
	cout<<"Ending Price: ";
	cin>>EndPrice;
	clrscr();
	for (SearchLoop = 0; SearchLoop <= Counter; SearchLoop++)
	{
		if (Price[SearchLoop] >= StartPrice && Price[SearchLoop] <= EndPrice)
		{
			cout<<"Make: "<<Make[SearchLoop]<<endl;
			cout<<"Model: "<<Model[SearchLoop]<<endl;
			cout<<"Year: "<<Year[SearchLoop]<<endl;
			cout<<"Price: "<<Price[SearchLoop]<<endl;
			cout<<"Mileage: "<<Mileage[SearchLoop]<<endl;
			cout<<"Lot: "<<Lot[SearchLoop]<<endl;
			cout<<"\n################\n"<<endl;
			Matches++;
		}
		if (Matches == 0 && SearchLoop == Counter)
		{
			cout<<"No matches found in database\n"
			  <<"containing "<<Counter<<" Cars.\n\n"
			  <<"Hit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
		else if (Matches != 0 && SearchLoop == Counter)
		{
			cout<<"Hit any key to return to the \"Search\" menu.";
			getch();
			clrscr();
			StartProg();
		}
	}
}
Original Comments (3)
Recovered from Wayback Machine