c# - 在 C# 中使用数组的第一步

标签 c# arrays pointers

我正在尝试实现数组以便我的程序保存任意数量的数据,这相当于 C#

 int nT, i;
cTrabajador *apTrabajador;
do{
        cout<<"\t Indique el numero de Trabajadores: ";
        cin>>nT;
        }while(nT<=0||nT>=40);
        apTrabajador=new cTrabajador[nT];
for(i=0;i<nT;i++)
        apTrabajador[i].leer();/
        system("cls");
        cout<<"\t Lista de  Trabajadores"<<endl;
for(i=0;i<nT;i++)
        apTrabajador[i].imprimir ();
        delete[]apTrabajador;
        system("pause");
        return 0;

我以前用 C++ 编程,程序存储 nT 个数组以便拥有“trabajadores”的所有数据,所以我试图理解我在 C++ 中学到的语法,现在在 C# 中,我很乐意欢迎一些帮助

Registro 是类中的一个方法,向用户请求数据,Imprimir 是同一个类中的另一个方法,将存储的数据打印到数组中

    namespace Poligono
    {
    class Program
    {
        static void Main(string[] args)
        {
            int i,n;
            int[] Calculos;

            Console.WriteLine("\n Insert the number of items");
            string entry = Console.ReadLine();
            int.TryParse(entry, out n);
            Calculos = new int[n];

            for (i = 0; i < n; i++){
                 VolumenPrisma.Registro();      //needs to be stored in "n" arrays
                }
            for (i = 0; i < n; i++){
                 VolumenPrisma.Imprimir();      //needs to be stored in "n" 
                }
        }
    }
    }

/* 类是 */

namespace Poligono
{
public class VolumenPrisma
{
public static int Apotema, TamLado, NumLados, Altura, Lado;
public static int Perimetro, Area, Volumen;

public static int cPerimetro (int NumLados, int Lado){
    int P;
    P=(NumLados*Lado);
    return P;    
}

public static int cVolumen(int Area, int Altura)
{
    int V;
    V = Area * Altura;
    return V;
}

public static int cArea(int Perimetro, int Apotema)
{
    int A;
    A = (Perimetro * Apotema)/2;
    return A;
}

public static void Registro(){
        Console.WriteLine("Indique No. de lados: ");
        VolumenPrisma.Lado = Int32.Parse(Console.ReadLine());

        Console.WriteLine("Indique tamanio de apotema: ");
        VolumenPrisma.Apotema = Int32.Parse(Console.ReadLine());    

        Console.WriteLine("Indique tamanio de lado: ");
        VolumenPrisma.TamLado = Int32.Parse(Console.ReadLine());

        Console.WriteLine("Indique la altura: ");
        VolumenPrisma.Altura = Int32.Parse(Console.ReadLine());
        Console.WriteLine("----------------------------------------");

        Perimetro= cPerimetro(TamLado, Lado);   
        Area = cArea(Perimetro, Apotema);
        Volumen = cVolumen(Area, Altura);
}

public static void Imprimir() {
    Console.WriteLine("Lados= {0} ", Lado);
    Console.WriteLine("Tam Lado = {0} ", TamLado);
    Console.WriteLine("Apotema = {0} ", Apotema);
    Console.WriteLine("Perimetro = {0} ", Perimetro);
    Console.WriteLine("Area = {0} ", Area);
    Console.WriteLine("Volumen = {0} ", Volumen);
}
}
}

最佳答案

首先,您需要使用 VolumenPrisma 实例数组,因为您需要将输入数据存储在某处。

VolumenPrisma[] Calculos = new VolumenPrisma[n]();

然后您使用以下方法“注册”(获取输入参数)这些数据:

for (i = 0; i < n; i++)
{
    Calculos[i] = new VolumenPrisma();    // create a new instance to store the data
    VolumenPrisma.Registro(Calculos[i]);      //get the parameters for this prisma
}

for (i = 0; i < n; i++)
{
    VolumenPrisma.Imprimir(Calculos[i]);      //Print results for that prisma
}

完整代码如下:

namespace Poligono
{
    class Program
    {
        static void Main(string[] args)
        {
            int i, n;
            VolumenPrisma[] Calculos;

            Console.WriteLine("\n Insert the number of items");
            string entry = Console.ReadLine();
            int.TryParse(entry, out n);
            Calculos = new VolumenPrisma[n];

            for (i = 0; i < n; i++)
            {
                Calculos[i] = new VolumenPrisma();    // create a new instance to store the data
                VolumenPrisma.Registro(Calculos[i]);      //get the parameters for this prisma
            }

            for (i = 0; i < n; i++)
            {
                VolumenPrisma.Imprimir(Calculos[i]);      //Print results for that prisma
            }
        }
    }
}

要在 VolumenPrisma 类中使用静态方法,您需要将 VolumenPrisma 实例作为参数传递并修改实例字段的访问器。

public class VolumenPrisma
{
    public int Apotema, TamLado, NumLados, Altura, Lado;
    public int Perimetro, Area, Volumen;

    public VolumenPrisma()
    {
    }

    public static int cPerimetro (int NumLados, int Lado)
    {
        int P;
        P=(NumLados*Lado);
        return P;    
    }

    public static int cVolumen(int Area, int Altura)
    {
        int V;
        V = Area * Altura;
        return V;
    }

    public static int cArea(int Perimetro, int Apotema)
    {
        int A;
        A = (Perimetro * Apotema)/2;
        return A;
    }

    public static void Registro(VolumenPrisma prisma)
    {
        Console.WriteLine("Indique No. de lados: ");
        prisma.Lado = Int32.Parse(Console.ReadLine());

        Console.WriteLine("Indique tamanio de apotema: ");
        prisma.Apotema = Int32.Parse(Console.ReadLine());

        Console.WriteLine("Indique tamanio de lado: ");
        prisma.TamLado = Int32.Parse(Console.ReadLine());

        Console.WriteLine("Indique la altura: ");
        prisma.Altura = Int32.Parse(Console.ReadLine());
        Console.WriteLine("----------------------------------------");

        prisma.Perimetro = cPerimetro(prisma.TamLado, prisma.Lado);
        prisma.Area = cArea(prisma.Perimetro, prisma.Apotema);
        prisma.Volumen = cVolumen(prisma.Area, prisma.Altura);
    }

public static void Imprimir(VolumenPrisma prisma) { 
        Console.WriteLine("Lados= {0} ", prisma.Lado);
        Console.WriteLine("Tam Lado = {0} ", prisma.TamLado);
        Console.WriteLine("Apotema = {0} ", prisma.Apotema);
        Console.WriteLine("Perimetro = {0} ", prisma.Perimetro);
        Console.WriteLine("Area = {0} ", prisma.Area); 
        Console.WriteLine("Volumen = {0} ", prisma.Volumen);
       }
}

但我同意所有这些听起来有点奇怪,使用非静态方法会容易得多。

关于c# - 在 C# 中使用数组的第一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678679/

相关文章:

c - 如何在 C 中的结构中存储可变长度数组

循环中的 C 后/前递增指针

c - 利用字符串指针打印字符-整数组合

C# 将两个列表合并为一个列表,如 Enumerable.ConvertAll

javascript - 如何访问字典中的特定元素?

c# - 根据在另一个下拉菜单中选择的值填充下拉菜单/选择

c++ - 在 Xcode 下的 C++ 中声明 int 数组

java - 如何根据多个条件从ArrayList中获取元素?

c# - 在 asp.net 核心端点上读取 Csv

c# - 在现有查询中插入 Linq 查询部分