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 GRUDNIAWojciech Polak – Internowania w nocy z 12 na 13 grudnia 198113 grudnia 1981 KLCW 2008 12 13GRUPA TRZYMAJĄCA SONDAŻE (13 GRUDNIA 2006)Konwencja o prawach os niepełnosprawnych, sporządzona w Nowym Jorku 13 grudnia 2006 D20121169S1 Konstrukcje betonowe I Algorytm do wymiarowania EC2 16 13BUD OG projekt 13 Mury wymagania konstrukcyjne13 Określanie konstrukcji wybranych urządzeń precyzyjnych13 PRZENIESIENIE WSKAZNIKW KONSTRUKCYJNYCH METODA BEZPOSREDNIEGO RZUTOWANIA, DOKLADNOSCnotatek pl konstrukcje betonowe 1 pytania egzaminacyjne 138 grudnia Niepokalane Poczęcie NMP i GODZINA ŁASKI (12 13) informacje praktyczneUAS 13 zaoer4p2 5 13Finanse Konstrukcja podatku 1więcej podobnych podstron