C# мисоллар


листинг. Талаба билимини тест қилиш дастури



Download 0,91 Mb.
bet33/52
Sana24.02.2022
Hajmi0,91 Mb.
#215341
1   ...   29   30   31   32   33   34   35   36   ...   52
Bog'liq
C# windows app form

4.5 листинг. Талаба билимини тест қилиш дастури

// Дастур талабани бирор фандан тест назоратидан утказади
using System;
using System.Windows.Forms;

namespace Тестирование


{
public partial class Form1 : Form
{
// Ташки узгарувчилар:
int SavolSoni; // Саволлар
int TJavob; // Тугри жавоблар сони
int NJavob; // Нотугри жавоблар сони
// нотугри жавоб берилган саволлар массиви:
String[] NotJavob; // Ушбу массив улчови кейинрок келтирилади
int TJRaqam; // Тугри жавоб тартиб раками
int TanJavob; // Талаба танлаган жавоб варианти
System.IO.StreamReader Reader;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "Кейинги савол";
button2.Text = "Чикиш";
// RadioButton учун ходисани кушиб куйиш:
radioButton1.CheckedChanged += new EventHandler(SostPerek);
radioButton2.CheckedChanged += new EventHandler(SostPerek);
radioButton3.CheckedChanged += new EventHandler(SostPerek);
GoTest();
}

void GoTest()


{
var Kodirovka = System.Text.Encoding.GetEncoding(1251);
try
{
// Файлдан маълумотларни укиб олиш учун StreamReader объекти
Reader = new System.IO.StreamReader(
System.IO.Directory.GetCurrentDirectory() +
@"\test.txt", Kodirovka);
this.Text = Reader.ReadLine(); // Фан номи
// Барча счётчикларни нолга айлантириш:
SavolSoni = 0;
TJavob = 0;
NJavob = 0;
// NotJavob учун массив улчовини белгилаш:
NotJavob = new String[100];
}
catch (Exception Xatolik)
{ // Бошка турдаги хатолик:
MessageBox.Show(Xatolik.Message, "Хатолик",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
NSavol();
}
void NSavol()
{
label1.Text = Reader.ReadLine();
// Жавоб вариантларини аниклаш:
radioButton1.Text = Reader.ReadLine();
radioButton2.Text = Reader.ReadLine();
radioButton3.Text = Reader.ReadLine();
// Тугри жавобни аниклаш:
TJRaqam = int.Parse(Reader.ReadLine());
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
// Жавоб вариантлари
button1.Enabled = false;
SavolSoni = SavolSoni + 1;
// Файл тугагунча:
if (Reader.EndOfStream == true) button1.Text = "Якунлаш";
}

void SostPerek(Object sender, EventArgs e)


{
// "Кейинга савол" тугмасини активлаштириш
button1.Enabled = true;
button1.Focus();
RadioButton Perek = (RadioButton)sender;
var tmp = Perek.Name;
// Талаба танлаган савол тартиб раками:
TanJavob = int.Parse(tmp.Substring(11));
}
private void button1_Click(object sender, EventArgs e)
{
// Тугма босилганда
// "Кейинги савол/Якунлаш/Кайтадан тестни бошлаш"
// Тугри жавоблар сони:
if (TanJavob == TJRaqam) TJavob++;
if (TanJavob != TJRaqam)
{
// Нотугри жавоблар сони:
NJavob++;
// Нотугри тест саволи тартиб ракамини саклаб куйиш:
NotJavob[NJavob] = label1.Text;
}
if (button1.Text == "Тестни кайтадан бошлаш")
{
button1.Text = "Кейинги савол";
// Переключателларни холатини узгартириш:
radioButton1.Visible = true;
radioButton2.Visible = true;
radioButton3.Visible = true;
// Файл бошига кайтиш:
GoTest();
return;
}
if (button1.Text == "Якунлаш")
{
// Тест файлини ёпиш:
Reader.Close();
// Переключателларни куринмайдиган килиш:
radioButton1.Visible = false;
radioButton2.Visible = false;
radioButton3.Visible = false;
// Тест натижасини хисоблаш:
label1.Text = String.Format("Тестлаштириш якунланди.\n" +
"Тугри жавоблар: {0} из {1}.\n" +
"Бахо: {2:F2}.", TJavob,
SavolSoni, (TJavob * 5.0F) / SavolSoni);
// 5F - Максимал бахо
button1.Text = "Тестни кайтадан бошлаш";
// Нотугри жавоб берилган тест саволлари:
var Str = "НОТУГРИ ЖАВОБ БЕРИЛГАН ТЕСТ САВОЛЛАРИ " +
"ТАРТИБ РАКАМЛАРИ:\n\n";
for (int i = 1; i <= NJavob; i++)
Str = Str + NotJavob[i] + "\n";

// Агар нотугри жавоблар мавжуд булса


// уни MessageBox оркали чикариш:
if (NJavob != 0) MessageBox.Show(
Str, "Тестлаштириш якунланди");
} // if (button1.Text == "Якунлаш") шарти якуни
if (button1.Text == "Кейинги савол") NSavol();
}
private void button2_Click(object sender, EventArgs e)
{
// "Чикиш" тугмаси босилди
this.Close();
}
}
}



Дастурда бир нечта параметрлар мавжуд бўлиб, уларнинг бошланғич қийматлари дастур биринчи маротаба ишга туширилган вақтда ўрнатилади. Шунингдек, дастурда RadioButton ларнинг босилиши SostPerek методи қайта ишланади. GoTest() методи орқали аввало тест саволлари жойлашган test.txt файли очилади. Сўнгра файлнинг биринчи сатридан фан номи ўқиб олинади:

Download 0,91 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   52




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish