Đề TàiTạo Đồng hồ... TỔNG QUAN BÀI BÁO CÁOPHẦN I: GIỚI THIỆU TỔNG QUÁT VỀ ĐỒNG HỒ PHẦN II: XÂY DƯNG CHƯƠNG TRÌNH.. PHẦN III: KẾT LUẬN... PHẦN I: GIỚI THIỆU TỔNG QUÁT VỀ ĐỒNG HỒ• Mục đí
Trang 1Thành Viên Nhóm 5:
Nguyễn Văn Anh Phan Trung Dũng Phan thanh Tú.
Nguyễn Hữu Thi.
Giảng Viên:
Đặng Kiên Cường.
Trang 2Đề Tài
Tạo Đồng hồ
Trang 3TỔNG QUAN BÀI BÁO CÁO
PHẦN I: GIỚI THIỆU TỔNG QUÁT VỀ ĐỒNG HỒ PHẦN II: XÂY DƯNG CHƯƠNG TRÌNH.
PHẦN III: KẾT LUẬN.
Trang 4PHẦN I: GIỚI THIỆU TỔNG QUÁT VỀ ĐỒNG HỒ
• Mục đích thể hiện chương trình:
• Được dùng để xem thời gian hằng ngày của chúng ta.
• Bên cạnh đó chúng ta cũng có thể biết được thứ, ngày, tháng, năm hiện tại mà chúng ta muốn biết.
Trang 5PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
• Chúng ta cần một giao diện Form và:
• Một Menustrip
• Một Lable
• Một MonthCalendar
• Một Timer
Trang 6Chúng ta cần có các hàm thư viện sau:
Trang 7Tạo góc alpha cho các kim
double alphaS = 90 - DateTime.Now.Second * 6;
double alphaM = 90 - DateTime.Now.Minute * 6 -
DateTime.Now.Second * 0.1;
double alphaH = 90 - DateTime.Now.Hour * 30
-DateTime.Now.Minute * 0.5 - DateTime.Now.Second * 0.5 / 60;
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 11PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Vẽ số trên đồng hồ
grfx.DrawString("4", new Font("Licenz Plate", 18.0f), Brushes.Black, 318, 267); grfx.DrawString("5", new Font("Licenz Plate", 18.0f), Brushes.Black, 263, 317); grfx.DrawString("7", new Font("Licenz Plate", 18.0f), Brushes.Black, 120, 318); grfx.DrawString("8", new Font("Licenz Plate", 18.0f), Brushes.Black, 65, 268); grfx.DrawString("10", new Font("Licenz Plate", 18.0f), Brushes.Black, 68, 119); grfx.DrawString("11", new Font("Licenz Plate", 18.0f), Brushes.Black, 120, 68);
Trang 12if (i % 6 == 0 && i != 0 && i != 30 && i != 60 && i != 120 &&
i != 150 && i != 210 && i != 240 && i != 300 && i != 330 &&
i != 90 && i != 180 && i != 270) grfx.FillEllipse(Brushes.Black , x - 2, y - 2, 6, 6);
}
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 13grfx.DrawString("Design By Group 5", new Font("Times New
Roman", 15.0f, FontStyle.Italic), Brushes.Red, x0 - 80, y0 + 50);
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 14Tạo ngày tháng năm trên đồng hồ
int d = DateTime.Now.Day;
int m = DateTime.Now.Month;
int year = DateTime.Now.Year;
grfx.DrawString(string.Format("{0} - {1} - {2}", d, m, year), new Font("Tahoma", 14.0f), Brushes.Red, 140, 130);
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 15Vẽ kim giây
double radAlphaS = alphaS * Math.PI / 180;
int xs = x0 + (int)Math.Round(R1 * Math.Cos(radAlphaS));
int ys = y0 - (int)Math.Round(R1 * Math.Sin(radAlphaS));
Pen customPen1 = new Pen(Color.Red , 2);
GraphicsPath customEndPath1 = new GraphicsPath();
Trang 16Vẽ kim phút
double radAlphaM = alphaM * Math.PI / 180;
float xm = (float)(x0 + R2 * Math.Cos(radAlphaM));
float ym = (float)(y0 - R2 * Math.Sin(radAlphaM));
Pen customPen = new Pen(Color.Black , 4);
GraphicsPath customEndPath = new GraphicsPath();
Trang 17Vẽ kim giờ
double radAlphaH = alphaH * Math.PI / 180;
int xh = x0 + (int)Math.Round(R3 * Math.Cos(radAlphaH));
int yh = y0 - (int)Math.Round(R3 * Math.Sin(radAlphaH));
Pen customPen2 = new Pen(Color.Black , 5);
GraphicsPath customEndPath2 = new GraphicsPath();
customEndPath2.AddLine(0, 1, -1, -1);
customEndPath2.AddLine(0, 1, 1, -1);
customPen2.CustomEndCap=newCustomLineCap(null,customEndPath2); grfx.DrawLine(customPen2, 200, 200, xh, yh);
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 18• Thực hiện vẽ và hiển thị lên Form
private void Form1_Paint(object sender, PaintEventArgs e)
{ Graphics g = CreateGraphics();
PaintClock(g);
pea = e;
}
static PaintEventArgs pea;
private void DongHo_Tick_1(object sender, EventArgs e)
{ Form1_Paint(sender, pea);
}
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 19Tạo đồng hồ điện tử
public string GetTime()
{
string TimeInString = "";
int hour = DateTime.Now.Hour;
int min = DateTime.Now.Minute;
int sec = DateTime.Now.Second;
Trang 20if (min < 10)
{ TimeInString += ":" + "0" + min.ToString(); } else
{ TimeInString += ":" + min.ToString(); }
if (sec < 10)
{ TimeInString += ":" + "0" + sec.ToString(); } else
{ TimeInString += ":" + sec.ToString(); }
return TimeInString;
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 21Tạo Lịch
Cập nhật thời gian cho MonthCalendar
private void Form1_Load(object sender, EventArgs e)
{
monthCalendar1.TodayDate = DateTime.Now.Date; }
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH
Trang 22Tạo âm thanh ticktac và âm thanh đóng form
System.Media.SoundPlayer play = new System.Media.SoundPlayer();
play.SoundLocation = "dong cua.wav";