|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2011, 20:47 | #1 |
Регистрация: 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; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Используя функцию, составить программу | Васильева Зинаида | Помощь студентам | 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 |