用c#的建構式和類寫計算三角形面積的程式。請教大佬,寫好幾個小時,老顯示錯誤
uj5u.com熱心網友回復:
貼代碼
uj5u.com熱心網友回復:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("三條邊的長度分別為:");
Console.WriteLine("a的長度");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("b的長度");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("c的長度");
double c = double.Parse(Console.ReadLine());
double momo = Extent.no1(a, b, c);
Console.WriteLine("三角形的面積{0}:", momo);
Console.ReadKey();
}
public class Extent
{
public static double no1(double a, double b, double c)
{
if (a + b > c && a + c > b && b + c > a)
{
double s;
double area;
s = (a + b + c) / 2;
area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
return s;
}
else
{
Console.WriteLine("error!");
return 0;
}
}
}
}
}
uj5u.com熱心網友回復:
老師要讓改成建構式uj5u.com熱心網友回復:
那你就創建一個 建構式,public Extent(a,b,c)
然后方法改成no1(),不需要引數了。
no1中呼叫的引數,都來自建構式提供的引數
uj5u.com熱心網友回復:
就是這種建構式我不會使用

uj5u.com熱心網友回復:
百度查一下吧。很簡單的基礎
uj5u.com熱心網友回復:
你這里沒有建構式,只有一個方法uj5u.com熱心網友回復:
https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/0b0thckt(v=vs.100)?redirectedfrom=MSDNuj5u.com熱心網友回復:
好呢。謝謝,我再試試uj5u.com熱心網友回復:
我知道是是這個,但是主方法寫不來uj5u.com熱心網友回復:
我知道是是這個,但是主方法寫不來
你確定這個有錯嗎,你的錯誤是什么,你2L的代碼可以用啊,沒寫建構式建構式就會默認是空的無參建構式的
uj5u.com熱心網友回復:
我知道是是這個,但是主方法寫不來
uj5u.com熱心網友回復:
但是老師非要讓改,,,,沒理解改什么,uj5u.com熱心網友回復:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("三條邊的長度分別為:");
Console.WriteLine("a的長度");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("b的長度");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("c的長度");
double c = double.Parse(Console.ReadLine());
double area = new Triangle(a, b, c).GetArea();
Console.WriteLine("三角形的面積{0}:", area);
Console.ReadLine();
}
}
public class Triangle
{
public double SideA { get; set; }
public double SideB { get; set; }
public double SideC { get; set; }
public Triangle() { }
public Triangle(double sideA, double sideB, double sideC)
{
SideA = sideA;
SideB = sideB;
SideC = sideC;
}
public double GetArea()
{
if (SideA + SideB > SideC && SideA + SideC > SideB && SideB + SideC > SideA)
{
double s;
double area;
s = (SideA + SideB + SideC) / 2;
area = Math.Sqrt(s * (s - SideA) * (s - SideB) * (s - SideC));
return s;
}
else
{
Console.WriteLine("error!");
return 0;
}
}
}
uj5u.com熱心網友回復:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace triangle
{
class nol
{
public double area;
public double s;
public nol(double a,double b,double c)
{
if (a + b > c && a + c > b && b + c > a)
{
s = (a + b + c) / 2;
area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
Console.WriteLine(area);
}
else
{
Console.WriteLine("error!");
}
}
static void Main(string[] args)
{
Console.WriteLine("三條邊的長度分別為:");
Console.WriteLine("a的長度");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("b的長度");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("c的長度");
double c = double.Parse(Console.ReadLine());
Console.Write("三角形的面積:");
nol newnol = new nol(a, b, c);
Console.ReadKey();
}
}
}
你看一下,給這個類寫個建構式,主函式實體化一個物件呼叫建構式就行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/92008.html
標籤:C#
上一篇:C#
下一篇:求大神指點
