Advertisement
Thomas2500

Übung Strings Aufgabe 2

May 5th, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Stringübung_Angabe2
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.OutputEncoding = System.Text.Encoding.GetEncoding(858);
  14.  
  15.             Console.WriteLine("Achtung: Statt dem Euro Zeichen wird € angezeigt! Nicht irritieren lassen.");
  16.             Console.Write("Bitte Anzahl der Patienten eingeben: ");
  17.             int anz = GetZahl();
  18.             string[,] Patient = new string[anz,2];
  19.             Console.Clear();
  20.             for (int i = 0; i < anz; i++)
  21.             {
  22.                 Console.WriteLine("Patient " + (i + 1).ToString());
  23.                 Console.Write("E-Card Nummer eingeben: ");
  24.                 Patient[i, 0] = Console.ReadLine();
  25.                 Console.Write("Abrechnungsbetrag (123,45€): ");
  26.                 Patient[i, 1] = Console.ReadLine();
  27.                 Console.WriteLine();
  28.             }
  29.  
  30.             while (true)
  31.             {
  32.                 Console.Write("E-Card-Nummer für Abrechnungssumme eingeben (Mit x abbrechen): ");
  33.                 string tmp = Console.ReadLine();
  34.                 if (tmp.ToLower() == "x") break;
  35.                 double summe = Rechnungssumme(Patient, tmp);
  36.                 Console.WriteLine("Die Rechnungssumme des Patienten " + tmp + " beträgt: " + summe + "\n");
  37.             }
  38.         }
  39.  
  40.         static double Rechnungssumme(string[,] Patient, string DieserPatient)
  41.         {
  42.             double Wert = 0;
  43.             double Summe = 0;
  44.             int max = Patient.GetUpperBound(0);
  45.             for (int i = 0; i <= max; i++)
  46.             {
  47.                 if (Patient[i, 0] == DieserPatient)
  48.                 {
  49.                     Geld(Patient[i, 1], out Wert);
  50.                     Summe = Summe + Wert;
  51.                 }
  52.             }
  53.             return Summe;
  54.         }
  55.  
  56.         static void Geld(string RAWert, out double Wert)
  57.         {
  58.             if (RAWert.IndexOf((char)63) != -1) RAWert = RAWert.Replace(Convert.ToString((char)63), "");
  59.             if (RAWert.IndexOf('€') != -1) RAWert = RAWert.Replace(Convert.ToString('€'), "");
  60.             try
  61.             {
  62.                 Wert = Convert.ToDouble(RAWert);
  63.             }
  64.             catch
  65.             {
  66.                 try
  67.                 {
  68.                     Wert = Convert.ToDouble(RAWert.Remove(RAWert.Length - 1, 1));
  69.                 }
  70.                 catch
  71.                 {
  72.                     Console.WriteLine("Es wurde eine falsche Zahl eingegeben!");
  73.                     Wert = 0;
  74.                 }
  75.             }
  76.         }
  77.  
  78.         static int GetZahl(bool retry = false)
  79.         {
  80.             if (retry) Console.Write("Bitte eine ganze Zahl eingeben: ");
  81.             string iamanumber = Console.ReadLine();
  82.             try
  83.             {
  84.                 return Convert.ToInt32(iamanumber);
  85.             }
  86.             catch
  87.             {
  88.                 return GetZahl(true);
  89.             }
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement