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#

Moderators: tungcan5diop, QUANITGROBEST

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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) Downloaded 10565 times
[/color]
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ụ :

Code: Select all

Hà Nội là thủ đô của :/Mỹ/Úc/Canada/Việt Nam/3 (đếm từ 0)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.
Last edited by vo_minhdat2007 on Wed 21/01/2009 8:19 pm, edited 1 time in total.
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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 :
Image
- 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!
Image
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

Image

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

Image

- Tạo các control :
Image
- 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 :
Image
- OK, vậy là xong form quản lí! Qua form tiếp theo.
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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 :
Image
- Các thuộc tính của txtCauHoi :
Image
- 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 :
Image
- Sau đó tạo các control (các bạn tự tạo Label) :
Image
- 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 :).
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

III- Code

1. Form frmPortal :
- Đây có thể nói là form dễ code nhất :D . Chỉ có 2 sự kiện :

Code: Select all

Private Sub butQuanLi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butQuanLi.Click        frmQuanLi.ShowDialog(Me)   End Sub     Private Sub butTracNghiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTracNghiem.Click        frmTracNghiem.ShowDialog(Me)    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 :

Code: Select all

Imports System.IO
- Đây là Structure CauHoi và khai báo 1 biến :

Code: Select all

Public Structure CauHoi        Dim Q As String        Dim A1, A2, A3, A4 As String        Dim A As IntegerEnd Structure 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 :

Code: Select all

Public Sub HienCauHoi()        '=====Đọc nội dung====='        'Đọc nội dung file và chia nội dung thành nhiều câu hỏi        'Đọc nội dung : File.ReadAllText("Data.ini")        'Chia thành nhiều câu phân cách bằng vbNewLine (là vbCrLf) :         'Khai báo Dim Content As String() tương đương Dim Content() As String        Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)        ReDim QuanLi(Content.Length - 1)        'Quét từng dòng        '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 /        For i As Integer = 0 To Content.Length - 1            Dim Temp() As String = Split(Content(i), "/")            QuanLi(i).Q = Temp(0)            QuanLi(i).A1 = Temp(1) : QuanLi(i).A2 = Temp(2) : QuanLi(i).A3 = Temp(3) : QuanLi(i).A4 = Temp(4)            QuanLi(i).A = Val(Temp(5))        Next        '=====Hiển thị====='        'Đừ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 :        lstList.Items.Clear()        For i As Integer = 0 To QuanLi.Length - 1            lstList.Items.Add("Câu " & i + 1)        Next    End Sub
- Xong, trong sự kiện Form_Load, hãy gọi sub HienCauHoi :

Code: Select all

    Private Sub frmQuanLi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        HienCauHoi()    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 :

Code: Select all

    Private Sub lstList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstList.SelectedIndexChanged        If lstList.SelectedIndex <> -1 Then 'Nếu SelectIndex = -1 nghĩa là không chọn gì cả!            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                txtNoiDung.Text = .Q & vbNewLine & _                    "Đáp án 1 : " & .A1 & vbNewLine & _                    "Đáp án 2 : " & .A2 & vbNewLine & _                    "Đáp án 3 : " & .A3 & vbNewLine & _                    "Đáp án 4 : " & .A4                txtTraLoi.Text = "Đáp án đúng : " & .A + 1            End With        End If    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 :

Code: Select all

    Private Sub butThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butThem.Click        frmBienTap.Tag = "Add"        frmBienTap.ShowDialog(Me)        HienCauHoi()'Để lúc thay đổi thì chương trình sẽ hiện lại    End Sub     Private Sub butSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSua.Click        If lstList.SelectedIndex = -1 Then            MsgBox("Vui lòng chọn câu hỏi cần sửa!", MsgBoxStyle.Critical)            Exit Sub        End If        frmBienTap.Tag = lstList.SelectedIndex        frmBienTap.ShowDialog(Me)        HienCauHoi()    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á.

Code: Select all

Private Sub butXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butXoa.Click        '====Xác định dòng định xoá===='        'Kiểm tra người dùng đã chọn gì chưa        If lstList.SelectedIndex = -1 Then            MsgBox("Vui lòng chọn câu hỏi cần xoá!", MsgBoxStyle.Critical)            Exit Sub        End If        'Xác nhận        If MsgBox("Bạn có chắc muốn xoá?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub        'Dòng cần xoá chính là dòng đang chọn trong Listbox (tính từ 0)        Dim DongXoa As Integer = lstList.SelectedIndex        '=====Xoá====='        '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 ""        Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)        Content(DongXoa) = ""        '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        Dim St As String = Join(Content, vbNewLine)        St = Replace$(St, vbNewLine & vbNewLine, vbNewLine).Trim        'Lưu        File.WriteAllText("Data.ini", St)        'Xong :D Hiện nội dung lại        HienCauHoi()    End Sub
- OK, form này coi như ổn.
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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 :

Code: Select all

    Private Sub butTuChoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTuChoi.Click        Me.Close()    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.

Code: Select all

    Private Sub frmBienTap_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        If IsNumeric(Me.Tag) Then            With frmQuanLi.QuanLi(Me.Tag)                txtCauHoi.Text = .Q                txt1.Text = .A1                txt2.Text = .A2                txt3.Text = .A3                txt4.Text = .A4                cboDapAn.SelectedIndex = .A            End With        Else            cboDapAn.SelectedIndex = 0        End If        End Sub
- Rồi, giờ là sự kiện quan trọng nhất : nút Chấp nhận.

Code: Select all

    Private Sub butChapNhan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butChapNhan.Click        '====Kiểm tra===='        If txt1.Text = "" Or txt2.Text = "" Or txt3.Text = "" Or txt4.Text = "" Or txtCauHoi.Text = "" Then            MsgBox("Vui lòng nhập đầy đủ thông tin!", MsgBoxStyle.Critical)            Exit Sub        End If        If IsNumeric(Me.Tag) Then            '====Nếu đang sửa===='            With frmQuanLi.QuanLi(Me.Tag)                .Q = txtCauHoi.Text                .A1 = txt1.Text : .A2 = txt2.Text : .A3 = txt3.Text : .A4 = txt4.Text                'Ghi dữ liệu            End With            Dim Content(frmQuanLi.QuanLi.Length - 1) As String            For i As Integer = 0 To frmQuanLi.QuanLi.Length - 1                With frmQuanLi.QuanLi(i)                    Content(i) = .Q & "/" & .A1 & "/" & .A2 & "/" & .A3 & "/" & .A4 & "/" & .A                End With            Next            File.WriteAllText("Data.ini", Join(Content, vbNewLine))        Else            '====Nếu ghi thêm===='            Dim Content As String = File.ReadAllText("Data.ini")            Content += vbNewLine & txtCauHoi.Text & "/" & txt1.Text & "/" & _                txt2.Text & "/" & txt3.Text & "/" & txt4.Text & "/" & cboDapAn.SelectedIndex            File.WriteAllText("Data.ini", Content)        End If        '====Đóng form===='        Me.Close()    End Sub
- Xin chúc mừng. Bạn đã xong … ½ đoạn đường ;)) .
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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.

