c#编程 现需要对一批气体样品数据进行管理和分析,经实验测定得到各样品中的CO2、CH4、N2的浓度。请设计程序实现气体样品的保存和简单计算,要求:1)每增加一个气样,自动分配一个唯一的4位数值编号,同时还需将采样点的名称进行记录,并将实验测定的三种气体组分进行保存;2)通过采样点或气样编号可以查询得到各组分的浓度值;3)添加5个气体样品数据,计算各组分的平均浓度,并给出浓度值最大的气样采样点名称。 提示:可通过自定义结构类型进行数据保存;设计简单的窗体界面进行数据录入
时间: 2024-02-18 21:03:09 浏览: 100
以下是一个简单的C#程序,用于管理和分析气体样品数据:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GasSamples
{
// 定义气样结构类型
struct GasSample
{
public int id; // 唯一编号
public string name; // 采样点名称
public double co2; // CO2浓度
public double ch4; // CH4浓度
public double n2; // N2浓度
}
class Program
{
static List<GasSample> samples = new List<GasSample>(); // 存储气样数据的列表
static void Main(string[] args)
{
// 添加5个气体样品数据
AddSample("Sample1", 0.01, 0.02, 0.97);
AddSample("Sample2", 0.02, 0.03, 0.95);
AddSample("Sample3", 0.03, 0.04, 0.93);
AddSample("Sample4", 0.04, 0.05, 0.91);
AddSample("Sample5", 0.05, 0.06, 0.89);
// 查询各组分的浓度值
QuerySample("Sample1");
QuerySample(2);
// 计算各组分的平均浓度
double avg_co2 = CalculateAverage("co2");
double avg_ch4 = CalculateAverage("ch4");
double avg_n2 = CalculateAverage("n2");
Console.WriteLine("CO2平均浓度: " + avg_co2);
Console.WriteLine("CH4平均浓度: " + avg_ch4);
Console.WriteLine("N2平均浓度: " + avg_n2);
// 查询浓度值最大的气样采样点名称
string max_name = QueryMaxName();
Console.WriteLine("浓度值最大的气样采样点名称: " + max_name);
Console.ReadLine();
}
// 添加气样数据
static void AddSample(string name, double co2, double ch4, double n2)
{
GasSample sample = new GasSample();
sample.id = samples.Count + 1; // 分配唯一编号
sample.name = name; // 记录采样点名称
sample.co2 = co2; // 保存CO2浓度
sample.ch4 = ch4; // 保存CH4浓度
sample.n2 = n2; // 保存N2浓度
samples.Add(sample); // 添加到列表中
}
// 查询气样数据
static void QuerySample(string name)
{
foreach (GasSample sample in samples)
{
if (sample.name == name)
{
Console.WriteLine("编号: " + sample.id);
Console.WriteLine("CO2浓度: " + sample.co2);
Console.WriteLine("CH4浓度: " + sample.ch4);
Console.WriteLine("N2浓度: " + sample.n2);
}
}
}
// 查询气样数据
static void QuerySample(int id)
{
foreach (GasSample sample in samples)
{
if (sample.id == id)
{
Console.WriteLine("采样点名称: " + sample.name);
Console.WriteLine("CO2浓度: " + sample.co2);
Console.WriteLine("CH4浓度: " + sample.ch4);
Console.WriteLine("N2浓度: " + sample.n2);
}
}
}
// 计算各组分的平均浓度
static double CalculateAverage(string component)
{
double sum = 0;
foreach (GasSample sample in samples)
{
switch (component)
{
case "co2":
sum += sample.co2;
break;
case "ch4":
sum += sample.ch4;
break;
case "n2":
sum += sample.n2;
break;
}
}
return sum / samples.Count;
}
// 查询浓度值最大的气样采样点名称
static string QueryMaxName()
{
double max_concentration = 0;
string max_name = "";
foreach (GasSample sample in samples)
{
double concentration = sample.co2 + sample.ch4 + sample.n2;
if (concentration > max_concentration)
{
max_concentration = concentration;
max_name = sample.name;
}
}
return max_name;
}
}
}
```
这个程序使用了自定义结构类型 `GasSample` 来保存气样数据,每次添加气样时都会自动分配一个唯一的编号。可以通过采样点或气样编号查询得到各组分的浓度值,并可以计算各组分的平均浓度和查询浓度值最大的气样采样点名称。
阅读全文