亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch1.cpp

?? Essential C++ sample code for VC++ 6.0
?? CPP
字號:
/**************************************************
 * Essential C++ -- Stanley Lippman
 * Addison-Wesley 
 * ISBN 0-201-48518-4
 * homepage: www.objectwrite.com
 * email: slippman@objectwrite.com
 *************************************************/

#include "ch1.h"

pvec Fibonacci_gen_elems( int pos ) 
{ 
	static vector<unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.empty() )
       { _elems.push_back( 1 ); _elems.push_back( 1 ); }

    if ( _elems.size() < pos )
	{
		    int ix = _elems.size();
			int n_2 = _elems[ ix-2 ], 
				n_1 = _elems[ ix-1 ];

			int elem;
			for ( ; ix < pos; ++ix ){
				    elem = n_2 + n_1; 
					_elems.push_back( elem );
					n_2 = n_1; n_1 = elem;
			}
	 }

	 return &_elems;
}  

   
pvec Pell_gen_elems( int pos )    
{ 
	static vector< unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.empty() )
       {  _elems.push_back( 1 ); _elems.push_back( 2 ); }

    if ( _elems.size() < pos )
	{
		    int ix = _elems.size();
			int n_2 = _elems[ ix-2 ], 
				n_1 = _elems[ ix-1 ];

			int elem;
			for ( ; ix < pos; ++ix ){
				    elem = n_2 + 2 * n_1; 
					_elems.push_back( elem );
					n_2 = n_1; n_1 = elem;
			}
	 }

	 return &_elems;
}
   
pvec Lucas_gen_elems( int pos ) 
{    
	static vector<unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.empty() )
       {  _elems.push_back( 1 ); _elems.push_back( 3 ); }

    if ( _elems.size() < pos )
	{
		    int ix = _elems.size();
			int n_2 = _elems[ ix-2 ], 
				n_1 = _elems[ ix-1 ];

			int elem;
			for ( ; ix < pos; ++ix ){
				    elem = n_2 +  n_1; 
					_elems.push_back( elem );
					n_2 = n_1; n_1 = elem;
			}
	 }

	 return &_elems;
}    
   
pvec Triangular_gen_elems( int pos ) 
{
	static vector<unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.size() < pos )
	{
		int ix = _elems.size() ? _elems.size()+1 : 1;
		for ( ; ix <= pos; ++ix )
			  _elems.push_back( ix*(ix+1)/2 );
	}

	return &_elems;
}

pvec Square_gen_elems( int pos ) 
{
	static vector<unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.size() < pos )
	{
		int ix = _elems.size() ? _elems.size()+1 : 1;
		for ( ; ix <= pos; ++ix )
			  _elems.push_back( ix*ix );
	}

	return &_elems;
}   
    
pvec Pentagonal_gen_elems( int pos ) 
{
	static vector<unsigned int> _elems;

	if ( ! check_integrity( pos ))
		 return 0;

    if ( _elems.size() < pos )
	{
		int ix = _elems.size() ? _elems.size()+1 : 1;
		for ( ; ix <= pos; ++ix )
			  _elems.push_back( ix*(3*ix-1)/2 );
	}

	return &_elems;
}

pfunc gen_elems[] = 
{ 0,
  Fibonacci_gen_elems,
  Pell_gen_elems,
  Lucas_gen_elems,
  Triangular_gen_elems,
  Square_gen_elems,
  Pentagonal_gen_elems
};

const char *name_seq[] = { "Invalid Sequence",
   "Fibonacci", "Pell", "Lucas",
   "Triangular", "Square", "Pentagonal"
};

int level_size[] = { 8, 8, 32, 128, 512 };

const char* wrong_msg[] = {
 "Oops! Nice guess but not quite it.",
 "Hmm. Sorry. Wrong again.",
 "Ah, this is harder than it looks, isn't it?",
 "It must be getting pretty frustrating by now!"
};

void display_statistics( user_profile *puser )
{
	cout << "Game Statistics for " << puser->name << "\n\t"
		 << "# guesses: " << puser->guesses << "\n\t"
		 << "# correct: " << puser->correct << "\n\t"
		 << "% correct: " 
		 << (static_cast<float>( puser->correct ) / static_cast<float>( puser->guesses )) * 100 << endl;
}

bool greet_user( user_profile *puser )
{
      cout << "Hi. What's your name? ";

	  string nm;
	  cin >> nm;

	  if ( nm.empty() || nm[ 0 ] == ' ' ){
		   cout << "ok. I guess you don't want to play. See ya!\n";
		   return false;
	  }

	  cout << "Hi, " << nm
		   << " Would you like to play Guess the Sequence? (y/n) ";

	  char ch;
	  cin >> ch;

	  if ( ch != 'y' && ch != 'Y' ){
		   cout << "ok. I'm sorry you don't want to play.\n";
		   return false;
	  }

	  cout << "\n\n" << "Hey, that's great, " << nm << ".\n"
		   << "We'll start in just a moment.\nIt\'s simple, really!\n"
		   << "I will print out two elements of a sequence\n"
		   << "You just answer with the element value that comes next!\n\n";

	  cout << "Oh, by the way, do you consider yourself a\n\t"
		   << "beginner     -- enter 1\n\t"
		   << "intermediate -- enter 2\n\t"
		   << "advanced     -- enter 3\n\t"
		   << "guru         -- enter 4\n\t" << endl;

	  int level;
	  cin >> level;

	  if ( level < 1 || level > 4) level = 4;

	  init_user( puser, nm, level );
	  return true;
}

void print_seq( user_profile *puser )
{
	for ( int i = 0; i < puser->cur_seq_vec->size(); ++i )
		  cout << (*puser->cur_seq_vec)[i] << ' ';
	cout << endl;
}

void display_seq( user_profile *puser )
{
	pvec p = seq_vec( puser ); 
	cout << "The first two elements of the series are: "
		 << (*p)[ puser->pos-3 ] << ", " << (*p)[ puser->pos-2 ] 
		 << "\nWhat is the next element? ";
}

void set_up_index( user_profile *puser )
{
	static string wherefrom( "set_up_index" );

	// randomly pick a position within the sequence
	puser->pos = rand() % ( level_size[ puser->level ] );

	// position represents 
	if ( puser->pos < 3 ) puser->pos += 3;
	
	set_seq_vec( puser, (*gen_elems[ puser->cur_seq ])( puser->pos ));
	trace( wherefrom, "new position: ", puser->pos );
}

void reset_seq( user_profile *puser )
{
	static string wherefrom( "reset_seq" );

	int new_seq = gen_seq_id( reinterpret_cast<unsigned int>( puser ));
	if ( new_seq == puser->cur_seq )
		 new_seq = new_seq < ns_cnt ? new_seq+1 : 1;

	puser->cur_seq = static_cast<num_sequence>( new_seq );

	set_up_index( puser );

	print_seq( puser );
	trace( wherefrom, "new sequence: ", name_seq[ puser->cur_seq ]);
}

void init_user( user_profile *puser, const string& nm, int level )
{
	static string wherefrom( "init_user" );

	puser->name = nm;
	puser->guesses = 0;
	puser->correct = 0;
	puser->level = level;

	reset_seq( puser );

    trace( wherefrom, nm, puser->cur_seq, level );
}	

bool correct_guess( user_profile *puser, int guess )
{
	pvec p = seq_vec( puser ); 
	if ( guess == (*p)[ puser->pos-1 ] )
		 return true;
	return false;
}

