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


Смотри также:

Указатели на функции (итератор) - Исходник.

Функция находит в строке заданную подстроку и возвращает указатель на нее - Исходник.

Сортировка слов по длине: Переписать в выходную строку слова из входной строки в порядке возрастания их длины. - Исходник.

Функции с переменным количеством параметров - Исходник.

Все новинки...

Исходник «Указатели на функции (итератор)»

Когда сдавалась работа2007
Где сдавалась работаНГТУ
Оценка5
Имя автораСергей
Файл: 2.85 КБ
Поделиться:

Задание: Односвязный список, элементы которого содержит указатель топа void* на элемент жанных. Функция включения последним и итератор сортировки методом вставок: исключается первый и включается в новый список в порядке возрастания. Проверить на примере элементов данных - строк и функции сравнения strcmp.

#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>

/* Прототипы функций и глобальные переменные. */
void About(void);
void printsk (char* format,...);
void enter(struct list *usel);		// Ввод строки.
int menu_select(void);		// Выбор пункта меню.
struct list *create(void);		// Создаем пустой элемент списка
char *del_n(char *string);		// Удаляет из переданной строки символ перевода.
void show (struct list *pol);		// Вывод неотсортированного списка.
void show_sort(struct list *pol);	// Вывод на экран отсортированного списка.
void load(struct list *usel);		// Загрузка строк из файла.
void insert (char *str, struct list *usel);	//Вставка новой строки в конец списка.
int compare (void *p1, void *p2);	// Сравнение строк в лексикографическом порядке.
void *str_copy (void *p1);		// Копирут строку.

void *(*pcpy)(void*) = &str_copy;	//Указатель на функцию str_copy. 

struct list
{
	list *next;
   void *pdata;
};

int main ()
{
//	About ();		/* Вывод информации о программе и авторе. */
   struct list *pbegin = create();
   // Объявление используемых в программе локальных переменных.
   char choice;
   // Меню.
	for(;;) {
  	About ();		/* Вывод информации о программе и авторе. */
    choice = menu_select();
    switch(choice) {
      case 1: enter(pbegin);
        break;
      case 2: show(pbegin);
        break;
      case 3: show_sort(pbegin);
        break;
      case 4: load(pbegin);
        break;
      case 5: exit(0);
    }
  }

   getchar();	/* Заглушка. */
	return 0;
   /* Конец программы. */
}

/*-----------------------------------------------------------------------*/
// Выбор пункта меню.
int menu_select(void)
{
	char s[50];
	int c;
	printsk("\n1. Ввод строки\n");

 

На данной странице представлены авторские программы. 
Эти лабораторные работы сдавались Новосибирского государственного технического университета по специальности 220400 "Программное обеспечение вычислительной техники и автоматизированных систем". 
Все работы написаны на языка 'Си'. Все программы проверялись на компиляторе Borland C++ 5.02