C++第五周作业

      1.编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来,规则为90到100优,80到90良,60到80中,0到60差。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include<iostream>
using namespace std;
/*
用if语句实现
*/
#include<iostream>
using namespace std;
int main(){
float number;
while(1){
// 第一次输入。
cout << "你考试考了多少分?(0~100):";
cin >> number;
// 检测是否输入的是符合要求的数字
while(cin.fail()){
cout<<"你输入的不是数字,请重新输入!"<<endl;
cin.clear();
cin.sync();
cout<<"你考试考了多少分?(0~100):";
cin >> number;
}
// 当输入的是数字后,进入判断
if(number >= 90 && number <= 100){
cout << "你的等级是优" << endl;
}
else if(number>=80 && number<90){
cout << "你的等级是良" << endl;
}
else if(number>=60 && number<80){
cout << "你的等级是中" << endl;
}
else if(number>=0 && number<60){
cout << "你的等级是差" << endl;
}
else{
cout << "你输入的成绩不在判断等级的范围内,请重新输入!" << endl;
}
}
return 0;
}
/*
用switch语句实现
*/
int main(){
int number;
cout << "你考试考了多少分?(0~100):";
cin >> number;
switch(number/10){
case 10:
cout<<"你的等级为优"<<endl;
break;
case 9:
cout<<"你的等级为优"<<endl;
break;
case 8:
cout<<"你的等级为良"<<endl;
break;
case 7:
cout<<"你的等级为中"<<endl;
break;
case 6:
cout<<"你的等级为中"<<endl;
break;
default:
cout<<"你的等级为差"<<endl;
break;
}
system("pause");
return 0;
}

      2.实现一个简单的菜单程序,运行时显示“Menu: A(dd) D(elete) S(ort) Q(uit),Select one:”,提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”,输入为Q时程序结束。
      (1)要求用if…else语句进行判断,用break,continue控制程序流程。
      (2)要求使用switch语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
#include<string>
using namespace std;
/*
利用if...else语句进行判断,用break,continue控制流程。
*/
int main() {
string input;
while (1) {
cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
getline(cin, input);
if (input == "A" || input == "a") {
cout << "数据已经增加!" << endl;
continue;
}
else if (input == "D" || input == "d") {
cout << "数据已经删除!" << endl;
continue;
}
else if (input == "S" || input == "s") {
cout << "数据已经排序!" << endl;
continue;
}
else if (input == "Q" || input == "q") {
break;
}
else {
cout << "你输入的参数有误,请重新输入!" << endl;
continue;
}
}
}
/*
利用switch语句进行编写
*/
int main() {
char input;
while (1) {
cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
cin >> input;
switch (input) {
case 'A':
cout << "数据已经增加!" << endl;
continue;
case 'D':
cout << "数据已经删除!" << endl;
continue;
case 'S':
cout << "数据已经排序!" << endl;
continue;
case 'Q':
break;
default:
cout<<"你输入的参数有误,请重新输入!" << endl;
continue;
}
}
return 0;
}

      用穷举法找出1~100间的质数并显示出来,分别使用while,do……while,for循环语句实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include<iostream>
using namespace std;
/*
用for循环实现求质数
*/
int main() {
cout<<"2是质数"<<endl;
// 待遍历的数,只需要遍历3开始所有的奇数
for (int i = 3; i <= 99; i=i+2) {
// 除数
for (int j = 2; j <= i; j++) {
// 遍历条件
if (i%j == 0) {
break;
}
// 超过i/2后不需要遍历,余数肯定不为0
if (j > i / 2) {
cout << i << "是质数" << endl;
break;
}
}
}
system("pause");
return 0;
}
/*
用while循环实现求质数
*/
int main(){
cout<<"2是质数"<<endl;
int i = 3;
// 遍历奇数
while(i <= 99){
// 记录整数成功的次数
int flag = 0;
int j = 2;
// 只需要遍历i/2前面的部分就可以
while(j<=i/2){
// 整除成功一次就记录一次
if(i%j==0){
flag++;
break;
}
j++;
}
// 只要flag又一次记录就不是质数
if(flag==0){
cout<<i<<"是质数"<<endl;
}
// 下一个奇数
i=i+2;
}
system("pause");
return 0;
}
/*
用do while循环实现求质数
*/
int main(){
cout<<"2是质数"<<endl;
int i = 3;
do{
int j = 2;
int flag = 0;
do{
if(i%j==0){
flag++;
break;
}
j++;
}while(j<=i/2);
if(flag==0){
cout << i << "是质数" << endl;
}
i=i+2;
}while(i<=99);
system("pause");
return 0;
}
文章目录
|