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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2014, 17:25   #1
Виталик124
Пользователь
 
Регистрация: 08.02.2014
Сообщений: 37
По умолчанию После корректировки не работает просмотр.

Код:
#include<iostream>
#include<string.h>
#include<fstream>
#include<stdlib.h>
using namespace std;

ofstream out;
ifstream in;

struct sp
{
	char fio[15];
	int kz;
	double rez[10];
	double srz;
}a[20],*p,d;

char filename[10],imyafile[10];
int n;

void input(sp &d);
void zfile();
void readf(int &n, sp *p);
void prosm();
void dob();
void kor();
void ud();
void obr();

int main()
{
	p=a;
	setlocale(LC_ALL, "Russian");
	int pm;
	cout<<"Имя файла."<<endl;
	cin>>filename;
	do
	{
		cout<<"1. Запись в файл."<<endl;
		cout<<"2. Просмотр."<<endl;
		cout<<"3. Добавление."<<endl;
		cout<<"4. Корректировка."<<endl;
		cout<<"5. Удаление."<<endl;
		cout<<"6. Оброботка."<<endl;
		cout<<"7. Выход."<<endl;
		cout<<"Введите пункт меню."<<endl;
		cin>>pm;
		switch(pm)
		{
		case 1:zfile();break;
		case 2:prosm();break;
		case 3:dob();break;
		case 4:kor();break;
		case 5:ud();break;
		case 6:obr();break;
		}
	}
		while(pm<7);
		return 0;
}


void input(sp &d)
{
	double s=0.0;
	int i;
	cout<<"Фамилия. Количество результатов."<<endl;
	cin>>d.fio;
	d.kz=rand()%5+2;
	for(i=0; i<d.kz;i++)
	{
		d.rez[i]=rand()%10-2.45;
		s+=d.rez[i];
	}
	d.srz=s/d.kz;
}

void zfile()
{
	char ch;
	int j;
	out.open(filename);
	do
	{
		input(d);
		out<<d.fio<<endl<<d.kz<<endl;
		for(j=0; j<d.kz;j++)
			out<<d.rez[j]<<endl;
		out<<d.srz<<endl;
		cout<<"Будете еще вводить. "<<endl;
		cin>>ch;
	}
		while(toupper(ch)=='Y');
		out.close();
}

void readf(int &n, sp *p)
{
	int i,j;
	i=0;
	in.open(filename);
	while(!in.eof())
	{
		in>>p[i].fio>>p[i].kz;
		for(j=0;j<p[i].kz;j++)
			in>>p[i].rez[j];
		in>>p[i].srz;
		i++;
	}
	in.close();
	n=i-1;
}

void prosm()
{
	int i,j;
	readf(n,p);
	cout<<"Фамилия. Количесвто результатов. Результаты."<<endl;
	for(i=0;i<n;i++)
	{
		cout<<"Фамилия: "<<p[i].fio<<endl;
		cout<<"Количество результатов: "<<p[i].kz<<endl;
		for(j=0;j<p[i].kz;j++)
			cout<<p[i].rez[j]<<" ";
		cout<<"Средний результат: "<<p[i].srz<<endl;
	}
}

void dob()
{
	char ch;
	int j;
	out.open(filename, ios::app);
	do
	{
		input(d);
		out<<d.fio<<endl<<d.kz<<endl;
		for(j=0; j<d.kz;j++)
			out<<d.rez[j]<<endl;
		out<<d.srz<<endl;
		cout<<"Еще? "<<endl;
		cin>>ch;
	}
	while(toupper(ch)=='Y');
	out.close();
}

void kor()
{
	char ch;
	int j,i, nkz;
	prosm();
	do
	{
		cout<<"Введите номер корректируемой записи."<<endl;
		cin>>nkz;
		input(d);
		strcpy(p[nkz-1].fio, d.fio);
		p[nkz-1].kz=d.kz;
		for(j=0;j<d.kz;j++)
			p[nkz-1].rez[j]=d.rez[j];
		p[nkz-1].srz=d.srz;
		cout<<"Еще? "<<endl;
		cin>>ch;
	}
	while(toupper(ch)=='Y');
	out.open(filename);
	for(i=0;i<n;i++)
	{
		cout<<"Sourname : "<<p[i].fio<<endl;
		out<<p[i].fio<<endl<<p[i].kz<<endl;
		for(j=0;j<p[i].kz;j++)
			out<<p[i].rez[j]<<endl;
	}
	out.close();
}

void ud()
{
	char ch;
	int i,j,nuz;
	prosm();
	do
	{
		cout<<"Номер удаляемой записи."<<endl;
		cin>>nuz;
		strcpy(p[nuz].fio, "***");
		cout<<"Еще?"<<endl;
		cin>>ch;
	}
	while(toupper(ch)=='Y');
	out.open(filename, ios::trunc);
	for(i=0;i<n;i++)
		if(strcmp(p[i].fio,"***"))
		{
			out<<p[i].fio<<endl<<p[i].kz<<endl;
			for(j=0;j<p[i].kz;j++)
				out<<p[i].rez[j]<<endl;
			out<<p[i].srz<<endl;
		}
		out.close();
}

void obr()
{
	int i,l;
	readf(n,p);
	cout<<"Введите имя файла."<<endl;
	cin>>imyafile;
	out.open(imyafile);
	for(l=0;l<n-1;l++)
		for(i=0;i<n-1;i++)
			if(p[i].srz<p[i+1].srz)
			{
				d=p[i];
				p[i]=p[i+1];
				p[i+1]=d;
			}
			for(i=0;i<n;i++)
			{
				cout<<p[i].fio<<" "<<p[i].srz<<endl;
				out<<p[i].fio<<endl<<p[i].srz<<endl;
			}
			out.close();
}

При нажатии 2 - Просмотр, ничего не происходит. Помогите, пожалуйста.
Все остальное работает, вот только корректировка "выёживается".
Виталик124 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает функция =Просмотр()?! carpenter Microsoft Office Excel 4 11.07.2012 11:41
После грозы не работает ПК Марсель21 Компьютерное железо 5 10.06.2012 18:07
Почем неправильно работает формула ПРОСМОТР? Loginmy Microsoft Office Excel 3 07.05.2012 22:16
Не работает FindWindow после SendMessage ivanjulai Win Api 0 14.10.2010 20:28
после автозагрузки программа не работает Kos123 Свободное общение 3 29.09.2009 13:52