اولا : بسم الله لارحمن الرحيم
اخواني اعضاء المنتدى هذه اول مشاركه لي بهذا المندى
وارجو انه مايخيب ظني فيكم >>>>> من الاخير انا عندي برنامج عن تقويم السنه
والبرنامج محلول
بس المطلوب : اغير في الفنكشن
function
بشكل ثاني
ارجو من اللي متمكنين ما يتجاهلوني
وهذا هو البرنامج
/*
* Please fill following fields with relevant information
* ***************************************************************************
* Course [CS140/CS201]:
* Section [171-177]:
* Student 1 id:
* Student 1 Name:
* Student 2 id:
* Student 2 Name:
* ***************************************************************************
*/
#include <iostream>
#include <iomanip>
using namespace std;
//do not modify data types and consts
enum weekDay {Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday};
const enum weekDay d01y01m1430 = Monday;
const char *weekDayStr[] = {"Sa", "Su", "Mo", "Tu", "We", "Th", "Fr"};
const char *monthStr[] = {"Muharram", "Safar", "Rabi' Al-Awwal", "Rabi' Al-Akhir", "Jumada Al-Awwal", "Jumada Al-Akhir", "Rajab", "Sha'aban", "Ramadan", "Shawwal", "Dhu Al-Qi'da", "Dhu Al-Hijjah"};
const int nDaysPerMonth1430[] = {29, 30, 30, 29, 29, 30, 29, 30, 29, 30, 29, 30};
const int WEEKS = 5; // 5 weeks a month
const int DAYS = 7;// 7 days a week
const int MONTHS = 12; // 12 months a year
// do not modify menu
int menu() {
int op;
int m;
do {
m = 1;
cout <<setfill('*')<<setw(78)<<'*'<<endl;
cout <<'*'<<setfill(' ')<<setw(4)<<' '<<setw(64)<<left<<"Display Year" <<right<<setw(5)<<m++<<setw(4)<<'*'<<endl;
cout <<'*'<<setfill(' ')<<setw(4)<<' '<<setw(64)<<left<<"Display Month" <<right<<setw(5)<<m++<<setw(4)<<'*'<<endl;
cout <<'*'<<setfill(' ')<<setw(4)<<' '<<setw(64)<<left<<"Display Week" <<right<<setw(5)<<m++<<setw(4)<<'*'<<endl;
cout <<'*'<<setfill(' ')<<setw(4)<<' '<<setw(64)<<left<<"Display Day" <<right<<setw(5)<<m++<<setw(4)<<'*'<<endl;
cout <<'*'<<setfill(' ')<<setw(4)<<' '<<setw(64)<<left<<"Exit" <<right<<setw(5)<<m++<<setw(4)<<'*'<<endl;
cout <<setfill('*')<<setw(78)<<'*'<<endl;
cout<<setfill(' ');
cin >> op;
} while (op < 1 || op >= m);
return op;
}
void fillDays(int days[WEEKS][DAYS][MONTHS])
{
// add code here
int m = 0 , w = 0 , d = 6 , val = 1;
while(m < 12)
{
days[w][d][m] = val;
val++;
d++;
if(d==7){
d = 0;
w ++;
}
if(val > nDaysPerMonth1430[m]){
val =1;
m++;
w = 0;
}
/*else if(w==5)
{
w=0;
m++;
}*/
}
}
void displayYear(int days[WEEKS][DAYS][MONTHS], int monthsPerRow)
{
// add code here
int i,m,w,d,count;
switch(monthsPerRow)
{
case 1:
for(m = 0; m <MONTHS; m++)
{
cout<<"1430 "<<setw(16)<<monthStr[m]<<endl;
//print names of days
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<endl;
for(w = 0; w < WEEKS; w++)
{
for(d = 0; d < DAYS; d++)
if(days[w][d][m]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m];
cout<<endl;
}
cout<<endl;
}
break;
case 2:
for(m = 0; m <MONTHS; m+=2)
{
cout<<"1430 "<<setw(16)<<monthStr[m]<<" "<<"1430 "<<setw(16)<<monthStr[m+1]<<endl;
//print names of days
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<" ";
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<endl;
for(w = 0; w < WEEKS; w++)
{
for(d = 0; d < DAYS; d++)
if(days[w][d][m]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m];
//--
cout<<" ";
for(d = 0; d < DAYS; d++)
if(days[w][d][m+1]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m+1];
cout<<endl;
}
cout<<endl;
}
break;
case 3:
for(m = 0; m <MONTHS; m+=3)
{
cout<<"1430"<<setw(17)<<monthStr[m]
<<" 1430"<<setw(17)<<monthStr[m+1]
<<" 1430"<<setw(17)<<monthStr[m+2]<<endl;
//print names of days
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<" ";
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<" ";
for(i=0;i<DAYS;i++)
cout<<setw(3)<<weekDayStr;
cout<<endl;
//print data
for(w = 0; w < WEEKS; w++)
{
for(d = 0; d < DAYS; d++)
if(days[w][d][m]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m];
cout<<" ";
for(d = 0; d < DAYS; d++)
if(days[w][d][m+1]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m+1];
cout<<" ";
for(d = 0; d < DAYS; d++)
if(days[w][d][m+2]==0)
cout<<setw(3)<<" ";
else
cout<<setw(3)<<days[w][d][m+2];
cout<<endl;
}
cout<<endl;
}
break;
}
}
void displayMonth(int days[WEEKS][DAYS][MONTHS], int month) {
// add code here
}
void displayWeek(int days[WEEKS][DAYS][MONTHS], int month, int week) {
// add code here
}
void displayDay(int days[WEEKS][DAYS][MONTHS], int month, int day) {
// add code here
}
// do not modify main
int main() {
int days[WEEKS][DAYS][MONTHS] = {{{0}}};
int monthsPerRow = 1;
int month;
int week;
int day;
fillDays(days);
do {
int op = menu();
switch (op) {
case 1:
cout <<"Display Year:"<<endl;
do {
cout <<"monthsPerRow (1-3) = ";
cin >> monthsPerRow;
} while (monthsPerRow < 1 || monthsPerRow > 3);
displayYear(days, monthsPerRow);
break;
case 2:
cout <<"Display Month"<<endl;
do {
cout <<"month (1-12) = ";
cin >> month;
} while (month < 1 || monthsPerRow > 12);
displayMonth(days, month);
break;
case 3:
cout <<"Display Week:"<<endl;
do {
cout <<"month (1-12) = ";
cin >> month;
} while (month < 1 || month > 12);
do {
cout <<"week (1-5) = ";
cin >> week;
} while (week < 1 || week > 5);
displayWeek(days, month, week);
break;
case 4:
cout <<"Display Day:"<<endl;
do {
cout <<"month (1-12) = ";
cin >> month;
} while (month < 1 || month > 12);
do {
cout <<"day (1-"<<nDaysPerMonth1430[month-1]<<") = ";
cin >> day;
} while (day < 1 || day > nDaysPerMonth1430[month-1]);
displayDay(days, month, day);
break;
default:
cout <<"Exit"<<endl;
exit(0);
}
} while (1);
return 0;
}