Помощь в учёбе, очень быстро...
Работаем вместе до победы

Разработка программы и результаты выполнения

РефератПомощь в написанииУзнать стоимостьмоей работы

T3 = (List3 *) malloc (sizeof (List3)); // Создаем новый элемент. T1 = (List1 *) malloc (sizeof (List1)); // Создаем новый элемент. List3 *s = 0; // Указатель на первый элемент списка. Fprintf (f, «Последовательность целых чисел: «); Else { // Если вводим элемент верхнего списка. If (c == '8' || c == '2') { // Если идем вверх или вниз. Структура для трехнаправленного списка. Структура для… Читать ещё >

Разработка программы и результаты выполнения (реферат, курсовая, диплом, контрольная)

#include.

#include.

#include.

using namespace std;

FILE *f; // Файл для вывода результатов.

// Структура для однонаправленного списка.

struct List1.

{.

int info; // Информационное поле.

List1 *right; // Указатель на правый элемент.

};

// Структура для трехнаправленного списка.

struct List3.

{.

List1 *up; // Указатель на верхний элемент.

List1 *down; // Указатель на нижний элемент.

List3 *right; // Указатель на правый элемент.

};

// Вводит список. Возвращает число n.

int InputList (List3 **s).

{.

List1 *t1 = 0; // Указатель на текущий элемент верхнего или нижнего списка.

List3 *t3 = 0; // Указатель на текущий элемент трехнаправленного списка.

List1 *p2 = 0; // Указатель на последний введенный элемент верхнего списка.

List3 *p0 = 0; // Указатель на последний элемент трехнаправленного списка.

List1 *p1 = 0; // Указатель на последний введенный элемент нижнего списка.

int n = 0; // Количество элементов.

int a; // Вводимое число.

scanf («%d», &a);

fprintf (f, «%d «, a);

while (a ≠ 0) {.

n++;

t1 = (List1 *) malloc (sizeof (List1)); // Создаем новый элемент.

t1->info = a;

t1->right = 0;

if (n % 2 == 1) { // Если вводим элемент нижнего списка.

t3 = (List3 *) malloc (sizeof (List3)); // Создаем новый элемент.

t3->up = 0;

t3->down = t1;

t3->right = 0;

}.

if (n == 1) // Если вводим первый элемент.

*s = t3;

if (n % 2 == 1) { // Если вводим элемент нижнего списка.

if (n ≠ 1) { // Если вводим не первый элемент.

p1->right = t1;

p0->right = t3;

}.

p1 = t1;

p0 = t3;

}.

else { // Если вводим элемент верхнего списка.

if (n ≠ 2) // Если вводим не второй элемент.

p2->right = t1;

p2 = t1;

p0->up = t1;

}.

scanf («%d», &a);

fprintf (f, «%d «, a);

}.

fprintf (f, ««);

return n;

}.

// Просматривает список.

void ViewList (List3 *s).

{.

List1 *t1 = 0; // Указатель на текущий элемент верхнего или нижнего списка.

List3 *t3 = 0; // Указатель на текущий элемент трехнаправленного списка.

char y = 'y';

char c;

while (y == 'y') {.

printf («Просмотр списка «);

printf («(8 — Переход вверх, 2 — Переход вниз, 6 — Переход вправо, 0 — Конец просмотра): «);

fprintf (f, «Просмотр списка «);

fprintf (f, «(8 — Переход вверх, 2 — Переход вниз, 6 — Переход вправо, 0 — Конец просмотра): «);

t3 = s;

c = '?';

while (c ≠ '8' && c ≠ '2' && c ≠ '0') {.

if (c == '6') { // Если идем вправо.

if (t3->right ≠ 0) {.

printf («Вправо «);

fprintf (f, «Вправо «);

t3 = t3->right;

}.

else {.

printf («Пусто справа «);

fprintf (f, «Пусто справа «);

}.

}.

c = getch (); // Ждем нажатия клавиши.

while (c == '8' && t3->up == 0) {.

printf («Пусто вверху «);

fprintf (f, «Пусто вверху «);

c = getch (); // Ждем нажатия клавиши.

}.

}.

if (c == '8' || c == '2') { // Если идем вверх или вниз.

if (c == '8') { // Если идем вверх.

t1 = t3->up;

printf («Вверх «);

fprintf (f, «Вверх «);

}.

else { // Если идем вниз.

t1 = t3->down;

printf («Вниз «);

fprintf (f, «Вниз «);

}.

printf («6 — Переход вправо, 0 — Конец просмотра): «);

fprintf (f, «6 — Переход вправо, 0 — Конец просмотра): «);

c = getch (); // Ждем нажатия клавиши.

while (c ≠ '0') {.

if (c == '6') { // Если идем вправо.

if (t1->right ≠ 0) {.

printf («%d Вправо «, t1->info);

fprintf (f, «%d Вправо «, t1->info);

t1 = t1->right;

}.

else {.

printf («%d Пусто справа «, t1->info);

fprintf (f, «%d Пусто справа «, t1->info);

}.

}.

c = getch (); // Ждем нажатия клавиши.

}.

}.

printf («Новый просмотр? (y/n) «);

fprintf (f, «Новый просмотр? (y/n) «);

y = getch (); // Ждем нажатия клавиши.

}.

}.

void main ().

{.

setlocale (LC_ALL, «russian»); // Русский шрифт.

List3 *s = 0; // Указатель на первый элемент списка.

f = fopen («results.txt», «w»); // Открываем файл results. txt для записи результатов.

puts («Введите последовательность целых чисел, в которой 0 отмечает конец ввода:»);

fprintf (f, «Последовательность целых чисел: «);

int n = InputList (&s);

if (n < 1) {.

puts («В последовательности должно быть хотя бы одно число. Нажмите любую клавишу для выхода»);

fprintf (f, «В последовательности должно быть хотя бы одно число «);

fclose (f); // Закрываем файл.

getch (); // Ждем нажатия любой клавиши.

return;

}.

ViewList (s);

fclose (f); // Закрываем файл.

}.

Результат выполнения:

Разработка программы и результаты выполнения.

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

Программа отлажена в Microsoft Visual Studio 2008.

Показать весь текст
Заполнить форму текущей работой