نمایش نتایج 1 تا 11 از 11

نام تاپیک: ساخت آزمون گیر در ویندوز فرم

  1. #1

    Post ساخت آزمون گیر در ویندوز فرم

    سلام

    مراحل ساخت سیستم آزمون گیر تحت ویندوز رو میشه بفرمایید .
    مثلا در یک صفحه چطور 10 سوال نمایش داده بشه هر سوال 4گزینه و بعد از زدن تمام 10 سوال یک صفحه خودش صفحه بعد رو نمایش بده تا حدود مثلا 100 سوال .
    سپاس

  2. #2
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    سلام ببینید این مثال کمکتان میکنه

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;


    namespace ExamSystem
    {
    public partial class MainForm : Form
    {
    private List<Question> questions;
    private int currentQuestionIndex;


    public MainForm()
    {
    InitializeComponent();


    questions = new List<Question>
    {
    new Question("سوال 1", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    new Question("سوال 2", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    // و سایر سوالات
    };


    currentQuestionIndex = 0;
    ShowQuestion();
    }


    private void ShowQuestion()
    {
    if (currentQuestionIndex < questions.Count)
    {
    Question currentQuestion = questions[currentQuestionIndex];
    lblQuestion.Text = currentQuestion.Text;
    rbOption1.Text = currentQuestion.Options[0];
    rbOption2.Text = currentQuestion.Options[1];
    rbOption3.Text = currentQuestion.Options[2];
    rbOption4.Text = currentQuestion.Options[3];
    }
    else
    {
    // نمایش صفحه بعدی
    MessageBox.Show("شما به صفحه بعدی رفتید!");
    }
    }


    private void btnNext_Click(object sender, EventArgs e)
    {
    // ذخیره پاسخ کاربر


    currentQuestionIndex++;
    ShowQuestion();
    }
    }


    public class Question
    {
    public string Text { get; set; }
    public List<string> Options { get; set; }


    public Question(string text, List<string> options)
    {
    Text = text;
    Options = options;
    }
    }
    }

  3. #3

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    ممنون .برای ساخت صفحه نمایش سوالات از لیست استفاده می کنید ؟ برای اتصال به دیتابیس چکارمیکنید ؟
    آخرین ویرایش به وسیله korosh00 : جمعه 29 دی 1402 در 08:20 صبح

  4. #4
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    در btnNext میتونید دستورات ذخیره در دیتابیس را اعمال کنید . اطلاعات کافی در مورد دیتابیس خودتان ندادید . با این حال این نمونه با اسکیوال اکسپرس هست امیدوارم مفید واقع بشه



    using System;using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Windows.Forms;


    namespace ExamSystem
    {
    public partial class MainForm : Form
    {
    private List<Question> questions;
    private int currentQuestionIndex;
    private SqlConnection connection;

    public MainForm()
    {
    InitializeComponent();

    // ایجاد اتصال به بانک اطلاعاتی
    string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=YourDatabaseName;Integrated Security=True";
    connection = new SqlConnection(connectionString);

    questions = new List<Question>
    {
    new Question("سوال 1", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    new Question("سوال 2", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    // و سایر سوالات
    };

    currentQuestionIndex = 0;
    ShowQuestion();
    }

    private void ShowQuestion()
    {
    if (currentQuestionIndex < questions.Count)
    {
    Question currentQuestion = questions[currentQuestionIndex];
    lblQuestion.Text = currentQuestion.Text;
    rbOption1.Text = currentQuestion.Options[0];
    rbOption2.Text = currentQuestion.Options[1];
    rbOption3.Text = currentQuestion.Options[2];
    rbOption4.Text = currentQuestion.Options[3];
    }
    else
    {
    // نمایش صفحه بعدی
    MessageBox.Show("شما به صفحه بعدی رفتید!");
    }
    }

    private void btnNext_Click(object sender, EventArgs e)
    {
    // ذخیره پاسخ کاربر
    SaveUserAnswer();

    currentQuestionIndex++;
    ShowQuestion();
    }

    private void SaveUserAnswer()
    {
    // بررسی کدام گزینه انتخاب شده است و ذخیره در بانک اطلاعاتی
    string selectedOption = "";
    if (rbOption1.Checked)
    selectedOption = rbOption1.Text;
    else if (rbOption2.Checked)
    selectedOption = rbOption2.Text;
    else if (rbOption3.Checked)
    selectedOption = rbOption3.Text;
    else if (rbOption4.Checked)
    selectedOption = rbOption4.Text;

    // اجرای دستور INSERT به منظور ذخیره پاسخ کاربر در بانک اطلاعاتی
    string query = "INSERT INTO UserAnswers (Question, Answer) VALUES (@Question, @Answer)";
    SqlCommand command = new SqlCommand(query, connection);
    command.Parameters.AddWithValue("@Question", lblQuestion.Text);
    command.Parameters.AddWithValue("@Answer", selectedOption);

    try
    {
    connection.Open();
    command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    MessageBox.Show("خطا در ذخیره پاسخ کاربر: " + ex.Message);
    }
    finally
    {
    connection.Close();
    }
    }
    }

    public class Question
    {
    public string Text { get; set; }
    public List<string> Options { get; set; }

    public Question(string text, List<string> options)
    {
    Text = text;
    Options = options;
    }
    }
    }




    هر بار که کاربر پاسخی را انتخاب می کنه، پاسخ ذخیره می شه. دستور INSERT برای ذخیره پاسخ کاربر در بانک اطلاعاتی اجرا می شه. نیاز به ایجاد جدول UserAnswers در بانک اطلاعاتی و تنظیمات اتصال به بانک اطلاعاتی خودتان هست که به کد اضافه کنید

  5. #5

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    ممنون از توجه شما به سوال .
    الان اگه بخواهیم در هر صفحه مثلا ۴سوال نمایش داده بشه چکاری میکنید ؟

  6. #6
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    برای نمایش 4 سوال در هر صفحه، می‌تونید از متغیرهای startIndex و endIndex استفاده کنید. مقدار اولیه startIndex را برابر با صفر قرار بدید و مقدار endIndex را برابر با 3 (تعداد سوالات در هر صفحه) قرار بدید. سپس در هر بار فراخوانی متد ShowQuestion()، سوالات از startIndex تا endIndex نمایش داده می‌شن و مقادیر startIndex و endIndex با 4 افزایش می‌یابند. اگر endIndex بزرگتر از تعداد کل سوالات باشه، به جای نمایش صفحه بعدی، پیامی نمایش داده می‌شه که به کاربر اطلاع می‌ده که به انتهای سوالات رسیده .

    متغیرهای startIndex و endIndex تعیین می‌کنن که کدام سوالات در هر صفحه نمایش داده بشن. همچنین در هر بار کلیک بر روی دکمه "بعدی"، startIndex با 4 افزایش می‌یابد و endIndex برابر startIndex + 3 قرار می‌گیره. این مقادیر با استفاده از Math.Min() با تعداد کل سوالات و اندازه صفحه مقایسه می‌شن تا از ایجاد خطای خارج از محدوده جلوگیری بشه.


    اینهم کد اصلاح شدش:




    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Windows.Forms;


    namespace ExamSystem
    {
    public partial class MainForm : Form
    {
    private List<Question> questions;
    private int startIndex;
    private int endIndex;
    private SqlConnection connection;


    public MainForm()
    {
    InitializeComponent();


    // ایجاد اتصال به بانک اطلاعاتی
    string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=YourDatabaseName;Integrated Security=True";
    connection = new SqlConnection(connectionString);


    questions = new List<Question>
    {
    new Question("سوال 1", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    new Question("سوال 2", new List<string> { "گزینه الف", "گزینه ب", "گزینه ج", "گزینه د" }),
    // و سایر سوالات
    };


    startIndex = 0;
    endIndex = Math.Min(3, questions.Count - 1);
    ShowQuestions();
    }


    private void ShowQuestions()
    {
    for (int i = startIndex; i <= endIndex; i++)
    {
    Question currentQuestion = questions[i];
    // نمایش سوالات در تکست باکس یا لیبلهای مورد نظر
    // ...
    }


    if (endIndex == questions.Count - 1)
    {
    // نمایش پیام به کاربر که به انتهای سوالات رسیده است
    MessageBox.Show("شما به انتهای سوالات رسیده‌اید!");
    }
    }


    private void btnNext_Click(object sender, EventArgs e)
    {
    // ذخیره پاسخ کاربر
    SaveUserAnswers();


    startIndex += 4;
    endIndex = Math.Min(startIndex + 3, questions.Count - 1);
    ShowQuestions();
    }


    private void SaveUserAnswers()
    {
    // ذخیره پاسخ‌های کاربر در بانک اطلاعاتی
    // ...
    }
    }


    public class Question
    {
    public string Text { get; set; }
    public List<string> Options { get; set; }


    public Question(string text, List<string> options)
    {
    Text = text;
    Options = options;
    }
    }
    }

  7. #7

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    ممنون از زحمات شما

  8. #8

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    سلام
    من نتونستم انجام بدم . فقط میتونم اطلاعات رو مانند سوال و جواب از دیتابیس بیارم نشون بدم اونم تکی تکی . امکان داره یک نمونه کد کامل بگذارید . این کد اجرا نمیشه !

  9. #9
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: ساخت آزمون گیر در ویندوز فرم









    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;


    public class Program : Form
    {
    // لیستی از سوالات
    private List<string> questions = new List<string>()
    {
    "سوال ۱",
    "سوال ۲",
    "سوال ۳",
    "سوال ۴"
    };


    // لیستی از گزینه‌های هر سوال
    private List<List<string>> options = new List<List<string>>()
    {
    new List<string>() { "گزینه ۱.۱", "گزینه ۱.۲", "گزینه ۱.۳", "گزینه ۱.۴" },
    new List<string>() { "گزینه ۲.۱", "گزینه ۲.۲", "گزینه ۲.۳", "گزینه ۲.۴" },
    new List<string>() { "گزینه ۳.۱", "گزینه ۳.۲", "گزینه ۳.۳", "گزینه ۳.۴" },
    new List<string>() { "گزینه ۴.۱", "گزینه ۴.۲", "گزینه ۴.۳", "گزینه ۴.۴" }
    };


    // شاخص سوال فعلی
    private int currentQuestionIndex = 0;


    // لیستی از لیبل‌ها
    private List<Label> labels = new List<Label>();

    // لیستی از گروه‌های رادیو باتن‌ها
    private List<List<RadioButton>> radioButtons = new List<List<RadioButton>>();


    public Program()
    {
    // اضافه کردن رویداد Load به فرم
    this.Load += Program_Load;
    }


    private void Program_Load(object sender, EventArgs e)
    {
    // برای هر سوال، یک لیبل و چهار رادیو باتن ایجاد می‌کنیم و آنها را به فرم اضافه می‌کنیم
    for (int i = 0; i < 4; i++)
    {
    Label label = new Label();
    label.Text = questions[i];
    label.Location = new Point(10, 10 + i * 50);
    labels.Add(label);
    this.Controls.Add(label);


    List<RadioButton> radioButtonGroup = new List<RadioButton>();


    for (int j = 0; j < 4; j++)
    {
    RadioButton radioButton = new RadioButton();
    radioButton.Text = options[i][j];
    radioButton.Location = new Point(10, 30 + i * 50 + j * 20);
    radioButtonGroup.Add(radioButton);
    this.Controls.Add(radioButton);
    }


    radioButtons.Add(radioButtonGroup);
    }


    // ایجاد و اضافه کردن دکمه Next
    Button nextButton = new Button();
    nextButton.Text = "بعدی";
    nextButton.Location = new Point(10, 230);

    // اضافه کردن رویداد Click به دکمه Next
    nextButton.Click += NextButton_Click;
    this.Controls.Add(nextButton);
    }


    private void NextButton_Click(object sender, EventArgs e)
    {
    // در صورتی که هنوز به آخرین سوال نرسیده‌ایم، سوال بعدی را نمایش می‌دهیم
    if (currentQuestionIndex < 3)
    {
    currentQuestionIndex++;


    for (int i = 0; i < 4; i++)
    {
    // تغییر متن لیبل‌ها و گزینه‌ها بر اساس سوال بعدی
    labels[i].Text = questions[currentQuestionIndex];

    for (int j = 0; j < 4; j++)
    {
    // تغییر متن رادیو باتن‌ها بر اساس گزینه‌های سوال بعدی و عدم انتخاب آنها
    radioButtons[i][j].Text = options[currentQuestionIndex][j];
    radioButtons[i][j].Checked = false;
    }
    }
    }
    else
    {
    MessageBox.Show("شما به آخرین سوال رسیده‌اید.");
    }
    }


    public static void Main()
    {
    Application.Run(new Program());
    }
    }


    از این کد ایده بگیرید امیدوارم مفید واقع بشه

  10. #10

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    لود سوالات از دیتابیس به چه نحو است ؟ هر صفحه ۴یا ۵ سوال لود بشه . با زدن کلیک ۴ سوال بعدی لود بشه و همینطور تا آخر

  11. #11
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,237

    نقل قول: ساخت آزمون گیر در ویندوز فرم

    سلام
    سالها پیش یکی از دوستان در این لینک بطور مفصل آموزش دادن

تاپیک های مشابه

  1. اختصاص آدرس IP از طریق DHCP به کلاینت های حاوی ویندوز 7 و ویندوز 10 بوسیله Vendor Class
    نوشته شده توسط Softprog در بخش تالار های مرتبط با شبکه و امنیت
    پاسخ: 3
    آخرین پست: یک شنبه 20 مرداد 1398, 09:30 صبح
  2. حرفه ای: آموزش حل مشکل نصب ویندوز سرور 2012 و ویندوز 8 بر روی PC ،VirtualBoxو VMware Workstation
    نوشته شده توسط twinkle در بخش تالار های مرتبط با شبکه و امنیت
    پاسخ: 2
    آخرین پست: شنبه 12 تیر 1395, 18:16 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •