guliya
25-12-2013, 19:24
Здравствуйте! делаю на С++ программу-календарь. Не могу разобраться как сделать последовательность чисел в определенные дни недели.Допустим хочу сделать месяц Январь и числа дней начинаются с четверга.
#include <iostream>
#include <stdlib.h>
#include <allegro.h>
#define MAXX 800
#define MAXY 600
using namespace std;
BITMAP *bmp, *pic;
enum oper {Mond, Tuesd, Wensd, Thusd, Frid, Satud, Sund};
char *MasText[]={"Mond", "Tuesd", "Wensd", "Thusd", "Frid","Satud", "Sund"};
enum oper1 {a1, a2, a3, a4, a5, a6 ,a7 , a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31};
char *Chislo[]={"1", "2", "3", "4", "5","6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};
char str[50];
void draw_but(int,int,char*);
void draw_but1(int,int,int);
int main(int argc, char *argv[])
{allegro_init();
install_mouse();
install_keyboard();
bmp=create_bitmap(MAXX,MAXY);
set_gfx_mode(GFX_SAFE,MAXX,MAXY,0,0);
show_mouse(bmp);
rectfill(bmp, 20, 20, 170, 50,80);
rectfill(bmp, 505, 471, 560, 517,80);
rectfill(bmp, 575, 471, 630, 517,80);
//==============================
int x;
int y=110;
text_mode(-1);
for (int j=0; j<7; j++){
draw_but (x,y,MasText[j]);
y=y+60;
}
text_mode(0);
//===============================
//int a=3;
for (int i=0; i<5; i++){
for (int j=0; j<7; j++){
rectfill(bmp,150+60*i,110+60*j,195+60*i,155+60*j,90);
for (int t=0; t<31; t++){
textout(bmp,font,Chislo[t],172+58*i,132+60*j,400);
t=t+1;
}
}i
}
do{
sprintf(str,"%5d,%5d",mouse_x,mouse_y);
textout(bmp,font,str,85,550,100);
blit(bmp,screen,0,0,0,0,MAXX,MAXY);
}
while(!key[KEY_ESC]);
allegro_exit();
return 0;
}END_OF_MAIN();
void draw_but(int x,int y,char*text)
{
rectfill(bmp,45,y,90,y+45,80);
textout(bmp,font,text,48,y+22,400);
};
#include <iostream>
#include <stdlib.h>
#include <allegro.h>
#define MAXX 800
#define MAXY 600
using namespace std;
BITMAP *bmp, *pic;
enum oper {Mond, Tuesd, Wensd, Thusd, Frid, Satud, Sund};
char *MasText[]={"Mond", "Tuesd", "Wensd", "Thusd", "Frid","Satud", "Sund"};
enum oper1 {a1, a2, a3, a4, a5, a6 ,a7 , a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31};
char *Chislo[]={"1", "2", "3", "4", "5","6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};
char str[50];
void draw_but(int,int,char*);
void draw_but1(int,int,int);
int main(int argc, char *argv[])
{allegro_init();
install_mouse();
install_keyboard();
bmp=create_bitmap(MAXX,MAXY);
set_gfx_mode(GFX_SAFE,MAXX,MAXY,0,0);
show_mouse(bmp);
rectfill(bmp, 20, 20, 170, 50,80);
rectfill(bmp, 505, 471, 560, 517,80);
rectfill(bmp, 575, 471, 630, 517,80);
//==============================
int x;
int y=110;
text_mode(-1);
for (int j=0; j<7; j++){
draw_but (x,y,MasText[j]);
y=y+60;
}
text_mode(0);
//===============================
//int a=3;
for (int i=0; i<5; i++){
for (int j=0; j<7; j++){
rectfill(bmp,150+60*i,110+60*j,195+60*i,155+60*j,90);
for (int t=0; t<31; t++){
textout(bmp,font,Chislo[t],172+58*i,132+60*j,400);
t=t+1;
}
}i
}
do{
sprintf(str,"%5d,%5d",mouse_x,mouse_y);
textout(bmp,font,str,85,550,100);
blit(bmp,screen,0,0,0,0,MAXX,MAXY);
}
while(!key[KEY_ESC]);
allegro_exit();
return 0;
}END_OF_MAIN();
void draw_but(int x,int y,char*text)
{
rectfill(bmp,45,y,90,y+45,80);
textout(bmp,font,text,48,y+22,400);
};