Đăng nhập | Đăng ký

Danh sách thành viên | Cá nhân | Nhà đất, bất động sản

Diễn đàn    Window Form programming    Mã nguồn phần mềm xếp thời khóa biểu đại học : Unisched 4 (source)

Thành viênNội dung
khanhjin

khanhjin
17  bài
12-05-2009 04:51:54
Đây là mã nguồn mình viết ngày xưa tham dự trí tuệ việt nam, mọi người xem qua thử

http://coder.awas.vn/downloads.ashx?id=e621736be060432599770bb38f348712
 
khanhjin

khanhjin
17  bài
12-05-2009 04:56:47
Phần mềm xếp thời khóa biểu University Scheduling 4.0
Giao diện chương trình.

Từ một bài tập lớn nghiên cứu các thuật toán xếp thời khoá biểu cho các trường đại học (môn trí tuệ nhân tạo), kết hợp việc tìm hiểu nguyên tắc xây dựng TKB chung của một số lượng các trường Đại Học trên toàn Hà Nội. Tôi đã quyết định xây dựng sản phẩm University Scheduling 4.0.

Bài toán TKB không phải là một bài toán mới, nó là một bài toán cũ nhiều người đã dày công và tìm kiếm lời giải chung để giải quyết cho tất cả mọi trường hợp. Tuy nhiên do tính chất của bài toán là quy hoạch lõm nên chúng không bao giờ tìm ra bài toán giải quyết được tất cảc các trường hợp.

Chương trình của tôi đưa ra cũng không nhắm vào mục tiêu ấy mà nhắm vào mục tiêu là một nhóm các trường đại học có quy chế đào tạo giống với với mô hình trường Đại Học Bách Khoa Hà Nội.

Giao diện thân thiện đẹp – Các chức năng thường dùng được đưa ra màn hình chính.

Các tính năng nổi bật:

* Giao diện thân thiện dễ dùng
* Tốc độ thuật toán rất nhanh
* Có khả năng sử lý với dữ liệu rất lớn (theo thử nghiệm là > 10.000 đối tượng)
* Có khả năng kết hợp nhiều phòng ban trong việc xây dựng một thời khoá biểu lớn.
* Phân quyền rõ ràng
* Chức năng ghép các lớp (hầu hết các chương trình trước đây không có chức năng này)
* Các loại báo cáo đa dạng, đẹp
* Sử dụng bảng mã chuẩn UNICODE trong hiển thị tiếng Việt
* Nhiều công nghệ được tích hợp với chương trình (bảo mật , backup …)

Sáng tạo lớn nhất trong chương trình đó là việc đưa ra một qui chuẩn của việc xếp lịch. Đó là định nghĩa ra đơn vị sự kiện. Đó là đơn vị nhỏ nhất thông suốt sử dụng quá trình xếp lịch. Các chương trình phần mềm trước đây không đưa ra được định nghĩa cho các sự kiện cần xếp lịch nên không thể có một qui chuẩn cho việc qui tất cả các bài toán của hầu hết các trường thành một bài toán chung.

Sau khi có định nghĩa của các sự kiện, bài toán với các mô hình đào tạo khác nhau đều qui về bài toán tối ưu tô màu bản đồ. Tất nhiên đối với mỗi mô hình đào tạo chúng ta đều phải xây dựng một thuật toán khác. Nhưng xây dựng được khung cơ sở để dựa vào đó chúng ta có thể viết các thuật toán đã chiếm 70% công việc của quá trình xếp lịch.

Trong chương trình dự thi tôi đã đưa ra 2 cách để xếp thời khoá biểu

* Tự động hoàn toàn
* Xếp lịch bằng tay tuỳ theo các yêu cầu bên ngoài khác.

Chúng ta biết rằng các yêu cầu đối với một TKB là rất đa dạng, nhiều nên việc xây dựng một chương trình thông minh:

* nhận yêu cầu của con người
* Tự động sử lý đáp ứng với yêu cầu đó

Là không thể. Vì trong quá trình ấy chúng ta phải đơn vị hoá các yêu cầu của con người thành số mà máy tính hiểu được. Nên việc đó là không thể. Nên tôi đã đưa ra một cách mà con người có thể tác động vào đó để có thể đưa ra kết quả như mong muốn. Đó là xếp lịch = tay.

Đối với các chương trình tuyên bố chương trình có thể tự động hoàn toàn đáp ứng mọi nhu cầu của người dùng là không khả thi.

Ví dụ:

* Sau khi chạy xong thuật toán xếp lịch. Trưởng khoa yêu cầu tôi không dạy vào các tiết đầu tiên trong ngày (1,2) vì tôi phải chủ trì các buổi họp.
* Nếu không có xếp lịch = tay chúng ta không có cách nào thay đổi được kết quả cần in ra của TKB. Chỉ có một cách là cách chức ông trưởng khoa đó và để một ông nào khác lên thay.

Ví dụ về việc không thể tìm ra kết quả:

* Khoa Triết học của hầu hết các trường Đại Học là khoa có mật độ giảng dạy lớn nhất. Do đó các giáo viên ở khoa này thường phải dạy rất nhiều. Có những tuần số tiết mà các giáo viên đó giảng dạy vượt quá khả năng của giáo viên đó (80 tiết / tuần) chẳng hạn.
* Trong khi chúng ta có 1 tuần có 6 ngày. Mỗi ngày 12 tiết (6 sáng, 6 chiều) tức là có 6x12=72 tiết. Nhưng giáo viên đó phải dạy đến 80.
* Suy nghĩ khi có máy tính mọi việc đều được giải quyết là không khả thi. Và đó là một trong các lý do không thể tự động hoàn toàn giải quyết. Vì việc các chương trình máy tính cố tìm cách xếp 80 tiết vào 72 ô là việc không thể. Cố tìm sẽ dẫn đến treo máy.
* Có một cách giải quyết không mang tính máy tính mà mang tính hành chính đó là trong tuần đó tìm người giảng dạy thay.

Với tất cả các yêu cầu đó chương trình của tôi có mục tiêu khiêm tốn hơn:

* Tự động tìm cách xếp lịch cho đại đa số các trường hợp
* Những trường hợp khó nhiều ràng buộc sẽ được người dùng tự xếp bằng tay.

Với mục tiêu như thế để sử dụng tối đa khả năng của chương trình. Người sử dụng nên tuân thủ các bước:

* Xếp tay cho các trường hợp yêu cầu đặc biệt, khó trước.
* Các trường hợp đơn giản xếp tự động sau.

Một trong những điểm khó khác của phần mềm đó là việc hiển thị TKB. Do nhóm các tiết học là không giống nhau có thể là 2, 3, 4 tiết liên tiếp nên để hiển thị TKB kéo theo chúng ta phải trộn các cột. Khi sử dụng các phần mềm Crystal Report, Active Report, C1 Report chúng ta không thể xây dựng các báo cáo động dạng này. Chương trình đã giải quyết bằng cách Export dữ liệu ra Excel. Và công việc in ấn thực hiện trên Excel. Đó là một điểm rất mạnh của chương trình.

Với việc sử dụng tính năng này chúng ta có thể sinh ra rất nhiều các loại báo cáo khác nhau.

tài liệu download tại đây

http://coder.awas.vn/downloads.ashx?id=430b42fff34940b0b50156c404532fb5

# Yahoo: ngk_succ
# Email : khanhnd@awas.vn
# phone : (04) 2247 1200
# mobile : 093 690 6900
 
kaola


1  bài
10-12-2009 11:03:05
cám ơn nhiều
 
sunz1990


1  bài
26-02-2010 12:17:12
thanks bạn :D bài hay quá
 
nhbach2203


2  bài
06-05-2010 10:26:05
thanks, rất bổ ích đấy.
Best regards.
 
dctamtn


1  bài
24-06-2010 06:07:08
Gioi thiệu khá hấp dẩn, không biết nội dung như thế nào? xem thử đả!!!
 
bemap18


2  bài
05-09-2010 08:22:33
Cảm ơn anh đã chia sẻ tài liệu.Chúc anh công tác tốt:)
 
bemap18


2  bài
05-09-2010 08:23:02
Cảm ơn anh đã chia sẻ tài liệu.Chúc anh công tác tốt
 
khietboog


1  bài
16-06-2011 10:19:31
thanks.Chuc anh thanh cong voi phan mem nay
 
