Untitled
unknown
plain_text
2 years ago
2.7 kB
8
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