Да се състави обектно-ориентирана програма с до 300 обекта за отчитане на общия хорариум часове, в даден семестър от обучението. Програмата да има следните характеристики:1. За всеки семестър да се въвеждат следните данни:- номер на семестър;- име на учебната дисциплина;- брой часове на дисциплината - общ = лекции + упражнения;2. Да се предвидят следните допълнителни възможности:- извеждане броя на обектите в програмата и максимално възможният им брой;- добавяне на нови данни;- разглеждане на данните за определен номер;- корекция на данните за определен номер;- запис и четене на данните във файл;- да извежда на екрана дисциплините и часовете за дисциплините в избран семестър. Имам проблем със записа и четенето на файл (case 4 i case 5) записва данни които въведа но после не ми изкарва същото:
#include "stdafx.h"
#include <iostream.h>
#include <string.h>
#include <fstream.h>
class Semester
{
public:
void GetData();
void Display();
void Write(ofstream&ofile);
void Read(ifstream &ifile);
private:
char disc [40];
unsigned int sem;
unsigned int lek;
unsigned int upr;
};
void Semester::GetData()
{
cout<<"Semester = ";cin>>sem;
cout<<"Ime na Uchebna disciplina ";cin>>disc;
cout<<"Broi lekcii =";cin>>lek;
cout<<"Broi uprajneniq =";cin>>upr;
}
void Semester::Display()
{
cout<<"Semester: "<<sem<<" Uchebna Disciplina: "<<disc<<endl;
cout<<"Broi lekcii: "<<lek<<" Broi uprajneniq: "<<upr<<" Obsht horarium = "<<lek+upr<<endl;
}
void Semester::Write(ofstream & ofile)
{
ofile<<" "<<sem<<" "<<disc<<" "<<lek<<" "<<upr<<endl;
}
void Semester::Read(ifstream & ifile)
{
ifile>>sem>>disc>>lek>>upr;
}
int main()
{
Semester s[300];
int el=0,m; //Broi na elementite
do
{
cout<<el<<" Element ot max 300\n";
cout<<"1 - Dobavqne na novi danni\n";
cout<<"2 - Razglejdane na dannite na opredelen nomer\n";
cout<<"3 - Korekciq na danni za opredelen nomer\n";
cout<<"4 - Zapis na dannite vav fail\n";
cout<<"5 - Chetene na dannite ot fail\n";
cout<<"6 - Disciplini i chasove v semestar\n";
cout<<"0 - Izhod\n";
cin>>m;
switch(m)
{
case 1:
s[el].GetData();
el++;
cout<<" "<<endl;
break;
case 2:
{
int k;
cout<<"Vavedi nomer 1 do " <<el<<" ";
cin>>k;
s[k-1].Display();
cout<<" "<<endl;
break;
}
case 3:
{
int k;
char c;
cout<<"Vavedi nomer 1 do "<<el<<" " ;
cin>>k;
cout<<"Vashite danni sa: ";
s[k-1].Display();
cout<<" "<<endl;
cout<<"Iskate li da promenite dannite Y/N ";cin>>c;
if (c=='Y'|| c=='y')
s[k-1].GetData();
cout<<" "<<endl;
break;
}
case 4:
{
Semester s[300];
ofstream outFile;
outFile.open("Semester.txt", ios::out);
el++;
for (int i = 0; i<el ; i++)
{
s[el].GetData();
cout<<" "<<endl;
s[i].Write(outFile);}
outFile.close();
break;
}
case 5:
{
ifstream inFile; //4etene ot fajl
inFile.open("Semester.txt", ios::in);
for (int i = 0; i <el ; i++)
{
s[i].Display();
cout<<" "<<endl;
}
inFile.close();
break;
}
}
}
while(m);
return 0;
}