写一个基于C语言多点温度测量监控系统设计代码
时间: 2024-03-06 20:48:22 浏览: 27
以下是一个基于C语言的多点温度测量监控系统设计代码,供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <time.h>
#include <windows.h>
#include <conio.h>
#define MAX_DEVICE_NUM 8 // 最大设备数量
#define MAX_TEMP_NUM 8 // 最大温度传感器数量
#define MAX_TEMP_VALUE 100 // 温度最大值
#define MIN_TEMP_VALUE -50 // 温度最小值
// 温度传感器结构体
typedef struct {
int id; // 温度传感器id
float value; // 温度传感器值
} TempSensor;
// 设备结构体
typedef struct {
int id; // 设备id
int temp_num; // 设备上温度传感器数量
TempSensor temp[MAX_TEMP_NUM]; // 设备上温度传感器数组
int state; // 设备状态,0为正常,1为故障
} Device;
// 全局变量
Device device[MAX_DEVICE_NUM]; // 设备数组
int device_num = 0; // 设备数量
// 函数声明
void init_device(); // 初始化设备
void add_device(); // 添加设备
void add_temp_sensor(int id); // 添加温度传感器
void remove_device(); // 删除设备
void remove_temp_sensor(int id); // 删除温度传感器
void show_device_info(); // 显示设备信息
void show_temp_info(); // 显示温度信息
void monitor_temp(); // 监测温度
void control_temp(); // 控制温度
void save_to_file(); // 保存数据到文件
void read_from_file(); // 从文件读取数据
void clear_buffer(); // 清空输入缓冲区
// 主函数
int main() {
int choice;
read_from_file(); // 从文件读取数据
while (1) {
system("cls");
printf("====================================\n");
printf("多点温度测量监控系统\n");
printf("====================================\n");
printf("1. 添加设备\n");
printf("2. 删除设备\n");
printf("3. 添加温度传感器\n");
printf("4. 删除温度传感器\n");
printf("5. 显示设备信息\n");
printf("6. 显示温度信息\n");
printf("7. 监测温度\n");
printf("8. 控制温度\n");
printf("9. 保存数据到文件\n");
printf("10. 退出系统\n");
printf("====================================\n");
printf("请选择操作:");
scanf("%d", &choice);
clear_buffer();
switch (choice) {
case 1:
add_device();
break;
case 2:
remove_device();
break;
case 3:
if (device_num > 0) {
int id;
printf("请输入设备id:");
scanf("%d", &id);
clear_buffer();
add_temp_sensor(id);
} else {
printf("请先添加设备!\n");
system("pause");
}
break;
case 4:
if (device_num > 0) {
int id;
printf("请输入设备id:");
scanf("%d", &id);
clear_buffer();
remove_temp_sensor(id);
} else {
printf("请先添加设备!\n");
system("pause");
}
break;
case 5:
show_device_info();
break;
case 6:
show_temp_info();
break;
case 7:
monitor_temp();
break;
case 8:
control_temp();
break;
case 9:
save_to_file();
break;
case 10:
save_to_file();
printf("系统已退出!\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
system("pause");
break;
}
}
return 0;
}
// 初始化设备
void init_device() {
int i, j;
for (i = 0; i < MAX_DEVICE_NUM; i++) {
device[i].id = 0;
device[i].temp_num = 0;
device[i].state = 0;
for (j = 0; j < MAX_TEMP_NUM; j++) {
device[i].temp[j].id = 0;
device[i].temp[j].value = 0;
}
}
device_num = 0;
}
// 添加设备
void add_device() {
if (device_num >= MAX_DEVICE_NUM) {
printf("设备数量已达到最大值!\n");
system("pause");
return;
}
int id = device_num + 1;
device[device_num].id = id;
device[device_num].state = 0;
device_num++;
printf("添加设备成功,设备id为%d!\n", id);
system("pause");
}
// 添加温度传感器
void add_temp_sensor(int id) {
int i, j;
for (i = 0; i < device_num; i++) {
if (device[i].id == id) {
if (device[i].temp_num >= MAX_TEMP_NUM) {
printf("温度传感器数量已达到最大值!\n");
system("pause");
return;
}
int temp_id = device[i].temp_num + 1;
device[i].temp[device[i].temp_num].id = temp_id;
device[i].temp_num++;
printf("添加温度传感器成功,设备id为%d,传感器id为%d!\n", id, temp_id);
system("pause");
return;
}
}
printf("未找到对应设备,请重新输入!\n");
system("pause");
}
// 删除设备
void remove_device() {
if (device_num <= 0) {
printf("设备数量为0,无法删除!\n");
system("pause");
return;
}
int id, i, j;
printf("请输入要删除的设备id:");
scanf("%d", &id);
clear_buffer();
for (i = 0; i < device_num; i++) {
if (device[i].id == id) {
for (j = i + 1; j < device_num; j++) {
device[j - 1] = device[j];
}
device[device_num - 1].id = 0;
device[device_num - 1].temp_num = 0;
device[device_num - 1].state = 0;
for (j = 0; j < MAX_TEMP_NUM; j++) {
device[device_num - 1].temp[j].id = 0;
device[device_num - 1].temp[j].value = 0;
}
device_num--;
printf("删除成功!\n");
system("pause");
return;
}
}
printf("未找到对应设备,请重新输入!\n");
system("pause");
}
// 删除温度传感器
void remove_temp_sensor(int id) {
int i, j, k;
for (i = 0; i < device_num; i++) {
if (device[i].id == id) {
if (device[i].temp_num <= 0) {
printf("设备上没有温度传感器!\n");
system("pause");
return;
}
printf("请输入要删除的温度传感器id:");
scanf("%d", &k);
clear_buffer();
for (j = 0; j < device[i].temp_num; j++) {
if (device[i].temp[j].id == k) {
for (k = j + 1; k < device[i].temp_num; k++) {
device[i].temp[k - 1] = device[i].temp[k];
}
device[i].temp[device[i].temp_num - 1].id = 0;
device[i].temp[device[i].temp_num - 1].value = 0;
device[i].temp_num--;
printf("删除成功!\n");
system("pause");
return;
}
}
printf("未找到对应温度传感器,请重新输入!\n");
system("pause");
return;
}
}
printf("未找到对应设备,请重新输入!\n");
system("pause");
}
// 显示设备信息
void show_device_info() {
if (device_num <= 0) {
printf("设备数量为0,无法显示设备信息!\n");
system("pause");
return;
}
int i, j;
printf("设备id\t温度传感器数量\t设备状态\n");
for (i = 0; i < device_num; i++) {
printf("%d\t%d\t\t", device[i].id, device[i].temp_num);
if (device[i].state == 0) {
printf("正常\n");
} else {
printf("故障\n");
}
printf("温度传感器id\t温度值\n");
for (j = 0; j < device[i].temp_num; j++) {
printf("%d\t\t%.2f\n", device[i].temp[j].id, device[i].temp[j].value);
}
}
system("pause");
}
// 显示温度信息
void show_temp_info() {
if (device_num <= 0) {
printf("设备数量为0,无法显示温度信息!\n");
system("pause");
return;
}
int i, j;
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)