ducba


1  bài
20-06-2011 10:13:40
CAM ON NHIEU
 
ngocthovcef


1  bài
12-07-2011 04:35:55
Cám ơn khạnhin nhiều.
Nhưng mình không chạy được chương trình sau khi down về.
Hướng dẫn lại dùm mình nhé!
 
tucvlk1


1  bài
03-09-2011 10:43:56
cảm ơn anh và gia gình anh
 
khanhjin

khanhjin
17  bài
03-09-2011 09:48:46
tucvlk1: cảm ơn anh và gia gình anh

tucvlk1 = Tức vãi lúa

Hướng dẫn cái này khó bỏ cha, code bỏ đi từ 4-6 năm nay nhớ thế quái nào được ngày xưa mình viết gì. Đọc lại thì mất cả ngày. Có code tham khảo là tốt rồi bạn ạ
 
thanhee


3  bài
27-09-2011 03:10:56
Phần mềm xếp thời khóa biểu University Scheduling 4.0
Giao diện chương trình.

Từ một bài tập lớn nghiên cứu các thuật toán xếp thời khoá biểu cho các trường đại học (môn trí tuệ nhân tạo), kết hợp việc tìm hiểu nguyên tắc xây dựng TKB chung của một số lượng các trường Đại Học trên toàn Hà Nội. Tôi đã quyết định xây dựng sản phẩm University Scheduling 4.0.

Bài toán TKB không phải là một bài toán mới, nó là một bài toán cũ nhiều người đã dày công và tìm kiếm lời giải chung để giải quyết cho tất cả mọi trường hợp. Tuy nhiên do tính chất của bài toán là quy hoạch lõm nên chúng không bao giờ tìm ra bài toán giải quyết được tất cảc các trường hợp.

Chương trình của tôi đưa ra cũng không nhắm vào mục tiêu ấy mà nhắm vào mục tiêu là một nhóm các trường đại học có quy chế đào tạo giống với với mô hình trường Đại Học Bách Khoa Hà Nội.

Giao diện thân thiện đẹp – Các chức năng thường dùng được đưa ra màn hình chính.

Các tính năng nổi bật:

* Giao diện thân thiện dễ dùng
* Tốc độ thuật toán rất nhanh
* Có khả năng sử lý với dữ liệu rất lớn (theo thử nghiệm là > 10.000 đối tượng)
* Có khả năng kết hợp nhiều phòng ban trong việc xây dựng một thời khoá biểu lớn.
* Phân quyền rõ ràng
* Chức năng ghép các lớp (hầu hết các chương trình trước đây không có chức năng này)
* Các loại báo cáo đa dạng, đẹp
* Sử dụng bảng mã chuẩn UNICODE trong hiển thị tiếng Việt
* Nhiều công nghệ được tích hợp với chương trình (bảo mật , backup …)

Sáng tạo lớn nhất trong chương trình đó là việc đưa ra một qui chuẩn của việc xếp lịch. Đó là định nghĩa ra đơn vị sự kiện. Đó là đơn vị nhỏ nhất thông suốt sử dụng quá trình xếp lịch. Các chương trình phần mềm trước đây không đưa ra được định nghĩa cho các sự kiện cần xếp lịch nên không thể có một qui chuẩn cho việc qui tất cả các bài toán của hầu hết các trường thành một bài toán chung.

Sau khi có định nghĩa của các sự kiện, bài toán với các mô hình đào tạo khác nhau đều qui về bài toán tối ưu tô màu bản đồ. Tất nhiên đối với mỗi mô hình đào tạo chúng ta đều phải xây dựng một thuật toán khác. Nhưng xây dựng được khung cơ sở để dựa vào đó chúng ta có thể viết các thuật toán đã chiếm 70% công việc của quá trình xếp lịch.

Trong chương trình dự thi tôi đã đưa ra 2 cách để xếp thời khoá biểu

* Tự động hoàn toàn
* Xếp lịch bằng tay tuỳ theo các yêu cầu bên ngoài khác.

Chúng ta biết rằng các yêu cầu đối với một TKB là rất đa dạng, nhiều nên việc xây dựng một chương trình thông minh:

* nhận yêu cầu của con người
* Tự động sử lý đáp ứng với yêu cầu đó

Là không thể. Vì trong quá trình ấy chúng ta phải đơn vị hoá các yêu cầu của con người thành số mà máy tính hiểu được. Nên việc đó là không thể. Nên tôi đã đưa ra một cách mà con người có thể tác động vào đó để có thể đưa ra kết quả như mong muốn. Đó là xếp lịch = tay.

Đối với các chương trình tuyên bố chương trình có thể tự động hoàn toàn đáp ứng mọi nhu cầu của người dùng là không khả thi.

Ví dụ:

* Sau khi chạy xong thuật toán xếp lịch. Trưởng khoa yêu cầu tôi không dạy vào các tiết đầu tiên trong ngày (1,2) vì tôi phải chủ trì các buổi họp.
* Nếu không có xếp lịch = tay chúng ta không có cách nào thay đổi được kết quả cần in ra của TKB. Chỉ có một cách là cách chức ông trưởng khoa đó và để một ông nào khác lên thay.

Ví dụ về việc không thể tìm ra kết quả:

* Khoa Triết học của hầu hết các trường Đại Học là khoa có mật độ giảng dạy lớn nhất. Do đó các giáo viên ở khoa này thường phải dạy rất nhiều. Có những tuần số tiết mà các giáo viên đó giảng dạy vượt quá khả năng của giáo viên đó (80 tiết / tuần) chẳng hạn.
* Trong khi chúng ta có 1 tuần có 6 ngày. Mỗi ngày 12 tiết (6 sáng, 6 chiều) tức là có 6x12=72 tiết. Nhưng giáo viên đó phải dạy đến 80.
* Suy nghĩ khi có máy tính mọi việc đều được giải quyết là không khả thi. Và đó là một trong các lý do không thể tự động hoàn toàn giải quyết. Vì việc các chương trình máy tính cố tìm cách xếp 80 tiết vào 72 ô là việc không thể. Cố tìm sẽ dẫn đến treo máy.
* Có một cách giải quyết không mang tính máy tính mà mang tính hành chính đó là trong tuần đó tìm người giảng dạy thay.

Với tất cả các yêu cầu đó chương trình của tôi có mục tiêu khiêm tốn hơn:

* Tự động tìm cách xếp lịch cho đại đa số các trường hợp
* Những trường hợp khó nhiều ràng buộc sẽ được người dùng tự xếp bằng tay.

Với mục tiêu như thế để sử dụng tối đa khả năng của chương trình. Người sử dụng nên tuân thủ các bước:

* Xếp tay cho các trường hợp yêu cầu đặc biệt, khó trước.
* Các trường hợp đơn giản xếp tự động sau.

Một trong những điểm khó khác của phần mềm đó là việc hiển thị TKB. Do nhóm các tiết học là không giống nhau có thể là 2, 3, 4 tiết liên tiếp nên để hiển thị TKB kéo theo chúng ta phải trộn các cột. Khi sử dụng các phần mềm Crystal Report, Active Report, C1 Report chúng ta không thể xây dựng các báo cáo động dạng này. Chương trình đã giải quyết bằng cách Export dữ liệu ra Excel. Và công việc in ấn thực hiện trên Excel. Đó là một điểm rất mạnh của chương trình.

Với việc sử dụng tính năng này chúng ta có thể sinh ra rất nhiều các loại báo cáo khác nhau.

tài liệu download tại đây

http://coder.awas.vn/downloads.ashx?id=430b42fff34940b0b50156c404532fb5

# Yahoo: ngk_succ
# Email : khanhnd@awas.vn
# phone : (04) 2247 1200
# mobile : 093 690 6900
 
thanhee


3  bài
27-09-2011 03:11:31
lam sao de chay day po??????
 
thanhee


3  bài
27-09-2011 03:12:19
Cám ơn khạnhin nhiều.
Nhưng mình không chạy được chương trình sau khi down về.
Hướng dẫn lại dùm mình nhé!

sAo? chay dc chua? co the chi cho tui ko?
 
black777


1  bài
26-12-2011 10:07:37
phần mềm cc gì mà ko làm dc gì, zo coi dc có 2 tấm hình vl như Lê Văn Luyện
 
benkianuadem123


