Hiển thị kết quả từ 1 đến 5 / 5
  1. #1
    Tham gia
    10-03-2009
    Bài viết
    35
    Like
    0
    Thanked 0 Times in 0 Posts

    Random các câu hỏi (chương trinh trắc nghiệm)???

    Chào các bạn.
    Mình đang làm chương trình trắc nghiệm và gặp một số khó khăn, các bạn có thể giúp mình giải quyết giùm mình vấn đề sau:
    Mình có 1 file câu hỏi .txt có dạng:
    Nội dung Câu Hỏi,
    đáp án A
    đáp án B,
    đáp án C,
    đáp án D,
    đáp án Đúng,
    cho lưu vào một mảng. Bây giờ làm sao để hiển thị các câu hỏi và các đáp án một cách ngẩu nhiên trong mảng đó ra ngoài giao diện.
    Bạn nào biết giúp mình nha.
    Thanks so much.
    Quote Quote

  2. #2
    Tham gia
    24-11-2007
    Bài viết
    7
    Like
    0
    Thanked 1 Time in 1 Post

    Thông tin

    Nếu bạn viết bằng C#.NET thì đơn giản thế này thôi
    public void RanDom(int n, ArrayList ar1)
    {
    Random ran = new Random();
    int x = 0;
    int solanlap = ar1.Count - n;

    for (int i = 0; i < solanlap; i++)
    {
    x = ran.Next(0, ar1.Count);
    ar1.RemoveAt(x);
    }
    }
    //n là số phần tử lấy random từ mảng ar1
    Đây là một cách lấy Ramdom. Bạn nào có cách nào hay hơn có thể post lên mọi người tham khảo

  3. #3
    Tham gia
    13-10-2008
    Location
    www.vnfox.com
    Bài viết
    462
    Like
    0
    Thanked 10 Times in 10 Posts
    Theo mình nghĩ là bạn nên sử dụng shuffle ... xào ... giống như sào bài vậy

    ví dụ arr = {1,2,3,4}

    khi shuffle xong nó có thể là
    {2,4,3,1}

    rồi tùy theo lần bạn shuffle ...

    nếu bạn vào google gõ "array shuffle" tôi chắc sẽ có nhiều open source cho bạn ... chúc bạn thành công!

  4. #4
    Tham gia
    10-03-2009
    Bài viết
    35
    Like
    0
    Thanked 0 Times in 0 Posts
    Thanks
    Dùng shuffle array để lặp? Bạn có thể giúp mình giải quyết vấn đề đó khi dùng shuffle array, mình chưa hiểu lắm.
    Thanks again.

  5. #5
    Tham gia
    13-10-2008
    Location
    www.vnfox.com
    Bài viết
    462
    Like
    0
    Thanked 10 Times in 10 Posts
    Okay ... mình tìm được cái function này cho bạn

    Code:
    private List<string> MixList(List<string> inputList)
    {
         List<string> randomList = new List<string>();
         if (inputList.Count == 0)
              return randomList;
    
         Random r = new Random();
         int randomIndex = 0;
         while (inputList.Count > 0)
         {
              randomIndex = r.Next(0, inputList.Count); //Choose a random object in the list
              randomList.Add(inputList[randomIndex]); //add it to the new, random list<
              inputList.RemoveAt(randomIndex); //remove to avoid duplicates
         }
    
         //clean up
         inputList.Clear();
         inputList = null;
         r = null;
    
         return randomList; //return the new random list
    }
    Ví dụ bạn có: z1, z2,z3, z4 la` cÂu trả lời

    List<String> lstAnswers = new List<String>

    lstAnswers.add('z1');
    lstAnswers.add('z2');
    lstAnswers.add('z3');
    lstAnswers.add('z4');

    List<String> lstMix = this.MixList(lstAnswers);

    gio*` ne^'u ba.n print out thi` ca'i lít cu?a ba.n nó bị mix lại ... shuffle hoặc bị xào !!

    Chúc bạn thành công!

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •