Thông tin
  • Đánh dấu xác nhận câu hỏi đã được giải quyết để giúp diễn đàn nâng cao chất lượng [cách sử dụng]
  • Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết [nội qui]
  • Tìm kiếm trước khi đặt câu hỏi

Tạo chương trình trắc nghiệm đơn giản

Các bài viết hướng dẫn về Visual Basic .NET và C#

Các điều hành viên: QUANITGROBEST, tungcan5diop

Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 20/01/2009 9:01 pm

Tên bài viết: Tạo chương trình trắc nghiệm đơn giản dùng cơ sở dữ liệu tự tạo
Tác giả: Võ Minh Đạt
Cấp độ bài viết: Rất dễ
Tóm tắt: Đa số các bạn khi học lập trình chắc chắn sẽ được đưa ngay ví dụ đơn giản nhất : làm chương trình máy tính. Tiếp theo đó, đa số các bạn nghĩ đến một chương trình đơn giản mà ứng dụng tốt khác. Theo như mình thấy, nhiều bạn nghĩ đến chương trình trắc nghiệm. Tuy nhiên, nhiều người vướng ngay vào một vấn đề : cơ sở dữ liệu (CSDL) câu hỏi. Vậy nay mình xin giới thiệu với các bạn cách để làm một chương trình trắc nghiệm mà không cần kiến thức về cơ sở dữ liệu phức tạp như Access, SQL, … .
Note : Đây là lần đầu mình tự viết hướng dẫn, mong mọi người ủng hộ ;)


Bạn có thể download project mẫu tại đây :
WindowsApplication1.rar
(341.17 KiB) Đã tải về 9098 lần

I- Giới thiệu nguyên tắc lưu CSDL

- Như đã nói, các bạn chẳng cần biết tí gì về CSDL Access hay SQL cả. Nhưng đòi hỏi phải có kiến thức về tập tin (đọc/ghi). Việc này thì khỏi nói, nó là kiến thức căn bản mà! Hơn nữa, VB.NET cung cấp namespace IO tuyệt vời cho mọi việc xử lí file chứ cái đọc/ghi có là gì!
- Vậy lưu câu hỏi bằng cách nào? Câu trả lời là tuỳ bạn, nhưng ở đây, mình xin nói là phải có 6 phần : câu hỏi, 4 đáp án và đáp án đúng. Về cấu trúc, bạn phải giúp tập tin phân biệt được đâu là các câu, và đâu là các phần, thường phân cách bằng 1 dấu đặc biệt (; | \ /), và nếu bạn dùng dấu nào, thì bạn phải cấm người dùng đặt câu hỏi, đáp án có dấu đó. Đây là một ví dụ :
Mã: Chọn tất cả
  1. Hà Nội là thủ đô của :/Mỹ/Úc/Canada/Việt Nam/3 (đếm từ 0)
  2. Quốc gia có diện tích lớn nhất :/Mỹ/Nga/Trung Quốc/Mexico/1

- Ở đây, các bạn có thể thấy mình phân giữa các câu là dấu xuống hàng (vbNewLine), và dấu cách các phần là /. Như vậy, trong các phần, mình phải cấm user nhập dấu xuống hàng và /.
- Tạm thời ở chương trình, mình dùng file Data.ini ở thư mục gốc của chương trình.
Đánh giá chủ đề: Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.Evaluations: 0, 0.00 on the average.
Thanks vo_minhdat2007 for your sharing!
Sửa lần cuối bởi vo_minhdat2007 vào ngày Thứ 4 21/01/2009 8:19 pm với 1 lần sửa trong tổng số.
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 20/01/2009 9:14 pm

II- Xây dựng giao diện :

- OK, bắt tay vào xây dựng nhé! Tạo một solution mới, bạn chỉ cần .NET Framework 2.0 thôi, không cần 3.5 đâu!
1. Form Portal :
- VB.NET tạo sẵn cho chúng ta 1 form, đây sẽ là form tạm gọi là Portal, vì nó sẽ dẫn đến 2 nơi : Trình quản lí và trình trắc nghiệm. Ngoài ra nếu muốn làm thêm tiện ích thì bạn cũng có thể đặt liên kết ở đây như máy tính, bảng tuần hoàn, … . Đặt nó là frmPortal :
Hình ảnh
- Tạo 2 button lần lượt là butQuanLi và butTracNghiem, nội dung là Quản lí và Trắc nghiệm. Vậy là ta đã hoàn thành form Portal.
- Ghi chú : Bạn nên làm cho form này đẹp lên, vì nó là “cái cổng” của chương trình đấy!
Hình ảnh
2. Form Quản lí :
- Tạo thêm 1 form nữa bằng cách click phải vào project hiện tại, chọn Add -> Windows Form. Trong cửa sổ hiện ra, chọn Windows Form, đặt tên là frmQuanLi rồi nhấn OK

Hình ảnh

- Bạn đặt các thuộc tính sau :

Hình ảnh

- Tạo các control :
Hình ảnh
- 3 button và ListBox, bạn chỉ cần đặt tên là được. Riêng 2 textbox, bạn đặt các thuộc tính :
Hình ảnh
- OK, vậy là xong form quản lí! Qua form tiếp theo.
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 20/01/2009 9:18 pm

3. Form trắc nghiệm :
- Làm tương tự như phần 2, tạo form frmTracNghiem.
- Tạo các control sau :
Hình ảnh
- Các thuộc tính của txtCauHoi :
Hình ảnh
- OK, vậy là xong form này.
4. Form biên tập :
- Đây sẽ là form để tạo/sửa câu hỏi. Thêm 1 form với các thuộc tính :
Hình ảnh
- Sau đó tạo các control (các bạn tự tạo Label) :
Hình ảnh
- txtCauHoi bạn làm hệt như Textbox txtCauHoi ở form frmQuanLi (trừ Read-Only = False).
- Combobox cboDapAn bạn cho 4 Items là Đáp án X (X từ 1 -> 4), DropDownStyle = DropDownList.
Vậy là xong phần giao diện :).
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 4 21/01/2009 8:14 pm

III- Code

1. Form frmPortal :
- Đây có thể nói là form dễ code nhất :D . Chỉ có 2 sự kiện :
Mã: Chọn tất cả
  1. Private Sub butQuanLi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butQuanLi.Click
  2.         frmQuanLi.ShowDialog(Me)
  3.    End Sub
  4.  
  5.     Private Sub butTracNghiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTracNghiem.Click
  6.         frmTracNghiem.ShowDialog(Me)
  7.     End Sub

- Chỉ có vậy :P .
2. Form frmQuanLi :
- Đầu tiên ta phải đọc file Data.ini để hiện thư viện, và dùng biến toàn cục này để quản lí trong suốt quá trình xử lí form. Để tiện, mình khuyên nên tạo một Structure, việc này lẽ ra đặt ở form Portal là hợp nhất, nhưng làm ở đâu cũng được :D .
- Đầu tiên, Import Namespace IO vào :
Mã: Chọn tất cả
  1. Imports System.IO

- Đây là Structure CauHoi và khai báo 1 biến :
Mã: Chọn tất cả
  1. Public Structure CauHoi
  2.         Dim Q As String
  3.         Dim A1, A2, A3, A4 As String
  4.         Dim A As Integer
  5. End Structure
  6.  
  7. Public QuanLi As CauHoi


- Vì việc đọc và hiện câu hỏi có thể sẽ phải thực hiện nhiều lần, bạn nên tạo một Sub :

