(91) 제6 장 프로 그래 밍 연습

(1) ~ (91) 의 워드 버 전이 올 라 왔 습 니 다. 링크:
http://download.csdn.net/detail/qq20004604/9359697
워드 버 전 은 'C + Primer Plus 제6 판 중국어 버 전' 제6 장 까지 종료 된다.
1. 키보드 입력 을 읽 고 @ 기 호 를 만 날 때 까지 프로그램 을 만 들 고 입력 (숫자 제외) 을 표시 하 며 대문자 문 자 를 소문 자로 변환 하고 소문 자 를 대문자 로 변환 합 니 다 (cctype 함수 시 리 즈 를 잊 지 마 세 요).
 
답:
#include
#include

int main()
{
	using namespace std;
	char a;
	cout << "       , “@”   ,      ,        :" << endl;
	cin >> a;
	for (;a != '@';)	//    '@'  ,     ,        
	{
		if (isalpha(a))	//     
		{
			if (islower(a))
			{ 
				//a = a - 32;
				//cout << a;
				cout << (char)toupper(a);		//       ,toupper       ASCII ,  ,              
			}	
			else 
			{ 
				a = a + 32;
				cout << a;
			}	//        ( :    +32      )
		}
		else if (!isdigit(a))	//      ,      ,    
			cout << a;
		else;	//         ,       
		cin >> a;	//      
	}

	system("pause");
	return 0;
}

2. 프로그램 을 만 들 고 최대 10 개의 donation 값 을 double 배열 에 읽 습 니 다. (원한 다 면 템 플 릿 류 array 를 사용 할 수 있 습 니 다.)프로그램 이 비 디지털 입력 을 만 났 을 때 입력 을 끝내 고 이 숫자의 평균 값 과 배열 에 평균 값 보다 몇 개의 숫자 가 있 는 지 보고 합 니 다.
 
답:
#include
#include

int main()
{
	using namespace std;
	arrayabc;
	double pingjun=0,a=0;
	cout << "     10       ,          ,    。        ,               :" << endl;
	cout <> abc[i];i++)	//             ,i 0,     if,             ,      ,  i=1。
	{
		if (i == 9)break;	//  10    ,i 9,    (           )
		cout << i+2< pingjun)a++;
	}

	if (i == 0)  cout << "         " << endl;
	else
	cout << "           :" << pingjun << " 。    " << a << "           。" << endl;
	system("pause");
	return 0;
}

 
 
 
3. 메뉴 드라이버 의 초기 형 태 를 작성 합 니 다.이 프로그램 은 4 개의 옵션 을 제공 하 는 메뉴 를 보 여 줍 니 다. 옵션 마다 알파벳 으로 표시 합 니 다.사용자 가 유효한 옵션 이외 의 알파벳 을 사용 하여 응답 하면 프로그램 은 사용자 가 이렇게 할 때 까지 유효한 알파벳 을 입력 하도록 알려 줍 니 다.그 다음 에 이 프로그램 은 switch 문 구 를 사용 하여 사용자 의 선택 에 따라 간단 한 조작 을 수행 합 니 다. 이 프로그램의 운행 상황 은 다음 과 같 습 니 다.
Please enter one of the following choices:
c) carnivore p) pianist
t) tree g) game
f
Please enter a c, p, t, or g:q
Please enter a c, p, t, or g:t
A map is a tree.
 
답:
#include

