Я почти закончил свою программу, но у меня есть одна проблема, которую я не могу решить. Как получить минимальные расходы?Обработка и вычисления файлов на C++
Мой преподаватель дал мне задание:
Компания вы работаете получает ежемесячный отчет в текстовом формате. В отчете содержится следующая информация: .
- Название отдела
- Руководитель отдела Имя
- месяц
- Минимальные расходы месяца
- Максимальная расходы месяца
Ваша программа должна получить имя из входной файл от пользователя. Реализовать структуру для представления данных:
После того, как файл был прочитан в программу, распечатать следующую статистику для пользователя:
- списка, какой отдел имеет минимальный расходы в месяц на месяце
- Список, какой отдел имеет минимальные расходы по месяцам по месяцам
Написать информацию в файл под названием «MaxMin.txt»
Затем выполните обработку, чтобы имя отдела, имя начальника отдела, минимальное значение расходы и максимальные расходы были записаны для раздельного размещения файлов в зависимости от месяца, например, янв., Февраль, марта и т. Д.
Вот текстовый файл я получил для работы с:
Engineering Bill Jan 2000 15000 IT Jack Jan 300 20000 HR Jill Jan 1500 10000 Engineering Bill Feb 5000 45000 IT Jack Feb 4500 7000 HR Jill Feb 5600 60000 Engineering Bill Mar 5000 45000 IT Jack Mar 4500 7000 HR Jill Mar 5600 60000 Engineering Bill Apr 5000 45000 IT Jack Apr 4500 7000 HR Jill Apr 5600 60000 Engineering Bill May 2000 15000 IT Jack May 300 20000 HR Jill May 1500 10000 Engineering Bill Jun 2000 15000 IT Jack Jun 300 20000 HR Jill Jun 1500 10000
и вот с ++ код, который я написал
ue#include <iostream>
#include <fstring>
#include <string>
using namespace std;
struct Record
{
string depName;
string head;
string month;
float max;
float min;
string name;
}
myRecord[19];
int main()
{
string line;
ofstream minmax,jan,feb,mar,apr,may,jun;
char a[50];
char b[50];
int i = 0,j,k;
float temp;
//float maxjan=myRecord[0].max,maxfeb=myRecord[0].max,maxmar=myRecord[0].max,maxapr=myRecord[0].max,maxmay=myRecord[0].max,maxjune=myRecord[0].max;
float minjan=myRecord[1].min,minfeb=myRecord[1].min,minmar=myRecord[1].min,minapr=myRecord[1].min,minmay=myRecord[1].min,minjune=myRecord[1].min;
float maxjan=0,maxfeb=0,maxmar=0,maxapr=0,maxmay=0,maxjune=0;
//float minjan=0,minfeb=0,minmar=0,minapr=0,minmay=0,minjune=0;
string maxjanDep,maxfebDep,maxmarDep,maxaprDep,maxmayDep,maxjunDep;
string minjanDep,minfebDep,minmarDep,minaprDep,minmayDep,minjunDep;
cout<<"Enter file name: ";
cin>>a;
ifstream myfile (a);
//minmax.open ("MaxMin.txt");
if (myfile.is_open()){
while (! myfile.eof()){
myfile>>myRecord[i].depName>>myRecord[i].head>>myRecord[i].month>>myRecord[i].min>>myRecord[i].max;
cout << myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
i++;
}
myfile.close();
}
else{
cout << "Unable to open file"<<endl;}
cout<<"Enter file name: ";
cin>>b;
ifstream myfile1 (b);
minmax.open ("MaxMin.txt");
jan.open ("Jan.txt");
feb.open ("Feb.txt");
mar.open ("March.txt");
apr.open ("April.txt");
may.open ("May.txt");
jun.open ("Jun.txt");
if (myfile1.is_open()){
while (! myfile1.eof()){
myfile1>>myRecord[i].depName>>myRecord[i].head>>myRecord[i].month>>myRecord[i].min>>myRecord[i].max;
if (myRecord[i].month == "Jan"){
jan<< myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
if (maxjan< myRecord[i].max){
maxjan=myRecord[i].max;
maxjanDep=myRecord[i].depName;}
for (k=1;k<=3;k++){
for (j=0;j<2;j++){
if (myRecord[j].min>myRecord[j+1].min){
temp=myRecord[j].min;
myRecord[j].min=myRecord[j+1].min;
myRecord[j+1].min=temp;
minjanDep=myRecord[j].depName;
}}}
}
if (myRecord[i].month == "Feb"){
feb<< myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
if (maxfeb< myRecord[i].max){
maxfeb=myRecord[i].max;
maxfebDep=myRecord[i].depName;}
for (k=1;k<=3;k++){
for (j=0;j<2;j++){
if (myRecord[j].min>myRecord[j+1].min){
temp=myRecord[j].min;
myRecord[j].min=myRecord[j+1].min;
myRecord[j+1].min=temp;
minfebDep=myRecord[j+1].depName;
}}}
}
if (myRecord[i].month == "Mar"){
mar<< myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
if (maxmar< myRecord[i].max){
maxmar=myRecord[i].max;
maxmarDep=myRecord[i].depName;}
if (myRecord[i].min<minmar){
minmar=myRecord[i].min;
minmarDep=myRecord[i].depName;
}}
if (myRecord[i].month == "Apr"){
apr<< myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
if (maxapr< myRecord[i].max){
maxapr=myRecord[i].max;
maxaprDep=myRecord[i].depName;}
if (minapr>myRecord[i].min){
minapr=myRecord[i].min;
minaprDep=myRecord[i].min;}
}
if (myRecord[i].month == "May"){
may<<myRecord[i].depName<<myRecord[i].head<<myRecord[i].month<<myRecord[i].min<<myRecord[i].max<<endl;
if (maxmay< myRecord[i].max){
maxmay=myRecord[i].max;
maxmayDep=myRecord[i].depName;}
if (minmay>myRecord[i].min){
minmay=myRecord[i].min;
minmayDep=myRecord[i].depName;}
}
if (myRecord[i].month == "Jun"){
jun<< myRecord[i].depName<<"\t"<<myRecord[i].head<<"\t"<<myRecord[i].month<<"\t"<<myRecord[i].min<<"\t"<<myRecord[i].max<<endl;
if (maxjune< myRecord[i].max){
maxjune=myRecord[i].max;
maxjunDep=myRecord[i].depName;}
if (minjune>myRecord[i].min){
minjune=myRecord[i].min;
minjunDep=myRecord[i].depName;}
}
i++;
myfile.close();
}
minmax<<"department that has maximum spending at jan "<<maxjanDep<<endl;
minmax<<"department that has minimum spending at jan "<<minjanDep<<endl;
minmax<<"department that has maximum spending at Feb "<<maxfebDep<<endl;
minmax<<"department that has minimum spending at Feb "<<minfebDep<<endl;
minmax<<"department that has maximum spending at March "<<maxmarDep<<endl;
minmax<<"department that has minimum spending at March "<<minmarDep<<endl;
minmax<<"department that has maximum spending at April "<<maxaprDep<<endl;
minmax<<"department that has minimum spending at April "<<minaprDep<<endl;
minmax<<"department that has maximum spending at May "<<maxmayDep<<endl;
minmax<<"department that has minimum spending at May "<<minmayDep<<endl;
minmax<<"department that has maximum spending at June "<<maxjunDep<<endl;
minmax<<"department that has minimum spending at June "<<minjunDep<<endl;
}
else{
cout << "Unable to open file"<<endl;}
}
Попробуйте снова вставить свой код, затем вставив его в четыре пробела (используйте кнопку). Это предотвращает разбор HTML-кода. Кроме того, откорректируйте сам код. – Thomas
Я поддержал форматирование всего сообщения, чтобы сделать его доступным для чтения и соблюдать соглашения SO. Тогда вы практически стерли это с помощью вашего редактирования. Это было глупо. Я бы рекомендовал вернуться к моей версии, а затем добавить к ней свои изменения. Это увеличило бы шансы людей, которые приложили усилия, чтобы прочитать ваш пост и оказать вам помощь. –
И btw, так что бы удалить zillion прокомментированные строки из вашего кода и отступывать его правильно. –