Mã: Chọn tất cả
  1. Public Sub HienCauHoi()
  2.         '=====Đọc nội dung====='
  3.         'Đọc nội dung file và chia nội dung thành nhiều câu hỏi
  4.         'Đọc nội dung : File.ReadAllText("Data.ini")
  5.         'Chia thành nhiều câu phân cách bằng vbNewLine (là vbCrLf) :
  6.         'Khai báo Dim Content As String() tương đương Dim Content() As String
  7.         Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)
  8.         ReDim QuanLi(Content.Length - 1)
  9.         'Quét từng dòng
  10.         'Phân tiếp thành 6 phần : Câu hỏi, 4 câu trả lời và đáp án bởi dấu /
  11.         For i As Integer = 0 To Content.Length - 1
  12.             Dim Temp() As String = Split(Content(i), "/")
  13.             QuanLi(i).Q = Temp(0)
  14.             QuanLi(i).A1 = Temp(1) : QuanLi(i).A2 = Temp(2) : QuanLi(i).A3 = Temp(3) : QuanLi(i).A4 = Temp(4)
  15.             QuanLi(i).A = Val(Temp(5))
  16.         Next
  17.         '=====Hiển thị====='
  18.         'Đừng hỏi vì sao mà mỗi lần gọi là cái listbox dài ra thêm, vì thiếu dòng này :
  19.         lstList.Items.Clear()
  20.         For i As Integer = 0 To QuanLi.Length - 1
  21.             lstList.Items.Add("Câu " & i + 1)
  22.         Next
  23.     End Sub


- Xong, trong sự kiện Form_Load, hãy gọi sub HienCauHoi :

Mã: Chọn tất cả
  1.    Private Sub frmQuanLi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         HienCauHoi()
  3.     End Sub


- Bây giờ mỗi lần click chuột lên Listbox, chương trình sẽ hiện nội dung câu hỏi và đáp án :

Mã: Chọn tất cả
  1.    Private Sub lstList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstList.SelectedIndexChanged
  2.         If lstList.SelectedIndex <> -1 Then 'Nếu SelectIndex = -1 nghĩa là không chọn gì cả!
  3.             With QuanLi(lstList.SelectedIndex) 'Cấu trúc With...End With cho bạn khỏi nói gì nữa mà . ngay thì sẽ hiểu là cái sau With
  4.                 txtNoiDung.Text = .Q & vbNewLine & _
  5.                     "Đáp án 1 : " & .A1 & vbNewLine & _
  6.                     "Đáp án 2 : " & .A2 & vbNewLine & _
  7.                     "Đáp án 3 : " & .A3 & vbNewLine & _
  8.                     "Đáp án 4 : " & .A4
  9.                 txtTraLoi.Text = "Đáp án đúng : " & .A + 1
  10.             End With
  11.         End If
  12.     End Sub


- Như đã nói ở trên, mình dùng chung frmBienTap cho cả việc thêm và sửa, vì vậy phải có cái gì đó để phân biệt 2 cái. Nếu bạn để ý thì control nào cũng có thuộc tính Tag cả! Đó có thể xem là 1 thuộc tính để bạn lưu gì thì tuỳ, giống như ghi chú. Ta sẽ sử dụng nó. Bạn làm 2 sự kiện click cho butThem và butSua như sau :

Mã: Chọn tất cả
  1.    Private Sub butThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butThem.Click
  2.         frmBienTap.Tag = "Add"
  3.         frmBienTap.ShowDialog(Me)
  4.         HienCauHoi()'Để lúc thay đổi thì chương trình sẽ hiện lại
  5.     End Sub
  6.  
  7.     Private Sub butSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSua.Click
  8.         If lstList.SelectedIndex = -1 Then
  9.             MsgBox("Vui lòng chọn câu hỏi cần sửa!", MsgBoxStyle.Critical)
  10.             Exit Sub
  11.         End If
  12.         frmBienTap.Tag = lstList.SelectedIndex
  13.         frmBienTap.ShowDialog(Me)
  14.         HienCauHoi()
  15.     End Sub


- Không còn phải lo cho 2 nút đó nữa, vì form biên tập sẽ “xử” nó :D . Giờ tới nút xoá.