int main()
{
	using namespace std;
	char a;
	cout << "Please enter one of the following choices:" << endl;
	cout << "c) carnivore\tp) pianist" << endl;
	cout << "t) tree\t\tg) game" << endl;	//2      \t       
	for (;cin>>a;)	//     ,        ,     
	{
		cin.sync();	//            ,        ,            
		switch (a)
		{
		case 'c':cout << "Tiger is carnivore." << endl;break;	//       break
		case 'p':cout << "The pianist is a beautiful girl." << endl;break;
		case 't':cout << "A tree is a map." << endl;break;
		case 'g':cout << "LOL is a popular game." << endl;break;
		default:cout << "Please enter a c, p, t, or g:";continue;	//           ,       ,  break  switch
		}
		break;	//             ,  break switch   ,     ,    
	}
	system("pause");
	return 0;
}

 
 
 
4. Benevolent 가입 Order of Programmer 이후 BOP 대회 에서 사람들 은 가입자 의 실명, 직함 또는 비밀 BOP 이름 을 통 해 그 (그녀) 를 알 수 있다.실제 이름, 직함, 비밀 이름, 멤버 선 호 를 사용 하여 멤버 를 표시 할 수 있 는 프로그램 을 만 드 십시오.이 프로그램 을 작성 할 때 아래 구 조 를 사용 하 십시오:
//Benevolent Order of Programmers name structure
struct bop {
char fullname[strsize]; //real name
char title[strsize]; //job title
char bopname[strsize]; //secret BOP name
int preference; //0 = fullname, 1 = title, 2 = bopname
};
이 프로그램 은 위 구조 로 구 성 된 작은 배열 을 만 들 고 적당 한 값 으로 초기 화 합 니 다.또한 이 프로그램 은 다음 옵션 에서 선택 할 수 있 도록 순환 을 사용 합 니 다.
a. display by name b. display by title
c. display by bopname d. display by preference
q. quit
주의 by preference '는 멤버 들 의 선 호 를 나타 내 는 것 이 아니 라 멤버 들 의 선 호 에 따라 멤버 를 나열 하 는 것 을 의미한다.예 를 들 어 선 호 번호 가 1 이면 d 를 선택 하면 프로그래머 의 직함 을 표시 합 니 다. 이 프로그램의 운행 상황 은 다음 과 같 습 니 다.
Enter your choice: a
Wimp Macho
Raki Rhodes
Celia Laiter
Hoppy Hipman
Pat Hand
Next choice: d
Wimp Macho
Junior Programmer
MIPS
Analyst Trainee
LOOPY
next choice: q
Bye!
 
답:
#include
using namespace std;

const int strsize = 20;
struct bop
{
	char fullname[strsize];	//    
	char title[strsize];	//  
	char bopname[strsize];	//    
	int preference;		//  ,  0  fullname,1 title,2 bopname
};

int main()
{
	bop people[10]=
	{
		{"  ","   ","first",0},
		{"  ", "  ", "2nd",1 },
		{"  ", "   ", "3rd",2 },
		{"  ", "   ", "4th",0 },
		{"   ", "   ", "5th",1 },
		{"  ", "  ", "6th", 2}
	};

	cout << "          ,       。" << endl;
	cout << "a. display by name\tb. display by title" << endl;
	cout << "c. display by bopname\td. display by preference" << endl;
	cout << "q.quit" << endl;
	cout << "Enter your choice: ";
	char choice;	//char             
	while (cin.get(choice))	//       ,       。
	{
		cin.sync();	//      ,          
		if (choice == 'q')break;	//       q ,  while  
		switch (choice)	//              
		{
		case'a':for (int i = 0;i < 10 && strlen(people[i].fullname) != 0;i++)cout << people[i].fullname << endl;break;	//    strlen(),                     ,    ,   ,         
		case'b':for (int i = 0;i < 10 && strlen(people[i].fullname) != 0;i++)cout << people[i].title << endl;break;
		case'c':for (int i = 0;i < 10 && strlen(people[i].fullname) != 0;i++)cout << people[i].bopname << endl;break;
		case'd':for (int i = 0;i < 10 && strlen(people[i].fullname) != 0;i++)
		{
			switch (people[i].preference)	//    d,       preference          
			{
			case 0:cout << people[i].fullname << endl;break;
			case 1:cout << people[i].title << endl;break;
			case 2:cout << people[i].bopname << endl;break;
			}
		};break;	//      break,  switch
		default:cout << "         ,     : ";continue;	//    abcd,         q ,        ( continue      ),  switch
		}
		cout << "Next choice:";	//      abcd    ,       ,               ,     while      
	}
	cout << "bye!" << endl;
	system("pause");
	return 0;
}

