Результат работы программы




Попко Андрей, 2 курс, 3 группа

Лабораторная работа № 7

Структуры и массивы структур

Условие задачи

Составить программу, в которой будут вводиться 7 - 10 строк таблицы.

Таблица выводится на экран - сразу же после ввода и после сортировки ее по значениям в первом столбце.

При написании программы следует учитывать различные варианты как входных данных (например, составные наименования, не конкретные значения, а их диапазоны и т.п.), так и варианты некорректного ввода данных.

 

Описание алгоритма

В структуре Time описываем четыре переменные для хранения данных. Name – название программы, Strok – количество строк ввода, TimeCall – время использования на SGI Callenge, TimeIndy – время использования на SGI Indy.

Добавим проверку ввода имени. Посимвольно будем сравнивать, является ли он буквой, и если не является, то повторим ввод. Ввод данных заканчивается, когда имя – “***”. Выполним вывод исходных данных в виде таблицы.

Сортировку по первому столбцу проведем с помощью метода Compare класса String и выведем отсортированные данные в таблице.

 

Код

using System;

 

namespace Lab_7

{

struct Time

{

public string Name;

public int Strok;

public double TimeCall;

public double TimeIndy;

}

 

class Program

{

static void Main()

{

int m = 0;

Time[] a = new Time[10];

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

{

m = i;

Console.WriteLine("Введите данные ");

 

// проверка на ввод имени ---------------------------

int char_I = 0;

do

{

Console.Write("Название: ");

char_I = 0;

a[i].Name = Console.ReadLine();

if (a[i].Name == "***") break;

for (int j = 0; j < a[i].Name.Length; j++)

if (char.IsLetter(a[i].Name[j])) char_I++;

}

while (char_I!= a[i].Name.Length);

if (a[i].Name == "***") break;

//---------------------------------------------------

 

Console.Write("Количество строк кода: ");

a[i].Strok = int.Parse(Console.ReadLine());

Console.Write("Время исп. на SGI Callenge: ");

a[i].TimeCall = double.Parse(Console.ReadLine());

Console.Write("Время исп. на SGI Indy: ");

a[i].TimeIndy = double.Parse(Console.ReadLine());

}

Console.WriteLine("________________________________________________________________________________");

Console.WriteLine("|Время выполнения некоторых программ, которые применяют параллельные алгоритмы |");

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

Console.WriteLine("|Название | Количество строк | Время исп.на | Время исп.на |");

Console.WriteLine("|Название | кода | SGI Callenge | SGI Indy |");

Console.WriteLine("________________________________________________________________________________");

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

{

if (a[i].Name == "***")

break;

else

Console.WriteLine("|{0,-11}|{1,-20}|{2,-24}|{3,-20}|", a[i].Name, a[i].Strok, a[i].TimeCall, a[i].TimeIndy);

}

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

Console.WriteLine("|SGI Call-ЦП R1000 196MHz,1.024MB RAM SGI Indy-ЦП MIPS R4600 134MHz,64MB RAM |");

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

bool t = true;

while(t)

{

t = false;

for (int i = 0; i < (m-1); i++)

{

int result = String.Compare(a[i].Name, a[i+1].Name,true);

if (result > 0)

{

Time about = a[i];

a[i] = a[i+1];

a[i+1] = about;

t = true;

}

}

}

Console.WriteLine("________________________________________________________________________________");

Console.WriteLine("|Время выполнения некоторых программ, которые применяют параллельные алгоритмы |");

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

Console.WriteLine("|Название | Количество строк | Время исп.на | Время исп.на |");

Console.WriteLine("| | кода | SGI Callenge | SGI Indy |");

Console.WriteLine("________________________________________________________________________________");

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

{

if (a[i].Name == "***")

break;

else

Console.WriteLine("|{0,-11}|{1,-20}|{2,-24}|{3,-20}|", a[i].Name, a[i].Strok, a[i].TimeCall, a[i].TimeIndy);

}

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

Console.WriteLine("|SGI Call-ЦП R1000 196MHz,1.024MB RAM SGI Indy-ЦП MIPS R4600 134MHz,64MB RAM |");

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

Console.ReadKey();

}

}

}

Отладка

Результат работы программы



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: