ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Помогите плиз!! нужна срочная помощь с программой на с++ |

03.06.2010, 19:38
|
|
Новичок
Регистрация: 23.03.2009
Сообщений: 11
Провел на форуме: 14678
Репутация:
0
|
|
Помогите плиз!! нужна срочная помощь с программой на с++
Нужно сделать перегрузку ввода из файла и функцию чтения из файла, остальное все пашет помогите!! завтро здавать курсач а не пашет
Код:
#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();
}
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|