Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2011, 17:00   #1
OpenId
 
Регистрация: 18.03.2010
Сообщений: 8
По умолчанию Список и указатели

Здравствуйте, Земляне!!
Текст ТЗ :

Напишите и отладьте программу работы со списком, предложенную на лекции. Проверьте на 10-12 записях работу всех процедур программы. Идентификаторы полей и записей сделайте «говорящими» для своих данных.
В программе должны быть предусмотрены процедуры:

- Формирование списка (Добавление записи в конце списка
- <Вроде сделано>Добавление записи в начало списка;
- <Вроде сделано>Вывод всего списка (просмотр)
- Добавление записей после определенной записи;
- Добавление записей перед определенной записью;
- Сохранение в файле
- Вывод из файла на экран
- Вывод из файла в список
- Удаление первой записи;
- <Вроде сделано>Удаление последней записи;
- Удаление указанной записи;
- Удаление записи перед определенной записью (предыдущий объект);
- Удаление записи после определенной записи (сл. Объект);
- Удаление всего списка
----
Код:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

//Формирование списка
struct Sheet
{
	char typeles[20];
	int kolvo;
	int zdorov;

	Sheet* next;

	void operator=(const Sheet& s)
	{
		int i;
		for (i = 0; i < 20; ++i)
		   typeles[i] = s.typeles[i];
		kolvo= s.kolvo;
		zdorov = s.zdorov;
	}
};

Sheet* list_head;// sozdanie ykazatelya tipa Sheet

// Для preview_list();
void push_front(Sheet s)
{
   textbackground(0); textcolor(15);
	 clrscr();
	//Videlaem pamat dla new element
	Sheet* new_sheet = new Sheet; //new ykazatel Sheet
    *new_sheet = s;

    // pomeshaem v nachalo

   new_sheet->next = list_head;
   list_head       = new_sheet;
   }

//Добавление новой записи
void add_new()
{Sheet s;
   textbackground(0); textcolor(15);
   clrscr();

	printf(" ’ЁЇ «Ґб* -> ");
   scanf("%s", &s.typeles);

	printf(" Љ®«ЁзҐбвў® ¤ҐаҐўмҐў -> ");
   scanf("%d", &s.kolvo);

	printf(" Љ®«ЁзҐбвў® §¤®а®ўле ¤ҐаҐўмҐў  -> ");
   scanf("%d", &s.zdorov);
push_front(s);}


//Вывод списка на экран
preview_list()
{
 clrscr();
	textbackground(1); textcolor(14);
	cprintf("ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї");printf("\n");
	cprintf("і   ’ЁЇ «Ґб*  і  Љ®«ў®  і ‡¤®а®ўле і");printf("\n");

	// prohodim cherez vse elementi spiska
	for (Sheet* cur = list_head; cur != NULL; cur = cur->next)
	{

		// vivodim na ekran
		cprintf("і %11s і", cur->typeles);
		cprintf("%8d і", cur->kolvo);
		cprintf("%9d і", cur->zdorov);
		printf("\n");

   };
	cprintf("АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ");printf("\n");
	textbackground(0); textcolor(7);

	printf("\n"); cprintf("Ќ*¦¬ЁвҐ Їа®ЎҐ« ¤«п Їа®¤®«¦Ґ*Ёп");
	while (getch() != 32);


;}

//Удаление последней записи
remove_record_last()
{
    textbackground(0); textcolor(15);
	 clrscr();
   printf("\n"); cprintf("“¤*«Ґ*ЁҐ ‡*ўаҐиҐ*®");
	Sheet* cur;

	cur = list_head;
	list_head=0;
		  if(cur==NULL) cprintf("/n Spisok pust");
		  else
{
	// **室Ё¬ ЇаҐ¤Ї®б«Ґ¤*Ё© н«Ґ¬Ґ*в бЇЁбЄ*
	for (cur = list_head; cur->next->next != NULL; cur = cur->next);

	// г¤*«пҐ¬ Ї®б«Ґ¤*Ё© н«Ґ¬Ґ*в
	if (cur->next != NULL)
	{
		delete cur->next; //ydalenie ykazatela cur->next
		cur->next = 0;
	}}

   printf("\n"); cprintf("Ќ*¦¬ЁвҐ Їа®ЎҐ« ¤«п Їа®¤®«¦Ґ*Ёп");
	while (getch() != 32);
      }

main()
{;}
Помогите с остальным, пожалуйста!

Последний раз редактировалось OpenId; 07.03.2011 в 17:02. Причина: Теги, теги, теги...
OpenId вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29
связать список строк и список целых чисел lirikoff Помощь студентам 5 31.08.2010 13:23
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43