Mã: Chọn tất cả
  1. Private Sub butXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butXoa.Click
  2.         '====Xác định dòng định xoá===='
  3.         'Kiểm tra người dùng đã chọn gì chưa
  4.         If lstList.SelectedIndex = -1 Then
  5.             MsgBox("Vui lòng chọn câu hỏi cần xoá!", MsgBoxStyle.Critical)
  6.             Exit Sub
  7.         End If
  8.         'Xác nhận
  9.         If MsgBox("Bạn có chắc muốn xoá?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub
  10.         'Dòng cần xoá chính là dòng đang chọn trong Listbox (tính từ 0)
  11.         Dim DongXoa As Integer = lstList.SelectedIndex
  12.         '=====Xoá====='
  13.         'Xoá bằng cách đưa từng câu vào mảng, sau đó đặt nội dung của câu cần xoá thành ""
  14.         Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)
  15.         Content(DongXoa) = ""
  16.         'Xong rồi, giờ nhập trở lại, tuy nhiên, sẽ có 1 câu có 2 dấu xuống hàng, xoá bớt 1 cái
  17.         Dim St As String = Join(Content, vbNewLine)
  18.         St = Replace$(St, vbNewLine & vbNewLine, vbNewLine).Trim
  19.         'Lưu
  20.         File.WriteAllText("Data.ini", St)
  21.         'Xong :D Hiện nội dung lại
  22.         HienCauHoi()
  23.     End Sub

- OK, form này coi như ổn.
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 4 21/01/2009 8:16 pm

3. Form frmBienTap :
- Trước tiên, quan trọng nhất là import Namespace IO như frmQuanLi.
- Form này có khi còn quan trọng hơn form quản lí ấy chứ ;)) . Tuy vậy chỉ có 3 sự kiện, mà sự kiện của button butTuChoi cực kì đơn giản luôn :D :

Mã: Chọn tất cả
  1.    Private Sub butTuChoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTuChoi.Click
  2.         Me.Close()
  3.     End Sub


- Được rồi, nếu là biên tập thì phải hiển thị các nội dung lúc đầu. Sự kiện Form_Load sẽ xử lí xem là thêm hay sửa. Bạn có để ý ở trên, mình đặt Tag trong trường hợp Sửa là lstList.SelectedIndex. Mục đích là chỉ số dòng đang sửa! Ngoài ra, nếu nhấn Thêm thì Tag là “Add”, nghĩa là chuỗi. Dùng hàm IsNumeric, nếu là số thì trả về True, ngược lại.

Mã: Chọn tất cả
  1.    Private Sub frmBienTap_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         If IsNumeric(Me.Tag) Then
  3.             With frmQuanLi.QuanLi(Me.Tag)
  4.                 txtCauHoi.Text = .Q
  5.                 txt1.Text = .A1
  6.                 txt2.Text = .A2
  7.                 txt3.Text = .A3
  8.                 txt4.Text = .A4
  9.                 cboDapAn.SelectedIndex = .A
  10.             End With
  11.         Else
  12.             cboDapAn.SelectedIndex = 0
  13.         End If    
  14.     End Sub


- Rồi, giờ là sự kiện quan trọng nhất : nút Chấp nhận.

