1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web

129 1,4K 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua Web
Tác giả Nhóm Tác Giả
Người hướng dẫn TS. Nguyễn Văn B
Trường học Trường Đại Học Kỹ Thuật Tp Hồ Chí Minh
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Chương trình thực hiện việc đăng ký giờ thực tập qua web
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 129
Dung lượng 913,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2, đó là về hệ điều hành mỗi máy gồm có Windows và Solaris còn các phầnmềm ứng dụng đã được cài đặt sẵn trên Server, hoặc sinh viên có thể cài đặtthêm các phần mềm mình cần sử dụng.Vì vậ

Trang 1

GIỚI THIỆU

1.Mục đích của chương trình

Ngày nay với sự phát triển mạnh mẽ của nghành công nghệ thông tin thì nhucầu học hỏi nâng cao kiến thức ngày càng tăng Đặc biệt đối với những sinh viênnghành tin học thì việc nâng cao kiến thức để đáp ứng yêu cầu của công việc làmột điều cần thiết Quá trình học hỏi này luôn gắn liền với máy tính cá nhân.Trong điều kiện hiện nay khi mà hầu hết các sinh viên không trang bị cho mìnhmột máy tính hoặc nếu có thì cũng không tham gia các tiện ích của máy tính nhưmạng Intenet thì việc học trở nên khó khăn với sự thay đổi từng ngày của cáccông nghệ cũng như kỹ thuật

Để giải quyết tình trạng trên khoa CNTT trường Đại Học Kỹ Thuật Tp HồChi Minh đã cố gắng trang bị cho các phòng máy để tạo điều kiện cho các sinhviên thực tập máy

Nhưng vấn đề cũng phải đặt ra là làm sao tạo điều kiện tốt nhất cho các sinhviên thực tập cũng như cũng như sử dụng hết công suất của phòng máy Đồngthời cũng cần phải quản lý một số lượng lớn các sinh viên của khoa ra vào phòngmáy để thực tập và bảo vệ cơ sở vật chất đã được trang bị mà ở đây là các máytính Ngòai ra cũng cần phải giám sát chặt chẽ các họat động của sinh viên trongphòng máy để ngăn ngừa tình trạng quấy phá máy server Cuối cùng là khi phânphối lịch đăng ký của từng sinh viên cũng cần đảm bảo sự công bằng, hợp lý vàtính tự do của sinh viên.

2.Nhiệm vụ

Từ mục đích được nêu ra ở trên ta thấy cần thiết phải xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua Web Chương trình này phải có

tính năng như sau :

Trang 2

 Đối với sinh viên chương trình phải cho phép sinh viên đăng ký máyvà tự động phân phối máy cho sinh viên đó và trả kết quả về lại cho sinhviên.

 Và có những công cụ để trợ giúp người quản lý phòng máy theo dõiđược tiến trình thực tập của từng sinh viên cũng như quản lý các tình trạngcủa các máy tính thuộc phòng máy

 Cung cấp một công cụ tự động để kiểm tra chính xác rằng một sinhviên vào giờ đó đã thực hành đúng như lịch đăng ký hay không

Trong giới hạn của đề tài này chưa thực hiện phần tự động kiểm tra sinh viêncó được phép thực tập đúng giờ và đúng máy của mình hay không

3.Các ứng dụng trên mạng Internet

3.a.Ích lợi của mạng Internet

Trao đổi dữ liệu đã trở thành một phần căn bản của nghành máy tính.Trong giới khoa học thì trao đổi dữ liệu trên mạng cũng cần thiết bởi vì nócho phép các nhà khoa học gởi dữ liệu và chương trình đến mộtsupercomputer từ xa để xử lí, hoặc tìm kiếm kết quả và thực hiện việc traođổi thông tin của những người cùng quan tâm đến vấn đề khoa học Trong nềnkinh tế hiện nay mạng máy tính ngày càng trở nên quan trọng với sự pháttriển của thương mại điện tử Người ta có thể thực hiện các cuộc mua bán quamạng mà không cần phải tới siêu thị, thực hiện các giao dịch chuyển tiềnngay tại nhà mình Đối với lĩnh vực văn hóa, giáo dục và giải trí mạng máytính cũng cung cấp nhiều tiện ích ví dụ như dạy học từ xa, hoặc có thểdownload một bài hát ưa thích về máy của mình hoặc thực hiện các cuộc tròchuyện qua hay cũng có thể gởi thư cho một người nào đó bằng email

3.b.Các ứng dụng trên mạng Internet

Sau đây sẽ giới thiệu về các ứng dụng được sử dụng rộng rãi trên mạngInternet

 Thư điện tử ( Electronic mail )

Trang 3

Electronic mail cho phép người sử dụng sọan thảo một lá thư và gởichúng đến một cá nhân hay mộ nhóm người nào đó Electronic mail cũngcho phép người sử dụng đọc những lá thư của người khác gởi cho họ.

 Truyền file ( File transfer )

Mặc dù thỉnh thoảng thì người sử dụng truyền file bằng cách sử dụngelectronic mail nhưng chỉ để gởi các file text ngắn Dịch vụ truyền file chophép người sử dụng nhận và gởi một file chương trình hoặc dữ liệu lớn.Hệ thống sẽ có cách để kiểm tra các người sử dụng được phép hoặc làngăn ngừa sự truy cập

 Remote login

Đây là một ứng dụng rất hay của mạng Internet, remote login chophép người sử dụng ngồi trên một máy và kết nối đén một máy từ xa vàthiết lập một quá trình login tương tác Người sử dụng giao tiếp với máytính từ xa qua bàn phím và màn hình của mình còn các công việc tính toánthì thực hiện trên máy mà họ kết nối vào

 World Wide Web – WWW

WWW là một kiến trúc cho phép truy cập vào các tài liệu liên kếtđược phân bố rộng rãi trên hàng triệu máy tính trên mạng Internet Các tàiliệu này cũng rất đa dạng từ những trang tài liệu thông thường cho đếnnhững hình ảnh âm thanh cũng như các công cụ để trao đổi dữ liệu quaWorld Wide Web Mô hình CGI được sử dụng để giao tiếp với Webserver cho phép mở rộng các chức năng của Web server

Ứng dụng mà chúng em hiện thực cũng là một ứng dụng Web thựchiện theo mô hình CGI Nó cho phép một sinh viên thông qua mạngInternet có thể thực việc đăng ký giờ thực tập của mình một cách dễ dàng.Đồng thời cũng cho phép quản lý các thông tin về phòng máy và sinhviên qua Web đây là một hình thức quản trị cơ sở dữ liệu qua mạng

Trang 4

PHẦN A PHÂN TÍCH

CHƯƠNG I CÁC VẤN ĐỀ CÓ LIÊN QUAN

1.Thực tế tình hình sử dụng máy tại khoa Công Nghệ Thông Tin trường Đại Học Kỹ Thuật –Tp Hồ Chí Minh.

Hiện nay khoa có ba phòng máy dành cho sinh viên thực tập Mỗi phòng máycó khoảng 30 máy

 Các sinh viên thuộc khoa có làm Luận văn tốt nghiệp, Thực tập tốtnghiệp hoặc Đồ án môn học, muốn sử dụng máy phải đăng ký với ngườiquản lí phòng máy và được sắp xếp máy để sử dụng

 Các máy thuộc của khoa đều nối mạng nên việc sử dụng các phầnmềm khá dể dàng Tuy nhiên về Hệ Điều Hành thì có một số máy có càiSolaris(có cài Windows) và một số máy cài Windows(Không cài Solaris)

 Mỗi sinh viên của khoa đều được cấp một account, sinh viên muốn sửdụng được máy phải sử dụng account của mình (như ở phòng máy số 2),tuy nhiên các máy ở phòng số 1, số 3 chưa làm được như vậy

Hiện nay khoa có hệ thống các máy sử dụng NIS+ của Solaris đểquản lí account của sinh viên, sinh viên ngồi ở bất cứ máy nào trên hệ

Trang 5

thống máy của khoa đều có thể login vào với một account và đều sử dụng một home, nên rất thuận tiện cho việc thực tập của sinh viên

 Việc quản lí số giờ sử dụng máy cho sinh viên hiện nay không đựochợp lí nên có tình trạng một số sinh viên sử dụng quá số giờ cho phép củasinh viên đó và ngược lại một số sinh viên không có máy sử dụng

 Số lượng sinh viên của khoa hiện nay rất nhiều , bao gồm nhiều loạihình đào tạo (Chính Qui,Kỹ Sư 2,Giáo Viên ,Cao Đẳng)

 Thời gian bắt đầu và kết thúc học kỳ của mỗi loại hình đào tạo (ChínhQui, Kỹ Sư 2, Giáo Viên, Cao Đẳng) có sự chênh lệnh nên thời gian sửdụng máy của mỗi loại hình đào tạo cũng khác biệt với nhau Do đóthường thì phòng máy luôn có nhóm sinh viên làm đề tài sử dụng máy caođiểm một cách liên tục

 Tùy theo đề tài sinh viên đang làm thuộc loai hình gì (thực tập tốtnghiệp ,luận văn tốt nghiệp,đồ án môn học) mà số giờ sử dụng máy sẽđược cấp sẽ khác nhau

 Nếu trong cùng một khoảng thời gian 1 sinh viên làm cùng lúc 2 loạihình (vừa thực tập tốt nghiệp và đồ án môn học) thì chỉ được tiêu chuẩnmáy của một loại hình có số giờ lớn hơn

 Không có sự ưu tiên giữa các loại hình đào tạo (Chính Qui, Kỹ Sư 2,Giáo Viên, Cao Đẳng) về sự sắp xếp lịch đăng ký cũng như số ca đượccấp giữa các loại hình đào tạo này

Tuy nhiên có sự ưu tiên về số ca sử dụng máy giữa các loại hình Luậnvăn tốt nghiệp, Thực tập tốt nghiệp, Đồ án môn học

2.Các vấn đề cần đặt ra đối với một chương trình đăng ký và xếp máy cho sinh viên.

 Sinh viên sử dụng chương trình để đăng ký và được xếp máy nếu máycòn trống

 Sau khi xếp máy cho sinh viên sẽ lưu các thông tin cần thiết vàodatabase, để hệ thống giám sát việc sử dụng máy của sinh viên sẽ truy

Trang 6

xuất database này và cho phép sử dụng nếu xét thấy việc login của sinhviên đó là đúng.

 Việc xếp máy cho sinh viên sao cho sinh viên ít phải thay đổi máy khisử dụng các ca liên tiếp

 Sau xếp máy cho sinh viên thì các máy còn lại có số ca trống ít bị phânmảnh nhất

 Sinh viên đăng ký được máy mình mong muốn (hệ điều hành vàchương trình chạy trên máy đó)

 Sinh viên được phép thay đổi lịch đăng ký của mình

 Administrator sẽ phân bổ tài nguyên có được như thế nào để đảm bảomọi sinh viên đều có thể sử dụng máy và tài nguyên của phòng máy đượcsử dụng với hiệu suất cao nhất

 Administrator có một số công cụ để giám sát việc sử dụng máy củasinh viên trước hoăc sau đó

 Administrator có thể thu hồi một số máy vào các thời điểm nhất định

3.Một số khó khăn khi thực hiện các vấn đề trên

 Thông thường mỗi đề tài mà sinh viên thực hiên ,sẽ được làm trên mộtmôi trường hệ điều hành nào đó và cần một số phần mềm nào đó Tất nhiênđiều này sẽ ảnh hưởng đến việc đăng ký máy thực tập của sinh viên ,chẳnghạn sinh viên sẽ đăng ký vào những máy có cài những chương trình mà sinhviên cần để làm đề tài chứ không đăng ký vào những máy không có chươngtrình này Như vậy để phân bổ máy thích hợp cho sinh viên chúng ta cần phảilưu giữ các thông tin về mỗi máy, chẳng hạn như hệ điều hành, phần mềmđược cài đặt trên máy đó Nhưng trên thực tế là chúng ta không biết trước sựphân bổ chẳng hạn các đề tài yêu cầu về môi trường hệ điều hành cũng nhưnhững phần mềm nào Hơn nữa những điều này đối với mỗi máy có thểthường xuyên thay đổi nên để lưu giữ và cập nhật những thông tin này vàotrong database là một điều hết sức khó khăn Tuy nhiên chúng ta hoàn toàn cóthể tổ chức các máy theo cách mà hiện nay chúng ta đã làm ở phòng máy số

Trang 7

2, đó là về hệ điều hành mỗi máy gồm có Windows và Solaris còn các phầnmềm ứng dụng đã được cài đặt sẵn trên Server, hoặc sinh viên có thể cài đặtthêm các phần mềm mình cần sử dụng.

Vì vậy đề tài của chúng ta sẽ thực hiện trên giả thiết rằng :các máy là nhưnhau về mọi mặt

 Do các học kỳ ở các loại hình đào tạo lệch nhau về thời gian bắt đầuvà kết thúc Thường thì chu kỳ của các loại hình là một năm do đó ngay từđầu năm nếu Administrator không có thông tin về sinh viên sử dụng máy củanăm đó thì việc phân bổ giờ thực tập sẽ không thể chính xác được

 Vấn đề sử dụng tài nguyên với hiệu suất cao nhất điều đó có nghĩa làtất cả các máy đều được sử dụng vào mọi thời điểm Điều này dẫn đến vấnđề khi có một nhóm sinh viên mới đăng ký sử dụng máy thì phải có một số camáy nhất định còn trống cho nhóm đó (Thu hồi lại một số máy, khi tất cả cácmáy đó điều đã có sinh viên sử dụng trước đó mà vẫn chưa hết thời gian thựctập của các sinh viên đó)

 Một giải pháp để phòng máy đạt hiệu suất cao là vào các thời điểmphòng máy còn máy trống Administrator có thể cho phép các sinh viên đăngký sử dụng máy, tuy nhiên các máy này có thể bị thu hồi vào các thời điểmcần thiết

 Để tạo sự linh động cho sinh viên đăng ký (lịch đăng ký ở các tuần cóthể khác nhau) Nếu sinh viên đăng ký lại ở các tuần sau (lúc cao diểm củaphòng máy) có thể sẽ không được chấp nhận (do hết máy)

Như vậy tùy vào tình hình thực tế sử dụng máy mà sinh viên nên chọncách đăng ký phù hợp (đăng ký đều ở các tuần hoặc đăng ký dồn vào một sốtuần nhất định) Việc này hoàn toàn tùy thuộc vào sinh viên chứ bản thânchương trình chỉ khuyến cáo cho sinh viên biết mà thôi

 Việc tính số ca sử dụng máy để phân bổ cho sinh viên chỉ đảm bảonếu tất cả các sinh viên đăng ký đều đặn vào các tuần thì mọi sinh viên đềucó máy sử dụng

Trang 8

 Khi Administrator thu hồi máy vì một lý do nào đó Bản thân chươngtrình có thể tự động sắp xếp lại các máy, sinh viên sẽ bị xoá các ca có máy bịthu hồi và sẽ được chuyển đến đăng ký các máy khác Lúc đó sinh viên sẽ

nhận được lịch mới hoặc login vào trang đăng ký để biết lịch mới.

 Nếu thời gian bắt đầu ,kết thúc của mỗi ca có sự thay đổi thì rất khókhăn cho việc tìm kiếm các sinh viên sử dụng máy trong một khoảng thời giannào đó vì lúc này ta không thể biết các ca trước khi thay đổi có thời gian bắtđầu, kết thúc bằng bao nhiêu

 Tập tin thể hiện mối liên quan giữa sinh viên làm đề tài được cung cấpbởi phòng Đào Tạo của trường, tuy nhiên hiện nay format của các tập tin dữliệu này vẫn chưa được cung cấp một cách đầy đủ

4.Các điều kiện cần thiết để xây dựng chương trình

 Tất cả các máy là như nhau ,các sinh viên không cần phải đăng kýphần mềm để sử dụng cũng như vị trí của phòng máy

 Có những đề tài phải sử dụng hai máy,sinh viên được phép sử dụng 2máy (sẽ sắp xếp cho sinh viên hai máy), sinh viên không cần phải đăng kýhai máy Tuy nhiên số ca sử dụng của sinh viên thì vẫn được tính như là sửdụng một máy

 Mỗi tuần có 6 ngày sinh viên được thực tập ,mỗi ngày có 6 ca máy,khoảng thời gian sử dụng máy của mỗi ca là 2 giờ Ca đầu tiên bắt đầu từ 8h

 Vào đầu năm học Administrator phải có một số thông tin nhất định

 các hệ số đối với từng loại hình (LVTN, ĐAMH, TTTN… )

 thời gian bắt đầu và kết thúc của từng loại hình (LVTN, ĐAMH, TTTN)và khóa thực hiện (chính khóa)

 số lượng sinh viên của từng loại hình (LVTN, ĐAMH, TTTN) và khóathực hiện (chính khóa)

 số lượng máy hiện có

 Từ Database của phòng đào tạo Administrator có thể nhận được tậptin dữ liệu theo một format biết trước Điều này hoàn toàn có thể thực hiện

Trang 9

được vì hiện nay các DBMS điều có kèm theo các công cụ cho phépInport/Export các file dữ liệu vào database và ngược lại từ các file dữ liêu tacó thể đưa vào các table (DBMS Oracle có kèm theo công cụ SQL *Loader ).

Trang 10

CHƯƠNG II PHÂN TÍCH VÀ ĐƯA RA GIẢI PHÁP

HIỆN THỰC

1.Phân tích chiến lược sắp xếp.

Khi nhận lịch đăng ký của sinh viên chúng ta có thể:

Nhận lịch và tìm các máy trống thích hợp rồi sắp xếp ngay.

Trong quá trình tìm hiểu và phân tích chúng em nhận thấy với cách sắp xếpnày có những điểm không hợp lí như sau:

 Thông thường các sinh viên đều muốn đăng ký sớm để được lịch đăngký hợp lí (không bị tách các ca đăng ký liên tiếp trên một máy) Do đó cóthể xảy ra tình trạng vào đầu mỗi đợt thực tập sẽ có rất nhiều sinh viênđăng ký (có thể đăng ký tại phòng máy của khoa) nên rất lộn xộn

 Mặt khác với cách sắp xếp này nếu số lượng sinh viên đăng ký cùngmột thời điểm nhiều sẽ dẫn đến tình trạng Web Server sẽ quá tải do nhậnquá nhiều yêu cầu từ Browser và thực thi các yêu cầu này Có thể để giảiquyết việc đăng ký đồng thời chúng ta phải dùng một cơ chế lock cáctable của database lại ,như vậy việc đăng ký cho sinh viên sẽ bị chậm đirất nhiều

 Khi chúng ta sắp xếp cho một lịch đăng ký của sinh viên thì chắc chắnrằng việc sắp xếp như vậy sẽ không thể tối ưu được Tuy chúng ta có thểthực hiện công việc giải phân mảnh máy trống ở mỗi thời điểm trước khisắp xếp, nhưng kèm theo với công việc này là việc chúng ta phải thôngbáo đến các sinh viên việc thay đổi máy của các sinh viên đó Nếu việcgiải phân mảnh này thường xuyên xảy ra thì việc thông báo đến sinh viênsẽ trở ngại (do sinh viên nhận được quá nhiều thông báo trong một ngàyvề việc thay đổi máy)

Trang 11

Ưu điểm của cách sắp xếp này:

 Tuy nhiên đứng về phía sinh viên thì cách sắp xếp này tỏ ra rất thuậntiện, vì sinh viên khi nhận được lịch đăng ký sẽ xác định được các cakhông đăng ký được ngay tức thời và sẽ đăng ký lại

Chờ đến một thời gian nhất định rồi hãy sắp xếp.

Với cách sắp xếp này sinh viên sẽ không biết được các ca mà mình khôngđăng ký được để từ đó đăng ký lại (chỉ biết được sau một thời gian nhất định)

Ưu điểm của cách sắp xếp này :

 Chúng ta hoàn toàn có thể chủ động cho việc sắp xếp vào giờ Serverrảnh rỗi

 Chương trình sắp xếp còn có thể để trên một máy nào đó khác vớiWeb Server

 Tạo ra được lịch sắp xếp hợp lý (lịch thực tập của sinh viên ít bị tách ratrên nhiều máy và sau khi sắp xếp các ca còn trông ít bị phân mảnh)

 Tạo tâm lý cho sinh viên đăng ký không tập trung vào một thời điểm

Việc đăng ký của sinh viên có hai thời điểm quan trọng mà chúng ta cần chú ý đến đó là:

 Sinh viên đăng ký trong đợt đăng ký thực tập quy định

 Sinh viên đăng ký sau thời điểm kết thúc đăng ký quyđịnh (có thể xem như sinh viên đăng ký lại)

Do cách sắp xếp tức thời không thích hợp với một số lượng sinh viên đăng kýnhiều

Như vậy ứng với hai thời điểm đăng ký của sinh viên ta có thể đưa ra hai cáchsắp xếp khác nhau để đạt được hiệu quả cao nhất và đồng thời tiện lợi cho sinhviên nhất

 Nếu sinh viên đăng ký trong khoảng thời gian cho phép đăng ký (bắtđầu đăng ký đến kết thúc đăng ký) thì sẽ được sắp xếp lịch đăng ký vàocuối ngày kết thúc đăng ký Với cách sắp xếp này chương trình sẽ nhậnđược nhiều lịch sau đó mới sắp xếp Trong thời gian chương trình sắp xếp

Trang 12

nếu sinh viên đăng ký sẽ không được xếp tức thời (cho dù sau thời điểmkết thúc đăng ký) mà chỉ nhận lịch đăng ký mà thôi, việc nhận lịch đăngký thì không ảnh hưởng đến các giao dịch đồng thời Sau này sinh viên

dùng chức năng search hoặc login để xem kết quả đăng ký của mình.

 Nếu sinh viên đăng ký sau thời điểm kết thúc đăng ký có thể xem nhưđã đăng ký lại Sinh viên sẽ nhận được lịch đăng ký ngay sau đó Như vậy

ở trường hợp này chúng ta phải giải quyết vấn đề về giao dịch đồng thời

2.Phân tích giải thuật sắp xếp.

Dữ liệu chúng ta nhận được đó là các liên ca mà sinh viên đăng ký và các

liên ca trốâng trên các máy (liên ca : để chỉ các ca liên tiếp).

Như vậy công việc sắp xếp có thể trở thành việc tập hợp các liên ca của cácsinh viên đăng ký để đưa vào các liên ca có máy trống

 Nếu việc tập hợp này không thành công (vẫn còn dư ở một số ca ) thìphải chọn được trường hợp nào là tốt nhất

 Nếu một số liên ca không đăng ký được thì ta phải tách các liên ca đó

ra thành nhiều liên ca, việc tách phải đảm bảo được hai yếu tố:

 Sinh viên ít phải chuyển qua các máy khác ở các ca liên tiếp

 Sau khi tách thì các ca trống còn lại là ít phân mảnh

Để tập hợp được các liên ca đăng ký của các sinh viên đưa vào các liên cacủa các máy trống chúng ta có thể thực hiện theo hai hướng sau đây:

 Chọn một liên ca của một sinh viên và tìm một liên catrống trong các máy trống thích hợp nhất (kết hợp với các liên ca củacác sinh viên khác)

 Chọn một liên ca có máy trống, tìm các liên ca thích hợpcủa các sinh viên đăng ký vào liên ca có máy trống đó

Mỗi hướng thực hiện đều có những khía cạnh hay của nó Từng trườnghợp cụ thể khác biệt sẽ mang đến những kết quả tích cực khác nhau

Trang 13

Để hiện thực việc sắp xếp chúng em xin chọn hướng thứ nhất Vớihướng này chúng ta cần lưu ý một số điểâm sau:

 Các ca sinh viên đăng ký thì được INSERT vào table nhận đăng kýtheo thứ tự thời gian do đó khi SELECT ta cũng nhận được lịch đăngký của sinh viên theo thứ tự thời gian Việc xét từng liên ca cũng sẽtheo thứ tự đó

 Khi xét liên ca trống có thể đăng ký được cho liên ca của sinh viênđó, ta sẽ xét liên ca trống từ nhỏ đến lớn

Ví dụ: nếu sinh viên đăng ký 12 ta sẽ xét liên ca trống 12 rồi mới đến

123,

 Nếu xét đến một liên ca trống nào đó mà vừa đủ cho các liên cađăng ký thì chọn ngay vì nếu xét tiếp thì kết quả thu được (có thể saukhi đăng ký số ca trống ) cũng không thay đổi

Ví dụ: các liên ca đăng ký 12, 34, 56 Các liên ca có máy trống 1234,

123456 Khi đó nếu xét liên ca 12 sẽ chọn liên ca trống 1234 (vì 12 và 34vừa đủ cho 1234) mà không cần xét tiếp Sau đó xét tiếp 56 nếu không cósự kết hợp nào vừa đủ thì đăng ký 123456 Như vậy cuối cùng liên ca còn

dư vẫn là 1234

 Nếu các liên ca trống sau khi đăng ký cho sinh viên vẫn còn dư ,thì ta nên chọn liên ca nào : liên ca có số ca dư nhiều, liên ca có số ca

dư ít

ca trống còn lại sẽ ít bị phân mảnh hơn cả

Ví dụ:liên ca đăng ký 12, 123 liên ca trống 123, 1234 Xét liên ca

12 sẽ chọn liên ca trống 1234, sau đó xét tiếp 123 sẽ chọn liên catrống 123 Như vậy sau khi đăng ký liên ca trống còn lại là 34

Ngược lại với cách chọn liên ca trống có số ca dư ít nhất thì liên catrống sau đăng ký sẽ là 3, 4

Trang 14

Tuy nhiên với cách chọn này thì một số trường hợp liên ca đăng kýcủa sinh viên sẽ bị tách ra làm nhiều liên ca

Ví dụ:liên ca đăng ký 123, 12345 Liên ca có máy trống 1234,

123456 Khi xét liên ca 123 sẽ đăng ký vào 123456 còn dư 456, sau đóxét tiếp 12345 không đăng ký được phải tách ra 1234 và 5 Như vậysau khi đăng ký các ca trống sẽ là 4 và 6

Ngược lại với cách chọn liên ca trống có số ca dư ít nhất thì liên catrống sau đăng ký sẽ là 4 và 6 Tuy nhiên liên ca sinh viên đăng ký sẽkhông bị tách ra

ca đăng ký của sinh viên sẽ ít bị tách ra hơn cách chọn trên

 Nhưng ngược lại thì liên ca trống sau khi sẵp xếp sẽ bị phânmảnh nhiều hơn Tuy nhiên việc giải phân mảnh ta có thể thựchiện một cách dễ dàng

 Nếu một liên ca đang xét mà không có liên ca trống nào có thể đăngký cho liên ca đó ta thực hiện việc kiểm tra xem các ca nào không thểđăng ký được (hết máy ở ca đó), tách liên ca ban đầu thành nhiều liên catrong đó có các ca không đăng ký được

 Nếu một liên ca đăng ký được xét mà không có liên ca trống nào cóthể đăng ký cho liên ca đó và các ca đều có thể đăng ký được

Ta thực hiên việc tách liên ca này thành nhiều liên ca :

thành hai liên ca Ứng với mỗi cách tách ta sẽ tính số ca dư tốt nhấtcủa các liên ca trống sau khi đăng ký cho hai liên ca này

Nếu ta gặp một trường hợp nào làm cho số ca dư sau khi đăng ký củacác liên ca trống = 0 (đăng ký vừa đủ) thì ta sẽ dừng công việc tách.Nếu số ca dư tốt nhất vẫn khác không (liên ca trống đăng ký vẫn còndư) Sẽ tiếp tục tách thành 3 liên ca

Trang 15

3.Phân tích việc phân bổ số ca sử dụng cho sinh viên

Vấn đề này được đặt ra nhằm đảm bảo tính công bằng cho mọi sinh viên và đápứng nhu cầu sử dụng máy đối với từng sinh viên khác nhau (làm luận văn tốt nghiệp,đồ án môn học, thực tập tốt nghiệp ) Việc đăng ký sử dụng máy của sinh viêndựa vào quan điểm :

 Sinh viên sẽ được cấp một số ca nhất định cho cả đợt thực tập, sinh viênđược phép tuỳ ý đăng ký trong số ca đó và trong thời gian cho phép thực tập

Do đó có thể dẫn đến khả năng sinh viên không có máy để sử dụng vào mộtsố tuần đăng ký dồn, việc này rất khó giải quyết một cách triệt để vì đây làsự sắp xếp riêng của từng sinh viên Chương trình của chúng ta tính toán số

ca sử dụng cho cả đợt thực tập dựa vào nhu cầu sử dụng máy đều đặn vào cáctuần Như vậy khi tính số ca sử dụng ta không quan tâm đến việc đăng ký dồnvào một số tuần của sinh viên

Như chúng ta cũng biết, hiện tại khoa có nhiều loại hình đào tạo (chính quy,kỹ sư II, cao đẳng, giáo viên) và mỗi loại hình đào tạo thì thời gian sử dụngmáy cũng khác nhau Tuy nhiên việc phân bổ máy cho sinh viên lại tuỳ thuộcvào lịch của các đợt thực tập của một năm học

Giả sử chúng ta có được một lịch phân bố thực tập như sau:

100sv 100sv

Trang 16

Giả sử chúng ta có N máy, 1 tuần có 36 ca sử dụng Tổng số ca có được trong

Số ca được cấp cho mỗi sinh viên làm LVTN là : a.M.i

Số ca được cấp cho mỗi sinh viên làm TTTN là : b.M.j

Số ca được cấp cho mỗi sinh viên làm DAMH là : c.M.k

Với i, j, k là số tuần qui định sử dụng máy cho từng loại hình đó

 Tuy nhiên với cách tính như trên chúng ta có thể nhận thấy hạn chế nhưsau:

Vào một số tuần tuy chỉ có một nhóm sử dụng máy nhưng việc phân bổ giờmáy cho các sinh viên thuộc nhóm này vẫn được tính theo nhu cầu ở tuần caođiểm nhất Việc này dẫn đến tình trạng sinh viên được phân bổ ít số giờ hơn

so với tài nguyên mà chúng ta có được

Để giải quyết vấn đề trên chúng em xin đưa ra giải pháp sau:

Tính số ca sử dụng cho từng giai đoạn (từ tuần n đến tuần m) Trong từng

giai đoạn sinh viên chỉ được đăng ký và sử dụng tối đa số ca được cấp tronggiai đoạn đó Do đó chúng ta phải lưu vào database số ca sinh viên sử dụngcho từng giai đoạn, trong giới hạn của đề tài chúng em chưa hiện thực đượcvấn đề này

 Theo chúng em nghĩ việc quản lí thực tập máy củasinh viên không thể giải quyết hoàn toàn bằng máy mà phải có sự hỗ trợcủa con người, đó có thể là Administrator Tuỳ theo tình hình cụ thể màAdministrator có thể tăng số ca được cấp cho sinh viên để đảm bảo tínhhiệu quả và đúng với nhu cầu sử dụng thực tế đối với từng sinh viên (có

Trang 17

một số sinh viên không sử dụng máy hoặc sử dụng rất ít không cần phảităng thêm).

Như vậy đòi hỏi phải có một công cụ cho phép Administrator thayđổi số ca được cấp cho sinh viên

4.Sinh viên thay đổi lịch đăng ký và nhận được kết quả tức thời.

Khi sinh viên muốn thay đổi lịch đăng ký khác với lịch đăng ký ở lần đầu củamỗi đợt làm đề tài, thì sẽ nhận được kết quả sau đó

Như vậy nếu có nhiều sinh viên thay đổi lịch cùng một lúc có thể cac sinhviên này đều được nhận được cùng một máy trống Tuy nhiên khi đăng ký thì chỉcó một máy trông được đăng ký mà thôi, ở đây vấn đề giao dịch đồng thời phảiđược giải quyết

Khi sinh viên gởi lịch đăng ký đến chương trình, chương trình sẽ so sánh vàlấy ra được các ca sinh viên mới đăng ký của sinh viên,các ca cũ không có tronglịch này sẽ bị xoá đi Lần lượt xét đến các ca mới đăng ký của sinh viên chọn rađược liên ca (máy tương ứng) tốt nhất để đăng ký cho sinh viên Lúc đăng ký

(thao tác INSERT vào TABLE dangky ) nếu nhận được mã lỗi trả về ( ràng buộc

tính duy nhất –tức là đã có một sinh viên đăng ký trước đó ) thì thực hiện việcchọn máy tiếp theo và tiếp tục đăng ký cho đến lúc được mới thôi (nếu đã xét hếtmáy mà không đăng ký được thì kết quả là không đăng ký được) Nếu INSERTkhông được do hết máy thì kết quả trả về cho sinh viên là không đăng ký đượccác ca đó

5.Giải phân mảnh các máy trống

Theo giải thuật sắp xếp đã trình bày ở phần trên ,có một số trường hợp gây rasự phân mảnh ở các máy sau khi đăng ký Do đó việc giải phân mảnh các ca ởcác máy trống luôn cần thiết

Giả sử ta có các ca đã sắp xếp như sau:

Trang 18

Ta có bảng đăng ký sau khi giải phân mảnh như sau

Trang 19

PC001 PC002 PC003

Hình chữ nhật biểu diễn liên ca từ ca 1 -> ca 6,số trong hình chữ nhật thể hiện

ca còn trống, các chữ ở trong hình chữ thể hiện các sinh viên đăng kýù.Theo lưuđồ như hình vẽ sau khi giải phân mảnh máy PC003 sẽ trống các ca 3,4,5 là liêntiếp

Từ ví dụ trên ta nhận thấy nếu các máy trống ở các liên ca kế tiếp nhau thìviệc giả phân mảnh chúng sẽ thực hiện được

Tuy nhiên cũng nảy sinh vấn đề đó là khi giải phân mảnh thì lịch đăng ký sửdụng máy của các sinh viên có sự thay đổi như vậy phải thông báo về cho cácsinh viên đó Ta phải lưu vào database địa chỉ email của từng sinh viên

6.Administrator thu hồi và chỉ định xếp máy cho sinh viên.

Administrator sẽ làm công việc thu hồi máy.Hoặc Administrator có thể thuhồi các ca máy theo đề tài (lúc cho phép sinh viên đăng ký sử dụng để tối ưu hiệusuất phòng máy)

Tuy nhiên do việc thu hồi máy đơn thuần chỉ là việc delete các ca đăng kýcủa các sinh viên trên bảng đăng ký , nên tức thời sau khi thu hồi máy một sinhviên nào đó vẫn có thể đăng ký lại và vẫn được cấp vào máy đó.Do đó nếuAdministrator muốn thu hồi máy để cấp cho một nhóm sinh viên nào đó thì saukhi thu hồi máy Administrator lập tức xếp cho các sinh viên đó

Đối với một số trường hợp , chúng ta không nên dùng chương trình tự độngsắp xếp , mà Administrator sẽ tự sắp xếp cho sinh viên vào một số máy nhất địnhnào đó Trường hợp này Administrator sẽ cập nhật vào bảng đăng ký máy

Chúng ta sẽ sử dụng chức năng này khi :

 Vào một số thời điểm phòng máy còn trốngAdministrator cho phép các sinh viên đăng ký sử dụng Sau này khi có

Trang 20

một đợt thực tập mới đăng ký thực tập Administrator sẽ thu hồi các máyđó lại để cho các sinh viên đợt mới sử dụng

 Có một nhóm sinh viên có nhu cầu sử dụng một sốcác máy nhất định (để sinh viên thi thực hành .).Thông thường chỉ sửdụng một số ít ca mà thôi , Administrator sẽ sắp xếp nhóm sinh viên vàocác máy đó

7.Giải thuật sắp xếp

Để các máy còn trống sau khi đăng ký ít bị phân mảnh Đối với các trườnghợp đăng ký lần đầu cho một đợt thực tập ta nhận các lịch đăng ký của sinh viênrồi sắp 1 lần

Như vậy với giả thiết đó ta sẽ có các lịch đăng ký của các sinh viên và cácmáy trống

Để đảm bảo sắp xếp các ca liên tiếp (gọi là liên ca) cho sinh viên trên cùng

một máy,ta sẽ thực hiện việc ánh xạ các liên ca đăng ký của sinh viên vào cácliên ca trống

 Nếu liên ca mà Sinh viên A đăng ký và liên ca các Sinh viên khác làkết hợp đầy đủ đối với máy X, X là máy đầu tiên thỏa có liên ca trốngnhỏ nhất thỏa

 Nếu liên ca mà Sinh viên A đăng ký và liên ca các Sinh viên khác còn

dư thì đối với máy X là nhỏ nhất

 Nếu không có máy nào có thể đăng ký cho liên ca này ta phải táchliên ca này ra nhiều liên ca.Việc tách này phải đảm bảo 2 yêu cầu:

 Liên ca của Sinh Viên A không đăng ký được nếu có ca không thể đăngký được thì loại bỏ ca đó ra và tiếp tục xét liên ca kế tiếp sau khi tách ca

Trang 21

đó Ví dụ liên ca 12345 có ca 3 không còn máy , như vậy xét hai liên ca 12 và45.

 Liên ca của sinh viên A không đăng ký được nhưng tất cả các ca đều cóthể đăng ký được ta lần lượt tách liên ca này thành hai liên ca:

Trong quá trình tách ta chọn cách tách thành hai hoặc ba liên ca:

 Nếu việc tách liên ca thành hai liên ca mà vẫn không tìm đượccách tách nào kết hợp với các liên ca của sinh viên khác là tổ hợpđầy đủ đối với các liên ca trống của các máy ,thì mới tách thành baliên ca và cũng tiếp tục chọn cách tách nào tối ưu nhất

 Nếu việc tách thành hai và ba liên ca không thành công, takhông nên tách tiếp nữa mà sẽ xét liên ca kế tiếp của sinh viên

Ta nhận thấy rằng để các máy sau khi sắp xếp ít bị phân mảnh

ta cần có hàm chọn ca dư tốt.Hàm chọn ca dư dùng để chọn giữa

ca dư trước (trong các lần xét trước) so với ca dư ở lần xét hiệntại Hàm này thể hiện một cách chọn như sau:

 Nếu ca dư sau khi kết hợp với các máy = 0 (tức là kết hợpvừa đủ) thì chọn liên ca trống này

 Nếu ca dư sau khi kết hợp với các máy khác 0 thì chọn liên

ca trống nào có số ca dư liên tiếp ít nhất

 Nếu ca dư là không liên tiếp sẽ được chọn cuối cùng

Sau đây là một ví dụ minh hoạ cho việc tìm liên ca trống thích hợp

Trang 22

123456 12345 123

3456

dư 3

dư 0 tốt hơn dư 3, chọn liên ca 123456 1234

dư 0,chọn liên ca 1234

liên ca sinh viên

đăng ký Liên ca các máy trống

7.a.Viết một số hàm chính bằng mã giả

Dưới đây chỉ là đoạn chương trình bằng mã giả mô tả ý tưởng của giảithuật,tuy nhiên để hiện thực chương trình cần thực hiện nhiều chương trìnhcon ,và nhiều cấu trúc dữ liệu phức tạp để hổ trợ cho công việc sắp xếp

 Danh sách các sinh viên đăng ký được sắp theo thứ tự đăng ký củasinh viên(theo dạng các ca liên tiếp gọi là liên ca )

 Ở mỗi liên ca chứa danh sách các sinh viên đăng ký liên ca này

 Danh sách các máy ,ứng với mỗi máy có những liên ca trống tươngứng

Trang 23

 Ứng với mỗi liên ca có các máy trống nào.

Xét một sinh viên (theo thứ tự)

 xét một liên ca của sinh viên này

 Xét các máy mà liên ca này có thể đăng ký(dựa vào bảngxét từ phải sang),tính cadư ở mỗi máy sau khi đăng ký liên ca

này (kết hợp với các sinh viên khác),máy được chọn do(hoặc dùng FUNCTION choncadu(cadutruoc,cadu) để chọn máy nào đăng ký cho sinh viên):

 máy có cadư=0,xếp cho các sinh viên ,xét liên ca kế tiếpmà không cần tính cadư của các máy khác

/*nếu có nhiều máy có cùng cadư chọn máy trước đó có hai liên

ca trống trở lên*/

 sau mỗi lần xếp máy cập nhật lại danh sách máy trống vàdanh sách sinh viên đăng ký

 xét liên ca kế tiếp của sinh viên này

 nếu không có máy nào đăng ký được cho liên ca này=>táchliên ca thành nhiều liên ca khác:

 tách liên ca thành 2 liên ca tính tổng số ca dư ở mỗi lầntách,chọn lần tách nào tối ưu nhất

 nếu việc tách không thành công=>tách thành 3 liên ca,…,cứtiếp tục cho đến lúc nào đó tách thành n liên ca lẻ mà khôngthành công=>báo cho user biết không còn ca trống(không tách

ra mà gởi trả cả liên ca ban đầu)

xét sinh viên kế tiếp.

Giả sử ta có một liên ca S ta cần xếp các sinh viên vào liên ca này sao chohợp lí nhất (theo hàm chọn,sẽ viết sau).Xét mọi sinh viên có thể đăng ký vào liên

ca này ,chọn ra các sinh viên đăng ký hợp lí nhất

Trang 25

if choncadu(cadutruoc,cadu) then svdklienca=insert(dssvbdau,dstam);

UNTIL (chonsv là phần tử thuộc hàng cuối hoac cadu.socadu=0)

END;

So sánh giữa cadưtrước và cadư bên nào tốt hơn nếu cadư là tốt hơn trả vềTRUE ngược lại FALSE

Trang 26

CHƯƠNG III PHÂN TÍCH VÀ ĐƯA RA MỘT SỐ TÍNH NĂNG CẦN THIẾT CỦA CHƯƠNG

TRÌNH

1.Ứng dụng dành cho Sinh viên

 Phải kiểm tra được MSSV,Password (dùng account trên hệ thống NIS+)

Hệ thống NIS+ hoạt động trên hệ điều hành Solaris cung cấp hàm đểlấy thông tin về account của sinh viên , do cần kiểm tra Password nên tachỉ cần lấy Password của sinh viên ,Password này đã được mã hoá theogiải thuật HASH đặc điểm của cách mã hoá này là: mã hoá “một chiều”tức là không thể giải mã ngược trở lại để được Password ban đầu

Hệ thống NIS+ lưu giữ thông tin về account của các user ,trong đópassword được lưu ở dạng đã crypt (mọi password đều được crypt khi đặtpassword)

Sử dụng hàm Crypt để mã hoá Password do sinh viên nhập vào và sosánh với Password lấy từ hệ thống , ta sẽ được kết quả

Checklogin

username,

encrypt password yes/no

Trang 27

Sử dụng hàm Getpwnam() để lấy các thông tin về username , trong đó thông tin cần thiết cho việc kiểm tra login đó là password đã crypt.

Trên thực tế chương trình của chúng ta sẽ gởi username/password đến

một server thuộc hệ thống NIS+ ,server này sẽ kiểm tra

username/password có đúng hay không.Sau đó thông báo kết quả về cho

client (Chương trình theo mô hình CGI)

 Sinh viên cần có hệ thống trợ giúp để biết cách đăng ký

Hệ thống giúp đỡ sinh viên đăng ký gồm các thông tin hướng dẫn cáchđăng ký

 Sinh viên cần biết thông tin về tình hình sử dụng hiện tại của các máynhằm có sự đăng ký hợp lý

Các thông tin này gồm :số lượng máy trống ở mỗi ca,lịch sử dụng của từngmáy

 Cần có chức năng xem lịch đăng ký của một sinh viên khác

Thực tế cho thấy có nhiều sinh viên muốn biết lịch làm việc của bạn mìnhtại trường để cần liên hệ như vậy phải cho phép xem được lịch của sinh viênđó

Nếu sinh viên chọn mục hướng dẫn sẽ được giới thiệu về cách thức đăngký

Dùng chức năng Xem Lịch để xem lịch đăng ký của sinh viên khác.

Dùng chức năng Xem Máy Trống để xem số lượng máy trống ở mỗi ca

hoặc các ca trống của một máy

Nhập MSSV,Password để login vào và đăng ký

