I am taking a C++ programming class for engineer students and was wondering if any one here has experience with it. I have a home work assignment im looking for help on. Any help is appreciated.
Last edited:
mk3supra;1306611 said:Well, I am a beginner also and don't understand what is going on in class because I cannot understand the teacher when she talks. I just need help writing a program and understanding it.
D34DC311;1306105 said:LOL, your not supposed to pay someone to program for you. Your supposed to learn and understand the work. I used to do a little bit of C++ but I'm heavily involved with JAVA now, its hard, but it is multi platform which is great.
Poodles;1306701 said:I did it and enjoyed it... 9 years ago.
Oh, and Java sucks, sure it's universal...but it's universaly SLOW.
#include<iostream>
#define TRUE 1
#define FALSE 0
using namespace std;
class mydate{
int day;
int month;
int year;
public:
void readdate();
int isLeapYear();
string month2string();
int exceedsDaysInMonth();
void tommorow();
void yesterday();
};
// Input date from user
void mydate::readdate(){
cout << "Enter day (dd - 23 ) : ";
cin >> day;
cout << "Enter Month (mm - 04 ) : ";
cin >> month;
cout << "Enter year (yyyy - 2007 ) : ";
cin >> year;
}
// make sure month days are correct
// return TRUE if days exceeds in a month
int mydate::exceedsDaysInMonth(){
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ( month < 1 || month > 12 || day > days[month-1])
return TRUE;
else
return FALSE;
}
// convert numeric month into string
string mydate::month2string(){
char *months[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
if ( exceedsDaysInMonth() ) {
if ( ! (month < 1 || month > 12) )
return months[month-1];
else
return "Unknown month";
}
else
return "Unknown month";
}
// return TRUE if a year is leap
int mydate::isLeapYear(){
if ( (year % 4) != 0 ){
return FALSE;
}
else if ( (year % 400) != 0 ){
return TRUE;
}
else if ( (year % 100) == 0 ){
return FALSE;
}
else
{
return FALSE;
}
}
// validate and calculate tommorows date
void mydate::tommorow(){
int td, tm, ty;
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ( year < 0 ){
cerr << year << " is not a valid year" << endl;
exit(1);
}
if ( exceedsDaysInMonth() ){
if ( month == 2 && day == 29 ){
if ( ! isLeapYear() ){
cerr << year << " is not a leap year, so Feb doesn't have 29 days" << endl;
exit(1);
}
}
else
{
cerr << "Bad day value month - " << month << " (" << month2string();
cerr << ") doesn't have " << day << " days "<< endl;
exit(1);
}
}
// calculate tommorow
td=day;
tm=month;
ty=year;
td++;
if ( td > days[month-1]){
td=1;
tm++;
if ( tm > 12 )
{ ty++; tm=1; }
}
cout << "Tommorow is " << td << "/" << tm << "/" << ty << endl;
}
}
// calculate yesterday
td=day;
tm=month;
ty=year;
td--;
if ( td > days[month-1]){
td=1;
tm--;
if ( tm > 12 )
{ ty--; tm=1; }
}
cout << "Yesterday was " <<td << "/" << tm << "/" << ty << endl;
// main
int main(){
mydate date;
date.readdate();
date.tommorow();
return 0;
}