C语言实现天气信息管理系统攻略
系统需求
天气信息管理系统需要实现以下功能:
- 添加城市天气信息
- 显示城市天气信息
- 修改城市天气信息
- 删除城市天气信息
- 保存天气信息到文件
- 从文件中读取天气信息
实现步骤
步骤一:定义结构体
首先,需要定义一个结构体来存储城市天气信息。
typedef struct {
char city[20];
int max_temperature;
int min_temperature;
float humidity;
char weather[20];
} Weather;
步骤二:添加城市天气信息
添加城市天气信息的代码如下:
void add_weather_info(Weather weathers[], int *count)
{
Weather new_info;
printf("请输入城市名称:");
scanf("%s", new_info.city);
printf("请输入最高气温:");
scanf("%d", &new_info.max_temperature);
printf("请输入最低气温:");
scanf("%d", &new_info.min_temperature);
printf("请输入湿度:");
scanf("%f", &new_info.humidity);
printf("请输入天气情况:");
scanf("%s", new_info.weather);
weathers[*count] = new_info;
(*count)++;
}
步骤三:显示城市天气信息
显示城市天气信息的代码如下:
void show_weather_info(Weather weathers[], int count)
{
printf("城市\t最高气温\t最低气温\t湿度\t天气情况\n");
for (int i = 0; i < count; i++) {
printf("%s\t", weathers[i].city);
printf("%d\t", weathers[i].max_temperature);
printf("%d\t", weathers[i].min_temperature);
printf("%.2f\t", weathers[i].humidity);
printf("%s\n", weathers[i].weather);
}
}
步骤四:修改城市天气信息
修改城市天气信息的代码如下:
void modify_weather_info(Weather weathers[], int count)
{
char city[20];
printf("请输入要修改的城市名称:");
scanf("%s", city);
for (int i = 0; i < count; i++) {
if (strcmp(city, weathers[i].city) == 0) {
printf("请输入最高气温:");
scanf("%d", &weathers[i].max_temperature);
printf("请输入最低气温:");
scanf("%d", &weathers[i].min_temperature);
printf("请输入湿度:");
scanf("%f", &weathers[i].humidity);
printf("请输入天气情况:");
scanf("%s", weathers[i].weather);
printf("城市:%s 的天气信息已修改。\n", city);
return;
}
}
printf("未找到城市:%s 的天气信息。\n", city);
}
步骤五:删除城市天气信息
删除城市天气信息的代码如下:
void delete_weather_info(Weather weathers[], int *count)
{
char city[20];
printf("请输入要删除的城市名称:");
scanf("%s", city);
for (int i = 0; i < *count; i++) {
if (strcmp(city, weathers[i].city) == 0) {
for (int j = i + 1; j < *count; j++) {
weathers[j - 1] = weathers[j];
}
(*count)--;
printf("城市:%s 的天气信息已删除。\n", city);
return;
}
}
printf("未找到城市:%s 的天气信息。\n", city);
}
步骤六:保存天气信息到文件
保存天气信息到文件的代码如下:
void save_weather_info_to_file(Weather weathers[], int count)
{
FILE *f;
f = fopen("weather_info.txt", "w");
for (int i = 0; i < count; i++) {
fprintf(f, "%s,%d,%d,%.2f,%s\n", weathers[i].city, weathers[i].max_temperature, weathers[i].min_temperature, weathers[i].humidity, weathers[i].weather);
}
fclose(f);
printf("天气信息已保存到文件 weather_info.txt 中。\n");
}
步骤七:从文件中读取天气信息
从文件中读取天气信息的代码如下:
int read_weather_info_from_file(Weather weathers[])
{
FILE *f;
f = fopen("weather_info.txt", "r");
if (f == NULL) {
return 0;
}
char line[100], city[20], weather[20];
int max_temperature, min_temperature;
float humidity;
int count = 0;
while (fgets(line, 100, f) != NULL) {
sscanf(line, "%[^,],%d,%d,%f,%[^\n]", city, &max_temperature, &min_temperature, &humidity, weather);
strcpy(weathers[count].city, city);
weathers[count].max_temperature = max_temperature;
weathers[count].min_temperature = min_temperature;
weathers[count].humidity = humidity;
strcpy(weathers[count].weather, weather);
count++;
}
fclose(f);
return count;
}
示例说明
假设有如下天气信息:
城市 最高气温 最低气温 湿度 天气情况
北京 36 25 50% 晴
上海 32 28 70% 多云
广州 33 27 80% 雷阵雨
示例一:添加一条城市天气信息
选择菜单中的 “1. 添加天气信息”,按提示输入信息:
请输入城市名称:深圳
请输入最高气温:36
请输入最低气温:28
请输入湿度:60
请输入天气情况:多云转雷阵雨
添加成功之后,重新选择菜单中的 “2. 显示天气信息”,可看到新增的信息:
城市 最高气温 最低气温 湿度 天气情况
北京 36 25 50% 晴
上海 32 28 70% 多云
广州 33 27 80% 雷阵雨
深圳 36 28 60% 多云转雷阵雨
示例二:从文件中读取天气信息
先将上面的天气信息保存到文件中,然后选择菜单中的 “6. 保存天气信息到文件”,保存成功后选择菜单中的 “7. 从文件中读取天气信息”:
天气信息已保存到文件 weather_info.txt 中。
城市 最高气温 最低气温 湿度 天气情况
北京 36 25 50% 晴
上海 32 28 70% 多云
广州 33 27 80% 雷阵雨
深圳 36 28 60% 多云转雷阵雨
注意:要读取文件中的天气信息,需要在程序运行前确保有 weather_info.txt 文件,并且文件内容符合保存文件的格式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现天气信息管理系统 - Python技术站