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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 22:57   #1
XAPOH
Пользователь
 
Аватар для XAPOH
 
Регистрация: 23.10.2010
Сообщений: 15
По умолчанию сортировка пузырьком

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

c файл
Код:
#include <iostream.h>
#include <fstream>
#include <stdio.h>
#include <conio.h>
kolect *prev;
kolect *tmp;
kolect *Start=NULL;
void Addnachalo()
{
    tmp=new kolect();
    cout<<"Vvedite name: ";
    cin>>tmp->name;
    cout<<"Vvedite vozrast: ";
    cin>>tmp->vozrast;
    cout<<"Vvedite zarplatu: ";
    cin>>tmp->zarplata;
    cout<<"Vvedite premiy: ";
    cin>>tmp->premya;
    tmp->next=NULL;
    if (Start==NULL) { Start=tmp; }
    else 
    { tmp->next=Start;
        Start=tmp;   }}
        
void Addkonec()
{
   tmp=new kolect();
   cout<<"Vvedite name: ";
    cin>>tmp->name;
    cout<<"Vvedite vozrast: ";
    cin>>tmp->vozrast;
    cout<<"Vvedite zarplatu: ";
    cin>>tmp->zarplata;
    cout<<"Vvedite premiy: ";
    cin>>tmp->premya;
   tmp->next=NULL;
     if (Start==NULL) 
     { Start=tmp; }
    else 
    { kolect *k=Start;
   while (k->next!=NULL)
   k=k->next;
   k->next=tmp; }}
   
void Vuvod(kolect *Start) 
{  
	tmp=Start;
	while (tmp!=NULL)
	{
        cout<<"F.I.O.   - "<<tmp->name<<endl;
        cout<<"Vozrast  - "<<tmp->vozrast<<endl;
        cout<<"Zarplata - "<<tmp->zarplata<<" $"<<endl;
        cout<<"Premya   - "<<tmp->premya<<" $"<<endl;
        tmp=tmp->next;   }} 
        
void Poisk()
{
	
    int old;//int imya;
    kolect *tmp=0;
    tmp=Start;
    cout<<endl<<"vozrast ? ";
    cin>>old;
    while(true)
    {
        if ( tmp->vozrast==old )
        {
          cout<<endl<<"rabotnik: "<<tmp->vozrast<<endl;
          cout<<"est` takoi"<<endl;
        		}
       if (tmp->next==Start||tmp->next==0) 
       {  break; }
			 tmp=tmp->next;  }}
     
void Deleteone()
{
     int z=0;
     cout<<"kakoi vozrast ydalat'"<<endl;
     cin>>z;
     tmp=new kolect();
     kolect *tmp=Start;
     kolect *prev=Start;
     while(tmp!=NULL)
     {
      	if(tmp->vozrast==z)break;
         else
			tmp=tmp->next;
     			}
         if(tmp==NULL)
         cout<<"nety takih"<<endl;
			if (tmp==Start)
				{
               Start=tmp->next;
               delete(tmp);  }
                 else
						{	prev->next=tmp->next;
                     delete(tmp);  }}

void Sort()
{
	// int f=0;
	int n;
	while (tmp!=NULL)

    { for(int i=0; i<n; i++)
         for(int j=0; j<n-1;j++)
      	  {  cout<< endl;
         	  if(tmp->vozrast > tmp->next->vozrast)
         		{
	         		tmp=tmp->vozrast;
	         		tmp->vozrast=tmp->next->vozrast; 
	         		tmp->next->vozrast=tmp;
	                } } } }

void InFile()
{
    ofstream fout("file.txt");
    tmp=Start;                         
	while(tmp!=NULL)
	{
		fout<<tmp->name;
		fout<<tmp->vozrast;
		fout<<tmp->zarplata;
		fout<<tmp->premya;
		tmp=tmp->next;	}
		fout.close();  }
			
void OutFile()
{
	ifstream fout("file.txt");
   tmp=Start;                         
	while(tmp!=NULL)
	{
      cout<<"F.I.O.   - "<<tmp->name<<endl;
      cout<<"Vozrast  - "<<tmp->vozrast<<endl;
      cout<<"Zarplata - "<<tmp->zarplata<<" $"<<endl;
      cout<<"Premya   - "<<tmp->premya<<" $"<<endl;
      tmp=tmp->next;	  }
		fout.close();	 }
h файл
Код:
#include <iostream.h>
#include <fstream>
#include <stdio.h>
#include <conio.h>
struct kolect
{
    char name [50];
    int vozrast;
    int zarplata;
    int premya;
    kolect *next;
  } ;
#include "kolect.c"
   extern void Addnachalo ();
   extern void Addkonec	  ();
   extern void Vuvod  	  ();
   extern void Poisk	();
   extern void Deleteone  ();
   extern void Sort	();
   extern void InFile	  ();
   extern void OutFile	  ();
меню
Код:
#include "kolect.h"
#include <iostream.h>
#include <fstream>
#include <stdio.h>
#include <conio.h>
int main()
{
	 int vubor;
    while(1)
  {
    cout<<endl<<"*** Sdelaite vubor ***" <<endl;
    cout<<"1.Add v nachalo"		  <<endl;
 	 cout<<"2.Add v konec"			  <<endl;
    cout<<"3.Vuvod"					  <<endl;
    cout<<"4.Poisk"					  <<endl;
 	 cout<<"5.Delete 1 element"	  <<endl;
	 cout<<"6.Sortirovka"			  <<endl;
	 cout<<"7.In file"				  <<endl;
	 cout<<"8.From file"				  <<endl;
    cout<<"0.Exit"					  <<endl;
    cin>>vubor;
    switch(vubor)
    {
		case 1: Addnachalo        ();break;
		case 2: Addkonec	 ();break;
		case 3: Vuvod         (Start);break;
		case 4: Poisk		 ();break;
 		case 5: Deleteone	 ();break;
		case 6: Sort		 ();break;
		case 7: InFile	 	 ();break;
		case 8: OutFile	            ();break;
		case 0: return 0;		 break;
		default: cout<<"Nepravelnyi vubor"<<endl; }}}
XAPOH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка пузырьком onezze Паскаль, Turbo Pascal, PascalABC.NET 0 09.04.2012 16:18
Сортировка пузырьком с++ FroLe Общие вопросы C/C++ 6 20.12.2010 01:23
Сортировка пузырьком Авторитет Общие вопросы .NET 4 15.11.2010 19:50