Code: Select all

Imports WindowsApplication1.frmQuanLi 'Đổi tên WindowsApplication1 thành tên project
- Khai báo biến cục bộ :

Code: Select all

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

Code: Select all

    Private Sub TaoCauHoi()        Randomize() 'Trộn        Dim Max As Integer = frmQuanLi.QuanLi.Length - 1        'Công thức tạo số ngẫu nhiên :        'Int((Số lớn nhất - Số nhỏ nhất + 1) * Rnd() + Số nhỏ nhất)        'Vì số nhỏ nhất = 0 nên thôi :D        Dim CauHoi As Integer = Int((Max + 1) * Rnd())        CauHienTai = frmQuanLi.QuanLi(CauHoi)        With CauHienTai            txtCauHoi.Text = .Q            rdb1.Text = .A1 : rdb2.Text = .A2 : rdb3.Text = .A3 : rdb4.Text = .A4        End With    End Sub
- Trong sự kiện Form_Load, đừng quên gọi sub này :P

Code: Select all

    Private Sub frmTracNghiem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        frmQuanLi.HienCauHoi() 'Gọi cái này để load câu hỏi                TaoCauHoi()    End Sub
- Xong, giờ “xử” nút Trả lời =)) .

Code: Select all

    Private Sub butTraLoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butTraLoi.Click        'Kiểm tra lần lượt        Dim Dung As Boolean = False        If rdb1.Checked And CauHienTai.A = 0 Then Dung = True        If rdb2.Checked And CauHienTai.A = 1 Then Dung = True        If rdb3.Checked And CauHienTai.A = 2 Then Dung = True        If rdb4.Checked And CauHienTai.A = 3 Then Dung = True        'Nếu đúng/sai        If Dung Then            MsgBox("Bạn đã trả lời đúng!", MsgBoxStyle.Information)        Else            MsgBox("Bạn đã trả lời sai, đáp án đúng : " & CauHienTai.A + 1, MsgBoxStyle.Information)        End If        'Dù đúng sai cũng tạo câu mới        TaoCauHoi()    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!
User avatar
caotri270119
Thành viên chính thức
Thành viên chính thức
Posts: 30
Joined: Thu 07/08/2008 1:51 pm
Location: D2 - Bình Thạnh - Tp.HCM
Contact:

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

Post by caotri270119 »

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
User avatar
Mr.vmt
Posts: 4
Joined: Tue 17/06/2008 3:11 pm
Contact:

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

Post by Mr.vmt »

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
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

caotri270119 wrote: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)!
User avatar
Mr.vmt
Posts: 4
Joined: Tue 17/06/2008 3:11 pm
Contact:

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

Post by Mr.vmt »

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
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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
User avatar
puskien
Posts: 8
Joined: Tue 03/03/2009 2:07 pm
Location: Tp.Hcm
Contact:

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

Post by puskien »

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 !!!
boy8x_sg
Posts: 5
Joined: Mon 11/05/2009 8:44 am

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

Post by boy8x_sg »

Ánh oi tạo cái
Form Portal ntn vay anh em chua biết cách làm
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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!
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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
zeusdatinh

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

Post by zeusdatinh »

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():

Code: Select all

Public Sub HienCauHoi()                [b]Dim Content As String() = Split(File.ReadAllText("Data.ini"), vbNewLine)        ReDim QuanLi(Content.Length - 1)                For i As Integer = 0 To Content.Length - 1            Dim Temp() As String = Split(Content(i), "/")            QuanLi(i).Q = Temp(0)            QuanLi(i).A1 = Temp(1) : QuanLi(i).A2 = Temp(2) : QuanLi(i).A3 = Temp(3) : QuanLi(i).A4 = Temp(4)            QuanLi(i).A = Val(Temp(5))[/b]        Next                .....                .....                    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!
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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!
zeusdatinh

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

Post by zeusdatinh »

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
User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

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

Post by vo_minhdat2007 »

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
duykhanh
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 326
Joined: Tue 11/08/2009 10:54 am
Location: Gò Vấp - TP.HCM
Been thanked: 1 time

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

Post by duykhanh »

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).
Post Reply

Return to “[.NET] Bài viết hướng dẫn”