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ể.
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:
- P0171.doc