Phân tích thiết kế hệ thống thông tin quản lý sinh viên

Công nghệ thông tin nói chung và công nghệ thông tin trong giáo dục đào tạo là một ngành có vai trò hết sức quan trọng trong nền kinh tế. Nó là nơi cung cấp nguồn nhân lực cho các ngành khác Xu thế của tất cả các nước hiện nay đều có một mục đích là phát triển kinh tế trên cơ sở phát triển mạnh mẽ thành tựu khoa học kỹ thuật mà trọng tâm là phát triển công nghệ thông tin. Với khả năng như vậy chính phủ các quốc gia đang đưa ra các chính sách nhằm hỗ trợ cho nền công nghệ thông tin phát triển đồng thời đưa ra các chính sách khuyến khích các trường đại hoc ứng dụng công nghệ thông tin vào quá trình giảng dạy để có thể giảm bớt thời gian lên lớp của giáo viên cũng như sinh viên. ở trường đại học kinh tế quốc dân hiện nay, xu thế đưa tin học vào giảng dạy đang được triển khai mạnh mẽ và đạt được hiệu quả cực kì tích cực. Trình độ tin học của các sinh viên ngày càng được nâng cao và trình độ của cán bộ quản lý cũng được cải tiến một cách đáng kể.

doc57 trang | Chia sẻ: haianh_nguyen | Lượt xem: 1518 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Phân tích thiết kế hệ thống thông tin quản lý sinh viên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o phép thay đổi những giá trị sai. Pessimistic buffering handle khoá record hiệu quả hơn. Giá trị Null là một khoá nhận diện và có thể sử dụng và có thể sử dụng tại chỗ “.Null.” Phát triển các ứng dụng dễ dàng hơn Visual Foxpro thêm một chức năng application wizard cung cấp các Project hook class mới và khả năng nâng cao đặc tính application framework làm choứng dụng hiệu quả hơn, chúng ta cũng thêm những tính năng nâng cao kinh nghiệm phát triển ứng dụng và thêm những tiện lợi hơn cho ứng dụng. . Các lớp nền của Visual foxpro làm dàng hơn khi thêm gần 100 đặc tính vào ứng dụng. . Component gallery tạo sự dễ dàng khi quản lý các lớp của Visual Foxpro, những văn bản, những tệp tin mà bạn muốn thêm vào ứng dụng của mình. . Phần mới application Builder cho phép thêm một cơ sở dữ liệu, tạo, thêm hay chỉnh sửa các bảng dữ liệu, các report, form, dịch và chạy những ứng dụng cho đúng cách. *Cải tiến công cụ debug Trong version này của Visual Foxpro, bạn có thể tìm lỗi và kiểm tra những thành phần của ứng dụng mọtt cách dễ dàng hơn, bạn có chức năng mở công cụ debug trong cửa sổ chính của Visual Foxpro nơi chúng hiện hữu cùng màn hình giao diện ứng dụng của bạn. Chương trình debug cung cấp những công cụ để bật những điểm dừng kiểm tra những tình huống và code gần giống như thể hiện trong môi trường bẫy lỗi của Visual C. Trong cửa sổ watch và local trình bày cách cài đặt thuộc tính, những đối tượng và giá trị những thành phần của mảng. Để xem giá trị của biến hiện thời, bạn chỉ việc đặt con trỏ vào tên biến trong cửa sổ trace. Cửa sổ output cho bạn xem một cách tiện lợi những yêu cầu thông tin được mã hoá và kết quả xuất hiện trực tiếp trên một góc của cửa sổ từ cửa sổ ứng dụng. Trong version này của Visual foxpro cũng gồm có một bản nâng cấp của profiler application để bạn có thể dùng để phân tích những chương trình, những ứng dụng hay các đề án để mã hoá cho thi hành. Bản thân động cơ coverage profiler là có thể tuỳ chọn giao diện trên visual foxpro. Dễ dàng khi thiết kế bảng và lập từ điển dữ liệu mở rộng. Trong version này của table designer, dễ dàng thêm các index giống như tạo các field và chỉ rõ nhiều giá trị mặc nhiên làm cho khi thiết kế form nhanh hơn. Có thể định nghĩa một khoá thường trên cùng một trang và trên cùng một hàng với field. Trang table cho bạn truy xuất trực tiếp vào validation rule, trigger và statistic cấp bảng. Lớp và thuộc tính của thư viện mặc định kiểu điều khiển của một field: khi thêm một field vào form, bạn tạo một điều khiển mà bạn muốn chỉ bằng một buớc dễ dàng. Hơn nữa, thuộc tính input mark và format giúp bạn định kiểu hiện diện của dữ liệu. Connection designer làm việc với trình quản trị cơ sở dữ liệu ODBC tạo những kết nối dễ dàng hơn cho việc tạo lập. Nhà thiết kế cũng cung cấp thêm những thuộc tính cho sự kết nối. Nâng cao tính năng query và view designer. Có thể tạo outer joint, chỉ định tên gọi cho các cột hoặc chọn một số record thoả mãn điều kiện nào đó.. bằng query và view designer. Dùng view designer cho phép xác định những thuộc tính giốmg nhau trên field hữu của bảng. Gia tăng những tính năng cho form và sự dễ dàng trong thiết kế. Theo những nâng cấp từ điển dự trữ dữ liệu trợ giúp trong thiết kế form, sử dụng form designer sẽ dễ dành và tiên lợi hơn. Form designer hỗ trợ công cụ single document interface(SDI) và Multiple document interface(MDI) cho bạn làm những gì mình muốn trên ứng dụng. Sử dụng SDI, tạo được những cửa sổ ứng dụng bên trong cửa sổ desktop của window. Shortcut Menu designer giúp tạo những shortcut sử dụng trong hành vi Right click. Form và những điều khiển có thêm những thuộc tính này và phương thức mới cho việc điều chỉnh từng phần của form. Trong cửa sổ properties, bạn có thể chọn một nhóm các điều khiển, thấy những thuộc tính chung, chung đổi chúng. Nếu cần sử dụng một khaỏng rộng để quan sát hay chỉnh sửa những thuộc tính này, bạn dùng properties zoom. Công cụ alignment canh những đối tượng theo hàng hay theo cột, di chuyển chỗ này, chỗ kia rất dễ dàng. Một yêu cầu chung của những nhà phát triển hệ thống là có thể sử dụng phím trong cửa sổ properties và cho phép di chuyển từ đối tượng này sang đối tượng khác bằng cách nhấn những tổ hợp phím CTRL kết hợp với các phím: PAGEUP, PAGEDOWN, HOME, END. Nếu muốn thay đổi những gì trong khi thi hành, nút design trên toolbar cho bạn truy xuất trở lại thiết kế màn hình nhanh. Công cụ soạn thảo viết code dễ dàng hơn khi định dạng các chương trình, thay đổi màu sắc, nâng cao chức năng tìm và thay thế. Cung cấp khả năng truy xuất bằng shortcut hay các phím tắt như bấm mouse phải để bật những hành vi cho bất kì đối tượng nào. Trong chương này gồm có: *Bắt đầu Visual Foxpro *Giới thiệu về Project manager *Giới thiệu các kiểu thiết kế Visual Foxpro *Thiết kế các kiểu cơ sở dữ liệu Bắt đầu Visual Foxpro Double-click vào biểu tượng Microsoft Visual Foxpro: Khi khởi động Visual Foxpro, Project Manager tạo một Project mới và trống, vì thế bạn có thể thêm những mục hiện có hoặc tạo những mục mới vào Project này. Sử dụng Project manager, bạn có thể làm quen với visual foxpro một cách nhanh chóng. Project manager cung cấp một phương pháp đơn giản, dễ thấy để tổ chức và làm việc với các Table, Form, Database, Report, Query và các file khác khi bạn đang sắp xếp các bảng và cơ sở dữ kiệu hay đang tạo một ứng dụng. Giới thiệu về project Manager Project Manager giúp tổ chức dữ liệu, lập query hay thiết kế các ứng dụng hoàn hảo. Chỉ bằng một vài thao tác chuột, bạn có thể giữ lại duy trì các bảng, các query và các tổ chức các mối quan hệ giữa các form, report, label, code, bitmap và các file khác. Giao diện của Project Manager giống như giao diện của windows exployer. Các đường kẻ cho thấy một hệ thống có đẳng cấp giữa các item trong Project Manager. Bạn có thể mở ra hay thu lại các chi tiết để thấy các cấp tổ chức. 3. Làm việc với bảng dữ liệu Bảng dữ liệu lưu trữ của bạn theo dòng, cột giống như bảng tính. Mỗi dòng tượng trưng cho một record, mỗi cột tượng trưng cho field của record đó. Có thể thiết kế hai loại bảng dữ liệu trong Visual Foxpro : Database table: bảng dữ không tuỳ thuộcvào bất cứ cơ sở dữ liệu nào. Free table: bảng dữ liệu đống vai trò thành phần trong cơ sở dữ liệu Thiết kế cơ sở dữ liệu bao gồm tạo các cơ sở dữ liệu (Table), xác định các Field cần thiết có trong bảng dữ liệu, các mối quan hệ cần có trong ứng dụng. Trong khi thiết kế các bảng dữ liệu bạn phải làm một số công việc chi tiết như: chọn dữ liệu, tạo tiêu đề diễn giải, xác định các giá trị mặc nhiên cho từng trường, cũng như chọn khoá, tạo bẫy lỗi (Trigger) và tạo chỉ mục cho bảng dữ liệu. Đăc biệt phải thiết lập các mối quan hệ giữa các bảng dữ liệu với nhau. 3.1-Tạo bảng dữ liệu Trong Visual Foxpro, một bảng dữ liệu có thể tồn tại ở một trong hai trạng thái nằm trong một cơ sở dữ liệu nào đó hoặc là một bảng dữ liệu tự do. Việc một bảng không nằm trong một cơ sở dữ liệu nào đó sẽ có lợi điểm so với bảng dữ liệu tự do, những lợi điểm bao gồm: Có thể tạo Field tên dài. Có thể tạo những tiêu để và những lời chú giải cho từng field. Có thể tạo giá trị mặc nhiên, mẫu nhập dữ liệu cho từng trường. Có thể tạo những quy tắc ở mức trường và record Có thể tạo khoá chính cũng như mối liên kết toàn vẹn giữa các bảng dữ liệu. Những thủ tục kiểm tra việc chèn , cập nhật hoặc xoá trong bảng dữ liệu. 3.1.1 Tạo bảng Bạn có thể tạo bảng dữ liệu bằng hai cách : Cách 1: trong Project Manager chon mục Database/Table, rồi chọn nút New. Cách 2: sử dụng câu lệnh Create Table Cú Pháp :CREATE TABLE [] [Null | not Null ] Primary Key [Tên Trường] Tag [Tên tag] 3.1.2-Tên Field Khi thiết lập cac Field trong bảng ta phải xác định tên Field, kiểu dữ liệu, độ dài. Ngoài ra còn phải xác định Field đó cho phép giá trị Null, có giá trị Default, cần có quy tắc kiểm tra dữ liệu hay không. Trong Visual Foxpro mỗi bảng cho phép tối đa 255 Field. Đối với bảng dữ liệu tự do, tên Field dài tối đa 10 kí tự. Đối với bảng nằm trong cơ sở dữ liêu thì tên trường cho phép dài tối đa 128 kí tự. Đặt tên field trong bảng dữ liệu có thể thực hiện theo hai cách sau : Trong công cụ Table Designer, gõ tên Field vào hộp Name Hoặc dùng lệnh Create Table hoặc Alter Table 3.1.3- Chọn loại dữ liệu Trong khi tạo Field trong bảng dữ liệu, ta phải chọn kiểu dữ liệu cho từng Filed đó. Để chọn được loại dữ liệu phù hợp với từng Field phải xem xét các trường hợp sau : Các giá trị lưu trữ thuộc loại dữ liệu nào. Các giá trị lưu trữ trong trường cần chiều dài tối đa bao nhiêu Các phép toán nào có thể sử dụng trên vùng dữ liệu này Visual Foxpro có thể tạo chỉ mục hay sắp xếp các giá trị trong field này không. Để chọn dữ liệu cho từng Field, trong Table Designe, kích vào hộp có mũi tên chỉ xuống trong hộp thoại Type. Ngoài ra ta còn có thể xác định kiểu dữ liệu trong câu lệnh Create. 3.1.4- Giá trị Null Khi một trường có thể chứa giá trị Null, nghĩa là giá trị ở Field này có lúc có, có lúc không. Để xác định đây là Field có giá trị Null, trong Table Designer, kích vào cột Null ở Field đó. Việc hiện diện giá trị Null sẽ gây ra một tác động lớn trong bảng cơ sở dữ liệu. 3.1.5-.Diễn giải cho Field Sau khi xác định được các mục cơ bản của Field như tên, kiểu dữ liệu, độ dài...ta có thể thêm phần diễn giải cho rõ ràng hơn và thuận lưọi hơn cho việc cập nhật và bảo trì sau này. 3.1.6-Tên bảng dữ liệu Nếu dùng câu lệnh Create Table hay công cụ Database Designer, thì phải xác định trong câu lệnh Visual foxpro sẽ tạo một bảng mới và lưu trên đĩa. Tên bảng bao gồn các kí tự , kí số, dấu gạch dưới nhưng phải bắt đầu bằng một ký tự hay dấu gạch dưới. Nếu bảng nằm trong một cơ sở dữ liệu thì phải xác định tên bảng dài. Tên bảng dài cho phép tối đa 128 ký tự, tên bảng xuất hiện trong công cụ Project Designer, Database Designer, View Disgner cũng như xuất hiện trên thanh tiêu đề của cửa sổ Browse. Ghi chú : tên bảng không phải là tên File Trang Field gồm các mục : Names: là vùng đặt tên các field trong cơ sở dữ liệu. Type: chọn kiểu dữ liệu cho từng trường. Width: chiều dài của từng trường. Decimal : Số số lẻ (nếu trường có kiểu dừ liệu số) Index: Field này có tạo chỉ mục hay không(chọn bằng cách đánh dấu X vào mục này.) Null: vùng này cho phép giá trị Null hay không, nếu có thì đánh dấu X vào mục này. 4. Các quy tắc kiểm tra dữ liệu Quá trình kiểm tra xem dữ liệu nhập có phù hợp với kiểu dữ liệu điều kiện hay giới hạn nào đó ở mức Field hay ở mức Record được gọi chung là “quy tắc kiểm tra dữ liệu có hiệu lực”. Các quy tắc kiểm tra này chỉ tồn tại trong bảng dữ liệu. Có 3 loại quy tắc kiểm tra :quy tắc kiểm tra ở mức trường, quy tắc kiểm tra ở mức record, quy tắc kiểm tra ở mức bảng. Kết quả mà bạn nhập vào sẽ được kiểm tra bằng biểu thức mà bạn định nghĩa. Nếu giá trị nhập vào không đúng quy tắc kiểm tra thì giá trị đó sẽ bị loại bỏ. 4.1- Quy tắc kiểm tra dữ liệu nhập vào trong trưòng, có thể kiểm tra tính hợp lệ của dữ liệu thông qua quy tắc kiểm tra dữ liệu được cài đặt ở mức Field. Trong Table Designer, gõ quy tắc kiểm tra trong hộp Field Validation. Hoặc dùng lệnh Check trong câu lệnh Create Table. Hoặc dùng mệnh đề Set trong câu lệnh Alter Table Để tạo quy tắc kiểm tra ở mức Field ta thực hiện ở các bước sau : Mở bảng dữ liệu trong Table Designer. Chọn Field cần thiết lập quy tắc. Chọn nút bên cạnh hộp Rule. Trong hộp thoại Expresstion Builder, thiết lập các quy tẳc rồi chọn OK. Trong hộp Message, gõ nội dung cânf thông báo khi quy tắc này sai. Chọn nút Ok 4.2- Quy tắc kiểm tra dữ liệu ở mức Record dùng để kiểm tra dữ liệu khi người dùng đưa dữ liệu vào. Quy tắc kiểm tra này khác với kiểm tra ở mức Field ở chỗ: khi ta muốn kiểm tra dữ lỉệu của một Field nhưng nó phụ thuộc vào một hay nhiều giá trị khác của trường khác Để tạo quy tắc kiểm tra dữliệu ở mức Record và câu thông báo lỗi thực hiện như sau: Trong công cụ Table Designer, gõ quy tắc kiểm tra và câu thông báo lỗi vào phần Rule và Message. Hoặc dùng mệnh đề Check trong câu lệnh Create Table, hay Alter Table. 4.3 Quy tắc kiểm tra ở mức bảng. Khi muốn hai hay nhiều trường được Field sẽ được so sánh, kiểm tra...trước khi record đó được đưa vào bảng dữ liệu, bạn có thể thiết lập quy tắc cho bảng. Cách thực hiện như sau: Chọn bảng dữ liệu cần thực hiện rồi chọn nút Modify. Trong Table Designer, chọn trang Table. Trong hộp Rule, gõ biểu thức cần kiểm tra. Trong hộp thoại Message box, gõ thông báo mà bạn muốn xuất hiện khi quy tắc kiểm tra sai. Chọn nút Ok. Trong Table Designer, chọn nút Ok. 4.4- Các câu lệnh liên quan đến tạo và chỉnh sửa bảng dữ liệu. Lệnh Create Table. Chức năng: tạo bảng dữ liệu Cú Pháp :CREATE TABLE [] [Null | not Null ] Primary Key [Tên Trường] Tag [Tên tag] Lệnh Alter Table Chức năng : dùng để thay đổi cấu trúc của bảng dữ liệu đã được tạo lập. Cú Pháp : ALTER TABLE Tablename1 ALTER [colume] Fieldname2 [Null | Not Null ] [ SET DEFAULT Expression2] [SET CHECK expression2 [error massage text2]] [DROP DEFAULT] [DROP CHECK] [NOVALIDATE] 5. Làm việc với Record 5.1- Xác định thư mục làm việc Thông thường khi khởi động Visual Foxpro, thư mục làm việc là ...\Vfp98. nếu dữ liệu của bạn lưu trữ ở thư mục khác khi làm việc sẽ gây bất tiện. Để khắc phục điều này ta sử dụng lệnh SET DEFAULT TO Chức năng: thiết lập thư mục và ổ đĩa mặc nhiên Cú pháp : SET DEFAULT TO [PATH] 5.2 - Hiện nội dung của bảng. Cách nhanh nhất để hiện nội dung của bảng dữ liệu là hiện nội dung của chúng trong cửa sổ Browse. Cửa sổ Browse hiện nội dung của các dòng các cột, bạn có thể sử dụng thanh cuốn để xem. Cách thực hiện: Từ Menu File, chọn Open rồi chọn bảng dữ liệu cần xem. Từ Menu View chọn thư mục Browse Bạn cũng có thể chọn bảng dữ liệu trong Project Manager rồi chọn nút Browse. 5.3 - Di chuyển trong bảng dữ liệu. Dùng thanh cuốn để di chuyển bảng dữ liệu và thể hiện thông tin từ các Field khác, bạn cũng có thể sử dụng các phím mũi tên và phím Tab để di chuyển. Ngoài ra cũng có thể sử dụng Menu lệnh để thực hiện công việc này. Trong Menu Table, chọn mục Go To Record. Trong bước tiếp theo, chọn một trong các công cụ Top, Bottom, Next, Previous hoặc Record. Nêú chọn mục Record, bạn phải gõ vào số Record cần xem rồi chọn Goto. 5.4 -Thêm một Record mới vào bảng dữ liệu Cách1: bạn có thể thêm một bản ghi mới vào bảng dưc liệu nhanh nhất bằng cách đặt cửa sổ Browse hay Edit ở chế độ Append. Cách2: Sử dụng lệnh Insert của SQL, lệnh này dùng để nhập dữ liệu từ một mảng hay các biến vào trong bảng dữ liệu. Cách3: sử dụng lệnh Append Blank kết hợp với lệnh Replace Cú Pháp: APPEND BLANK Chức năng: Thêm một Record trắng vào cuối bảng dữ liệu hiện hành. sau khi thực hiện lệnh này, muốn nhập dữ liệu vào bạn phải dùng lệnh Replace hay Gather. Thêm dữ liệu từ bảng khác Bạn có thể thêm dữ liệu vào một bảng khác bằng cách sử dụng lệnh APPEND FROM. Cú pháp: APPEND FROM FieldName1? [FIELD fieldList] [FOR lExpresion] 5.6-Xoá Record Bạn có thể xoá record bằng cách đánh dấu xoá chúng ra khỏi bảng dữ liệu. Khi các Record bị đánh dấu xoá, bạn có thể khôi phục lại được, còn khi đã xoá khỏi bảng dữ liệu thì không xoá lại được. 5.7-Khôi phục lại các Record đã bị đánh dấu xoá Bạn có thể khôi phục lại các Record bị đánh dấu xoá bằng các cách sau đây: Làm lại thao tác như đánh dấu xoá cho những Record nào muốn khôi phục Trong Menu Table, chọn Recall Records. Dùng lệnh Recall ở cửa sổ lệnh. 5.8-Xoá các Record đã đánh dấu xoá ra khỏi bảng dữ liệu Sau khi đánh dấu xoá các Record, bạn có thể xoá chúng ra khỏi bảng dữ liệu bằng các cách sau: Trong cửa sổ Browse, chọn thư mục Browse Delete Record trong menu Table. Dùng lệnh PACK khi sử dụng lệnh này bảng dữ liệu phải được mở ở chế độ độc lập. 5.9-Xoá tất cả các Record trong bảng dư liệu Bạn có thẻ xoá tất các Record trong bảng dữ liệu mà không cần đánh dấu xoá trước bằng lệnh ZAP. Khi đó tất cả các bản ghi không thể khôi phục lại được. 6-Sắp xếp dữ liệu sử dụng Index Một khi ta tạo được bảng dữ liệu, ta có thể sắp xếp dữ liệu bằng cách sử dụng Index để tăng tốc độ trích xuất dữ liệu. Bạn có thể sử dụng Index để làm tăng độ tìm kiếm dữ liệu cũng như kết xuất in ấn. Index rất quan trọng trong việc tạo mối quan hệ giữa các bảng cơ sở dữ liệu. Index trong Visual Foxpro giống như bảng mục lục của cuốn sách. Mỗi mục lục cuốn sách nằm trên một trang nào đó được xác định qua số trang, cũng như một Record nằm trên một bảng dữ liệu đều có một chỉ số riêng biệt nằm trong file Index. Khi muốn truy xuất đến một Record nào đó, Visual Foxpro sẽ dựa vào chỉ số này để đến Record đó. 6.1-Tạo Index Một khi có bảng dữ liệu, bạn có thể tạo một Index trên Field hay một biểu thức. Để dùng Index có hiệu qủa, tạo Index trên những Field thường hay dùng để đọc dữ liệu trong bảng, trong Query hay trong Report. Nếu tạo Index trên những Field không sử dụng thường xuyên ví dụ như Field địa chỉ thì nó sẽ làm chậm quá trình xử lý. Ngoài ra còn có thể tạo Index trên nhiều Field bằng cách kết hợp chúng lại trong một biểu thức. Trong Project Manager, chọn bảng dữ liệu muốn tạo Index rồi chọn nút Modify. Trong công cụ Table Designer, chọn trang Index màn hình sau sẽ xuất hiện. Trong hộp thoại Name, gõ tên Tag bạn cần tạo. Trong hộp Type chọn laọi Index. Bạn có thể chọnh một trong 4 loại: + Primary + Candidate + Regular Index + Unique Trong hộp Expression gõ tên Field bạn cần Index hoặc nhấn nút bên cạnh để xây dựng một biểu thức Index. Hộp Filter dùng để lọc các Record thảo mãn một điều kiện nào đó trước khi tiến hành Index. Chọn nút Ok. 6.2- Truy xuất dữ liệu với Index Sau khi đã tạo index cho các trường khác nhau trong bảng dữ liệu, có thể truy xuất dữ liệu hay hiện dữ liệu trong bảng theo nhiều đang sắp xếp khác nhau. Sử dụng một trong 2 cách sau để thay đổi dạng Index. Dùng menu lệnh: Trong Project Manager, chọn bảng dữ liệu đã tạo index. Chọn nút browse Trong menu Table, chọn mục Properties. Trong hộp Index chọn loại Index cần dùng. Chọn Ok. 7. Mối quan hệ giữa các bảng dữ liệu Database Deigsner dễ dàng tạo mối quan hệ giữa các bảng dữ liệu bằng cách nối các chỉ mục lại với nhau. Quan hệ được tạo trong Database Deigsner được gọi là Persistent Relationship. Mỗi lần sử dụng các bảng trong công cụ query hay View Designer hoặc trong Data Environment khi tạo Form thì các mối quan hệ này sẽ xuất hiện. 8. Forms Bạn có thể dùng Form cung cấp cho người dùng giao diện để hiện và nhập thông tin vào cơ sở dữ liệu, Form còn cung cấp một tập hợp các đối tượng để đáp ứng lại những thao tác của người dùng trên Form giúp họ có thể hoàn thành công việc dễ dàng. 8.1- Tạo Form mới bằng form Designer Trong mục Project Designer chọn mục form trong document rồi chọn nút new. Hoặc trong menu file chọn mục New, chọn form rồi chọn nút New file. Hoặc gõ lệnh Create Form trong cửa sổ lệnh. 8.2- Các đối tượng (Control) Textbox là ô văn bản dùng để nhập giá trị dạng văn bản Label thường dùng để thể hiện các hướng dẫn trên form Command button đây là một đối tượng dùng để thực hiện một tác vụ nào đó khi người dùng kích chuột vào hoặc ấn phím Enter. Command button group quản lý một tập hợp các Command button. Listbox là danh sách hiện sẵn các giái trị mà người dùng có thể chọn Combobox là đối tượng có thể chứa nhiều một danh sách để chọn. Check box là ô cho phép chọn có thể chọn đồng thời nhiều ô. Option button chỉ cho phép chọn 1 trong các trường hợp Grid đây là bảng lưới Active X(OLE) là một đối tượng dùng để nhúng, kết hợp với các đối tượng khác. 8.3- Các thuộc tính của các control Mỗi loại control trên Form đều có các thuộc tình đi kèm các thuộc tính này mô tả đầy đủ các thuộc tính đi kèm. Trong cửa sổ properties ngoài thuộc tính của control nó còn thể hiện các phương thức của đối tượng đó. Mỗi một control có nhiều thuộc tính trong đó có các thuộc tính sẵn có người dùng không thể phát triển, có những thuộc tính người dùng có thể phát triển theo ý của mình. Sự phát triển có thể được thực hiện khi thiết kế form hoặc được thực hiện khi chạy chương trình. Mỗi loại đối tượng đều có những thuộc tính khác nhau, chú ý thuộc tính hình thức như Font, Fontsize, name, caption, height, width. 8.3- Các Method Method là một phương thức xử lý của control. Nó thường là các đoạn chương trình viết cho các mã khác nhau. Event là các sự kiện xảy ra đối với control. Click là bấm chuột để làm gì. Double click : nhấn kép chuột để làm gì Lostfocus : mất con trỏ thì làm gì Gostfocus : nhận được con trỏ thì làm gì Init : sự khởi đầu Keypress : ấn phím thì làm gì Load: xảy ra trước sự kiện Init Destroy : huỷ bỏ Mousemove : di chuột qua Reports Trong các ứng dụng của fox thường có phần chức năng là nhập dữ liệu vào cho cơ sở dữ liệu và lấy cơ sở dữ liệu ra phục vụ cho người có nhu cầu nhập tin. Để đưa dữ liệu vào ta nhập từ form. Để lấy dữ liệu ra ta lấy bằng report 1. Loại báo cáo Báo cáo chi tiết, chủ yếu mang tính liệt kê thể hiện các bản ghi trong tệp cơ sở dữ liệu một cách tuần tự. Báo cáo tổng hợp, tổng hợp dữ liệu trong tệp trước khi đưa ra báo cáo, việc tập hợp có thể theo một hay nhiều tiêu thức khác nhau. 2. Tạo báo cáo nhanh. Nó hỗ trợ cho việc tạo báo cáo nhanh đơn giản. Visual Foxpro sẽ giúp cho tạo ra đối tượng trên báo cáo sau đó ta có thể thiết kế lại b1. Mở tệp cơ sở dữ liệu muốn lấy dữ liệu ra b2. Create Report b3. Chọn Quick Report b4. Chọn trường trong tệp cơ sở dữ liệu, sau đó ấn Ok Sử dụng Report Designer C1: Vào File ->New ->Report C2: Trong Project chọn Report sau đó chọn newfile C3: +Create Report +Modify Report Thành phần của Report Header : phần đầu của Report Title : dùng để đặt tiêu đề cho Report Detail : phần chứa các trường của Report Sumery : phần tổng kết Report footer 5. Sử dụng các control : Trên thanh công cụ Toolbar có những thuộc tính để chèn vào Report A: nhằm tạo nhãn cố định Ab : dùng để thể hiện lấy thông tin từ tệp cơ sở dữ liệu hoặc bộ nhớ. 10. Menu Menu cung cấp một phương thức có cấu trúc và giao diện với người dùng để tác động lên những câu lệnh trong ứng dụng của bạn. Việc sáp xếp thích hợp và thiết kế Menu có hệ thống sẽ giúp cho ngưới dùng được thuận tiện khi sử dụng ứng dụng của bạn. 10.1- Sử dụng menu trong ứng dụng Thông thường người ta hay xem menu trước khi sử dụng. Nếu menu của bạn thiết kế tốt, người dùng sẽ nắm vững hệ thống của bạn. Với công cụ Menu Designer của Visual Foxpro, bạn có thể tạo ra menu làm tăng hiệu quả trong ứng dụng của bạn. Trong mỗi phần của Visual foxpro đều có những menu hệ thống riêng biệt. Phần dưới đây trình bày cách tạo menu hệ thống. Các bước tạo menu hệ thống Việc tạo menu hệ thống phải qua một số bước sau đây: Sắp xếp và thiết kế : quyết định menu nào bạn cần, chúng xuất hiện ở đâu trên màn hình, cần tạo những menu con nào. Tạo menu và submenu : sử dụng công cụ Menu Designer để tạo các đề mục chính, các mục nằm trong menu và submenu. Gắn các câu lệnh để thực hiện các tác vụ bạn muốn. Biên dịch Menu. Tiến hành chạy thử và kiểm tra Tổ chức menu hệ thống Sự tiện ích của hệ thống này tuỳ thuộc vào chất lượng của menu hệ thống. Nếu bạn đầu tư thời gian vào thiết kế menu, thì người dùng sẽ dễ dàng và nhanh chóng biết cách sử dụng. Tổ chức menu theo những công việc mà người dùng sẽ làm, không tổ chức theo thứ tự những chương trình theo ứng dụng của bạn. Người dùng có thể hình dung mô hình ứng dung của bạn tổ chức như thế nào bằng cách xem xét menu và các submenu. Việc thiết kế menu và submenu ấn tượng sẽ giúp cho người sử dụng hiểu được phong cách để hoàn thành công việc họ phải làm như thế nào. Tạo tiêu đề cho mỗi menu một cách có ý nghĩa Tổ chức các mục trong menu theo những yêu cầu thường hay sử dụng, theo trình tự logic hay theo thứ tự Alphabete. Nếu bạn không đoán được trình tự của công việc cũng như tính logic thì bạn sắp xếp các mục trong menu theo thứ tự Alphabet. Việc sắp xếp các menu theo trình tự này sẽ hữu ích khi số lượng các mục trong menu lớn hơn 8, nếu có nhiều mục như vậy, người dùng sẽ tốn nhiều thời gian để tìm kiếm một mục nào đó, việc sắp xếp các mục theo trật tự Alphabet sẽ giúp cho người dùng tìm kiếm nhanh hơn. Đặt các đường kẻ ngang phân cách các nhóm trong mục menu. Giới hạn số lượng các mục trong menu để hiện diện trên màn hình. nếu số lượng vượt quá chiều dài màn hình thì tạo submenu. Tạo menu Bạn có thể tạo menu bằng cách điều chỉnh lại menu hệ thống trong Visual Foxpro hoặc bằng cách tạo menu riêng cho mình, bạn có thể dùng công cụ quick menu để tạo menu hệ thống như sau: Trong Project Manager, chọn trang other, sau đó chọn mục Menu và nút New. Chọn thư mục menu . Màn hình Menu Designer xuất hiện. Trong Menu chọn mục Quick menu. Màn hình Menu Designer sẽ chứa các thông tin về Menu chính của Visual Foxpro. Chỉnh sửa các menu của hệ thống bằng cách thêm hay chỉnh sửa chúng. Sau khi tạo xong Menu, cần phải biên dịch chúng. Tạo các mục trong menu Sau khi tạo xong menu, bạn có thể đặt các mục trong các menu. Các mục này có thể mô tả câu lệnh của Visual Foxpro hoặc các thủ tục mà bạn muốn người dùng thi hành, hoặc các mục menu có thể chứa các submenu khác. Để thêm các mục trong menu bạn thực hiện như sau: Trong cột Prompt, chọn menu nào bạn muốn thêm các mục trong đó. Trong hộp Result chon submenu. Một nút Create sẽ xuất hiện bên cạnh danh sách. Chọn nút Create, một cửa sổ mới sẽ xuất hiện, bạn có thể gõ các mục của menu trong đó. Tạo Submenu Mỗi một Menu bạn đều có thể tạo các Submenu để chứa các mục nằm trong đó. Cách tiến hành như sau: Trong cột Prompt, chọn menu nào bạn thêm Submenu Trong hộp Result chọn submenu. Một nút Create sẽ xuất hiện bên cạnh danh sách. Nếu submenu đã tồn tại nút này sẽ được thay bằng nút edit. Chọn nút Create hoặc edit, một cửa sổ sẽ xuất hiện, bạn có thể gõ các mục của menu trong đó. Lập trình trong Visual foxpro Có thể viết chương trình trong Visual foxpro bằng cách viết các chỉ thị trong Cửa sổ lệnh. Trong file chương trình. Trong các cửa sổ tình huống hay method của Form Designer hoặc Report Designer. Trong các cửa sổ thủ tục của Form Designer hoặc Report Designer. 11.1- Các bước tạo một chương trình Một chương trình Visual Foxpro là một File văn bản chứa một dãy các câu lệnh. Thực hiện việc tạo một chương trình bằng các cách sau: Trong Project Manager, chọn trang code, sau đó chọn mục Program. Chọn nút New. Hoặc Trong Menu File, chọn New. Trong hộp thaọi New chọn Program. Chọn nút Newfile. 11.2- Lưu chương trình. Sau khi tạo một chương trình, lưu chương tình bằng cách: - Chọn save trong menu File hoặc nhấn tổ hợp phím Ctrl+ S. Nếu tạo chương trình trong Project Manager, chương trình này sẽ được đưa vào Project. Nếu khi lưu mà chưa có tên File, Visual foxpro sẽ hiện hộp thoại để đặt tên cho File chương trình này. Sau khi lưu chương trình, có thể thực hiện chương trình này hoặc chỉnh sửa nó. 11.3- Hiệu chỉnh chương trình Để hiệu chỉnh chương trình, thực hiện một trong các cách sau: Nếu chương trình nằm trong Project Manager, mở file Project Manager, chọn mục Program rồi nhấn nút Modify. Trong menu File, chọn mục Open, chọn mục Program trong hộp file of type. Từ danh sách file, chọn file chương trình nào cần sửa rồi chọn open. Trong cửa sổ lệnh, gõ tên File chương trình cần hiệu chỉnh trong câu lệnh: Modify command Nếu không nhớ tên file chương trình, có thể gõ như sau: Modify command?. Khi đó Visual Foxpro sẽ hiện hộp thoại để bạn chọn File chương trình nào cần sửa. 11.4- Thực thi chương trình Để thực thi một chưong trình, thực hiện một trong các lệnh sau: Nếu chương trình nằm trong một Project, chọn chương trình đó trong Project Manager rồi chọn nút Run. Hoặc trong Menu Program, chọn nút DO. Từ danh sách các File chương trình chọn file rồi chọn nút DO . Hoặc trong cửa sổ lệnh, gõ lệnh DO kềm với tên File chương trình. tương tự như lệnh Modify command, gõ dấu “?” để chọn chương trình từ danh sách. 12- Cấu trúc lập trình 12.1- Cấu trúc lập trình rẽ nhánh. 12.1.1- Cấu trúc lập trình rẽ nhánh if Cấu trúc lập trình rẽ nhánh IF cho phép ta có thể rẽ nhánh chương trình theo hai hướng khác nhau tuỳ thuộc vào điều kiện rẽ nhánh có đúng hay không. Cú pháp: IF Các lệnh khi điều kiện đúng ELSE Các lệnh khi điều kiện sai ENDIF Trong đó điều kiện là một biểu thức Logic luôn trả về một trong hai giá trị .T. hay .F. Lưu đồ Đk Đ Đk S Câu lênh nếu đk đúng Câu lệnh nếu đk sai END 12.1.2- Cấu trúc lựa chọn DO CASE Chức năng : chọn lựa một trong các trường hợp để thực hiện. Nếu tất cả các trường hợp không đúng thì thực hiện lệnh trong phần OTHERWISE. Cấu trúc lện DO CASE giống như lệnh IF .... ELSE ... ENDIF lồng nhau. Nhưng khi bài toán có nhiều lựa chọn thì ta nên dùng cấu trúc DO CASE, vì cách viết của nó làm cho chương trình rõ ràng hơn, dễ bảo trì hơn. Cú pháp : DO CASE CASE CASE .... CASE OTHERWISE ENDCASE Lưu đồ : ĐK 1 Thi hành lệnh 1 ĐK 2 Thi hành lệnh 2 ĐK 3 Th hành lệnh 3 Thi hành lệnh khác Otherwise Cách thực hiện lệnh: Visual Foxpro sẽ lần lượt xét các điều kiện từ đến nếu tất cả đều kiện này sai, khi đó sẽ được thực hiện. Nếu có một điều kiện đúng thì Visual Foxpro sẽ được thực hiện các lệnh của điều kiện này và thoát ra khỏi lệnh DO CASE mà không cần xét đến điều kiện tiếp theo. 12.2-Cấu trúc vòng lặp Khi muốn thực hiện lặp đi lặp lại một đoạn lện nào đó thì ta phải sử dụng một trong hai cấu trúc vòng lặp: DO WHILE ... ENĐO và FOR ... ENDFOR. 12.2.1- Cấu trúc vòng DO WHILE Cú pháp : DO WHILE ENDDO Cách thực hiện câu lệnh: Đầu tiên câu lệnh sẽ được kiểm tra, nếu đúng thì CAC CAU LENH sẽ được thực hiện. Công việc này sẽ được lặp đi lặp lại cho đến khi nào điều kiện không thoả mãn. Lưu đồ : ĐK S Đ Thi hành lệnh 1 12.2.2- Vòng lặp FOR Vòng lặp FOR cũng giống như vòng lặp DO WHILE nhưng được sử dụng khi số được biết trước. FOR = TO ENDFOR Lưu đồ : i = 1, n i <= n Thực hiện lệnh i = i+1 12.2.3-Vòng lặp duyệt dữ liệu SCAN ... ENDSCAN Vòng lặp này tự động duyệt các Record trong tệp tin cơ sở dữ liệu từ Record đầu đến Record cuối. Cú pháp : SCAN [][FOR/WHILE] Lệnh [Loop] [Exit] EDNSCAN Chúng ta có thể dùng nhiều loại chương trình vòng lặp để giải một bài toán. Tuy nhiên chúng ta lựa chọn cách nào để giải bài toán được tối ưu, ngắn gọn nhất. CHƯƠNG III : Phân tích, thiết kế và xây dựng hệ thống quản lý sinh viên I.Phân tích hệ thống quản lý sinh viên Phân tích là phương pháp nghiên cứu nhằm lựa chọn giải pháp thích hợp, biện pháp cụ thể để đưa máy tính vào phục vụ cho công việc hằng ngày. Phân tích là công việc đầu tiên của quá trình xây dựng một ứng dụng trên máy tính. Hiệu quả đem lại của hệ thống chương trình ứng dụng phụ thuộc vào độ nông sâu của kết quả phân tích ban đầu. 1. Phân tích môi trường hệ thống thông tin đang tồn tại. Công nghệ thông tin nói chung và công nghệ thông tin trong giáo dục đào tạo là một ngành có vai trò hết sức quan trọng trong nền kinh tế. Nó là nơi cung cấp nguồn nhân lực cho các ngành khác Xu thế của tất cả các nước hiện nay đều có một mục đích là phát triển kinh tế trên cơ sở phát triển mạnh mẽ thành tựu khoa học kỹ thuật mà trọng tâm là phát triển công nghệ thông tin. Với khả năng như vậy chính phủ các quốc gia đang đưa ra các chính sách nhằm hỗ trợ cho nền công nghệ thông tin phát triển đồng thời đưa ra các chính sách khuyến khích các trường đại hoc ứng dụng công nghệ thông tin vào quá trình giảng dạy để có thể giảm bớt thời gian lên lớp của giáo viên cũng như sinh viên. ở trường đại học kinh tế quốc dân hiện nay, xu thế đưa tin học vào giảng dạy đang được triển khai mạnh mẽ và đạt được hiệu quả cực kì tích cực. Trình độ tin học của các sinh viên ngày càng được nâng cao và trình độ của cán bộ quản lý cũng được cải tiến một cách đáng kể. II.Phân tích hệ thống hiện tại. Quản lý sinh viên là một công việc đòi hỏi tính chính xác khá cao. Với đặc thù công việc đòi hỏi người quản lý phải có trình độ quản lý và khả năng tổng hợp. Chương trình quản lý sinh viên hiện nay của trường chưa được tin học hoá hoàn toàn, một công việc vẫn còn làm thủ công điều nay làm tốn nhiều thời gian, chưa phát huy được sự tiện lợi của ứng dụng tin học vào công tác quản lý. 1-Sơ đồ cấu trúc dữ liệu Table HSSV bảng này dùng để nạp thông tin về sinh viên, khoá chính là Ma_SV. TT Tên trường Kiểu độ rộng Thuộc tính 1 Ma-sv Character 10 Mã sinh viên 2 Ho_ten Character 25 Họ Tên 3 Gioi_tinh 1/0 1 Giới tính 4 Que_quan Character 30 Quê quán 5 Ngay_sinh Date 8 Ngày sinh 6 Noi_o_hien_nay Character 50 Nơi ở hiện nay 7 Dia_chi_LL Character 50 Địa chỉ liên lạc 8 Doan Yes\No Đoàn 9 Doi_tuong Character 10 Đối tượng chính sách 10 Dien_thoai Character 12 Điện thoại 11 Nambd Character 10 Năm bắt đầu 12 Namkt Character 10 Năm kết thúc 13 Tinh_trang Character 10 Tình trạng 14 Kykt Character 1 Kỳ kết thúc Table DS_khoa : đây là bảng để chứa danh sách các khoa trong trường TT Tên trường Kiểu độ rộng Thuộc tính 1 Ma_Khoa Character 10 Mã khoa 2 Ten_khoa Character 25 Tên khoa Table Bang_diem : để nhập điểm cho mối sinh viên sau mỗi kì thi, khoá chính là Ma_SV và khoá ngoại lai là Nam_hoc TT Tên trường Kiểu độ rộng Thuộc tính 1 Ma_sv Character 10 Mã cán bộ 2 Nam_hoc Character 9 Năm học 3 Ky Nameric 1 Mã giới tính 4 Lan_thi Nameric 1 Lần thi 5 Ma_mon Character Mã môn 6 He_so Nameric 2 Hệ số 7 Diem Nameric 2 Điểm Table DS_mon : bảng này chứa tên các môn học trong trường, khoá chính là Ma_mon TT Tên trường độ rộng Thuộc tính 1 Ma_mon Character 10 Mã cán bộ 2 Ten_mon Character 10 Tên môn Table DS_Lop : đây là bảng chứa tên các lớp có trong trường thuọc các khoa khác nhau TT Tên trường Kiểu độ rộng Thuộc tính 1 Ma_lop Character 10 Mã lớp 2 Ten_lop Character 30 Tên lớp 3 Ma_khoa Character 10 Mã khoa Sơ đồ luồng dữ liệu Hồ sơ sinh viên Cập nhật thông tin Sinh Viên Cập nhật hồ sơ Tìm Kiếm Thống kê Lập báo cáo Lãnh đạo 11.Một số sơ đồ thuật toán. a.Sơ đồ thuật toán nhập dữ liệu. Begin Mở tệp Tạo Record Nhập Data Kiểm tra S Sửa (C\K) Lưu data D D Tiếp tục (C/K) S K Finish Đóng bảng b.Sơ đồ thuật toán thống kê. Kiểm tra ĐK Mở bảng Nhập điều kiên Begin S D Lập List (C/K) Tạo báo cáo IN Finish c.Sơ đồ thuật toán tìm kiếm. Finish IN Tạo báo cáo Kiểm tra ĐK Begin Mở bảng Lập List (C/K) Nhập điều kiên S D Tìm tiếp D S d.Sơ đồ thuật toán sửa dữ liệu. Begin Nhập dữ liệu Nhập dữ liệu Mở Record. Mở bảng Ktra hợp lệ S Ghi D Sửa tiếp (c/k) C K Finish e.Sơ đồ thuật toán tạo báo cáo. Begin Mở tệp hồ sơ XĐ báo cáo Nhập điều kiên Ktra điều kiện. S D Lập List. Tạo báo cáo Tiếp tục D Xem kết quả. Finish S f.Sơ đồ thuật toán in báo cáo Begin Khối xuất kết quả Preview, Printer File Xem kết quả Chọn báo cáo Mở tệp Finish III. Một số giao diện chính của chương trình Form giao diện chính của chương trình. Từ giao diện chính của chương trình chúng ta có thể chọn các thực đơn để vào các mục bên trong có công việc chúng ta cần thực hiện như có thể nạp điểm sinh viên, tìm kiếm sinh viên, in bảng điểm của sinh viên và nhiều công việc khác. Form cập nhật hồ sơ sinh viên Form này dùng để nhập thông tin đối với các sinh viên mới vào trường hoặc sinh viên có sai sót về thông tin Form tìm kiếm thông tin về sinh viên. Form này cho phép tìm kiếm những thông tin về sinh viên. Chỉ cần nhập mã số sinh viên, tên sinh viên và lớp rồi ấn Enter các thông số khác sẽ tự động hiên ra. 4. Form nhập điểm của sinh viên Form này dùng để cập nhật điểm của sinh viên sau mỗi kì thi Form tính học bổng sinh viên Chưng IV : Cài đặt và hướng phát triển 1. Cài đặt Visual Foxpro ã Yêu cầu về hệ điều hành: Hệ điều hành Windows 95 hoặc phiên bản mới hơn. ã Yêu cầu về máy - Máy 486 với tốc độ của bộ xử lý 66Mhz hoặc lớn hơn. - Chuột - Bộ nhớ 16 MB RAM. - Đĩa cứng có dung lượng còn lại 85 Mb(nếu cài đặt Typical), 90 MB nếu cài đầy đủ. - Màn hình VGA hoặc cao hơn, có độ phân giải tốt. ã Tiến hành cài đặt Cài đặt Visual Foxpro bằng đĩa CD, hay đĩa mềm. Trước khi cài đặt Visual Foxpro, phải tắt chế độ bảo vệ chống Virus. Các bước cài đặt như sau: - Đưa đĩa CD vào ổ CD. - Chọn lệnh Run. - Gõ lệnh X:\SETUP, trong đó X chỉ tên ổ đĩa Cd, sau đó nhấn phím Enter hoặc chọn Ok. - Chọn những cách cài đặt sau: - Cài tối thiểu (15MB): chỉ cài một số File thiết yếu của Visual Foxpro. - Cài đầy đủ : yêu cầu 192 MB đĩa trống. 2. Đánh giá kết qu thực hiện và phưng hướng phát triển. Sau một thời gian thực hiện, chương trình được hoàn thành và đã đạt được những kết qủa nhất định. Có thể cập nhật hồ sơ sinh viên, nhập điểm cho sinh viên sau mỗi kì thi, in bảng điểm cho mỗi sinh viên sau khi tốt nghiệp và có thể tìm kiếm thông tin về sinh viên....Tuy nhiên do thời gian hạn chế nên chưng trình không thể tránh được những sai sót trong quá trình thực hiện. Phương hướng trong tương lai tiếp tục phát triển để chương trình ngày càng phát triển hơn để có thể trở thành một phần mềm hoàn chỉnh 3. Cảm ơn Trong quá trình thực hiện với sự giúp đỡ rất tận tình của thầy Thư. Chương trình được hoàn thành một cách tốt đẹp, nhờ trong quá trình thực hiện thầy rất tận tình chỉ bảo, kể cả những lúc bận rộn nhất thầy cũng luôn sẵn sàng bớt chút thời gian giải đáp thắc mắc. Vì vậy giúp cho em thấy được những lỗi mà mình không phát hiện ra và nhờ đó mà em rút ra được nhiều kinh nghiệm quý báu. Em rất cảm ơn sự hướng dẫn tận tình của thầy. Một số Code của chưng trình: 1. Chưng trình chính: clear all clear set talk off set date french SET STATUS OFF SET COLOR TO b+/GB+ set cent on set noti off set safe off set exclusive off && De nhieu nguoi cung mo duoc du lieu(Chay tren mang) set dele on Public _Curpath, _Datapath, _Temppath,_AppTitle, _CurUser, _CurPass _Curpath = SYS(5)+CURD() _Temppath = "C:\TEMP\" _AppTitle = "Qun lý sinh viên Version 1.0" _Datapath = SYS(5)+CURD()+"DATA\" _CurUser = [] _CurPass = [] _CodeLogin= [] *DO GetDataPath && Bien doi gia tri dung cua _Datapath *If !File(_Datapath+ "QLSV.DBC") * =MessageBox("Chưa có file c sở dữ liệu...",0,_AppTitle) * Return .f. *Endif Do form Manhinh\Login Open database (_Datapath+ "QLSV") do HideWindow _screen.picture="bitmap\qlsv.bmp" _screen.picture="bitmap\Bandoc.jpg" _Screen.Icon = "bitmap\Qlsv.ico" _screen.Caption = "Chưng trình qun lý sinh viên -Lê Thanh tuấn- Tin 41B" _screen.Closable = .f. _screen.Maxbutton=.f. _screen.MinButton=.t. _Screen.Height=600 _screen.Width=800 do qlsvmenu.mpr keyboard "{ALT+D}" read event clear all clear *-------------------------------------------------------------* Procedure Getdatapath If !File("Bitmap\QLSV.INI") DO Form Manhinh\DataPath Endif mHandle = FOPEN("Bitmap\QLSV.INI") S=FGets(mHandle) _Datapath = Allt(Substr(s,AT("=",S)+1)) =Fclose(mHandle) Return *----------------------------------------------------------------------- Procedure HideWindow =HideWind("Color Palette") =HideWind("Database Designer") =HideWind("Form Controls") =HideWind("Form Designer") =HideWind("Layout") =HideWind("Print Preview") =HideWind("Query Designer") =HideWind("Report Constrols") =HideWind("Report Designer") =HideWind("Standard") =HideWind("View Designer") Return *----------------------------------------------------------* Procedure HideWind para p_WinddowName If wexist(p_WinddowName) Hide window (p_WinddowName) Endif Return *----------------------------------------------------------* Procedure ShowWind para p_WinddowName If wexist(p_WinddowName) Show window (p_WinddowName) Endif Return *----------------------------------------------------------* Function MoDBF para p_file, p_alias, p_Co_mo_Exclusive Private p_para p_para = PARA() If used(p_alias) If p_para=3 =DongDBF(p_alias) select 0 use (p_file) alias (p_alias) Exclusive Else Select (p_alias) Endif Else select 0 If p_para=3 use (p_file) alias (p_alias) Exclusive Else use (p_file) alias (p_alias) Endif Endif return *----------------------------------------------------------* Function DongDBF para p_alias If used(p_alias) use in (p_alias) Endif return *----------------------------------------------------------* Function GetLopSv Para p_maso, p_namhoc Private p_malop, p_FileLopsv, p_da_mo, p_Tag, p_curr, p_nam1, p_nam2 p_malop= "" p_nam1 = Val(Left(p_namhoc,4)) p_nam2 = Val(Right(p_namhoc,4)) p_curr = SELE() p_FileLopsv = _Datapath+"LOPSV" If Used('LOPSV') Select LOPSV p_Tag = Tag() Set order to i_LopSV p_da_mo = .T. ELse =MoDbf(p_FileLopsv,[LOPSV]) Set order to i_LopSV p_da_mo = .F. Endif *----- set near on seek p_maso set near off If Found() scan while maso=p_maso if year(tungay)<=p_nam1 if empty(denngay) p_malop = malop exit else if year(denngay)>=p_nam2 p_malop = malop exit endif endif endif ends Endif IF p_da_mo And !Empty(p_Tag) Set order to (p_Tag) Endif If !p_da_mo =Dongdbf('LOPSV') Endif Select (p_curr) Return p_malop * CHUONG TRINH CHUAN HOA DU LIEU TRONG FOXPRO set talk off set safe off clea defi wind w from 0,0 to 21,106 font '.VnTime' defi wind w1 from 0,0 to 18,106 font '.VnTime' acti wind w *** dgd=spac(30) @1,5 say 'Tên đường dẫn tới tệp dữ liệu cần sắp xếp ' font '.VnTime',12 styl 'BI' get dgd font 'system' read dng=allt(dgd) set defa to &dng clea @3,5 say ' Những tệp dữ liệu có ở trong thư mục hiện thời ' font '.vntime',12 colo w+/bg+ dir hh='C' @1,5 say ' Tệp dữ liệu cần chuẩn hoá có ở đây kh"ng ? (C/K) ' font '.vntime',12 styl 'BI' colo w+/br+ get hh pict '!@' read if hh'C' deac wind all set defa to &dng retu endi *** clea @1,10 say ' Các tệp c sở dữ liệu có ở thư mục hiện thời ' font '.VnTime',12 style 'BI' colo w+/bg+ dir wait ' Những tệp CH*.DBF là những tệp đã chuẩn hoá. Nhấn phím Enter để tiếp tục ... ' htc=space(8) @20,10 say ' Muốn chuẩn hoá dữ liệu của tệp : ' font '.VnTime',12 style 'IB' get htc colo w+/br+ read ttc=allt(htc) use &ttc ttt='ch'+ttc copy to &ttt @20,5 say 'Xem dữ liệu trước khi chuẩn hoá ... Nhấn phím Esc để tiếp tục ... '+space(41) ; font '.VnTime',11 style 'BI' colo w+/br+ acti wind w1 use &ttt brow deac wind w1 ***** do whil !eof() repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') repl hoten with strt(allt(hoten),' ',' ') skip endd *-- go top dt=fsize('hoten') dime c(dt) for j=1 to dt c(j)=' ' endf do whil !eof() dd=len(allt(hoten)) i=1 ct=' ' ****** do whil i<=dd ht=allt(hoten) if asc(ht)>=97.and.asc(ht)<=122 c(1)=chr(asc(subs(ht,1,1))-32) endi if ((asc(subs(hoten,i,1))>=65.and.asc(subs(hoten,i,1))=161; .and.asc(subs(hoten,i,1))32 c(i)=' '+chr(asc(subs(hoten,i,1))) else c(i)=subs(hoten,i,1) endi i=i+1 endd i=1 do whil i<=dd ct=ct+c(i) i=i+1 endd repl hoten with allt(ct) skip endd go top do whil !eof() dd=len(allt(hoten)) ht=allt(hoten) if asc(ht)>=97.and.asc(ht)<=122 c(1)=chr(asc(subs(ht,1,1))-32) else if asc(ht)=174 c(1)=chr(167) else c(1)=subs(ht,1,1) endi endi bt=' ' i=2 do whil i<=dd do case case asc(subs(ht,i,1))=32.and.asc(subs(ht,i+1,1))>=97.and.asc(subs(ht,i+1,1))<=122 c(i)=' ' c(i+1)=chr(asc(subs(ht,i+1,1))-32) i=i+1 case asc(subs(ht,i,1))=32.and.asc(subs(ht,i+1,1))>=167.and.asc(subs(ht,i+1,1))<=174 c(i)=' ' c(i+1)=chr(asc(subs(ht,i+1,1))-7) i=i+1 othe c(i)=subs(ht,i,1) endc i=i+1 endd i=1 do whil i<=dd bt=bt+c(i) i=i+1 endd repl hoten with allt(bt) skip endd *** @20,5 say 'Xem dữ liệu sau khi chuẩn hoá ... Nhấn phím Esc để tiếp tục ...' + space(41); font '.VnTime',11 style 'BI' colo w+/br+ go top acti wind w1 brow deac wind w1 deac wind w set defa to &dng *retu quit ** CHUONG TRINH SAP XEP TRUONG HOTEN TRONG FOXPRO set talk off set safe off clea defi wind w from 0,0 to 21,106 font '.VnTime',10 defi wind w1 from 0,0 to 18,106 font '.VnTime',10 colo w+/bg acti wind w dgd=spac(30) @1,5 say 'Tên đường dẫn tới tệp dữ liệu cần sắp xếp ' font '.VnTime',11 styl 'BI' get dgd font 'system' read dng=allt(dgd) set defa to &dng clea @1,5 say ' Những tệp dữ liệu có ở trong thư mục hiện thời ' font '.vntime',11 colo w+/bg+ dir hh='C' @18,5 say ' Tệp dữ liệu cần sắp xếp có ở đây kh"ng ? (C/K) ' font '.vntime',11 styl 'BI' colo w+/br+ get hh pict '!@' read if hh'C' deac wind all set defa to &dng retu endi tp=spac(20) @18,5 say ' Tên tệp dữ liệu cần sắp xếp ' font '.VnTime',11 styl 'BI' get tp font 'system' read tt=allt(tp) clea @20,5 say ' Xin mời xem dữ liệu trước khi sắp xếp. Nhấn Esc để tiếp tục ... ' ; font '.VnTime',11 styl 'BI' colo w+/rg+ acti wind w1 use &tt copy to t1 fiel exce htnguoc,mhtnguoc use t1 brow deacti wind w1 use &tt clea @18,10 say ' Nếu chưa có trường htnguoc,mhtnguoc thì thêm trường đó với htnguoc (C30), ; mhtnguoc (C60) ' colo w+/br+ @19,10 say ' b"ng cách nhấn phím mũi tên xuống rồi thêm vào. Nếu có rồi thì nhấn Enter ; để tiếp tục . . . '+spac(6) colo w+/br+ modi stru &&Thêm các trường htnguoc (C30) clea **Chưng trình đo ngược bắt đầu từ đây go top dime m(10) do whil !eof() * Chú ý: Trong các câu lệnh dưới đây, giữa hai dấu nháy đn là một ký tự trống for i=1 to 10 m(i)=' ' endf c=allt(hoten) sktt=occu(' ',c) xx=at(' ',c) yy=rat(' ',c) zz=at(' ',c,2) do case case sktt=1 m(1)=subs(c,1,xx) m(2)=subs(c,yy) case sktt=2 m(1)=subs(c,1,xx) m(2)=subs(c,xx,zz-xx) m(3)=subs(c,yy) othe m(1)=subs(c,1,xx) m(2)=subs(c,xx,zz-xx) m(sktt+1)=subs(c,yy) for i=3 to sktt m(i)=subs(c,at(' ',c,i-1),at(' ',c,i)-at(' ',c,i-1)) endf endc tht=' ' for i=sktt+1 to 1 step -1 tht=tht+' '+allt(m(i)) endf repl htnguoc with allt(tht) skip endd ** Chưng trình đo ngược kết thúc ở đây ch1='AaàãáạĂă"ẳẵắặÂâầẩẫấậBbCcDdĐđ' ch2='EeèẻẽéẹÊêềểễếệGgHhIiìỉĩíịKkLlMmNn' ch3='OoòỏõóọÔ"ồổỗốộỜởỡớợPpQqRrSs' ch4='TtUuùủũúụƯưừửữứựVvXxYyỳỷỹýỵ' Vs=allt(ch1)+allt(ch2)+allt(ch3)+allt(ch4) ASt=' ' for i=1 to 118 ASt=ASt+chr(i) endf AS=Allt(ASt) Repl all mhtnguoc with chrt(htnguoc,VS,AS) kq='Sx'+tt sort to &kq on mhtnguoc fiel exce htnguoc,mhtnguoc @10,2 say 'Chú ý: Trong thư mục hiện thời những tệp bắt đầu b"ng Sx là những tệp đã sắp xếp'; font '.VnTime',11 styl 'BI' @11,8 say 'ví dụ, tệp SxDsach.dbf là tệp sắp xếp của tệp Dsach.dbf' font '.VnTime',11 styl 'BI' @13,10 say ' Nhấn Enter để tiếp tục...' styl 'BI' colo w+/br+ wait ' ' clea @20,5 say ' Xin mời xem dữ liệu sau khi sắp xếp. Nhấn Esc để tiếp tục ... ' ; font '.VnTime',11 styl 'BI' colo w+/rb+ acti wind w1 use &kq brow deac wind all set defa to &dng close all *quit retu Code của nút ghi: Private m_makhoa, m_tenkhoa m_makhoa = Thisform.txtMakhoa.Value m_tenkhoa = Thisform.txtTenkhoa.Value If Empty(m_Makhoa) =messagebox("Mã khoa kh"ng được để trắng...",0,_AppTitle) Thisform.txtMakhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f. Endif If Empty(m_Tenkhoa) =messagebox("Tên khoa kh"ng được để trắng...",0,_AppTitle) Thisform.txtTenkhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f. Endif SELECT dskhoa Seek m_makhoa If Found() =messagebox("Đã có mã khoa nay...",0,_AppTitle) Thisform.txtMakhoa.SetFocus && _CurObj=ObjNum(Bien) Return .f. Endif Insert into Dskhoa(makhoa, tenkhoa) values(m_makhoa, m_tenkhoa) release thisform Code của mật khẩu Private p_makhoa, p_manv, p_password, p_Tenkhoa p_makhoa = DSKHOA.makhoa p_Tenkhoa = thisform.CboTenkhoa.value p_manv = thisform.txtmanv.value p_password=thisform.txtpassword.value sele user seek p_makhoa+p_manv if !found() =messagebox("Kh"ng có nhân viên "+p_manv+" trong khoa "+p_tenkhoa+"...",64,_Apptitle) thisform.txtmanv.setfocus return .f. else if upper(allt(password))upper(allt(p_password)) =messagebox("Sai mật khẩu...",64,_Apptitle) thisform.txtpassword.setfocus return .f. else _CurUser = p_manv *Role = ROLE _CurPass = p_password _CodeLogin = p_makhoa *NameLogin = Allt(thisform.txttendv.value) * Close Data * =DongDBF("USER") * =DongDBF("DSKHOA") Release thisform Endif Code nút tìm kiếm set safe off Masv=alltrim(upper(Thisform.text1.value)) Tensv=alltrim(upper(Thisform.text2.value)) Lop=alltrim(upper(Thisform.text3.value)) dk="" if len(masv)>0 dk=dk+"Alltrim(upper(masinhvien))='"+masv+"'" endif if len(tensv)>0 dk=dk+" and alltrim(upper(tensinhvien))='"+tensv+"'" endif if Len(lop)>0 dk=dk+" and alltrim(upper(lop))='"+lop+"'" endif if len(masv)=0 dk=substr(dk,5,len(dk)-4) endif defi wind hien at 1,1 size 35,150 color rgb(,,125,125,125) font ".vntime" 14 sele sinhvien Join with sinhvien for sinhvien.masv=lop.masv to Dssv sele 0 use dssv loca for &dk if found() acti wind Hien brow Field Hovaten,diachi,masv,lop,ngaysinh for &dk wind hien noedit rele wind Hien else Wait wind "Khong thay" endif use erase dssv.dbf Mục lục: CHƯƠNG I: Phương pháp luận phân tích thiết kế hệ thống thông tin quản lý sinh viên I.Khái quát về hệ thống qun lý sinh viên II.Các giai đoạn phân tích thiết kế hệ thống thông tin Chưng iI : Giới thiệu về VisualFoxPro CHƯƠNG III : Phân tích ,thiết kế và xây dựng hệ thống quản lý sinh viên I.Phân tích hệ thống quản lý sinh viên II.Thiết kế hệ thống quản lý sinh viên III.Thiết kế giao diện và xây dựng chưng trình Chương IV : Cài đặt đánh giá và hướng phát triển 1. Cài đặt 2. Đánh giá kết quả thực hiện 3. Phương hướng phát triển 4. Lời cảm ơn. Tài liệu tham khảo 1. Giáo trình hệ thống thông tin quản lý. TS Trương Văn Tú - TS Trần Thị Song Minh. 2. Sử dụng & khai thác Microsoft VISUAL FOXPRO. Nguyễn Ngọc Minh. 3. Những bài thực hành VISUAL FOXPRO. Vn-Gide. 4. Bài giảng của thầy. Phùng Tiến Hải.

Các file đính kèm theo tài liệu này:

  • docP0171.doc