Nếu login thành công sinh viên sẽ nhận được lịch đăng ký của mình trướcđó các ca có đăng ký thì được check(nếu đăng ký lần đầu thì không có ca nàocheck ).Sau khi check các ca mình cần đăng ký sinh viên click vào nút

Đăngký để gởi lịch đăng ký của mình cho chương trình.

Nếu sinh viên đăng ký lần đầu thì sẽ được báo ngày có kết quả đăng ký

và sinh viên dùng chức năng Xem Lịch để xem kết quả đăng ký của mình.

Trang 28

Nếu sinh viên đăng ký lại sẽ nhận được kết quả tức thời.

2.Ứng dụng dành cho Administrator

 Reset Database:

 Cập nhật các tên,hệ số của từng loại hình (LVTN,TTTN,ĐAMH)

 Cập nhật các tên đề tài ,số máy cần cho mỗi đề tài

 Cập nhật thời gian đăng ký và thời gian sử dụng cho mỗi Khóa làmĐề tài

 Cập nhật mã số máy , tên máy,vị trí ,các mô tả về máy (chỉ đểtham khảo)

 Import các files data của phòng đào tạo vào database

Nếu có giả thuyết rằng phòng đào tạo sẽ cung cấp file data mô tảviệc đăng ký làm đề tài của từng sinh viên (nếu không có file nàyAdministrator sẽ nhập dữ liệu cho từng sinh viên)

 Khi phòng máy có nhu cầu mở rộng ,Administrator được phép thêm cácmáy này vào danh sách các máy sử dụng

 Khi một số máy bị hỏng, Administrator có thể đưa các máy này vào danhsách các máy hỏng hoặc sử dụng với mục đích khác.Lúc đó toàn bộ các cađăng ký trên các máy đó sẽ bị hủy và các ca của các sinh viên sẽ được đăng

ký lại trên các máy khác ,sinh viên sẽ phải dùng chức năng search để xem lại

lịch đăng ký của mình hoặc đăng ký lại

 Khi cần sử dụng một số máy vào một số ca nhất định Administrator sẽ thuhồi các máy ở các ca đó.Administrator sẽ chỉ định các máy đó cho các sinhviên cần thiết

 Nếu có sinh viên nào đó vi phạm nội quy của phòng máy Administrator cóthể cấm user sử dụng máy trong 1 khoảng thời gian ,trong khoảng thời giannày sinh viên không thể đăng ký lại máy.Sau khi hết bị cấm sinh viên mớiđược đăng ký lại

Trang 29

 Trong quá trình giám sát sử dụng máy của sinh viên, khi có sự số về mấtmát thiết bị hoặc có sự quấy phá Server Administrator cần xem các user nàođã thực tập trên máy A trong 1 khoảng thời gian

 Đến hết hạn thực tập máy của các sinh viên,các daemon tự động thu hồimáy,Administrator có thể cho phép tiếp tục

 Cho phép một số sinh viên sử dụng máy nếu cần thiết (có thể lúc nàyphòng máy còn trống)

 Change password của Administrator

Password của Administrator được lưu trong file text trên máy ,kiểm trangay tại máy đó

Nếu login thành công

Trang Administrator tool

Mô tả về hệ thống giúp Administrator hiểu rõ hơn về hệ thống và quảntrị dễ dàng hơn

3.Một số Daemon để sắp xếp ,thu hồi hoặc thực hiện các công việc định kỳ.

 Hệ thống có chức năng giám sát:

 Thời gian sử dụng máy của sinh viên đến hết thời gian sử dụng củađợt làm đề tài đó

 Số ca mà sinh viên đã sử dụng có vượt quá số ca tiêu chuẩn củasinh viên hay không

 Cần có các daemon chạy độc lập với chương trình đăng ký,daemonnày thực hiện công việc kiểm tra vào lúc bắt đầu một ca ,hoặc bắt đầumột ngày

 Vào cuối mỗi tuần sẽ cập nhật số ca mà sinh viên sẽ được sử dụngtrong tuần tới

 Đối với mỗi đợt làm đề tài sẽ việc sắp xếp máy cho sinh viên sẽ đượcthực hiện một cách tự động.Vì mỗi đợt làm đề tài sẽ có thời hạn kết thúc đăng

Trang 30

ký ,vào cuối ngày này sẽ là thời điểm xếp máy cho sinh viên của khoá đề tàiđó.

 Một sinh viên khi bị cấm sử dụng máy (do vi phạm nội quy )

Administrator sẽ đưa vào thời hạn kết thúc cấm(INSERT vào Table cam_sd)

Đến thời hạn này sinh viên sẽ được phép đăng ký lại.Daemon sẽ DELETE trong table này các sinh viên hết hạn cấm

Trang 31

PHẦN B THIẾT KẾ

MÔ HÌNH CỦA CHƯƠNG TRÌNH ĐĂNG KÝ

VÀ SẮP XẾP MÁY CHO SINH VIÊN

User

Browser

Webserver

CG I

DatabaseInternet working

Protocol Stack Protocol StackOracle Protocol Adapter Oracle Protocol Adapter

Oracle 8 DBMS

Physical Network

Trang 32

Thông qua Net 8 của Oracle ta sử dụng công cụ OCI ( Oracle Call Interface )

rất mạnh ,hiện đang được sử dụng khá phổ biến để truy xuất vào database cần sửdụng

Để sử dụng Net 8 , máy chứa CGI phải có Net 8 Client ,máy có chứa database có Net 8 Server (Oracle 8.0.4 luôn cung cấp 2 chương trình này cho

chúng ta sử dụng khi cài đặt Oracle Server).Net 8 Server có thể hoạt động trênmôi trường WIN NT hoặc UNIX đều được.Măc dù Net 8 Client cũng có ở WIN

NT và UNIX và đồng thời cách lập trình OCI (Oracle Call Interface) , một côngcụ lập trình cho phép nhúng các lệnh SQL (sẽ trình bày sau) hoàn toàn giốngnhau trên cả hai môi trường (WIN NT và UNIX) ,theo yêu cầu của đề tài chúng

em sẽ phát triển hệ thông trên môi trường WIN NT

Tuy nhiên chúng em cũng sẽ cố gắng thực hiện chương trình một cách độc lậpnhằm hạn chế thay đổi khi phải chuyển đổi giữa hai môi trường.Để thực hiệnđược công việc này chúng em đã hạn chế không sử dụng các thư viện củaMicrosoft mà chỉ lập trình theo ANSI C

Trang 33

CHƯƠNG I THIẾT KẾ DATABASE CHO

Database được thiết kế không dư thừa dữ liệu,truy xuất nhanh

Trong quá trình phân tích chúng em đưa ra các thực thể của hệ thống như sau:

Thực thể sinh viên :do mỗi sinh viên có những thông tin riêng ví dụ

mssv,đề tài mà sinh viên đó làm ,địa chỉ email của sinh viên đó ,số ca sinhviên đã sử dụng đến thời điểm hiện tại

Thực thể Đềtài :do mỗi đề tài cần có thông tin mô tả đề tài

đó ,số máy cần cho đề tài đó v.v

Thực thể LoạiHình :Mô tả các hệ số ,để từ đó tính ra số ca cho mỗi

loại hình

Thực thể Ca :Mô tả thời gian bắt đầu và kết thúc ca thực tập.

Thực thể Máy :Mô tả thông tin về máy ,tình trạng của máy đó.

Thực thể Khoá :Chính khoá thực hiện đề tài vì theo hệ tín chỉcác sinh viên thuộc khóa khác nhau có thể đăng ký đề tài của các khóakhác