5. Ncutronia 왕국 에서 화폐 단 위 는 tvarp 이 고 소득 소득세 의 계산 방식 은 다음 과 같다.
5000 세금 안 받 아 요.
5001~15000 tvarps: 10%
15001~35000 tvarps: 15%
35000 tvarps 이상: 20%
예 를 들 어 수입 은 38000 이다. tvarps 시 소득 세 는 5000 x 0.00 이다. + 10000x0.10 + 20000 x 0.15 + 3000 x 0.20, 즉 4600 tvarps。순환 을 통 해 사용자 에 게 수입 을 입력 하고 소득 세 를 보고 하 는 프로그램 을 작성 하 십시오.사용자 가 음수 나 비 숫자 를 입력 하면 순환 이 끝 납 니 다.
 
답:
#include

int main()
{
	using namespace std;
	int tvarp;
	double tax;
	cout << "         ,       ,            。" << endl;
	while (cout << "    : " && cin >> tvarp)	//             ,       ,         ,      false,    。
	{
		if (tvarp < 0)break;	//         
		else if (tvarp <= 5000) cout << "           。" << endl;
		else if (tvarp <= 15000) { tvarp = tvarp - 5000;tax = tvarp*0.1;cout << "          " << tax << endl;}
		else if (tvarp <= 35000) { tvarp = tvarp - 15000;tax = 1000 + tvarp*0.15;cout << "          " << tax << endl;}
		else { tvarp = tvarp - 35000;tax = tvarp*0.2 + 4000;cout << "          " << tax << endl;}
		continue;	//  if ,      
	}
	cout << "         ,    。" << endl;
	system("pause");
	return 0;
}

 
 
 
6. '합 법 적 권리 보호 단체' 에 기부 한 자금 을 기록 하 는 절 차 를 작성 한다.이 프로그램 은 사용자 에 게 기증 자의 수 를 입력 하고 모든 기증 자의 이름과 돈 을 입력 하 라 고 요구한다.이 정 보 는 동적 으로 분 배 된 구조 배열 에 저장 되 어 있다.각 구 조 는 두 명의 구성원 이 있 습 니 다. 이름 을 저장 하 는 문자 배열 (또는 string 대상) 과 돈 을 저장 하 는 double 구성원 입 니 다.모든 데 이 터 를 읽 으 면 프로그램 은 10000 명 이 넘 는 기부자 의 이름과 기부금 액 수 를 표시 합 니 다.이 목록 에는 다음 기부자 가 중요 기부자 라 는 제목 이 포함 되 어 있다. Patrons)。그리고 프로그램 은 다른 기부자 들 을 나열 할 것 이 며, 이 목록 은 Patrons 로 시작 해 야 한다.어떤 카 테 고리 에 기부자 가 없 으 면 프로그램 은 'none' 이라는 단 어 를 인쇄 합 니 다.이 프로그램 은 정렬 하지 않 고 이 두 가지 분류 만 표시 합 니 다.
 
답:
#include
#include

struct juankuan
{
	std::string name;
	double money;
};

