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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2009, 19:40   #1
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию [C++|Builder] Задача на структуру данных

Помогите решить задачу

По результатам обследования предприятий выяснить процентное выполнение плана по персоналу. Для каждого предприятия известно: наименование предприятия, фактическая численность персонала (промышленного и непромышленного) и плановая численность всего персонала. Число предприятий не более 30. Результаты распечатать в виде таблицы:

Указания: Заполнить исходную таблицу и сортировать ее по уменьшению значений второго столбца. После этого в цикле, пока не откажется поль-зователь
• запрашивать нижнюю границу процента выполнения плана по персона-лу,
• копировать из исходной в рабочую таблицу строки с процентом выпол-нения плана по персоналу, большим заданного,
• выявлять предприятие с наименьшей долей непромышленного персо-нала и запоминать его наименование,
• выдавать сведения о предприятиях.


Какие-то наработки уже есть:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "stdio.h"
#include "string.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------



void __fastcall TForm1::FormCreate(TObject *Sender)
{
StringGrid1->Cells[0][0]="¹";
StringGrid1->Cells[0][1]="ï/ï";
StringGrid1->Cells[1][0]="Íàèìåíîâàíèå";
StringGrid1->Cells[1][1]="Ïðåäïðèÿòèÿ";
StringGrid1->Cells[2][0]="Âñåãî";
StringGrid1->Cells[2][1]="ïåðñîíàëà ïî ïëàíó";
StringGrid1->Cells[3][0]="Ôàêòè÷åñêè Ïåðñîíàëà";
StringGrid1->Cells[3][1]="Ïðîìûøëåííûé ";

StringGrid1->Cells[4][1]="Íåïðîìûøëåíûé ïåðñîíàëà";
  StringGrid1->Cells[5][0]="Äîëÿ";
  StringGrid1->Cells[5][1]="Íåïðîìûøëåíîãî ïåðñîíàëà";
StringGrid1->Cells[6][0]="Âûïîëíåíèå";
StringGrid1->Cells[6][1]="ïëàíà ïî ïåðñîíàëó";


StringGrid1->ColCount=7;
StringGrid1->RowCount=3;
}
struct TAB
{
char name[20];
int vsego;
int prom;
int nprom;
};
//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)
{
FILE*f; int i,n; TAB x;
if (SaveDialog1->Execute())
{
f=fopen (SaveDialog1->FileName.c_str(),"wb");
if(f==NULL)
{
 ShowMessage("Error open file");
exit(0);
}
n=StringGrid1->RowCount;
for(i=2; i<n; i++)
{
strcpy(x.name, StringGrid1->Cells[1][i].c_str());
x.vsego=StrToInt(StringGrid1->Cells[2][i]);
x.prom=StrToInt(StringGrid1->Cells[3][i]);
x.nprom=StrToInt(StringGrid1->Cells[4][i]);
fwrite(&x,sizeof(x),1,f);
}
fclose(f);
}
}




//---------------------------------------------------------------------------

void __fastcall TForm1::N4Click(TObject *Sender)
{
FILE*f; int i,n; TAB x;
if(OpenDialog1->Execute())
{
f=fopen(OpenDialog1->FileName.c_str(),"rb");
if (f==NULL)
{
ShowMessage("Error to file");
exit(0);
}
i=2;
while(fread(&x,sizeof(x),1,f))
{
StringGrid1->Cells[0][i]=i-1;
StringGrid1->Cells[1][i]=x.name;
StringGrid1->Cells[2][i]=x.vsego;
StringGrid1->Cells[3][i]=x.prom;
StringGrid1->Cells[4][i]=x.nprom;
i++;
}
fclose(f); }
}

//---------------------------------------------------------------------------




void __fastcall TForm1::N5Click(TObject *Sender)
{
float vsego,nprom,prom,dolya,plan;
int n,i;
n=StringGrid1->RowCount;
for(i=2;i<n;i++)
{
nprom=StrToFloat(StringGrid1->Cells[4][i]);
//plan=StrToFloat(StringGrid1->Cells[5][i]);
vsego=StrToFloat(StringGrid1->Cells[2][i]);
prom=StrToFloat(StringGrid1->Cells[3][i]);
dolya=nprom/vsego*100;
StringGrid1->Cells[5][i]=FloatToStrF(dolya,ffFixed,5,2);
plan=(nprom+prom)/vsego*100;
StringGrid1->Cells[6][i]=FloatToStrF(plan,ffFixed,5,2);


}



}
conqueror вне форума Ответить с цитированием
Старый 13.01.2009, 21:00   #2
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
Восклицание

Кто-нибудь может помочь?
conqueror вне форума Ответить с цитированием
Старый 14.01.2009, 15:58   #3
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию

Народ помогите! Очень срочно надо!
conqueror вне форума Ответить с цитированием
Старый 17.01.2009, 14:25   #4
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию

Задача решена! Тема закрыта!
conqueror вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение данных из файла Excel в C++Builder Max2114 C++ Builder 6 15.01.2009 11:32
Задачи со сложной структурой данных [C++ Builder] conqueror Помощь студентам 3 24.12.2008 09:16
C++ Builder 6! Задача! помогите Разобраться что к чему {[HelPix]} Помощь студентам 1 12.05.2008 19:18