Маю задачу: Створити клас Пацієнт. Клас повинен містити інформацію про пацієнта лікарні:
● ім’я
● вік
● відділення
● список хвороб
● лікар
● список ліків (список структур типу Ліки (назва препарату, ціна, кількість))
● загальна сума лікування
Методи класу:
● Конструктор
● Методи виводу інформації по пацієнту (дані про пацієнта, список ліків, список хвороб)
● Публічні властивості на поля класу та індексатор для роботи зі списками
Ось структура та клас (без методів виведення інформації)
▼Прихований текст
struct Medicament
{
public string name;
public double price;
public int quantity;
}
class Patient
{
string name;
int age;
string ward;
List<string> diseases;
string doctor_name;
List<Medicament> medicaments;
double total_sum_treatment;
public Patient()
{
name = "no name";
age = 0;
ward = "no ward";
diseases = new List<string> ();
doctor_name = "no doctor";
medicaments = new List<Medicament> ();
total_sum_treatment = 0;
}
public Patient(string _name, int _age, string _ward, string disease, string doctor, Medicament medicament)
{
name = _name;
age = _age;
ward = _ward;
diseases = new List<string>();
diseases.Add (disease);
doctor_name = doctor;
medicaments = new List<Medicament>();
medicaments.Add (medicament);
foreach (Medicament drug in medicaments)
total_sum_treatment += drug.price * drug.quantity;
}
//public properties for fields
public string Name
{
get { return name; }
set { if (value != "") name = value; }
}
public int Age
{
get { return age; }
set { if (value > 0) age = value; }
}
public string Ward
{
get { return ward; }
set { if (value != "") ward = value; }
}
public string Doctor
{
get { return doctor_name; }
set { if (value != "") doctor_name = value; }
}
public List<string> Diseases
{
get { return diseases; }
}
public List<Medicament> Medicaments
{
get { return medicaments; }
}
public double TotalSumTreatment
{
get { return total_sum_treatment; }
}
}
І, власне, сама проблема: у завданні є пункт про створення індексації для роботи зі списками. Як можна зробити індексацію для двох списків одночасно?
Ось те, що я намагалась зробити (розумію, що це є неправильно, але уявлення не маю як правильно це реалізувати):
▼Прихований текст
public string this[int key]
{
get
{
if (key < 0 || key >= diseases.Count)
return String.Format("Index can't be < {0} and >{1}", 0, diseases.Count);
else
return diseases[key];
}
set
{
if (key < 0 || key >= diseases.Count)
Console.WriteLine("Index can't be < {0} and >{1}", 0, diseases.Count);
else
diseases[key] = value;
}
}
public Medicament this[int key]
{
get
{
if (key < 0 || key >= medicaments.Count)
return String.Format("Index can't be < {0} and >{1}", 0, medicaments.Count);
else
return medicaments[key];
}
set
{
if (key < 0 || key >= medicaments.Count)
Console.WriteLine("Index can't be < {0} and >{1}", 0, medicaments.Count);
else
medicaments[key] = value;
}
}
Підкажіть, будь ласка.