Untitled
unknown
plain_text
2 years ago
2.7 kB
11
Indexable
#include <iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
int datecount(string birthday,string date);
int main()
{
string file;string date;string data;int day[100];int counter=0;int step=1;int item;string change;
// the classmates information
struct info {
string name;
int ID;
string birthday;
};
struct info inform[101];
ifstream infile;
do
{
cout << "Please enter the input file name: ";
getline(cin,file);
infile.open(file,ios::in);
if(!infile)
{
cout << "File could not be opened." << endl;
}
else
{
break;
}
}while(1);
cout << "What's the date today? (mm/dd) " ;
getline(cin,date);
cout<<endl;
getline(infile,data);
while(getline(infile,data))
{
if(data.length()>2&&data.length()<20&&step==1)
{
inform[counter].name=data;
step=2;
}
else if(data.length()>2&&data.length()<30&&step==2)// bug
{
inform[counter].ID = stoi(data);
step=3;
}
else if(data.length()>2&&data.length()<30&&step==3)
{
inform[counter].birthday=data;
step=1;
counter++;
}
}
for(int x=0;x<counter;x++)
{
day[x]=datecount(inform[x].birthday,date);
}
cout << "Whose birthday is upcoming and the closest to today?" << endl;
for(int x=0;x<counter;x++)// find minimum
{
for(int i=x+1;i<counter;i++)
{
if(day[x]>day[i])
{
item=day[i];inform[100]=inform[i];
day[i]=day[x];inform[i]=inform[x];
day[x]=item;inform[x]=inform[100];
}
}
}
for(int a=0;a<counter;a++)
{
if(a==0)
{
cout << inform[a].name << "\n" << inform[a].ID <<"\n"<< inform[a].birthday<<endl;
}
else if(day[a]==day[0])
{
cout<<endl;
cout<<inform[a].name<<"\n"<<inform[a].ID<<"\n"<<inform[a].birthday<<endl;
}
}
return 0;
}
int datecount(string birthday,string date)// 06/14
{
int bmon=stoi(birthday.substr(5,2));
int bday=stoi(birthday.substr(8,2));
int dmon=stoi(date.substr(0,2));
int dday=stoi(date.substr(3,2));
int distance = (bmon-dmon)*30+(bday-dday);
if(distance<0)
{
return (12-dmon)*30+30-dday+bmon*30+bday;
}
return distance;
}
Editor is loading...
Leave a Comment