Professional Documents
Culture Documents
-----*****-----
Đề tài:
-----*****-----
1. Tên đề tài
Xây dựng ứng dụng lập lịch công việc cá nhân
2. Mục đích
Tìm hiểu và xây dựng một ứng dụng lập lịch công việc hàng ngày để
thông báo những việc cần làm trong ngày sử dụng ngôn ngữ lập trình C#
Winform.
3. Công việc cần thực hiện
Tìm hiểu về lập trình Winform, Dlegate-Event, Timer, NotifyIcon, xử
lí ngày tháng năm,…
Thiếu kế giao diện chính cho Calendar.
Thiết kế form Plan để hiển thị lịch công việc trong ngày.
Tạo UseControl để xử lý một công việc.
Tạo ma trận hiển thị lịch theo ngày được chọn, tạo cấu trúc công việc,
lưu trữ công việc, thêm sửa xóa công việc, tạo thông báo.
Tạo class PlanItem để lưu trữ từng công việc.
Tạo class PlanData để chưa danh sách các công việc.
Phân chia công việc của nhóm và thực hiện đúng tiến độ đề ra.
Làm báo cáo bài tập lớn.
Bảo vệ bài tập lớn.
4. Yêu cầu
Kết quả làm bài tập lớn: Báo cáo bài tập lớn
Báo cáo bài tập lớn phải được trình bày theo mẫu quy định (kèm theo),
báo cáo có thể xuất thành tệp định dạng PDF và nộp qua email (không
bắt buộc phải in ấn)
Hạn nộp báo cáo: Tuần thứ 14
GIỚI THIỆU
Bài toán :
Ứng dụng lập lịch công việc được xây dựng bằng ngôn ngữ C# Winform.
Để xây dựng ứng dụng lập lịch công việc ta cần xây dựng các lớp với các
thuộc tính tương ứng :
Chức năng :
Xây dựng lớp LinkList để lưu trữ dữ liệu là các số nguyên với các phương
thức :
0
Lp trình windows n04
CHƯƠNG 1. CƠ SỞ LÍ THUYẾT
tổng quát, hướng đối tượng được phát triển bởi Microsoft, là phần khởi
đầu cho kế hoạch .NET của họ và được phê chuẩn bởi European
Computer Manufacturers Association (ECMA) và International
Standards Organization (ISO)
Ngôn ngữ C# ra đời nằm 2000, được thiết kế chủ yếu bởi Anders
Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo
Pascal, Delphi, J++, WFC.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng
các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính
khác nhau.
C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một
ứng dụng Windows Forms hay WPF (Windows Presentation
Foundation), . . . trở nên rất dễ dàng.
1.1.1. Những đặc trưng cơ bản của ngôn ngữ lập trình C#
C# là ngôn ngữ lập trình đơn giản
Ngôn ngữ C# dựng trên nền tảng C++ và Java nên ngôn ngữ C# khá đơn
giản. Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng
ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những
chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã
được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải
tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi.
1
Lp trình windows n04
2
Lp trình windows n04
Web
- Kết hợp với ASP .NET, C# đóng vài trò xử lý bên dưới (underlying
“
code).
- Có giao diện đồ họa và xử lý sự kiện.
Môi trường .NET cung cấp công nghệ ASP.NET giúp xây dựng những
trang Web động. Để tạo ra một trang ASP.NET, người lập trình sử
dụng ngôn ngữ biên dịch như C# hoặc C# để viết mã. Để đơn giản hóa
quá trình xây dựng giao diện người dùng cho trang Web, .NET giới
thiệu công nghệ Webform. Cách thức tạo ra các Web control tương tự
như khi ta xây dựng ứng dụng trên Windows Forms. ”
3
Lp trình windows n04
4
Lp trình windows n04
- Checkbox thông báo có chức năng để hẹn thời thời gian thông báo
- Add ma trận các button để hiển thị lịch hàng ngày và tạo công việc cho
từng ngày.
5
Lp trình windows n04
6
Lp trình windows n04
7
Lp trình windows n04
8
Lp trình windows n04
regkey.SetValue("Index", keyvalue);
regstart.SetValue("Calendar", Application.StartupPath + "\\
BTL_Lich.exe");
}
catch (System.Exception ex)
{
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;
9
Lp trình windows n04
using System.Xml;
using System.Threading;
using Microsoft.Win32;
namespace BTL_Lich
#region properties
public PlanData Job { get => job; set => job = value; }
public int Time { get => time; set => time = value; }
public PlanItem Ajob { get => ajob; set => ajob = value; }
#endregion
10
Lp trình windows n04
public Calender()
InitializeComponent();
RegistryKey regkey =
Registry.CurrentUser.CreateSubKey("Software\\Calendar");
RegistryKey regstart =
Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\
Windows\\CurrentVersion\\Run");
try
regkey.SetValue("Index", keyvalue);
//regstart.SetValue("taoregistrytronghethong", "E:\\Studing\\Bai
Tap\\CSharp\\Channel 4\\bai temp\\tao registry trong he thong\\tao
registry trong he thong\\bin\\Debug\\tao registry trong he thong.exe");
//regkey.Close();
11
Lp trình windows n04
tmNotify.Start();
Time = 0;
LoadMtrix();
try
catch {
SetDefualData();
void SetDefualData()
Job.ListJob.Add(new PlanItem() {
Date = DateTime.Now,
FromTime=new Point(4,0),
ToTime=new Point(5,0),
Job = "test",
Status = PlanItem.list[(int)ePlanItem.Coming]
12
Lp trình windows n04
});*/
void LoadMtrix()
Matrix.Add(new List<Button>());
pnlMaTrixNgay.Controls.Add(button);
button.Click += Button_Click;
13
Lp trình windows n04
Matrix[i].Add(button);
preBtn = button;
Width = 0,
Height = 0,
};
DefualtDate();
// AddNunmberMatrixByDate(dtpkDate.Value);
if (string.IsNullOrEmpty((sender as Button).Text))
return;
daily.ShowDialog();
14
Lp trình windows n04
switch (date.Month)
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 29;
else
return 28;
default:
return 30;
15
Lp trình windows n04
void DefualtDate()
dtpkDate.Value = DateTime.Now;
ClearMatrix();
int line = 0;
int column =
dateOfWeek.IndexOf(useDate.DayOfWeek.ToString());
16
Lp trình windows n04
button.Text = i.ToString();
if (cmpDate(useDate, DateTime.Now))
button.BackColor = Color.DeepPink;
if(cmpDate(useDate,date))
button.BackColor = Color.Aqua;
if (column >= 6)
line++;
useDate = useDate.AddDays(1);
void ClearMatrix()
17
Lp trình windows n04
btn.Text = "";
btn.BackColor = Color.Silver;
//btn.BackgroundImage = Image.FromFile(@"E:\
explosion_5-wallpaper-1920x1080.jpg");
// btn.BackgroundImageLayout = ImageLayout.Stretch;
AddNunmberMatrixByDate((sender as DateTimePicker).Value);
dtpkDate.Value = DateTime.Now;
18
Lp trình windows n04
xml.Serialize(file, data);
file.Close();
try
file.Close();
return result;
catch
file.Close();
19
Lp trình windows n04
dtpkDate.Value = dtpkDate.Value.AddMonths(1);
dtpkDate.Value = dtpkDate.Value.AddMonths(-1);
SerializeToXML(Job,filepath);
if (!ckbTB.Checked)
return;
20
Lp trình windows n04
Time++;
return;
return;
//MessageBox.Show(current.Minute.ToString());
return;
&& Job.ListJob[i].Job!=null)
Job.ListJob[i].Status = "Missed";
21
Lp trình windows n04
int dem = 0;
if (Job.ListJob[i].Status=="Doing")
dem++;
if (dem==0)
return;
22
Lp trình windows n04
//////////////////////////////////////////////////////////////////////////////////
23
Lp trình windows n04
/* notifyIcon1.ShowBalloonTip
listTodayDoing.Count,listTodayDone.Count,listTodayMissed.Count,listT
omorrow.Count),
ToolTipIcon.Info);*/
24
Lp trình windows n04
Cons.notifyTime = (int)nmNotify.Value;
nmNotify.Enabled = ckbTB.Checked;
Application.Exit();
contextMenuStrip1.Show( MousePosition,ToolStripDropDownDirection.
AboveRight);
25
Lp trình windows n04
WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
plan.Show();
Application.Exit();
26
Lp trình windows n04
KẾT LUẬN
27
Lp trình windows n04
3. http://luanvan.co/luan-van/de-tai-thiet-ke-phan-mem-quam-ly-lich-lam-
viec-ca-nhan-39180/
28