I'm doing a simple calc for my school. The code looks okay to me, but I'm not sure if there is something to improve, but probably there is always something to improve. Any ideas how to make it look and work better?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace kalkulacka
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Daniel Nosek");
Console.WriteLine("Výpočet obvodu a obsahu - trojúhelník, pravidelný šestiúhelník");
Console.WriteLine("Zvolte si obrazec:");
Console.WriteLine("1 - trojúhelník");
Console.WriteLine("2 - pravidelný šestiúhelník");
int VolbaObrazce = int.Parse(Console.ReadLine());
double obvod = 0;
double obsah = 0;
bool prepocitat = false;
do
{
Console.Clear();
switch (VolbaObrazce)
{
case 1:
double a = PrectiPromennou("Zadejte délku strany a:");
double b = PrectiPromennou("Zadejte délku strany b:");
double c = PrectiPromennou("Zadejte délku strany c:");
obvod = ObvodTrojuhelniku(a, b, c);
obsah = ObsahTrojuhelniku(a, b, c);
break;
case 2:
double d = PrectiPromennou("Zadejte délku strany d:");
obvod = ObvodSestiuhelniku(d);
obsah = ObsahSestiuhelniku(d);
break;
default:
{
Console.WriteLine("Neplatná volba");
}
return;
}
// vysledky, zaokrouhleny na dve desetinna mista
Console.WriteLine("obvod: " + Math.Round(obvod, 2));
Console.WriteLine("obsah: " + Math.Round(obsah, 2));
/* loop pro pripad kdy uzivatel chce vypocet znova s jinymi hodnotami
promenna recalculate musi byt rovna 1, jinak se program vypne */
prepocitat = PrectiPromennou("Pro výpočet s jinými rozměry stiskněte 1:") == 1;
}
while (prepocitat);
}
/*Puvodne jsem pouzival pri cases
Console.WriteLine("Zadejte délku strany x:");
double x = double.Parse(Console.ReadLine());
nicmene resit to takhle mi prijde jednodussi.*/
static double PrectiPromennou(string text)
{
Console.Write(text);
return double.Parse(Console.ReadLine());
}
/// <summary>
/// Vypocet obvodu pomoci souctu stran
/// </summary>
/// <param name="a">delka strany a</param>
/// <param name="b">delka strany b</param>
/// <param name="c">delka strany c</param>
/// <returns>obvod trojuhelniku</returns>
static double ObvodTrojuhelniku(double a, double b, double c)
{
return a + b + c;
}
/// <summary>
/// Vypocet obsahu pomoci heronova vzorce
/// </summary>
/// <param name="a">delka strany a</param>
/// <param name="b">delka strany b</param>
/// <param name="c">delka strany c</param>
/// <returns>obsah trojuhelniku</returns>
static double ObsahTrojuhelniku(double a, double b, double c)
{
double s = (a + b + c) / 2;
return Math.Sqrt(s * (s - a) * (s - b) * (s - c));
}
/// <summary>
/// Vypocet obvodu pomoci soucinu stran
/// </summary>
/// <param name="d">delka strany d</param>
/// <returns>obvod sestiuhelniku</returns>
static double ObvodSestiuhelniku(double d)
{
return 6 * d;
}
/// <summary>
/// vypocet obsahu
/// </summary>
/// <param name="d">delka strany d</param>
/// <returns>obsah sestiuhelniku</returns>
static double ObsahSestiuhelniku(double d)
{
return ((3 * Math.Sqrt(3) * Math.Pow(d, 2))) / 2;
}
}
}