ABA


"צריך עזרה בתוכנית ב C++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13688 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13688
RTR

   00:30   09.11.06   
אל הפורום  
  צריך עזרה בתוכנית ב C++  
 
   כתבו תכנית אשר קוראת מהמשתמש (לתוך משתנים מטיפוס int) תאריך בשנה המורכב מ:
א. יום בחודש (בתחום 1..31).
ב. חודש בשנה (בתחום 1..12).
ג. שנה בתחום 1950..2049. את השנה יוכל המשתמש להזין בפורמט של ארבע ספרות (כדוגמת 1978 או 2038), או בפורמט של שתי ספרות (ואז 50 יובן כ- 1950 , בעוד 49 יובן כ- 2049 ).


מעבר לכך תקרא התכנית:
א. האם יש להציג את הפלט בפורמט אירופי (כלומר בפורמט: שנה/חודש/יום), או בפורמט אמריקאי (כלומר: שנה/יום/חודש). המשתמש יזין את הערך 1 אם ברצונו בפורמט אירופי, ו- 2 אם ברצונו בפורמט אמריקאי.
ב. האם יש להציג את הפלט בפורמט קצר (בו השנה מוצגת כזוג ספרות בלבד ), בפורמט בינוני (בו השנה מוצגת בארבע ספרות ), או בפורמט ארוך בו הפלט נראה באופן הבא עבור המקרה האירופי: 29th November 1957 , ובאופן הבא עבור המקרה האמריקאי: November 3rd 2011). המשתמש יזין 1 עבור פורמט קצר, 2 עבור פורמט בינוני, ו- 3 עבור פורמט ארוך.

על התכנית שתקלטו גם לבדוק את תקינות הקלט, כלומר שהיום, החודש והשנה הם בתחומים המתאימים. להזכירכם מספר הימים המותר בחודשים: 1,3,5,7,8,10,12 הוא 31, ביתר החודשים פרט לפברואר יש לכל היותר שלושים ימים. בחדש פברואר יש לכל היותר 28 ימים, אלא אם זו שנה מעוברת בה יש בפברואר 29 ימים. שנה הינה מעוברת אם היא כפולה של ארבע ואינה כפולה של מאה, או שהיא כפולה של ארבע מאות. במידה והקלט התברר כשגוי יש לשלוח הודעת שגיאה:
std::cerr << "Error: illegal input" << std::endl ;
ולעצור את ביצוע התכנית.

דוגמות לקלטים ופלטים (הקלט מוצג משמאל, והפלט המתאים לו מימין):
31 12 1978 1 1  31/12/78
31 12 1978 2 2  12/31/1978
31 12 78 1 2  31/12/1978
31 12 78 1 3  31st December 1978
31 12 78 2 3  December 31st 1978

תודה רבה לעוזרים
זה חדש לי ואני ממש לא יודע איך לעשות את זה ):


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תוכנית פשוטה אבל סתם הרבה לכתוב, אנשים לא יעשו בשבילך עידן_הכלי 09.11.06 14:27 1
  נתקעתי RTR 09.11.06 15:25 2
     קבל: עידן_הכלי 09.11.06 16:18 3

       
עידן_הכלי

   14:27   09.11.06   
אל הפורום  
  1. תוכנית פשוטה אבל סתם הרבה לכתוב, אנשים לא יעשו בשבילך  
בתגובה להודעה מספר 0
 
   תתחיל ואם תתקע נעזור לך..



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
RTR

   15:25   09.11.06   
אל הפורום  
  2. נתקעתי  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 09.11.06 בשעה 15:28 בברכה, RTR
 

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

int main()
{
int d, m, y;
int format;
int format2;
int m1;

switch (m1):
{ case 1: cout <<"January"; break;
case 2: cout <<"February"; break;
case 3: cout <<"March"; break;
case 4: cout <<"April"; break;
case 5: cout <<"May"; break;
case 6: cout <<"June"; break;
case 7: cout <<"July"; break;
case 8: cout <<"August"; break;
case 9: cout <<"September"; break;
case 10:cout <<"October"; break;
case 11:cout <<"November"; break;
case 12:cout <<"December"; break;
}


cout<<"please enter a date:"<<endl;
cin>>d>>m>>y;

if ((d>31 || d<1) ||
(m>12 || m<1) ||
(y>2049 || y<0) ||
(y<1950 && y>99))
std::cerr<<"Error: illegal input"<<endl;

else if (y>=0 && y<=50)
y=2000+y;
else if (y>50 && y<=99)
y=1900+y;

cout<<"please enter format: europe or american"<<endl;
cin>>format;

switch (format)
{
case 1: cout<<"please enter format2: size:"<<endl;
cin>>format2;
switch (format2)
{
case 1: y=y%100;
cout<<d<<"/"<<m<<"/"<<y<<endl;
break;
case 2: cout<<d<<"/"<<m<<"/"<<y<<endl;
break;
case 3:

cout<<d<<"st"<<" "<<m1<<" "<<y<<endl;


}

break;

}

return (0);
}
ציטוט מאת: RTR


אני רוצה שבמקום ה m1 יהיה כתוב
דרך אגב איך כותבים את זה משמאל לימין??


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
עידן_הכלי

   16:18   09.11.06   
אל הפורום  
  3. קבל:  
בתגובה להודעה מספר 2
 
  

#include <iostream.h>
/*
using std::cout;
using std::cin;
using std::endl;
*/
int check(int a,int b,int c);
void month(int a);

main()
{
int d,m,y,format,format2;

do
{
cout<<"please enter a date: \n";
cin>>d>>m>>y;
}
while (check(d,m,y)==0);

if (y>=0 && y<=50)
y=2000+y;
else if (y>50 && y<=99)
y=1900+y;

cout<<"please enter format: europe or american"<<endl;
cin>>format;

switch (format)
{
case 1: cout<<"You chose eurupe, choose size:"<<endl;
cin>>format2;
switch (format2)
{
case 1: y=y%100;
cout<<d<<"/"<<m<<"/"<<y<<endl;
break;
case 2: cout<<d<<"/"<<m<<"/"<<y<<endl;
break;
case 3:
cout<<d<<"st"<<" ";month(m);cout<<" "<<y<<endl;
break;
}
break;

case 2: cout<<"You chose american, choose size:"<<endl;
cin>>format2;
switch (format2)
{
case 1: y=y%100;
cout<<m<<"/"<<d<<"/"<<y<<endl;
break;
case 2: cout<<m<<"/"<<d<<"/"<<y<<endl;
break;
case 3:
month(m);cout<<" "<<d<<" "<<"st "<<y<<endl;
break;
}

break;
}
return (0);
}


int check(int a,int b,int c)
{
if ((a>31 || a<1) ||
(b>12 || b<1) ||
(c>2049 || c<0) ||
(c<1950 && c>99))
{
cout<<"Error: illegal input"<<endl;
return (0);
}
else
return (1);
}


void month(int a)
{
switch(a)
{
case 1: cout<<"January"; break;
case 2: cout<<"February"; break;
case 3: cout<<"March"; break;
case 4: cout<<"April"; break;
case 5: cout<<"May"; break;
case 6: cout<<"June"; break;
case 7: cout<<"July"; break;
case 8: cout<<"August"; break;
case 9: cout<<"September"; break;
case 10:cout<<"October"; break;
case 11:cout<<"November"; break;
case 12:cout<<"December"; break;
}
}

תהנה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net