我试图实现数组,以便我的程序保存任何数量的数据,相当于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个数组,以便获得&#34; trabajadores&#34;的所有数据。所以我试着理解我现在在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);
}
}
}
答案 0 :(得分:1)
首先,您需要使用VolumenPrisma
的实例数组,因为您需要存储输入数据。
VolumenPrisma[] Calculos = new VolumenPrisma[n]();
然后你注册&#34; (获取输入参数)这些数据使用:
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);
}
}
但我同意所有这些听起来有点奇怪,使用非静态方法会更容易。