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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 20:58   #1
zomba
Новичок
Джуниор
 
Регистрация: 29.09.2010
Сообщений: 1
Лампочка реализация сортировки в файле

помогите с решением вопроса сортировки в файле (в функции загрузки или сохранения самого файла) по второму столбцу . использовать сортировку qsort
просто сама программа сортирует только при использовании функции ввода данных. а при сохранении в файл и последующей загрузке и добавлении новых данных сортировка не происходит

вот код программы:


Код:
#include "stdafx.h"
#include <windows.h> 
#include <stdlib.h>
#include <stdio.h>
#include <locale>
using namespace std;

int static  kol;
struct allpep
{
	struct data
	{
		char name[10];
		char lic_schet[10];
		void add();
		void view();
		void save(FILE*);
		void load();
	};
 
	data *mas; 

	int add();
	void view(int);
	void save(int);
	void load();
};


int main()
{	int j;
	int kod;
	locale::global(locale("rus"));	
	allpep man;
	fflush(stdin);
	man.mas=(allpep::data*)malloc(sizeof(allpep::data));

		while (true)
		{
		printf("\nPress enter the key:\nВвести(добавить) данные в структуру-1\nзагрузка из файла-2\nсохранение в файл-3\nпросмотр-4\nвыход-0\n");	
		scanf("%d",&kod); 

		switch (kod)
			{	
				case 1: j=man.add(); break;
				case 2:	man.load(); break;
				case 3: man.save(j); break;
				case 4: man.view(j); break;
				case 0: return 0; break;
			}
		}
	free(man.mas);
	return 0;
}
int sr(const void *a, const void *b){
	return strcmp((char*)a, (char*)b);
}

int allpep::add()
{	char str[1],str1[1];


		do
		{	
		mas[kol].add();
		mas=(data*)realloc(mas,sizeof(data)*(kol+2));
		kol++;
		}

	while ((strcmp(str,str1)==0));
	qsort(mas, kol, sizeof(data), sr);
	return kol;	
}


void allpep::data::add()
{
	printf("Введите фамилию и лицевой счёт \n");
	scanf("%s%s",name,lic_schet);
}


void allpep::data::view()
{
	printf("%-10s%10s \n",lic_schet,name);
}

void allpep::view(int m)
{
	printf("\nлицевой счёт   фамилия \n");
	for (int n=0;n<m;n++)
	{
		mas[n].view();
	}
}

void allpep::data::save(FILE* fd)
{
	fprintf(fd,"%-12s%10s\n",lic_schet,name);

}


void allpep::save(int m)
{
	FILE *fd;
	fd=fopen("basa.txt","a");

		for (int n=0;n<m;n++)
	{
		mas[n].save(fd);
	}
	fclose(fd);
	printf("\nСохранение завершено\n");
}

void allpep::load()
{	char s[15], s1[40];
	FILE *fd;
	fd=fopen("basa.txt","a+");


		for (int n=0;n<2;n++)
		{
		fgets(s1,40,fd);
		printf("%s",s1);
		}
			do
			{
	
			fgets(s,13,fd);
			fgets(s1,40,fd);
			if (feof(fd)!=NULL)
			break;
			printf("%s%s",s,s1);
			}	
	while (feof(fd)==NULL);	
	fclose(fd);
}
zomba вне форума Ответить с цитированием
Старый 20.07.2012, 12:12   #2
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию

тоже интересен вопрос сортировки
http://programmersforum.ru/showthrea...10#post1077110
Человек
Артём Волжанкин вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация сортировки Шелла beginner Помощь студентам 7 24.05.2015 23:47
STL реализация алгоритма сортировки в классе Progsenya Общие вопросы C/C++ 0 09.09.2010 21:36
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Реализация сортировки по нескольким полям mrMoRiC Общие вопросы C/C++ 1 23.02.2009 18:49
Сортировки в БД. Шурик БД в Delphi 4 15.05.2007 17:45