Mã: Chọn tất cả
  1.    Private Sub butChapNhan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butChapNhan.Click
  2.         '====Kiểm tra===='
  3.         If txt1.Text = "" Or txt2.Text = "" Or txt3.Text = "" Or txt4.Text = "" Or txtCauHoi.Text = "" Then
  4.             MsgBox("Vui lòng nhập đầy đủ thông tin!", MsgBoxStyle.Critical)
  5.             Exit Sub
  6.         End If
  7.         If IsNumeric(Me.Tag) Then
  8.             '====Nếu đang sửa===='
  9.             With frmQuanLi.QuanLi(Me.Tag)
  10.                 .Q = txtCauHoi.Text
  11.                 .A1 = txt1.Text : .A2 = txt2.Text : .A3 = txt3.Text : .A4 = txt4.Text
  12.                 'Ghi dữ liệu
  13.             End With
  14.             Dim Content(frmQuanLi.QuanLi.Length - 1) As String
  15.             For i As Integer = 0 To frmQuanLi.QuanLi.Length - 1
  16.                 With frmQuanLi.QuanLi(i)
  17.                     Content(i) = .Q & "/" & .A1 & "/" & .A2 & "/" & .A3 & "/" & .A4 & "/" & .A
  18.                 End With
  19.             Next
  20.             File.WriteAllText("Data.ini", Join(Content, vbNewLine))
  21.         Else
  22.             '====Nếu ghi thêm===='
  23.             Dim Content As String = File.ReadAllText("Data.ini")
  24.             Content += vbNewLine & txtCauHoi.Text & "/" & txt1.Text & "/" & _
  25.                 txt2.Text & "/" & txt3.Text & "/" & txt4.Text & "/" & cboDapAn.SelectedIndex
  26.             File.WriteAllText("Data.ini", Content)
  27.         End If
  28.         '====Đóng form===='
  29.         Me.Close()
  30.     End Sub


- Xin chúc mừng. Bạn đã xong … ½ đoạn đường ;)) .
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 4 21/01/2009 8:17 pm

4. Form frmTracNghiem :
- Vâng, ½ đoạn đường còn lại nằm ở đây :( . Đầu tiên, bạn phải tạo một sub để lấy câu hỏi và hiển thị. Nhưng đầu tiên, import frmQuanLi để dùng Structure CauHoi cũng như xài “chùa” biến QuanLi.

Mã: Chọn tất cả
  1. Imports WindowsApplication1.frmQuanLi 'Đổi tên WindowsApplication1 thành tên project


- Khai báo biến cục bộ :

Mã: Chọn tất cả
  1. Dim CauHienTai As CauHoi


- Và đây là sub tạo câu hỏi :

Mã: Chọn tất cả
  1.    Private Sub TaoCauHoi()
  2.         Randomize() 'Trộn
  3.         Dim Max As Integer = frmQuanLi.QuanLi.Length - 1
  4.         'Công thức tạo số ngẫu nhiên :
  5.         'Int((Số lớn nhất - Số nhỏ nhất + 1) * Rnd() + Số nhỏ nhất)
  6.         'Vì số nhỏ nhất = 0 nên thôi :D
  7.         Dim CauHoi As Integer = Int((Max + 1) * Rnd())
  8.         CauHienTai = frmQuanLi.QuanLi(CauHoi)
  9.         With CauHienTai
  10.             txtCauHoi.Text = .Q
  11.             rdb1.Text = .A1 : rdb2.Text = .A2 : rdb3.Text = .A3 : rdb4.Text = .A4
  12.         End With
  13.     End Sub


- Trong sự kiện Form_Load, đừng quên gọi sub này :P

Mã: Chọn tất cả
  1.    Private Sub frmTracNghiem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         frmQuanLi.HienCauHoi() 'Gọi cái này để load câu hỏi        
  3.         TaoCauHoi()
  4.     End Sub


- Xong, giờ “xử” nút Trả lời =)) .

Mã: Chọn tất cả
  1.    Private Sub butTraLoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTraLoi.Click
  2.         'Kiểm tra lần lượt
  3.         Dim Dung As Boolean = False
  4.         If rdb1.Checked And CauHienTai.A = 0 Then Dung = True
  5.         If rdb2.Checked And CauHienTai.A = 1 Then Dung = True
  6.         If rdb3.Checked And CauHienTai.A = 2 Then Dung = True
  7.         If rdb4.Checked And CauHienTai.A = 3 Then Dung = True
  8.         'Nếu đúng/sai
  9.         If Dung Then
  10.             MsgBox("Bạn đã trả lời đúng!", MsgBoxStyle.Information)
  11.         Else
  12.             MsgBox("Bạn đã trả lời sai, đáp án đúng : " & CauHienTai.A + 1, MsgBoxStyle.Information)
  13.         End If
  14.         'Dù đúng sai cũng tạo câu mới
  15.         TaoCauHoi()
  16.     End Sub


