МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
КУЙБЫШЕВСКИЙ ФИЛИАЛ
По дисциплине: Программирование
На тему: « Разработка линейного однонаправленного списка»
Выполнил студент
группы ВТК-281
Киселёв С.А.
.
_______________
(подпись, дата)
Проверил:
Бычков М.И.
Куйбышев 2010
Задание:
Разработать программу реализующая следующие элементы списка:
Вставка, удаление, вывод на экран, чтение из файла, удаление последнего элемента и удаление всех элементов списка, осуществляет выход из программы.
Структурное и функциональное описание программы:
//-------------------------------Подключение библиотек--------------------------
#include <iostream> // Стандартные потоки ввода-вывода:
// ios,istream,ostream,iostream
#include <conio>
#include <windows>
#include <stdio>
#include <stdlib>
#include <fstream> // Файловые потоки ввода-вывода:
//------------------------Русификатор------------------------------------------------
void rus(char *str)
{
char buf[100];
CharToOem(str,buf);
cout<<buf;
return;
}
//------------------------Вывод на экран меню и запись значения--------------
int menu()
{int n;
rus(" Меню ");cout<<"n";
rus(" ");cout<<"n";
rus(" 1 - Вставка ");cout<<"n";
rus(" 2 - Удаление ");cout<<"n";
rus(" 3 - Вывод на экран ");cout<<"n";
rus(" 4 - Сохранение ");cout<<"n";
rus(" 5 - Чтение");cout<<"n";
rus(" 6 - Удаление всего списка");cout<<"n";
rus(" 0 - Выход ");cout<<"n";
rus("==============================");cout<<"n";
rus(" Введите пункт меню ");cout<<"n";
cin>>n; return n;} // ввод с клавиатуры
//-----------------------------------------------------------------------------------
struct node{char x[15]; node *next;};
node *un=NULL; //создаём указатели на начало списка
node *uk=un; //создаём указатель на конец списка
node *r,*pre; //ещё 2 указателя
int count;
//--------------------------------Удаление всего списка-------------------------
void dellist(node *p) // функция удаления
{
while(p){delete p; p=p->next;
}
uk=un;
}
//----------------------------------Удаление------------------------------------
void delet(node*p)
{
node *h=p;
if(p==uk)
{
uk=p->next;delete h;
}
else
{
node *f=p->next;
p->next=(p->next)->next;
delete f;
}
}
//-----------------------------------Сохранение---------------------------------
void save(node *p)
{
ofstream out("a.txt");
while(p)
{ out<<p->x<<"n";
p=p->next;
}
rus("СОХРАНЕНО!!!"); cout<<"n";
}
//-------------------------Print------------------------------------------------
void show(node *z){while(z){cout<<z->x<<"_____"<<z<<"n";z=z->next;}}
//--------------------------Запись в структуру------------------------
node* insert(node *p)
{
node *q=new node;
rus("Введите значение n");
textcolor(RED);
rus ("!!!не более 15 символов!!!nn");
gotoxy(1.5,wherey());
cin>>q->x; q->next=p;
return q;
}
//--------------------------Запись в структуру----------------------------------
node* insert(node *p, char* str)
{
node *q=new node;
strcpy(q->x, str); //функция копирования
q->next=p;
return q; // функция возвращения переменной
}
int GetCountEl(node *p)
{
int n = 0;
while(p) //цикл с предусловием
{
n++;
p=p->next;
}
return n;
}
char* getEl(const int &num)
{
if(num < count) // структура (вид – ветвление)
{
node *p = uk;
for(int i=0; i<num; i++)
p = p->next;
return p->x;
}
else return 0; // иначе возвращается 0
}
void exchange(const int &dpos, const int &spos)
{
if((dpos<count)&&(spos<count))
{
int i;
char* temp;
temp = new char[15];
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.