2.Phân tích và đưa ra các mối quan hệ giữa các thực thể.

Hiện nay theo quy chế tín chỉ mỗi sinh viên có thể làm nhiều đề tài trongcùng một học kỳ Tuy nhiên khi đăng ký sử dụng máy sinh viên chỉ được đăng kýdựa theo tiêu chuẩn của đề tài nào có số ca cho phép sử dụng lớn nhất

Trang 34

Việc thể hiện một ca đăng ký của sinh viên trong một tuần được thể hiện bằng ca và thứ trong tuần Một ngày có 6 ca và một tuần có 6 ngày thực tập như vậy trong một tuần có 36 ca.Ta đánh số ca từ 1 đến 36 để thể hiện việc đăng ký của sinh viên trong 1 tuần.

Do đó mỗi sinh viên chỉ thực hiện một đề tài để đăng ký sử dụng máy

Mỗi đề tài thuộc một loại hình :luận văn tốt nghiệp ,thực tập tốt nghiệp , đồán môn học …

Mỗi đề tài được thực hiện bởi chính khóa sinh viên làm đề tài đó

Với mỗi loại hình và khóa đề tài thì có một ngày bắt đầu , kết thúc đăngký,bắt đầu , kết thúc thực tập

Tuy nhiên để thể hiện khóa làm đề tài ta chỉ cần duy nhất một thông tin vềkhóa ví dụ MT95,MT96,MT97,CD97…Do đó ta có thể đưa khoá này vào thànhmột thuộc tính của thực thể khác

Vào một thời điểm , trên một máy chỉ có một sinh viên sử dụng máy đó

2.a.Sơ đồ ERD

2.b.Chú thích các thuộc tính

Trang 35

MSSV Lưu mã số sinh viên của sinh viên,là thuôc tính

khóa của table SinhvienHoTen Chứa họ tên của sinh viên đó

Socasd Số ca sinh viên đã sử dụng cho đến thời điểm

cuối tuần hiện tại (được cập nhật vào cuối tuầntự động hoặc khi sinh viên thay đổi lịch đăngký)

Email Địa chỉ Email của sinh viên

May(MSMay,Pmay,TinhTrang,Mota)

Thuộc tính Mô tả

MSMay Mã số của của một máy tính trong tòan bộ các

phòng máy Pmay Tên phòng đặt máy đó

TinhTrang Tình trạng sử dụng của máy đó (tốt, hỏng)Mota Mô tả thông tin tối thiểu của máy (cấu hình)

Ca(MSCa,BdCa,KtCa)

Thuộc tính Mô tả

MSCa Lưu mã số của một ca đăng ký

BdCa Thời gian bắt đầu của ca đó

KtCa Thời gian bắt đầu của ca đó

DeTai(MSDtai,Tdtai,Lhinh,KhoaDtai,SoMay)

Thuộc tính Mô tả

MSDtai Mã số đề tài mà sinh viên đó đang thực hiện.KhoaDtai Khóa làm đề tài đo.ù

Somay Số máy cần thiết để làm đề tài đó

Tdtai Tên tương ứng với đề tài đó

Lhinh Đề tài đó thuộc lọai nào

LoaiHinh(LHinh,Hso,ScaTda)

Trang 36

Thuộc tính Mô tả

Lhinh Đề tài đó thuộc lọai nào

Hso Hệ số của một loại hình đề tài để cung cấp số

ca tương ứng cho đề tài đó

ScaTda Số ca tối đa mà sinh viên làm lọai hình đề tài

này được cung cấp

LHinh_Kdtai(LHinh,KhoaDtai,NgBdau,NgKthuc,BdDky,KtDky,Sosv)

Thuộc tính Mô tả

LHinh Đề tài đó thuộc lọai nào

KhoaDtai Khóa làm đề tài đó

NgBdau Ngày bắt đầu lịch đăng ký có hiệu lực

NgKthuc Ngày lịch đăng ký hết hiệu lực

BdDky Ngày sinh viên bắt đầu đăng ký

KtDky Ngày sinh viên kết thúc đăng ký

Sosv Số sinh viên thực tập trong đợt đó (dự kiến)

2.c.Từ mô hình thực thể ERD thiết kế các Table

Trang 37

Thực thể sinh viên khóa chính là MSSV là mã số dùng để phân biệt các

sinh viên ,mỗi sinh viên chỉ có một mã số duy nhất tối đa gồm 8 ký tự Đâychính là mã số của sinh viên do trường thiết kế và hiện đang sử dụng

Table Sinhvien:

Trang 38

Table Dangky:

Thực thể Máy khóa chính là MSMay dùng phương pháp đánh mã theo cách

đánh mã phân đoạn (theo phòng máy) như cách đánh mã hiện nay chúng ta đangsử dụng trong các phòng máy Có thể đưa ra một ví dụ cho việc đánh mã củakhóa chính này như sau:

PC101,PC102,PC103, ,PC201,PC202,PC203

Tuy cách đánh mã trên đây chưa thật tối ưu nhưng với một số lượng máy không lớn thì việc lãng phí cũng không đáng kể ,nhưng ngược lại với cách đánh mã này rất tiện lợi cho sinh viên và Administrator trong sử dụng

Table May:

Thực thể Ca khóa chính là MSCa thể hiện ca trong 1 tuần , như vậy ta có 36

ca trong 1 tuần ta đánh mã từ 1 đến 36.

Table Ca:

Trang 39

Thực thể Detai khóa chính là MSDtai mã này được lấy từ phòng đào tạo đưa

sang và không phải thiết kế lại

Table Detai:

Thực thể LoaiHinh khóa chính là LHinh ta có thể đánh mã dựa vào tên của

Loại đề tài , ví dụ : Luận Văn Tốt Nghiệp (mã : LVTN) , Thực Tập Tốt Nghiệp(TTTN) , Đồ Aùn Môn Học (mã : DAMH)…

Table LoaiHinh:

Để đảm bảo việc tính toán số ca cấp cho sinh viên một cách chính xác chúng

ta đưa vào thuộc tính Sosv nhằm xác định được thời điểm sinh viên sử dụng nhiềunhất (chỉ cách tương đối mà thôi )

Trang 40

Do đó cần phải lưu lại history đăng ký của sinh viên.Vào mỗi thời điểm mỗisinh viên chỉ có một lịch đăng ký mà thôi và mỗi lịch đăng ký của một sinh viêncó một thời điểm bắt đầu thực tập (theo lịch đó).

Table nhan_dangky

Table His_dangky

Ngày đăng: 10/03/2014, 08:32

HÌNH ẢNH LIÊN QUAN

Hình vẽ dưới đây mô tả các thành phần của TNS - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Hình v ẽ dưới đây mô tả các thành phần của TNS (Trang 75)
Hình vẽ sau sẽ minh họa các buớc lập trình trong một ứng dụng OCI: - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Hình v ẽ sau sẽ minh họa các buớc lập trình trong một ứng dụng OCI: (Trang 79)
Sơ đồ của một quá trình xử lí một câu lệnh SQL - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Sơ đồ c ủa một quá trình xử lí một câu lệnh SQL (Trang 89)
Bảng các loai dữ liệu được định nghĩa trong MIME - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Bảng c ác loai dữ liệu được định nghĩa trong MIME (Trang 100)
Bảng các mã lỗi của HTTP - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Bảng c ác mã lỗi của HTTP (Trang 103)
Bảng kết hợp các liên  ca - xây dựng một chương trình thực hiện việc đăng ký giờ thực tập qua web
Bảng k ết hợp các liên ca (Trang 130)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w