- Vậy là xong chương trình cơ bản rồi đấy =D> . Lần sau mình sẽ chỉ tiếp một số phần nâng cao!
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi caotri270119 » Thứ 4 11/02/2009 6:01 pm

em đề nghị anh gửi code lên cho forum coj lun đi, chứ nhìn dzô là ngán rùj nà :P :P
Hình đại diện của thành viên
caotri270119
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 30
Ngày tham gia: Thứ 5 07/08/2008 1:51 pm
Đến từ: D2 - Bình Thạnh - Tp.HCM
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi Mr.vmt » Thứ 7 21/02/2009 12:36 am

có cái nào vb6 ko ?? :-/
em cần cái nào làm được trên vb6 thui :">
html html html html html html html html html html html html html html html html html
Hình đại diện của thành viên
Mr.vmt
 
Bài viết: 4
Ngày tham gia: Thứ 3 17/06/2008 3:11 pm
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 7 21/02/2009 4:21 pm

caotri270119 đã viết:em đề nghị anh gửi code lên cho forum coj lun đi, chứ nhìn dzô là ngán rùj nà :P :P

Topic đầu mình có project mẫu rồi mà!

@Mrvmt : Với VB6 không khác gì cả mà? Chỉ có điều Save/Load File hơi cực thôi (tạo 2 hàm này rồi xài)!
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi Mr.vmt » Thứ 7 21/02/2009 9:44 pm

CSDL mình sài XML Được ko nhỉ :D
html html html html html html html html html html html html html html html html html
Hình đại diện của thành viên
Mr.vmt
 
Bài viết: 4
Ngày tham gia: Thứ 3 17/06/2008 3:11 pm
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Chủ nhật 22/02/2009 4:44 pm

Nếu bạn có khả năng thì hoàn toàn được. Mình nghĩ XML chỉ ngán phần xử lí thôi, chứ tạo xong mấy cái sub xử lí thì ngon lành :D
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi puskien » Thứ 4 11/03/2009 10:51 pm

Hay quá bạn ơi, mình toàn tập viết phần mềm quản lý không àh !!! Có cái này của bạn mình biết thêm được nhiều thứ !!! Viết đến đâu giải thích rõ ràng đến đó !!! Hi !!! Cám ơn nhé !!! Cố gắng phát huy !!! HaveFun :X !
Friendship is eternal, Love is just a fukin' Game ... [E]mpty !!!
Hình đại diện của thành viên
puskien
 
Bài viết: 8
Ngày tham gia: Thứ 3 03/03/2009 2:07 pm
Đến từ: Tp.Hcm
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi boy8x_sg » Thứ 3 12/05/2009 5:01 pm

Ánh oi tạo cái
Form Portal ntn vay anh em chua biết cách làm
boy8x_sg
 
Bài viết: 5
Ngày tham gia: Thứ 2 11/05/2009 8:44 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 12/05/2009 5:21 pm

Thì cái form nó cho sẵn ấy bạn! Đặt tên nó là frmPortal. Rồi set mấy thuộc tính như mình ghi!
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 2 18/05/2009 11:53 am

Lần sau bạn phải dùng tiếng Việt có dấu, nếu không bài bạn sẽ bị xoá!
Bạn tham khảo bài này để làm việc với XML : viewtopic.php?f=23&t=1675
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi zeusdatinh » Thứ 3 19/05/2009 11:57 am

Bác vo_minhdat2007 giúp em với!Em đang tìm hiểu bài "Tạo chương trình trắc nghiệm đơn giản",ở phần tạo hàm HienCauHoi():
Mã: Chọn tất cả
  1. Public Sub HienCauHoi()
  2.                 Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)
  3.         ReDim QuanLi(Content.Length - 1)
  4.                 For i As Integer = 0 To Content.Length - 1
  5.             Dim Temp() As String = Split(Content(i), "/")
  6.             QuanLi(i).Q = Temp(0)
  7.             QuanLi(i).A1 = Temp(1) : QuanLi(i).A2 = Temp(2) : QuanLi(i).A3 = Temp(3) : QuanLi(i).A4 = Temp(4)
  8.             QuanLi(i).A = Val(Temp(5))        Next
  9.                 .....
  10.                 .....
  11.                
  12.      End Sub

