ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Помогите плиз!! нужна срочная помощь с программой на с++
  #1  
Старый 03.06.2010, 19:38
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
Провел на форуме:
14678

Репутация: 0
Exclamation Помогите плиз!! нужна срочная помощь с программой на с++

Нужно сделать перегрузку ввода из файла и функцию чтения из файла, остальное все пашет помогите!! завтро здавать курсач а не пашет
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;

const string SUBJECTS[] = {"Биология", "Химия", "Информатика", "Математика"};
const int COUNT_SUBJECTS = sizeof(SUBJECTS) / sizeof(SUBJECTS[0]);
const string DAYS[] = {"ПН", "ВТ", "СР", "ЧТ", "ПТ", "СБ"};
const int COUNT_DAYS = sizeof(DAYS)/sizeof(DAYS[0]);
const int COUNT_LESSONS = 4;
const int LENGHT = 9;

class Raspisanye
{
	int mas[COUNT_DAYS][COUNT_LESSONS];
public:
	Raspisanye();
	int GetLesson(int day, int lesson);
	string GetLessonName(int day, int lesson);
	void SetLesson(int subj, int day, int lesson);
	int Static();
	int StaticMax();
	int StaticMin();
	double StaticMid();
	int GetSubjectNumber();
	int GetDaysNumber();
	int GetLesNumber();
	friend ostream& operator<< (ostream&, Raspisanye&);
	friend ofstream& operator<< (ofstream&, Raspisanye&);
	friend ifstream& operator>> (ifstream&, Raspisanye&);
	void Save();
	void Load();
};

Raspisanye::Raspisanye()
{
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			SetLesson(LENGHT, day, lesson);
		}
	}
}

int Raspisanye::GetLesson(int day, int lesson)
{
	return mas[day][lesson];
}

string Raspisanye::GetLessonName(int day, int lesson)
{
	int subj = GetLesson(day, lesson);
	if (subj == LENGHT)
	{
		return "Нет_пары";
	}
	return SUBJECTS[subj];
}


void Raspisanye::SetLesson(int subj, int day, int lesson)
{
	mas[day][lesson] = subj;
}

ostream& operator<< (ostream& str, Raspisanye& r)
{
	str << "   ";
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		str.width(12);
		str << DAYS[day];
	}
	str << endl;
	for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
	{
		str.width(3);
		str << (lesson+1);
		for (int day = 0; day < COUNT_DAYS; day++)
		{
			str.width(12);
			str << r.GetLessonName(day, lesson);
		}
		str << endl;
	}
	return str;
}
ofstream& operator<< (ofstream& str, Raspisanye& r)
{
	for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
	{
		for (int day = 0; day < COUNT_DAYS; day++)
		{
			str << r.GetLesson(day, lesson);
		}
		str << endl;
	}
	return str;
}
ifstream& operator>> (ifstream& str, Raspisanye& r)			//не пашет перегрузка помогите!!!!
{
	for (int i = 0; i < COUNT_LESSONS; i++)
	{
		for (int j = 0; j < COUNT_DAYS; j++)
		{
			str >> r.SetLesson(subj, day, lesson);
		}
		str << endl;
	}
	return str;
}
int Raspisanye::Static()
{
	int s = 0;
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			if (GetLesson(day, lesson) != LENGHT)
			{
				s++;
			}
		}
	}
	return s;
}
int Raspisanye::StaticMax()
{
	int max1[COUNT_DAYS];
	int s = 0;
	int max = 0;
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			if (GetLesson(day, lesson) != LENGHT)
			{
				s++;
			}
		}
		max1[day]=s;
		s=0;
	}
	max = max1[0];
	for (int i = 0; i < COUNT_DAYS; i++)
	{
		if (max1[i] > max)
		{
			max = max1[i];
		}
	}
	return max;
}
int Raspisanye::StaticMin()
{
	int min1[COUNT_DAYS];
	int s = 0;
	int min = 0;
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			if (GetLesson(day, lesson) != LENGHT)
			{
				s++;
			}
		}
		min1[day]=s;
		s=0;
	}
	min = min1[0];
	for (int i = 0; i < COUNT_DAYS; i++)
	{
		if (min1[i] < min)
		{
			min = min1[i];
		}
	}
	return min;
}
double Raspisanye::StaticMid()
{
	double mid1[COUNT_DAYS];
	double s = 0;
	double mid = 0;
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			if (GetLesson(day, lesson) != LENGHT)
			{
				s++;
			}
		}
		mid1[day] = s;
		s = 0;
	}
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		s = s + mid1[day];
	}
mid = ( s / COUNT_DAYS);
	return mid;
}
int Raspisanye::GetSubjectNumber()
{
	
	for (int k = 0; k < COUNT_SUBJECTS; k++)
	{
		cout << (k+1) << " - " << SUBJECTS[k] << endl;
	}
	
	int y = 0;
	while (!((y>=1) && (y<=COUNT_SUBJECTS)))

	{
		cout << "Введите номер дисциплины ";
		cin >> y;
	}
	
	return (y-1);
}

int Raspisanye::GetDaysNumber()
{
	int x = 0;
	while (!((x>=1) && (x<=COUNT_DAYS)))

	{
		cout << "Введите номер дня ";
		cin >> x;
	}
	
	return (x-1);
}

int Raspisanye::GetLesNumber()
{
	int y = 0;
	while (!((y>=1) && (y<=4)))
	{
		cout << "Введите номер пары ";
		cin >> y;
	}
	return (y-1);
}
void Raspisanye::Save()
{
	ofstream myFile("text.txt");
	myFile << (*this);
	myFile.close();
}
void Raspisanye::Load()					// не работает  помогите (функция ввода массива в програму из файла)
{
	string s;									
	ifstream myFS("text.txt");
	
	while(myFS>>s)
	{
		getline(myFS,s);
			for (int i = 0; i < 6; i++)
			{
				cout<<s[i];
			}
	
	}
/*
	for (int day = 0; day < COUNT_DAYS; day++)
	{
		for (int lesson = 0; lesson < COUNT_LESSONS; lesson++)
		{
			myFS.width(20);
			myFS >> mas[day][lesson];
	
		}
	}
	cout << endl;*/
	myFS.close();
}

void main()
{	
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	
	Raspisanye r;
	r.Load();

	cout << r;
	while (true)
	{
		int numDays = r.GetDaysNumber();
		int numLes = r.GetLesNumber();
		int numSubject = r.GetSubjectNumber();
		r.SetLesson(numSubject, numDays, numLes);
		cout << r;
		int numStatic = r.Static();
		int numMax = r.StaticMax();
		int numMin = r.StaticMin();
		double numMid = r.StaticMid();
		cout << "Общее число пар в неделю - " << numStatic << endl;
		cout << "Максимальное колличество пар в день - " << numMax << endl;
		cout << "Минимальное колличество пар в день - " << numMin << endl;
		cout << "Среднее колличество пар в день - " << numMid << endl;
		cout << "Введите 1 для выхода из программы или 0 для продолжения работы " << endl;
		int c;
		cin >> c;
		if (c==1) break;
	}
	r.Save();
}
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите плиз разобраться с алгоритмом кодирования (Perl) Zazil PHP, PERL, MySQL, JavaScript 4 14.12.2009 16:03
помогите плиз со скриптом VIrusProX PHP, PERL, MySQL, JavaScript 14 17.07.2009 22:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