(91) 제6 장 프로 그래 밍 연습
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.