int main()
{
	int man;
	using namespace std;
	cout << "        “        ”   ,         :" << endl;
	cout << "  :";
	while (!(cin >> man)) { cout << "    ,     :"; cin.clear();cin.sync(); }	//      
	juankuan *abc = new juankuan[man];
	for (int i = 0;i < man;i++)
	{
		cin.sync();	//            
		cout << "     " << i + 1 << "     :";
		getline(cin, abc[i].name);
		cout << "       :";
		while (!(cin >> abc[i].money)) { cout << "    ,     :"; cin.clear();cin.sync(); }
		
	}
	cout << endl;
	cout << "        (Grand Partons):" << endl;
	int j=0;
	for (int i = 0;i < man;i++)
		if (abc[i].money >= 10000) { cout << abc[i].name << endl;j++; }
	if (j == 0) { cout << "None" << endl; }

	j = 0;
	cout << "
(Partons):" << endl; for (int i = 0;i < man;i++) // : i , i=0,j=0, i , j for , int i=0,j=0 if (abc[i].money < 10000) { cout << abc[i].name << endl;j++; } if (j == 0) { cout << "None" << endl; } system("pause"); return 0; }

 
 
 
 
7. 사용자 가 q 만 입력 할 때 까지 프로그램 을 작성 합 니 다.그리고 이 프로그램 은 모음 으로 시작 하 는 단어 가 얼마나 되 는 지, 자음 으로 시작 하 는 단어 가 얼마나 되 는 지, 그리고 이 두 가지 에 속 하지 않 는 단어 가 얼마나 되 는 지 를 지적 했다.이 를 위해, 방법 중 하 나 는 isalpha () 를 사용 하여 알파벳 과 다른 문자 로 시작 하 는 단 어 를 구분 한 다음, isalpha () 테스트 를 통과 한 단어 에 대해 if 또는 switch 문 구 를 사용 하여 모음 으로 시작 하 는 단 어 를 확인 하 는 것 입 니 다. 이 프로그램의 운행 상황 은 다음 과 같 습 니 다.
Enter words(q to quit):
The 12 awesome oxen ambled
quietly across 15 meters of lawn. q
5 words beginning with vowels
4 words beginning with consonants
2 others
 
답:
#include
#include
#include

int main()
{
	using namespace std;
	string a;
	int yuan = 0, fu = 0, other = 0;	//      
	cout << "Enter words(q to quit):" << endl;
	cin >> a;
	while (a != "q")
	{
		if (isalpha(a[0]))	//        
		{
				if (a[0] == 'a' || a[0] == 'e' || a[0] == 'i' || a[0] == 'o' ||
					a[0] == 'u'|| a[0] == 'U' || a[0] == 'A' || a[0] == 'E' ||
					a[0] == 'I' || a[0] == 'O'  )yuan++;	//     
				else fu++;	//      
		}
		else		//       
		{
			other++;
		}

		cin >> a;
	}
	cout << yuan << " words beginning with vowels" << endl;
	cout << fu << " words beginning with consonants" << endl;
	cout << other << " others" << endl;

	system("pause");
	return 0;
}

 
 
 
8. 프로그램 을 만 듭 니 다. 그 는 파일 끝 에 도착 할 때 까지 텍스트 파일 을 열 고 한 글자 씩 읽 습 니 다. 그리고 이 파일 에 몇 글자 가 포함 되 어 있 는 지 알려 줍 니 다.
 
답:
#include
#include
#include

int main()
{
	using namespace std;
	int word = 0;
	string text;
	char b;
	ifstream abc;	//  ifstream   abc,ifstream        
	cout << "            :";
	cin >> text;
	abc.open(text);
	while (!abc.is_open())	//      ,           
	{
		cout << "          ,     :";
		cin >> text;
		abc.open(text);
	}
	for (;abc.get(b);)	//        
	{
		word++;	//   +1
	}
	cout << "     " << word << "    。" << endl;
	system("pause");
	return 0;
}

 
 
 
 
9. 프로 그래 밍 연습 6 을 마 쳤 지만 파일 에서 필요 한 정 보 를 읽 습 니 다.이 문서 의 첫 번 째 항목 은 기부금 수 이 고 나머지 내용 은 쌍 을 이 루어 야 한다.한 쌍 당 첫 번 째 행 위 는 기부자 의 이름, 두 번 째 행 위 는 기부금 액수 다.이 파일 은 다음 과 유사 합 니 다.
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000
 
답:
#include
#include
#include
#include

struct juankuan
{
	std::string name;
	double money;
};
int main()
{
	//       
	using namespace std;
	int man;
	string text;
	ifstream gg;
	cout << "           :";
	cin >> text;
	gg.open(text);
	while (!gg.is_open())
	{
		cout << "    ,     :";
		cin >> text;
		gg.open(text);
	}
	cout << "      !   ..." << endl;
	Sleep(500);

	//          
	gg >> man;
	juankuan *abc = new juankuan[man];
	for (int i = 0;i < man;i++)
	{
		gg.get();	//      gg>>       
		getline(gg, abc[i].name);
		gg >> abc[i].money;
	}

	//     
	cout << endl;
	cout << "        (Grand Partons):" << endl;
	int j = 0;
	for (int i = 0;i < man;i++)
		if (abc[i].money >= 10000) { cout << abc[i].name << endl;j++; }
	if (j == 0) { cout << "None" << endl; }

	j = 0;
	cout << "
(Partons):" << endl; for (int i = 0;i < man;i++) // : i , i=0,j=0, i , j for , int i=0,j=0 if (abc[i].money < 10000) { cout << abc[i].name << endl;j++; } if (j == 0) { cout << "None" << endl; } system("pause"); return 0; }

좋은 웹페이지 즐겨찾기