我正在尝试实现数组以便我的程序保存任意数量的数据,这相当于 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/