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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 20:47   #1
Ame
 
Регистрация: 17.04.2011
Сообщений: 3
По умолчанию Составить функцию формирующую новый список

Привет Всем) , прошу небольшую помощь)
не могу сформировать новый список(
код есть , осталось только эта функция, помогите ,если не трудно)

/*b) формирующую новый список из событий, произошедших в этом году.*/

# include <iostream>
# include <conio.h>
# include <math.h>
# include <string>
# include <string.h>
# include <fstream>
# include <iomanip>
# define dlin 20;

using namespace std;

struct istor //ИСТОРИЧЕСКОЕ СОБЫТИЕ
{
string sobit;
int god;
istor*next;//указатель на событие

} *top=NULL;

int sozdanie();//Создание списка на основе данных
int note(); //запись в файл
int vivod();//Вывод всего списка данных
int max_sobit();//Вычисление в каком году произошло больше всего событий;

void main()
{
setlocale (LC_ALL,".1251");
bool f=false;
char n=0;
while (f!=true)
{
cout<<"\n1 - Создание списка из файла\n";
cout<<"2 - Вывод списка на экран\n";
cout<<"3 - Запись списка в файл\n";
cout<<"4 - в каком году произошло больше всего событий\n";
cout<<"0 - Выход\n";
cout<<"Выберите действие: \n";
cin>>n;
switch (n)
{
case '1':{sozdanie(); break;}//Создание списка на основе данных из файла
case '2':{vivod(); break;}//Вывод всего списка данных на экран
case '3':{note(); break;}////Запись данных из списка в файл
case '4':{max_sobit(); break;}//вычисляющую в каком году произошло больше всего событий;
case '0':{f=true; break;}//Выход из программы
default:{cout<<"Некорректные данные\n\n";}
}
}
}

int sozdanie()//Создание списка на основе данных
{
char filename[30];
cout<<"Введите имя файла ";
cin>>filename;
ifstream inFile (filename);
if (inFile)
{
istor *adr;
while (!inFile.eof())
{
adr=new(istor);
inFile>>adr->sobit;//название
inFile>>adr->god;//считали год
adr->next=top;
top=adr;
}
inFile.close ();
cout<<"список создан\n";
}
else cout<<"Файла не существует\n";
return 0;
}
int note()//Запись данных из списка в файл
{
if (top)
{
char filename[30];
cout<<"введите имя файла ";
cin>>filename;
ofstream outFile(filename);
if (outFile)
{
istor *adr;
adr=top;
while (adr!=NULL)
{
outFile<<adr->sobit<<' ';
outFile<<adr->god<<'\n';
adr=adr->next;
}
outFile.close();
cout<<"Файл записан\n";
}
else cout<<"Файла не существует!\n";
}
else cout<<"Списка не существует\n";
return 0;
}
int vivod() //Вывод всего списка данных на экран
{
if (top)
{

istor *adr;
cout.setf(ios::left);
cout<<"\n"<<setw(68)<<setfill('-')<<" ";
cout<<setfill(' ')<<"\n| # "<<setw(22)<<"|Событие"<<setw(22)<< "|Год";
cout<<"\n"<<setw(68)<<setfill('-')<<" ";
adr=top;
int i=1;
while (adr!=NULL)
{
cout<<setfill(' ')<<"\n| "<<i<<" |"<<setw(21)<<adr->sobit<<"|"<<setw(11)<<adr->god<<"|";
cout<<"\n"<<setw(68)<<setfill('-')<<" ";
adr=adr->next;
i++;
}

}
else cout<<"Списка не существует\n";
return 0;
}
int max_sobit()//Вычисление в каком году произошло больше всего событий;
{
istor *adr1,*adr2;
adr1=top;
int max=0,n=0;
while (adr1!=NULL)
{
int k=0;
adr2=top;
while (adr2!=NULL)
{
if (adr1->god==adr2->god) k++;//Ищем кол-во событий за год
adr2=adr2->next;
}
if (max<=k)
{
max=k;
n=adr1->god;
}
adr1=adr1->next;
}
cout<<"В "<<n<<" году произошло больше всего событий "<<max<<"\n";
return 0;
}
Ame вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Используя функцию, составить программу Васильева Зинаида Помощь студентам 1 18.11.2010 22:04
Сформировать новый список, в котором элементы следуют от конца к началу Ma666oT Помощь студентам 7 02.04.2010 00:15
как составить функцию Sdeeee Microsoft Office Excel 3 03.02.2010 17:07
(Паскаль) Составить программу, использующую подпрограмму-функцию Викуська_ Помощь студентам 6 21.04.2009 23:32
Процедуру и функцию помогите составить плиз Oleg36 Помощь студентам 2 26.12.2008 11:27