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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 21:28   #1
navi2
Новичок
Джуниор
 
Регистрация: 02.04.2010
Сообщений: 2
По умолчанию видимость данных. запутался

Здравствуйте, уважаемые форумчане.
Нужна ваша помощь.
Есть такая задача:
Разработать программу оценки продаж театральных билетов от времени года. Данные о продажах хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по величине прибыли.
Условие для выполнения задачи: в задании по возможности ввод, вывод, сортировку оформить как отдельные функции (применить к этим функциям классы хранения), функцию сортировки массива структур поместить в отдельный файл, структурную переменную объявить как статическую, счетчики циклов объявить как регистровые переменные, передачу значений осуществить через внешние переменные, осуществить динамическое распределение памяти под структуры.
Вот мой текст программы. Подскажите, а по возможности исправьте ;-) мои ошибки. Программу оформлял в 2 файла: f1.cpp и f2.cpp
F1.cpp
Код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include "f2.cpp"
#define N 2
static struct my_struct{
	char month[20];
	int bilet;
	int kol;
	int summa;
};
static struct my_struct Info[N];
void insert();
void print();
int main(){
	insert();
	print();
	printf("\n-----------------------------------\n");
	getch();
	return 0;
}
\\\\\\\\\\\\\\\\\\\\\
Файл f2.cpp
extern void sort()
{      
	register int a, b;
	
	for(a=1; a<summa; a++) for(b=summa-1; b>=a; b--) 
	{ if(Info[b-1].summa > Info[b].summa) 
	{ vr[b] = Info[b-1];
	Info[b-1] = Info[b-1];
	Info[b] = vr[b]; }
	}	 
	print();
extern void insert(){
	int i;
	for(i=0;i<N;i++){
		fflush(stdin);
		printf("[%d].month=",i);
		gets(Info[i].month);
		fflush(stdin);
		printf("[%d].kol=",i);
		scanf("%d",&Info[i].kol);
		fflush(stdin);
		printf("[%d].summa=",i);
		scanf("%d",&Info[i].summa);
	
	}
}; 
		
extern void print(){
	int i;
	for(i=0;i<N;i++)
		printf("%-20s %5d %4d\n",Info[i].month,Info[i].kol,Info[i].summa);
}
Заранее признателен!

Последний раз редактировалось Sazary; 03.04.2010 в 00:24.
navi2 вне форума Ответить с цитированием
Старый 03.04.2010, 18:33   #2
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

а зачем ты себе так заморачиваеш голову

= Разработать программу оценки продаж театральных билетов от времени года.
в этом как искать по максимуму


ну вообшето это проше сделать не на С++ а в Экселе я на работе многое такое подобное пробовал и пришел к выводу о простоте задачи поиска и т.д.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Старый 05.04.2010, 19:24   #3
navi2
Новичок
Джуниор
 
Регистрация: 02.04.2010
Сообщений: 2
По умолчанию

Дело в том, что это лаба по программированию, и вносить свои идеи я не могу.
navi2 вне форума Ответить с цитированием
Старый 05.04.2010, 21:25   #4
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

а ты на чем ее пишиш (я на билдере)

ведь многие элементы хоть и похожи но описываются несколько иначе

ну задание у тебя просто гемор...

я тут прогил чето на эту тему но без классов и т п гемара можеш почитать

TStringList *List = new TStringList;//Переменная для загрузки файла прошивки
AnsiString SFileData = "";//расположение файла данных
AnsiString SDataIn = "";//строка данных для обработки

//обработчик нажатия на кнопку -> Запомнить в базу
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int IStrDat = 0;//для загрузки кол=ва строк
AnsiString STarifDat = "";//строка тарифа
int ITarifDatIn; //стоимость минуты
SFileData = (GetCurrentDir()) + ("\\База данных\\1.txt");
AnsiString SMaxDat = "";//итого к оплате

//прочтем данные для отображения в конец файла
List ->LoadFromFile (SFileData);//загрузили файл
SDataIn = List ->Strings[0]; //загрузили 1 строку
IStrDat = StrToInt (SDataIn); //перевели для подсчета
IStrDat = (IStrDat * 2); //для добавления данных
//проверим ввод в ячейки
if (Edit1 ->Text == "")
{
ShowMessage ("Введите № заказа");
return;
}
if (Edit2 ->Text == "")
{
ShowMessage ("Введите название пункта связи");
return;
}
if (Edit3 ->Text == "")
{
ShowMessage ("Введите кол=во минут");
return;
}
if (RadioButton1 ->Checked == false)
{
STarifDat = "1";
ITarifDatIn = StrToFloat (Edit5 ->Text);
}
else
{
STarifDat = "2";
ITarifDatIn = StrToFloat (Edit4 ->Text);
}
SMaxDat = FloatToStr(StrToFloat(Edit3 ->Text)*
ITarifDatIn);
//введем новые значения
List ->Strings[IStrDat] = Edit1 ->Text + "#" + Edit2 ->Text +
"#" + Edit3 ->Text + "#" + Edit4 ->Text +
"#" + STarifDat + "#" + Edit5 ->Text +
"#" + SMaxDat + "\n"+ "\n";
//тоесть 1 № зеказа 2 название пункта 3 кол=во минут
// 4 дневной тариф 5 какой тариф выбран
// 6 ночной тариф


IStrDat = (IStrDat / 2) + 1;// новое колво строк
List ->Strings[0] = IntToStr (IStrDat);



//
List ->SaveToFile(SFileData); //запись изменений
//посчитаем итого к оплате
Label7 ->Visible = true;
Label7 ->Caption = SMaxDat;
}
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Старый 05.04.2010, 21:34   #5
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

расположение для базы с данными 1\исполнит_файл.exe

1\база данных\1.txt

1 - это всякие папки там например С\бла\бла\бла\1...
и цифра 1 - название папки это тоже условно и она могит называться по всякому (пример . . . да хрен ее знает) в листенге есть замечательный метод GetCurrentDir() он вернет строку AnsiString с полным путем до исполнительного файла не включая название и расширение последнего.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видимость MDI формы. Ital1cs Помощь студентам 0 29.03.2010 14:00
Видимость констант tae1980 Microsoft Office Excel 5 23.11.2009 12:06
Определить видимость грани многоугольника Sergey2 Помощь студентам 4 26.06.2009 20:46
Видимость полей в подчиненной форме Sparxy Microsoft Office Access 2 02.06.2009 21:40
Видимость переменных tae1980 Microsoft Office Excel 3 26.03.2009 18:34