void play_game( user_profile *puser )
{
	bool next_seq  = true;      // show next sequence?
    bool go_for_it = true;      // user wants to guess?
    bool got_it    = false;     // user guessed correctly?
	int  num_tries;				// number of tries per sequence

    while ( next_seq == true )
	{
		num_tries = 0;
	    display_seq( puser );
        while (( got_it == false ) &&
               ( go_for_it == true ))
        {
             unsigned int usr_guess;
			 cin >> usr_guess;

              if ( correct_guess( puser, usr_guess ))
			  {
				  bump_correct( puser );
				  got_it = true;
				  cout << "Hey, most excellent! \n\t"
					   << usr_guess << " is element # "
					   << puser->pos << " of the " 
					   << name_seq[ puser->cur_seq ] << " sequence.\n";
			  }
			  else 
			  {
				  bump_guess( puser );
                  cout << wrong_msg[ num_tries < ns_wrong_msg ? num_tries : ns_wrong_msg-1 ]
					   << " Would you like to try again? (y/n) ";

                  char usr_rsp;
				  cin >> usr_rsp;
 
                  if ( usr_rsp == 'N' || usr_rsp == 'n' )
                       go_for_it = false;
				  else { ++num_tries; cout << "Your next guess? "; }
			  }
        } 

        cout << "Want to try another sequence? (y/n) ";
        char try_again;
        cin >> try_again;

        if ( try_again == 'N' || try_again == 'n' )
             next_seq = false;
		else { got_it = false; reset_seq( puser ); }
	}
} 



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区久久婷婷| 久久久久久久久免费| 国产精品伦一区| 国产成人激情av| 国产网站一区二区三区| 国产精品影视在线观看| 久久精品网站免费观看| caoporen国产精品视频| 亚洲精品日韩专区silk| 精品视频1区2区| 免费在线观看一区二区三区| 精品久久久久一区| 国产高清一区日本| 亚洲日本在线a| 欧美乱妇一区二区三区不卡视频| 首页国产欧美日韩丝袜| 亚洲精品一区二区三区福利| 国产精品一二三四五| 亚洲欧洲日韩综合一区二区| 欧洲在线/亚洲| 精品午夜久久福利影院| 国产精品久久久久一区二区三区 | 精品理论电影在线| 国产成人免费高清| 亚洲综合免费观看高清完整版在线 | 5月丁香婷婷综合| 久久精品国产久精国产| 中文av字幕一区| 欧美日韩综合色| 黄色资源网久久资源365| 亚洲三级在线观看| 91精品午夜视频| 成人激情文学综合网| 五月天一区二区| 日本一区二区免费在线| 欧美网站大全在线观看| 精品无人区卡一卡二卡三乱码免费卡| 国产精品国模大尺度视频| 欧美日韩久久久久久| 国产91清纯白嫩初高中在线观看 | 午夜精品成人在线视频| 国产偷国产偷亚洲高清人白洁| 欧美视频一区在线观看| 福利视频网站一区二区三区| 婷婷开心激情综合| 亚洲欧洲精品成人久久奇米网| 欧美一级精品大片| 欧美系列日韩一区| 成人中文字幕合集| 久久99精品久久久久| 一区二区三区视频在线观看| 久久青草欧美一区二区三区| 欧美日韩国产经典色站一区二区三区 | 色妞www精品视频| 激情综合色综合久久| 欧洲av一区二区嗯嗯嗯啊| 国产传媒久久文化传媒| 亚洲精品乱码久久久久久| 欧美精品一区二区在线观看| 欧洲亚洲精品在线| 99免费精品视频| 国产成人精品www牛牛影视| 久久狠狠亚洲综合| 亚洲成人一二三| 一区二区在线观看av| 中文字幕一区二区三区四区| 久久色中文字幕| 欧美一级片免费看| 欧美电影在哪看比较好| 欧美三级视频在线播放| 在线国产亚洲欧美| 一本到三区不卡视频| 99re热这里只有精品视频| 国产黄色精品网站| 国产大陆亚洲精品国产| 国产精品国模大尺度视频| 亚洲综合区在线| 中文字幕欧美一区| 国产精品国模大尺度视频| 国产日韩在线不卡| 国产嫩草影院久久久久| 国产亲近乱来精品视频| 久久人人97超碰com| 久久久久国色av免费看影院| 久久青草欧美一区二区三区| 久久综合久久综合久久综合| 久久久久久久久岛国免费| 久久久精品人体av艺术| 日本一区二区视频在线观看| 久久久久9999亚洲精品| 中文字幕免费观看一区| 亚洲欧美在线视频观看| 悠悠色在线精品| 亚洲成av人片在线| 蜜臀国产一区二区三区在线播放| 美女视频黄免费的久久 | 麻豆免费精品视频| 美腿丝袜亚洲综合| 国内一区二区在线| 成人午夜视频网站| 色婷婷综合久色| 欧美精品久久一区二区三区| 日韩一级片在线观看| 久久亚洲二区三区| 亚洲色图另类专区| 日韩精品国产精品| 国产福利精品一区| 色婷婷久久久亚洲一区二区三区 | 91精选在线观看| 久久久九九九九| 亚洲色图丝袜美腿| 美女精品一区二区| 成人动漫一区二区| 欧美肥妇毛茸茸| 久久精品人人做人人爽97| 国产精品久久久久久久久免费相片| 亚洲专区一二三| 韩国欧美一区二区| 在线观看成人小视频| 精品噜噜噜噜久久久久久久久试看| 国产精品每日更新在线播放网址| 午夜精品久久久久久久99水蜜桃| 国产一区二区三区免费观看| 欧美xxxxx裸体时装秀| 久久一区二区三区四区| 亚洲精品成人天堂一二三| 美女尤物国产一区| 色综合久久88色综合天天6| 3751色影院一区二区三区| 国产精品青草综合久久久久99| 亚洲一二三级电影| 国产成人精品综合在线观看| 亚洲精品一区二区精华| 一区二区三区精品久久久| 国模少妇一区二区三区| 欧美日韩在线观看一区二区| 日本一区免费视频| 久久99精品视频| 欧美日本一区二区三区| 亚洲少妇30p| 高清不卡一二三区| 精品久久人人做人人爰| 丝袜美腿亚洲一区| 色婷婷精品久久二区二区蜜臀av| 久久亚洲二区三区| 麻豆传媒一区二区三区| 欧美日韩视频在线一区二区| 亚洲私人黄色宅男| 国产91丝袜在线播放| 精品福利一二区| 日韩不卡免费视频| 欧美日韩成人激情| 夜夜精品视频一区二区 | 91麻豆国产福利精品| 国产日韩欧美高清在线| 精品无人码麻豆乱码1区2区| 欧美一级日韩一级| 午夜免费久久看| 欧美色爱综合网| 亚洲电影在线免费观看| 一本久久精品一区二区| 中文字幕中文在线不卡住| 成人性色生活片| 日本一区二区视频在线观看| 国产精选一区二区三区| 精品美女在线观看| 久久69国产一区二区蜜臀| 日韩欧美国产午夜精品| 免费一区二区视频| 欧美大片国产精品| 狠狠色丁香久久婷婷综| 337p日本欧洲亚洲大胆精品| 国产做a爰片久久毛片| 久久综合色鬼综合色| 国产91丝袜在线播放0| 国产精品护士白丝一区av| 成人99免费视频| 亚洲精品美国一| 欧美日韩国产精品成人| 日韩一区欧美二区| 欧美成人精品二区三区99精品| 狠狠色丁香九九婷婷综合五月| 久久亚洲二区三区| av成人老司机| 亚洲一区二区三区四区在线观看 | 一区二区三区资源| 欧美体内she精视频| 日韩国产欧美视频| 久久一区二区视频| av中文字幕不卡| 亚洲国产毛片aaaaa无费看| 7777精品伊人久久久大香线蕉最新版| 欧美aaaaaa午夜精品| 久久精子c满五个校花| 99久久99久久久精品齐齐| 一区二区高清免费观看影视大全| 欧美日韩国产电影| 国产一本一道久久香蕉| 成人免费在线视频观看| 欧美精品电影在线播放|