随机生成数据并写入文档

随机生成数据并写入文档

此例随机生成对应的城市和一年12个月的天气状况并写入文档。

#include<iostream>
#include<vector>
#include<string>
#include<time.h>
#include<algorithm>
using namespace std;

//天气在枚举常量中表示
enum Enum_weather
{
	Rainy=0,Snowy,Cloudy,Sunny
};
//创建城市类
class City
{
public:
	int year;
	//char *name;
	string name;
	int persons;
	int elevation;
	char *weather[12];
	City()
	{
		//neme=new char[10];
	}
	~City(){}
};
//随机生成字符串函数
char *rand_str(char *str)
{
	int i,n;
	n=rand()%5;
	for(i=0;i<n+4;++i)//限制随机生成的字符串长度范围是0-7
	{
		str[i]='a'+rand()%26;
	}
	str[++i]='\\0';
	return str;
}
//枚举类型转化为char*
static inline char* weather_str(enum Enum_weather w)
{
	char *strings[] = {"Rainy", "Snowy", "Cloudy", "Sunny",};
	return strings[w];
}
int main()
{
	srand((unsigned)time(NULL));
	vector<City>ve(215);
	for (int i=0;i<215;i++)  //将随机获取每个城市的数据写入vector中
	{
		ve[i].year=2006;
		ve[i].persons=rand()%(10000000 - 100000 + 1) + 100000;  //在某范围内随机获取数值
		ve[i].elevation=rand()%(4000-0+1)+0;
		char name1[10]={};
		rand_str(name1);   //调用rand_str()函数随机生成城市名称字符串
		ve[i].name=name1;
		for (int j=0;j<12;j++)
		{
			int n=rand()%4;
			Enum_weather w1=(enum Enum_weather)(n);
			char* nc=weather_str(w1);   //调用weather_str()函数将枚举类型值转化为char*
			ve[i].weather[j]=nc;
		}
	}
	//将2006年各个城市的数据信息写入City.txt文本文件中
	FILE *fp;
	fp=fopen("D://City.txt","w+");
	fprintf(fp,"年份   城市名称   城市人口   海拔高度   1月天气   2月天气    3月天气    4月天气    5月天气    6月天气    7月天气    8月天气    9月天气    10月天气   11月天气   12月天气\n");
	for (int i=0;i<215;i++)
	{
		char name2[10]={};
		for (int k=0;k<ve[i].name.size();k++)    //string类型转char数组
		{
			name2[k]=ve[i].name[k];
		}
		fprintf(fp,"%d%10s%10d%10d",ve[i].year,name2,ve[i].persons,ve[i].elevation);
		for (int j=0;j<12;j++)
		{
			fprintf(fp,"%11s",ve[i].weather[j]);
		}
		fprintf(fp,"\n");
	}
	fclose(fp);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追梦_赤子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值