1  bài
23-03-2012 11:19:13
Ban oj.
Banj co the cho minh xin code cua phan mem xep thoi khoa bieu nay k? Minh cung dang lam ve chuong trinh xep thoi khoa bieu.
Cam on ban nhiu nha.
 
dakmil_cf


3  bài
05-04-2012 12:57:00
Cám ơn!
 
dotatthoai


1  bài
06-05-2012 04:10:39
Đây là mã nguồn mình viết ngày xưa tham dự trí tuệ việt nam, mọi người xem qua thử

http://coder.awas.vn/downloads.ashx?id=e621736be060432599770bb38f348712
 

Chủ đề gần đây :

Cùng loại :

 
Tên file Người đăng Ngày Lượt
vspforum.zip
Ma nguon vspforum ngay xua
aspnet 4/18/2023 6:38:37 AM 6
pdfjs.rar
pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone
aspnet 6/21/2022 11:52:48 AM 2
pdfjs2.rar
Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây
aspnet 6/21/2022 11:52:04 AM 2
runner.zip
using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy
aspnet 12/5/2019 5:55:14 PM 0
gmap.zip
google map + marker
aspnet 7/17/2019 2:25:05 PM 1
vinsmarthomeservice.zip
java post json to api, use AsyncTask, event listener
aspnet 7/9/2019 5:00:10 PM 1
fblogin.zip
Login facebook bang javascript SDK
aspnet 7/9/2019 9:16:37 AM 0
autocomplete-location.zip
autocomplete location geo from google place, html + js
aspnet 7/4/2019 4:37:55 PM 2
WebAPI.zip
api for android access db (v1.0.0)
aspnet 7/4/2019 9:14:17 AM 8
KydientuPdf.zip
Ky dien tu file PDF su dung itextsharp
aspnet 4/9/2019 3:30:37 PM 9
GooglePlusLogin.zip
Login Google Plus account, C#, web asp.net ver2.0. Simple connect google APIs. Send key, get token, get full account info
aspnet 6/1/2018 10:41:12 AM 11
WebApplication1.rar
Sample su dung thuat toan ma hoa tripDES, co khoa bi mat (privateKey)
aspnet 3/30/2018 10:06:35 PM 8
NETMdbToolsTestApp.rar
dotNet MdbTools for Access 2003/2007/2016 without Microsoft Jet Engine, source C#, https://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
aspnet 3/26/2018 11:43:16 PM 1
Cryptography_MD5_TriDES_src.zip
Thuật toán mã hóa 2 chiều TriDES, gồm Encrypt và Decrypt, aspnet 2.0
aspnet 3/22/2018 11:20:44 AM 3
mvc.rar
sample project MVC on C#
aspnet 3/20/2018 9:25:36 AM 9
EduPortal.rar
Edu portal frame work for VB.NET
aspnet 3/14/2018 12:00:41 AM 13
AutoEntity.rar
Gencode vb.net visual studio 2015. dotnet v2.0
aspnet 3/13/2018 11:59:16 PM 2
GenCode.rar
Gencode XML, XSLT, Info, DAL .. engine enterprise for quick app database
aspnet 2/5/2018 9:37:28 AM 9
DataXml.rar
Read DB from SQL to XML file, Convert string TCVN to Unicode
aspnet 1/29/2018 2:15:45 PM 4
DesktopModules.rar
Module quản lý tin tức, CMS, quản lý nhóm tin trên dotnetnuke 6.x
aspnet 3/7/2013 4:47:49 PM 1714
CODERVN.NET
Công ty cổ phần công nghệ và dịch vụ AWAS
Công ty cổ phần công nghệ và dịch vụ AWAS, cổng thông tin, chính phủ điện tử, phần mềm quản lý điểm, quản lý sinh viên, http://awas.vn, http://awas.com.vn, phần mềm ứng dụng, dịch vụ công trực tuyến, thiết kế website, thiet ke web, thiết kế web, điện lực, phần mềm quản lý đào tạo, cao đẳng, đại học,cổng thông tin tích hợp, cổng thông tin điện tử, webportal, thư viện điện tử, electric library, library online, email, web, quản lý quan hệ khách hàng, CRM, dịch vụ công trực tuyến, phần mềm hành chính một cửa,