konstruktory wyjatki itd 13 grudnia


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication5
{


class Ksiazka
{
public static int miejsce = 10;

public String tytuł,
autor;

public int rokWydania, ind = 0;

public Ksiazka()
{

}

public void AddBook(String t, String a, int r)//dodaje książkę
{
bool m = CzyJestMiejsce(); // czy mamy miejsce w tablicy Ksiazka g[miejsce];
if (m == true)
{
tytuł = t;
autor = a;
rokWydania = r;
}
else Console.WriteLine("przekroczono limit książek");
}

public bool CzyJestMiejsce() //początkowo byłą funkcją prywatną, która mogłą być wywołąna tylko przez inną funkcję tej klasy. Teraz - w celu przekazania funkcji klasie potomnej musi być public
{
bool a = true;

if (ind < miejsce) a = true;
else a = false;

return a;
}

public void Wyswietl1()
{
Console.WriteLine("nr. " + ind + " autor: " + autor + " tytuł: " + tytuł + " rok wydania: " + rokWydania);
}

}


class Wypozyczalnia : Ksiazka
{
private bool dostepne;

public Wypozyczalnia(int i ,int year,String title,String author, bool dost) //konstruktor z arg wywołania
{
ind = i;
rokWydania = year;
tytuł = title;
autor = author;
dostepne = dost;
}

public Wypozyczalnia(int i) // konstruktor z obsługą wyjątków. Podawanie danych z klawiatury
{

ind = i;
Console.WriteLine("Podaj autora: ");
autor = Console.ReadLine();
Console.WriteLine("Podaj tytuł: ");
tytuł = Console.ReadLine();
A:
Console.WriteLine("Podaj rok wydania: ");
try
{
rokWydania = int.Parse(Console.ReadLine());
}
catch (FormatException ex)
{
Console.WriteLine("rok musi być liczbą");
goto A;
}
Console.WriteLine(""); Console.WriteLine("");
dostepne = true;
}

~Wypozyczalnia()
{

}

public void Wyswietl()//książka w klasie Wypozyczalnia zawiera więcej informacji do wyświetlenia
{
String a = " NIE DOSTĘPNA";
if (dostepne == true) a = " DOSTĘPNA";
Console.WriteLine("nr. " + ind + " autor: " + autor + " tytuł: " + tytuł + " rok wydania: " + rokWydania + a);
}


public void AddBook(String t, String a, int r)//książka w klasie Wypozyczalnia zawiera więcej informacji do zapisania
{
bool m = CzyJestMiejsce();
if (m == true)
{
tytuł = t;
autor = a;
rokWydania = r;
dostepne = true;
}
else Console.WriteLine("przekroczono limit książek");
}

public void Wypozycz()
{
if (dostepne == true)
dostepne = false;
else Console.WriteLine("książka niedostępna");
}

public void Oddaj()
{
if (dostepne == false)
dostepne = true;
else Console.WriteLine("książka nie była niewypożyczona");
}


}
class Program
{
public static void Pause()
{
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}

static void Main(string[] args)
{
char k = ' ';
Wypozyczalnia[] g = new Wypozyczalnia[3];
for (int i = 0; i < 3; i++)
{
g[i] = new Wypozyczalnia(i);
}
while (k != 'q')
{
for (int i = 0; i < 3; i++)
{
if (g[i].rokWydania != 0)
{
g[i].Wyswietl();
}
}
Console.WriteLine("");
Console.WriteLine("naciśnij któryś z klawiszy aby wywołać akcję:");
Console.WriteLine("menu:");
Console.WriteLine("a - dodaj książkę");
Console.WriteLine("w - wypożycz książkę");
Console.WriteLine("o - oddaj książkę");
Console.WriteLine("q - zakończ program");
Console.WriteLine("");

k = (char)Console.Read();

if (k == 'a')
{
for (int i = 0; i < 3; i++)
{
if (g[i].rokWydania == 0)
{
String author = "", title = "";
int year = 0;
Console.WriteLine("Podaj autora: ");
author = Console.ReadLine();
author = Console.ReadLine();
Console.WriteLine("Podaj tytuł: ");
title = Console.ReadLine();
Console.WriteLine("Podaj rok wydania: ");
year = int.Parse(Console.ReadLine());
Console.WriteLine(""); Console.WriteLine("");
g[i].AddBook(title, author, year);
break;
}
}


}
else if (k == 'w')
{

Console.WriteLine("Podaj numer książki: ");
String nr1 = Console.ReadLine();
nr1 = Console.ReadLine();
int nr = int.Parse(nr1);
Console.WriteLine(""); Console.WriteLine("");
g[nr].Wypozycz();

}
else if (k == 'o')
{
Console.WriteLine("Podaj numer książki: ");
String nr1 = Console.ReadLine();
nr1 = Console.ReadLine();
int nr = int.Parse(nr1);
Console.WriteLine(""); Console.WriteLine("");
g[nr].Oddaj();
}
else if (k == 'q')
{
break;
}


Console.WriteLine(""); Console.WriteLine("");

}
Pause();
}
}
}



Wyszukiwarka

Podobne podstrony:
MICHALKIEWICZ 11 LISTOPADA CZY 13 GRUDNIA
Wojciech Polak – Internowania w nocy z 12 na 13 grudnia 1981
13 grudnia 1981 KLCW 2008 12 13
GRUPA TRZYMAJĄCA SONDAŻE (13 GRUDNIA 2006)
Konwencja o prawach os niepełnosprawnych, sporządzona w Nowym Jorku 13 grudnia 2006 D20121169
S1 Konstrukcje betonowe I Algorytm do wymiarowania EC2 16 13
BUD OG projekt 13 Mury wymagania konstrukcyjne
13 Określanie konstrukcji wybranych urządzeń precyzyjnych
13 PRZENIESIENIE WSKAZNIKW KONSTRUKCYJNYCH METODA BEZPOSREDNIEGO RZUTOWANIA, DOKLADNOSC
notatek pl konstrukcje betonowe 1 pytania egzaminacyjne 13
8 grudnia Niepokalane Poczęcie NMP i GODZINA ŁASKI (12 13) informacje praktyczne
UAS 13 zao
er4p2 5 13
Finanse Konstrukcja podatku 1

więcej podobnych podstron