Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lr_c#_9.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
115.71 Кб
Скачать

Постановка задания

1) Выполнить задание по вариантам. Использовать структуру и динамический массив.

2) Изменить задачу так, чтобы использовался ломаный двумерный массив.

Таблица 9.1.

п.п

Задание

1

Даны сведения о работе фирмы – филиалы, для каждого из которых указаны фирмы-партнеры. Определить, ведут ли дела филиалы с указанным партнером. Вывести на экран список этих филиалов.

2

Даны сведения о читателях библиотеки – список кодов книг по каждому читателю. Определить, кто из читателей брал заданную книгу. Вывести на экран их список.

3

Даны сведения о вкладчиках банка – ФИО вкладчика, виды вкладов. Определить, кто из вкладчиков имеет заданный вид вклада. Вывести на экран их список.

4

Даны сведения о подписчиках – ФИО подписчика, адрес, газеты и журналы, которые он выписывает. Определить, кто из подписчиков выписывает заданную газету/журнал. Вывести на экран их список.

5

Даны сведения о больных – адрес, ФИО, список заболеваний (диагнозы врачей). Определить, кто из больных имеет указанный диагноз (заболевание). Вывести на экран их список.

Пример выполнения работы

Даны сведения об учениках одного класса – ФИО и список любимых предметов. Вывести на экран список учеников, у которых любимый предмет N(N вводится с клавиатуры). Количество любимых предметов заранее неизвестно – задается динамически. Использовать структуры.

Изменить задачу так, чтобы использовался ломаный двумерный массив.

ПРОГРАММА

1-е задание:

Вариант №1

using System;

class Zada4a

{

public struct klass

{

public string fam;

public string name;

public string otch;

public string[] predmet;

};

klass[] fio;

int n, n1,kol;

public void init_str()

{

Console.WriteLine("Введите количество учеников");

string s = Console.ReadLine();

n = int.Parse(s);

fio = new klass[n];

}

public void formir()

{

for (int i = 0; i < n; i++)

{

Console.WriteLine("Введите фамилию {0} ученика:",i+1);

fio[i].fam = Console.ReadLine();

Console.WriteLine("Введите имя {0} ученика:", i+1);

fio[i].name = Console.ReadLine();

Console.WriteLine("Введите отчество {0} ученика:", i+1);

fio[i].otch = Console.ReadLine();

Console.WriteLine("Введите количество любимых предметов {0} ученика:", i+1);

kol = int.Parse(Console.ReadLine());

fio[i].predmet = new string[kol];

for (int j = 0; j < kol; j++)

{

Console.WriteLine("Введите название {0}любимого предмета {1} ученика:", j+1,i+1);

fio[i].predmet[j] = Console.ReadLine();

}

}

}

public void poisk()

{

Console.WriteLine("Введите иназвание предмета для поиска:");

string s = Console.ReadLine();

for (int i = 0; i < n; i++)

{

for (int j = 0; j < kol; j++)

{

if (String.Compare(fio[i].predmet[j], s) == 1)

Console.WriteLine(fio[i].fam);

}

}

}

public static int Main()

{

Zada4a z1 = new Zada4a();

z1.init_str();

z1.formir();

z1.poisk();

Console.ReadKey();

return 0;

}

}

1-е задание:

Вариант №2

using System;

class Zada4a

{

public struct klass

{

public string fam;

public string name;

public string otch;

};

public struct child

{

public klass[] fio;

public string[] predmet;

}

int n, n1,kol;

child[] ch;

public void init_str()

{

Console.WriteLine("Введите количество учеников");

string s = Console.ReadLine();

n = int.Parse(s);

ch = new child[n];

}

public void formir()

{

for (int i = 0; i < n; i++)

{

ch[i].fio = new klass[n];

Console.WriteLine("Введите фамилию {0} ученика:",i+1);

ch[i].fio[i].fam = Console.ReadLine();

Console.WriteLine("Введите имя {0} ученика:", i+1);

ch[i].fio[i].name = Console.ReadLine();

Console.WriteLine("Введите отчество {0} ученика:", i+1);

ch[i].fio[i].otch = Console.ReadLine();

Console.WriteLine("Введите количество любимых предметов {0} ученика:", i+1);

kol = int.Parse(Console.ReadLine());

ch[i].predmet = new string[kol];

for (int j = 0; j < kol; j++)

{

Console.WriteLine("Введите название {0}любимого предмета {1} ученика:", j+1,i+1);

ch[i].predmet[j] = Console.ReadLine();

}

}

}

public void poisk()

{

Console.WriteLine("Введите иназвание предмета для поиска:");

string s = Console.ReadLine();

for (int i = 0; i < n; i++)

{

for (int j = 0; j < kol; j++)

{

if (String.Compare(ch[i].predmet[j], s) == 1)

Console.WriteLine(ch[i].fio[i].fam);

}

}

}

public static int Main()

{

Zada4a z1 = new Zada4a();

z1.init_str();

z1.formir();

z1.poisk();

Console.ReadKey();

return 0;

}

}

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ:

2-е задание:

using System;

class Zada4a

{

string[][] ch;

int kol,n;

public void init_str()

{

Console.WriteLine("Введите количество учеников");

string s = Console.ReadLine();

n = int.Parse(s);

ch = new string[n][];

}

public void formir()

{

for (int i = 0; i < n; i++)

{

Console.WriteLine("Введите количество любимых предметов {0} ученика:", i + 1);

kol = int.Parse(Console.ReadLine());

ch[i] = new string[3+kol];

for (int j = 0; j < kol+3; j++)

{

switch (j)

{

case 0: Console.WriteLine("Введите фамилию {0} ученика:", i + 1); break;

case 1: Console.WriteLine("Введите имя {0} ученика:", i + 1); break;

case 2: Console.WriteLine("Введите отчество {0} ученика:", i + 1); break;

default: Console.WriteLine("Введите название {0}любимого предмета {1} ученика:", j - 2, i + 1); break;

}

ch[i][j] = Console.ReadLine();

}

}

}

public void poisk()

{

Console.WriteLine("Введите иназвание предмета для поиска:");

string s = Console.ReadLine();

for (int i = 0; i < n; i++)

{

for (int j = 3; j < kol+3; j++)

{

if (String.Compare(ch[i][j],s) == 1) Console.WriteLine(ch[i][0]);

}

}

}

public static int Main()

{

Zada4a z1 = new Zada4a();

z1.init_str();

z1.formir();

z1.poisk();

Console.ReadKey();

return 0;

}

}

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]