Bác có thể giải thích rõ hơn một chút được không?Mặc dù bác giải thích rồi nhưng đọc mà em vẫn tơ lơ mơ!
Hoặc bác có thể bảo em biết cách để hiểu một cách lôgic bài này.Em đã chạy thử file .exe trong thư mục bin rồi nhưng khi đọc code vẫn không hiểu lắm.
Ví dụ trong Hàm trên thì đoạn code để add từng câu vào Listbox thì Ok,nhưng phần trên thì em không rõ lắm,hình như đoạn code trên sử dụng kiến thức về mảng là nhiều phải không ah?
File Data.ini thì mình tự tạo ra và cóp vào thư mục debug\bin hay là làm thế nào ah?
Em mới tìm hiểu nên code còn rất bờm!Mong bác có vài lời chỉ bảo!Thank bác nhiều!
zeusdatinh
 

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 19/05/2009 12:05 pm

Cái hiện câu hỏi mình có giải thích 4 hàng ở trên. Mình xin nói rõ hàm Split như sau :
Split sẽ chia chuỗi thành mảng 1 chiều được phân cách bởi kí hiệu chỉ định.
Ví dụ mình có chuỗi St = "Võ Minh Đạt" thì nếu mình dùng hàm Split(St, " ") thì mình sẽ được mảng 1 chiều kiểu String có dữ liệu : {"Võ", "Minh", "Đạt"}.
Còn ReadAllText là để đọc từ tất cả dữ liệu từ file data.ini thôi!
Sở dĩ dùng Split với vbNewLine vì mỗi câu hỏi cách nhau 1 hàng, nên theo code trên sau khi thực hiện ta được mảng Content chứa các câu hỏi!
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi zeusdatinh » Thứ 3 19/05/2009 3:13 pm

Nhưng file "Data.ini" mình tạo ra như nào bác nói rõ hơn chút được không ạ?Thank bác nhiều
zeusdatinh
 

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi vo_minhdat2007 » Thứ 3 19/05/2009 3:18 pm

Mình có ghi ở bài đầu tiên mà?
Hà Nội là thủ đô của :/Mỹ/Úc/Canada/Việt Nam/3
Quốc gia có diện tích lớn nhất :/Mỹ/Nga/Trung Quốc/Mexico/1
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
 
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Đã cảm ơn: 13 lần
Được cảm ơn: 85 lần

Re: Tạo chương trình trắc nghiệm đơn giản

Gửi bàigửi bởi duykhanh » Thứ 5 10/09/2009 7:19 pm

Cho em hỏi làm thế nào để đổ dữ liệu từ 1 file text vào 1 listbox là lstData và làm thế nào để khi em có 1 file text chứa thông tin nhân viên bao gồm Họ và Tên các nhau bởi 1 dấu "/" . Cho em hỏi làm sao để khi nhập Tên cần tìm vào textbox txtTen và nhấn button btnTim thì sẽ hiện ra Họ tương ứng của nhân viên ấy trong file text (ví dụ file text tên là nhanvien.txt).
Học sinh lớp 7/4 trường THCS Phan Tây Hồ, Gò Vấp - TP.HCM
duykhanh
Thành viên tâm huyết
Thành viên tâm huyết
 
Bài viết: 326
Ngày tham gia: Thứ 3 11/08/2009 10:54 am
Đến từ: Gò Vấp - TP.HCM
Đã cảm ơn: 0 lần
Được cảm ơn: 1 lần

Trang kế tiếp

Quay về [.NET] Bài viết hướng dẫn

Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến1 khách