Code:
#include <iostream.h>
#include <lvp\random.h>
#include "h:\utility.h"
//-------------------------------------------------------
int dealcard()
{
 	return(random(10)+1);
}
//-------------------------------------------------------
int printcards(int temp)
{
   if(temp==10)
       cout<<"J ";
   if(temp==11)
       cout<<"Q ";
   if(temp==12)
       cout<<"K ";
   if(temp!=10&&temp!=11&&temp!=12)
       cout<<temp<<" ";
	return temp;
}
//-------------------------------------------------------
int dealuser()
{
 	char hit;
 	int numcards=2;
 	cout<<"Welcome to Black Jack!"<<endl<<endl;
 	cout<<"Your Cards: ";
 	int cardcount, card, sumcards=0;
 	for (cardcount=0; cardcount<numcards; cardcount++)
   {
  		card=dealcard();
      sumcards+=card;
      printcards(card);
 	}
 	start:
 	cout<<endl<<"Would you like another card (Y/N)?: ";
 	cin>>hit;
 	while ((hit!='n')&&(hit!='N'))
   {
  		if((hit!='n')&&(hit!='N'))
      {
   		card=dealcard();
   		sumcards+=card;
         printcards(card);
         cout<<"="<<sumcards;
   		if(sumcards>21)
         cout<<" Bust!"<<endl;
   		if(sumcards>21)
    		break;
      	goto start;
  		}
  		else
   		cout<<" ";

 	}
 	return(sumcards);
}

//--------------------------------------------------------
int dealcomputer()
{
	int numcards=2;
	cout<<"Computer Cards: ";
	int cardcount, card, sumcards=0;
	for (cardcount=0; cardcount<numcards; cardcount++)
   {
		card=dealcard();
		printcards(card);
		sumcards+=card;
	}
	computerhit:
	if(sumcards<=17)
	{
		card=dealcard();
		cout<<endl<<"Computer: ";
		printcards(card);
		sumcards+=card;
   }
	if(sumcards<=17)
		goto computerhit;
	else
		cout<<" ";
	cout<<"="<<sumcards;
	if(sumcards>21)
	cout<<" BUST!";
	return(sumcards);
}
//---------------------------------------------------------
int findwinner(int usersum, int computersum)
{
	const int limit=21;
	if ((usersum==computersum) || ((usersum>limit)
	&& (computersum>limit)))
		return(0);
	else if ((computersum>limit) || ((usersum>computersum)
	&& (usersum<=limit)))
		return(1);
	else
		return(2);
}
//---------------------------------------------------------
void reportresult(int result)
{
	if (result==0)
		cout<<endl<<"A draw!\n";
	else if (result==1)
		cout<<endl<<"You win!\n";
	else
		cout<<endl<<"Computer wins!\n";
}
//---------------------------------------------------------
int playgame()
{
	int usersum=dealuser();
	int computersum=dealcomputer();
	int winner=findwinner(usersum, computersum);
	reportresult(winner);
	return(winner);
}
//---------------------------------------------------------
void updatecount(int result, int &wins, int &losses, int &draws)
{
	if (result==0)
		draws++;
   else if (result==1)
		wins++;
	else
		losses++;
}
//---------------------------------------------------------
char askrepeat()
{
	char answer;
	cout<<endl;
	cout<<"Would you like to play again? (Y/N)?";
	cin>>answer;
	while ((answer!='Y')&&(answer!='y')&&(answer!='N')&&(answer!='n'))
   {
		cout<<"Answer Y or N please: ";
		cin>>answer;
		cout<<endl;
   }
	return(answer);
}
//---------------------------------------------------------
void report(int wins, int losses, int draws)
{
	cout<<"Your wins = " <<wins<<endl;
	cout<<"Computer wins = " <<losses<<endl;
	cout<<"Draws = " <<draws<<endl;
}
//---------------------------------------------------------
int main()
{
	randomize();
	int wins=0, losses=0, draws=0;
	char answer;
	do{
		int result;
		result=playgame();
		updatecount(result, wins, losses, draws);
		answer=askrepeat();
	}while((answer!='N')&&(answer!='n'));
	report(wins, losses, draws);
	return(0);
}