Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример программы с использованием стека






Программа реализует простой калькулятор с четырьмя действиями.

 

#include " stdafx.h"

#include " stdio.h"

#include " stdlib.h"

#include " locale.h"

 

#define STACK struct List

STACK

{

int info;

STACK *next;

};

 

void push(STACK **top, int item);

int del (STACK **top);

 

int _tmain(int argc, _TCHAR* argv[])

{

STACK *s = 0;

int a, b;

char str[80];

 

setlocale(LC_ALL, " Russian");

printf(" Калькулятор с четырьмя действиями\n");

printf(" Нажмите 'q' для выхода\n");

do

{

printf(": ");

gets(str);

switch(*str)

{

case '+':

a = del(& s);

b = del(& s);

printf(" %d\n", a+b);

push(& s, a+b);

break;

case '-':

a = del(& s);

b = del(& s);

printf(" %d\n", b-a);

push(& s, b-a);

break;

case '*':

a = del(& s);

b = del(& s);

printf(" %d\n", b*a);

push(& s, b*a);

break;

case '/':

a = del(& s);

b = del(& s);

if(a==0)

{

printf(" Деление на 0.\n");

break;

}

printf(" %d\n", b/a);

push(& s, b/a);

break;

case '.':

a = del(& s);

push(& s, a);

printf(" Текущее значение вершины стека: %d\n", a);

break;

default:

push(& s, atoi(str));

}

}

while(*str! = 'q');

 

return 0;

}

 

void push (STACK **top, int item)

{

STACK *new_item;

new_item = new STACK;

new_item-> info = item;

new_item-> next=*top;

*top = new_item;

}

 

int del (STACK **top)

{

STACK *old_item = *top;

int item;

 

if(*top)

{

item = (*top)-> info;

*top =(*top)-> next;

free(old_item);

return item;

}

return 1;

}

 

Пример программы с использованием очереди

Программа реализует мини-планировщик событий:

 

#include " stdafx.h"

#include " string.h"

#include " stdlib.h"

#include " stdio.h"

#include " ctype.h"

 

#define QUEUE struct List

 

QUEUE

{

char *info;

int num;

QUEUE *next;

};

 

void insert(QUEUE **pbeg, char *item, int number);

void del(QUEUE **pbeg);

void enter(int *spos, QUEUE **q);

void review(QUEUE **q);

 

int _tmain(int argc, _TCHAR* argv[])

{

char s[80];

int spos=0;

QUEUE *q=0;

 

for(;;)

{

printf(" Enter, List, Remove, Quit: ");

gets(s);

*s = toupper(*s);

 

switch(*s)

{

case 'E':

enter(& spos, & q);

break;

case 'L':

review(& q);

break;

case 'R':

del(& q);

break;

case 'Q':

exit(0);

}

}

return 0;

}

 

void insert(QUEUE **pbeg, char *item, int number)

{

QUEUE *current = *pbeg;

QUEUE *previous = 0;

QUEUE *new_node;

while (current)

{

previous = current;

current = current -> next;

}

new_node = new QUEUE;

strcpy(new_node-> info, item);

new_node-> num = number;

if (previous)

{

new_node-> next = 0;

previous-> next = new_node;

}

else

{

*pbeg = new_node;

(*pbeg)-> next = 0;

}

}

 

void del (QUEUE **pbeg)

{

QUEUE *old_item = *pbeg;

 

if(*pbeg)

{

printf(" %d: %s\n", (*pbeg)-> num, (*pbeg)-> info);

*pbeg =(*pbeg)-> next;

free(old_item);

}

}

 

void enter(int *spos, QUEUE **q)

{

char *s;

QUEUE *q1=*q;

 

s = new char;

do

{

printf(" Enter appointment %d: ", spos+1);

gets(s);

if(*s==0)

break;

spos++;

insert(& q1, s, spos);

*q = q1;

}

while(*s);

}

 

void review(QUEUE **q)

{

QUEUE *temp = *q;

while(temp)

{

printf(" %d. %s\n", temp-> num, temp-> info);

temp = temp-> next;

}

}

 


 

Варианты заданий к практической работе №2

Вариант 1

1.) Составить программу, которая содержит текущую информацию об успеваемости студентов.

Сведения о студентах включают:

· фамилия и инициалы;

· номер группы;

· успеваемость (массив из пяти элементов).

2.) Программа должна обеспечивать:

· хранение сведений обо всех студентах в виде односвязного списка (очередь);

· добавление данных о новых студентах;

· удаление данных о студенте, фамилия которого введена с клавиатуры;

· вывод сведений обо всех студентах;

· по запросу выводятся сведения о студентах, средний балл которых больше 4.0.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 2

1.) Составить программу, которая содержит текущую информацию об успеваемости студентов.

Сведения о студентах включают:

· фамилия и инициалы;

· номер группы;

· успеваемость (массив из пяти элементов).

2.) Программа должна обеспечивать:

· хранение сведений обо всех студентах в виде односвязного списка (очередь);

· добавление данных о новых студентах;

· удаление данных о студенте, фамилия которого введена с клавиатуры;

· вывод сведений обо всех студентах;

· по запросу выводятся сведения о студентах, которые имеют оценки 4 и 5.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 3

1.) Составить программу, которая содержит текущую информацию об успеваемости студентов.

Сведения о студентах включают:

· фамилия и инициалы;

· номер группы;

· успеваемость (массив из пяти элементов).

2.) Программа должна обеспечивать:

· хранение сведений обо всех студентах в виде односвязного списка (очередь);

· добавление данных о новых студентах;

· удаление данных о студенте, фамилия которого введена с клавиатуры;

· вывод сведений обо всех студентах;

· по запросу выводятся сведения о студентах, которые имеют хотя бы одну оценку 2.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 4

1.) Составить программу, которая содержит текущую информацию о заявках на авиабилеты.

Каждая заявка включает:

· пункт назначения;

· номер рейса;

· фамилию и инициалы пассажира;

· желаемую дату вылета.

2.) Программа должна обеспечивать:

· хранение всех заявок в виде односвязного списка (очередь);

· добавление заявок в список;

· удаление заявки пассажира, фамилия которого введена с клавиатуры;

· вывод всех заявок;

· вывод заявок по заданному пункту назначения.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 5

1.) Составить программу, которая содержит текущую информацию о заявках на авиабилеты.

Каждая заявка включает:

· пункт назначения;

· номер рейса;

· фамилию пассажира;

· желаемую дату вылета.

2.) Программа должна обеспечивать:

· хранение всех заявок в виде односвязного списка (очередь);

· добавление заявок в список;

· удаление заявки пассажира, фамилия которого введена с клавиатуры;

· вывод всех заявок;

· вывод заявок по заданной дате вылета.

3.) Программа должна обеспечивать диалог с помощью меню.

Вариант 6

1.) Составить программу, которая содержит текущую информацию о работниках организации.

Сведения о работнике включают:

· фамилия и инициалы работника;

· название занимаемой должности;

· год поступления на работу;

2.) Программа должна обеспечивать:

· хранение сведений обо всех работниках в виде односвязного списка (очередь);

· добавление новых работников в список;

· удаление работников из списка, фамилия которого введена с клавиатуры;

· вывод сведений обо всех работниках;

· по запросу выводятся сведения о работниках, чей стаж работы в организации превышает значение, введенное с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 7

1.) Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования.

Для каждого поезда указывается:

· пункт назначения;

· номер поезда;

· время отправления.

2.) Программа должна обеспечивать:

· хранение данных в информационной системе в виде односвязного списка (очередь);

· добавление данных о поездах в информационную систему;

· удаление данных о поезде по введенному номеру поезда;

· вывод информации обо всех поездах;

· вывод информации о поездах, отправляющихся после введенного с клавиатуры времени.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 8

1.) Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования.

Для каждого поезда указывается:

· пункт назначения;

· номер поезда;

· время отправления.

2.) Программа должна обеспечивать:

· хранение данных в информационной системе в виде односвязного списка (очередь);

· добавление данных о поездах в информационную систему;

· удаление данных о поезде по введенному номеру поезда;

· вывод информации обо всех поездах;

· вывод информации обо всех поездах, следующих до заданного пункта назначения.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 9

1.) Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования.

Для каждого поезда указывается:

· пункт назначения;

· номер поезда;

· время отправления.

2.) Программа должна обеспечивать:

· хранение данных в информационной системе в виде односвязного списка (очередь);

· добавление данных о поездах в информационную систему;

· удаление данных о поезде по введенному номеру поезда;

· вывод информации обо всех поездах;

· вывод информации о поезде, номер которого введен с клавиатуры;

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 10

1.) Составить программу, которая содержит информацию о наличии автобусов в автобусном парке.

Сведения о каждом автобусе включают:

· номер автобуса;

· фамилию и инициалы водителя;

· номер маршрута.

2.) Программа должна обеспечивать:

· хранение данных обо всех автобусах в парке в виде односвязного списка (очередь);

· добавление данных об автобусах в список при въезде каждого автобуса в парк;

· удаление данных об автобусе из списка при выезде из парка, номер которого введен с клавиатуры;

· вывод информации обо всех автобусах, находящихся в парке;

· по запросу выводится информация об автобусе по введенной фамилии водителя.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 11

1.) Составить программу, которая содержит информацию о наличии автобусов в автобусном парке.

Сведения о каждом автобусе включают:

· номер автобуса;

· фамилию и инициалы водителя;

· номер маршрута.

2.) Программа должна обеспечивать:

· хранение данных обо всех автобусах в парке в виде односвязного списка (очередь);

· добавление данных об автобусах в список при въезде каждого автобуса в парк;

· удаление данных об автобусе из списка при выезде из парка, фамилия водителя которого введена с клавиатуры;

· вывод информации обо всех автобусах, находящихся в парке;

· по запросу выводится информация обо всех автобусах, работающих на маршруте, номер которого введен с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 12

1.) Составить программу, которая содержит сведения телефонной книжки.

Каждая запись включает:

· фамилия, имя;

· номер телефона;

· день рождения (массив из трех чисел).

2.) Программа должна обеспечивать:

· хранение всех записей в виде односвязного списка (очередь);

· добавление новой записи;

· удаление из списка информации о человеке, фамилия которого введена с клавиатуры;

· вывод информации обо всех номерах телефонов;

· по запросу выводится информация о человеке, номер телефона которого введен с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 13

1.) Составить программу, которая содержит сведения телефонной книжки.

Каждая запись включает:

· фамилия, имя;

· номер телефона;

· день рождения (массив из трех чисел).

2.) Программа должна обеспечивать:

· хранение всех записей в виде односвязного списка (очередь);

· добавление новой записи;

· удаление из списка информации о человеке, фамилия которого введена с клавиатуры;

· вывод информации обо всех номерах телефонов;

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

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 14

1.) Составить программу, которая содержит сведения телефонной книжки.

Каждая запись включает:

· фамилия, имя;

· номер телефона;

· день рождения (массив из трех чисел).

2.) Программа должна обеспечивать:

· хранение всех записей в виде односвязного списка (очередь);

· добавление новой записи;

· удаление из списка информации о человеке, день рождения которого приходится на дату, введенную с клавиатуры;

· вывод информации обо всех номерах телефонов;

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

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 15

1.) Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах включают:

· фамилию и инициалы автора;

· название;

· год издания;

· количество экземпляров данной книги в библиотеке.

2.) Программа должна обеспечивать:

· хранение всех данных обо всех книгах в библиотеке в виде односвязного списка (очередь);

· добавление данных о книгах вновь поступивших в библиотеку;

· удаление данных о списываемой книге, название которой введено с клавиатуры;

· вывод информации обо всех книгах в библиотеке;

· по запросу выводится информация обо всех книгах автора, имеющихся в библиотеке, чья фамилия введена с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 16

1.) Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах включают:

· фамилию и инициалы автора;

· название;

· год издания;

· количество экземпляров данной книги в библиотеке.

2.) Программа должна обеспечивать:

· хранение всех данных обо всех книгах в библиотеке в виде односвязного списка (очередь);

· добавление данных о книгах вновь поступивших в библиотеку;

· удаление данных о списываемой книге, название которой введено с клавиатуры;

· вывод информации обо всех книгах в библиотеке;

· по запросу выводится информация о книге, название которой введено с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 17

1.) Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах включают:

· фамилию и инициалы автора;

· название;

· год издания;

· количество экземпляров данной книги в библиотеке.

2.) Программа должна обеспечивать:

· хранение всех данных обо всех книгах в библиотеке в виде односвязного списка (очередь);

· добавление данных о книгах вновь поступивших в библиотеку;

· удаление данных о списываемой книге, название которой введено с клавиатуры;

· вывод информации обо всех книгах в библиотеке;

· по запросу выводится информация о книгах, изданных после года, введенного с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 18

1.) Составить программу, которая содержит текущую информацию о наличии товара на складе.

Сведения о товаре включают:

· название товара;

· название магазина, в котором продается товар;

· стоимость товара в рублях.

· номер партии товара.

2.) Программа должна обеспечивать:

· хранение сведений обо всех товарах в виде односвязного списка (очередь);

· добавление данных о новых товарах;

· удаление данных о товаре, номер которого введен с клавиатуры;

· вывод сведений обо всех товарах;

· по запросу выводятся сведения о товаре, название которого введено с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 19

1.) Составить программу, которая содержит текущую информацию о наличии товара на складе.

Сведения о товаре включают:

· название товара;

· название магазина, в котором продается товар;

· стоимость товара в рублях.

· номер партии товара.

2.) Программа должна обеспечивать:

· хранение сведений обо всех товарах в виде односвязного списка (очередь);

· добавление данных о новых товарах;

· удаление данных о товаре, номер которого введен с клавиатуры;

· вывод сведений обо всех товарах;

· по запросу выводятся сведения о товаре, название которого введено с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 

Вариант 20

1.) Составить программу, которая содержит текущую информацию о наличии товара на складе.

Сведения о товаре включают:

· название товара;

· название магазина, в котором продается товар;

· стоимость товара в рублях.

· номер партии товара.

2.) Программа должна обеспечивать:

· хранение сведений обо всех товарах в виде односвязного списка (очередь);

· добавление данных о новых товарах;

· удаление данных о товаре, номер которого введен с клавиатуры;

· вывод сведений обо всех товарах;

· по запросу выводятся сведения о товарах, цена которых больше, введенной с клавиатуры.

3.) Программа должна обеспечивать диалог с помощью меню.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.