【c++】2020大一下期中考前小练习4

  • 期中考前小练习4

现有一个包含20个字符串的文本文件data.txt,同一行的字符串之间以空格分隔。请先拷贝数据文件data.txt到D:盘根目录,然后按要求完成如下操作:
1、 编写一个函数,读取文件中的所有字符串,要求将所有字符串保存在向量中。
2、 编写一个函数,将所有字符串输出到屏幕上,要求每个字符串一行。
3、 编写一个函数,将第2步的所有字符串转换成整数,转换规则是以一个字符串中所有字符的ACII值相加构成一个整数。
例如:字符串: AEC,
其中’A’的ASCII码值:65
‘E’的ASCII码值:69
‘C’的ASCII码值:67
则转换成整数:65+69+67 = 201
转换后的整数必须存放在向量中。
4、 编写一个函数,输出第3步生成的所有整数,其中每个整数占8列,右对齐,每行输出5个整数
5、 编写一个函数,找出第3步生成的所有整数中的最大值、最小值和平均值,并在main函数中输出最大值、最小值和平均值。
6、 编写一个函数,找出第3步生成的所有整数中能被整数sel_value整除的整数,并将其存放到另外一个向量中。其中sel_value由参数给定,默认值为9。在main函数中输出结果整数,输出格式与第4步相同。
7、 main函数如下:
int main()
{
vector vec_str_A(20);
vector vec_int_A(20);
vector vec_sel;
int max, min;
double avg;
string str;
string filename = “D:\data_new.txt”;
// 从文件中读取所有数据
read_data(filename, vec_str_A);
cout<<“文件中的字符串为:\n”;
print(vec_str_A);
// 将字符串转换成整数
trans_str_to_int(vec_str_A,vec_int_A);
cout<<"\n所有字符串转成的整数为:\n";
print(vec_int_A);
// 找出整数中的最大值、最小值以及计算所有整数的平均值
find_max_min_avg(vec_int_A, max, min, avg);
cout<<"\n整数向量中的最大值、最小值和平均值为:\n";
cout<<“最大值为: “<<max<<”\n”;
cout<<“最小值为: “<<min<<”\n”;
cout<<“平均值为: “<<avg<<”\n”;
// 选择能被9整除的整数
select_by_num(vec_int_A, vec_sel);
cout<<"\n选择的整数为:\n";
print(vec_sel);
system(“pause”);
return 0;
}

  • 代码:
#include<iostream>
#include<vector>
#include<string>
#include<fstream>
#include<sstream>
#include<iomanip>
using namespace std;

void read_data(string filename, vector<string>& vec_str_A) {
   
	vec_str_A.clear();
	ifstream data(filename, ios::in);
	while (!data.eof()) {
   
		string str;
		data >> str;
		vec_str_A.push_back(str);
	}
	data.close();
}

void
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值