C++第一次上机作业

      1.编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N。若输入为Y,显示“现在正在下雨。”;若输入为N,显示“现在没有下雨”;否则继续提问“现在正在下雨吗?”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<string>
using namespace std;
int main() {
string input; //用户输入的是一个字符串,要用cin接收一行的输入
while (1) { //永远执行此循环
cout << "现在正在下雨吗?";
getline(cin, input);
if (input == "Y") {
cout << "现在正在下雨" << endl;
break; //结束循环
}
else if (input == "N") {
cout << "现在没有下雨" << endl;
break; //结束循环
}
else {
continue;
}
}
system("pause");
return 0;
}

      2.编写一个完整的程序,运行时向用户提问“你考试考了多少分?(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
#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;
}

      3.实现一个简单的菜单程序,运行时显示“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;
//}

      4.输入一个两位整数,要求将该数逆序输出。例如,输入68,输出86。

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
#include<iostream>
using namespace std;
/*
上机习题4
输入一个两位整数,要求将该数逆序输出。
*/
int main() {
int input; // 定义要输入的整数
int digit, unit; // 定义十位数和个位数
// 为了让程序可以重复输入输出,使用循环
while (1) {
cout << "请输入一个两位整数(10-99):";
cin >> input;
// 绝对值超过100的数字不符合题目要求
if (input >= 100 || input <= -100) {
cout << "你输入的数字不是两位整数,请重新输入" << endl;
// 清除cin流的缓存,方便下次输入不会有问题。
cin.clear();
cin.sync();
continue;
}
else {
// input整除10就能取出十位数
digit = input / 10;
// input减去十位数乘以10就是个位数
unit = input - digit * 10;
// 重新组合输出数字
cout << unit * 10 + digit << endl;
}
}
return 0;
}
/*
输出测试:
-568 "你输入的数字不是两位整数,请重新输入"
-89 -98
89 98
7 70
-6 -60
589 "你输入的数字不是两位整数,请重新输入"
可以循环输入,每次都会有提示:"请输入一个两位整数(10-99):"
*/

      5.求表达式的值。

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
#include<iostream>
using namespace std;
/*
上机习题5
*/
int main() {
float x1 = 2.5;
int a1 = 7;
float y1 = 4.7;
cout << "x1+a1%3*(int)(x1+y1)%2/4 ="<< x1 + a1 % 3 * (int)(x1 + y1) % 2 / 4 << endl;
// a1%3=1,(int)(x1+y1)=7
// 1*7%2/4=7%2/4=1/4=0
// 2.5+0=2.5
int a2 = 2;
int b2 = 3;
float x2 = 3.5;
float y2 = 2.5;
cout << "(float)(a+b)/2+(int)x%(int)y =" << (float)(a2 + b2) / 2 + (int)x2 % (int)y2 << endl;
// (float)(a2+b2)=5.0,(int)x2=3,(int)y2=2
// 5.0/2+3%2=2.5+1=3.5
int a3 = 12;
int n3 = 5;
cout << "a%=(n%=2) =" << (a3 %= (n3 %= 2)) << endl;
// n3=n3%2=5%2=1
// a3=a3%1=12%1=0
int a4 = 12;
cout << "a+=a-=a*=a =" << (a4 += a4 -= a4 *= a4) << endl;
// a4=a4*a4=12*12=144
// a4=a4-a4=144-144=0
// a4=a4+a4=0+0=0
system("pause");
return 0;
}
文章目录
|