Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
181 Кб
Скачать
☆

3.Алгоритмы

Рис. 2. Алгоритм функции Main

Рис. 3. Алгоритм функции Load

No

No

Рис. 4. Алгоритм функции FindType

4. Интерфейс

Взаимодействие с пользователем осуществляется при помощи меню и диалогов. При запуске программы на экране появляется на экране окно с «Меню», где пользователь может выбрать нужное действие (просмотр, добавление новой записи, поиск и выход).

Рис. 5. Меню программы

При выборе пункта «Просмотр» на экране появляется информация из файла.

Рис. 6. Вывод БД на экран

При выборе пункта "Добавление новой записи" на экране появляются подсказки с полями, которые необходимо заполнить.

Рис. 7. Добавление новой записи.

При выборе пункта "Поиск" пользователю предлагается выбор критерия для поиска. После выбора критерия, требуется ввести либо тип, либо цветность печати. Если записей в БД с соответствующим критериям нет, будет выведено сообщение: «В базе данных нет запрашиваемых значений».

Рис. 8. Меню поиска

При вводе года или страны на экран выводится информация об искомых принтерах.

Рис. 9. Результат выполнения поиска

5. Функции

В таблице 1 приведены функции программы работы с БД.

Таблица 1. Функции

Функция

Описание

Разработчик

Main

Основная программа

Ядрихинская А.В.

Menu()

Функция вывода основного меню. Возвращает вводимое пользователем значение.

Ядрихинская А.В.

ChoiseMenu()

Функция вывода меню поиска. Возвращает вводимое пользователем значение.

Ядрихинская А.В.

Add(List<Printer> list)

Функция добавления записи в список принтеров

Ядрихинская А.В.

Show(List<Printer> list)

Функция вывода списка принтеров на экран

Ядрихинская А.В.

FindType(List<Printer> list)

Функция поиска по типу и вывода на экран найденных записей

Ядрихинская А.В.

FindColorful(List<Printer> list)

Функция поиска по цветности печати и вывода на экран найденных записей

Ядрихинская А.В.

Load(List<Printer> list, string link)

Функция загрузки БД из файла в список

Ядрихинская А.В.

Save(List<Printer> list, string link)

Функция сохранения БД в файле

Ядрихинская А.В.

6. Листинги

В листингах 3, 4, 5, 6, 7, 8, 9, 10 и 11 приведены процедуры Main, Menu(), ChoiseMenu(), Write(List<Printer> list), Show(List<Printer> list), FindType(List<Printer> list), FindColorful(List<Printer> list), Load(List<Printer> list, string link) и Save(List<Printer> list, string link) соответственно.

Листинг 3. Функция Main()

static void Main(string[] args)

{

int p = 0, f = 0;

List<Printer> printers = new List<Printer>();

string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

string Textfile = path + "//ydr.txt";

Console.WriteLine("\n База данных принтеров");

Load(printers, Textfile);

do

{

p = Menu();

switch (p)

{

case 1: Show(printers); break;

case 2: Add(printers); break;

case 3:

do

{

f = ChoiseMenu();

switch (f)

{

case 1: FindType(printers); break;

case 2: FindColorful(printers); break;

case 0: Console.WriteLine("\n Выход из меню поиска"); break;

default: break;

}

} while (f != 0);

break;

case 0: Console.WriteLine("\n До свидания!"); break;

default: break;

}

} while (p != 0);

Save(printers, Textfile);

}

Листинг 4. Функция Menu()

static int Menu()

{

int ch;

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

Console.Write(" 1 - Просмотр \n 2 - Добавить \n 3 - Поиск \n 0 - Выход\n Ваш выбор: ");

ch = System.Convert.ToInt32(Console.ReadLine());

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

return ch;

}

Листинг 5. Функция ChoiseMenu()

static int ChoiseMenu()

{

int ch;

Console.Write(" \n 1 - Поиск по типу \n 2 - Поиск по цветности печати \n 0 - Выход\n Ваш выбор: ");

ch = System.Convert.ToInt32(Console.ReadLine());

return ch;

}

Листинг 6. Функция Add(List<Printer> list)

static void Add(List<Printer> list)

{

Console.Write("\nДобавление новой записи.");

int i = list.Count;

Console.Write("\nНаименование: ");

string n = Console.ReadLine();

Console.Write("Тип принтера: ");

string t = Console.ReadLine();

Console.Write("Цвет принтера: ");

int c = System.Convert.ToInt32(Console.ReadLine());

Console.Write("Цветность печати: ");

string cf = Console.ReadLine();

Console.Write("Стоимость: ");

int p = System.Convert.ToInt32(Console.ReadLine());

Printer novoe = new Printer(n, t, c, cf, p);

list.Add(novoe);

Console.WriteLine("");

}

Листинг 7. Функция Show(List<Printer> list)

static void Show(List<Printer> printer)

{

int i = 0;

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

Console.WriteLine("\n{0,-20} {1,-15} {2,-4} {3,-10} {4}", "Наименование", "Тип принтера", "Цвет", "Цветность печати", "Стоимость (руб.);

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

for (i = 0; i < printer.Count; i++)

{

Console.WriteLine("\n{0,-20} {1,-15} {2} {3,-10} {4}", printer[i].title, printer[i].type, printer[i].color, printer[i].colorful, printer[i].price);

}

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

}

Листинг 8. Функция FindType(List<Printer> list)

static void FindType(List<Printer> printer)

{

string crit;

int j = 0;

Console.Write("\n Тип принтера: ");

crit = Console.ReadLine();

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

Console.WriteLine("\n{0,-20} {1,-15} {2,-4} {3,-10} {4}", "Наименование", "Тип принтера", "Цвет", "Цветность печати", "Стоимость");

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

for (int i = 0; i < printer.Count; i++)

if (crit.ToLower() == printer[i].type.ToLower())

{

Console.WriteLine("\n{0,-20} {1,-15} {2} {3,-10} {4}", printer [i].title, printer[i].type, printer[i].color, printer[i].colorful, printer[i].price);

j++;

}

if (j == 0)

Console.WriteLine(" В базе данных нет запрашиваемых значений");

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

}

Листинг 9. Функция FindColorful(List<Printer> list)

static void FindColorful(List<Printer> printer)

{

string crit;

int j = 0;

Console.Write("\n Цветность печати: ");

crit = Console.ReadLine();

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

Console.WriteLine("\n{0,-20} {1,-15} {2,-4} {3,-10} {4}", "Наименование", "Тип принтера", "Цвет", "Цветность печати", "Стоимость");

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

for (int i = 0; i < printer.Count; i++)

if (crit.ToLower == printer[i].colorful.ToLower())

{

Console.WriteLine("\n{0,-20} {1,-15} {2} {3,-10} {4}", printer [i].title, printer[i].type, printer[i].color, printer[i].colorful, printer[i].price);

j++;

}

if (j == 0)

Console.WriteLine(" В базе данных нет запрашиваемых значений");

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

}

Листинг 10. Функция Load(List<Printer> list, string link)

static void Load(List <Printer> printer, string link)

{

if (System.IO.File.Exists(link))

{

System.IO.StreamReader sr = new System.IO.StreamReader(link);

while (!sr.EndOfStream)

{

string title = sr.ReadLine();

string type = sr.ReadLine();

string color = sr.ReadLine();

string colorful = sr.ReadLine();

string sprice = sr.ReadLine();

int price = System.Convert.ToInt32(sprice);

printer.Add(new Printer(title, type, color, colorful, price));

}

sr.Close();

}

}

Листинг 11. Функция Save(List<Printer> list, string link)

static void Save(List<Printer> printer, string link)

{

bool mode = false;

if (System.IO.File.Exists(link))

{

System.IO.StreamWriter sw = new System.IO.StreamWriter(link, mode);

for (int j = 0; j < film.Count; j++)

{

sw.WriteLine(printer[j].title);

sw.WriteLine(printer[j].type);

sw.WriteLine(printer[j].color);

sw.WriteLine(printer[j].colorful);

sw.WriteLine(System.Convert.ToString(printer[j].price));

}

Console.WriteLine("База успешно перезаписана");

sw.Close();

}

}

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