More Related Content
Similar to Лабораторийн ажил 1
Similar to Лабораторийн ажил 1 (20)
More from Chinzorig Undarmaa
More from Chinzorig Undarmaa (20)
Лабораторийн ажил 1
- 1. Лабораторийн ажил 1
Хичээлийн агуулга: Файлтай ажиллах
Лабораторын ажлын зорилго: файлаас унших болон
файл руу мэдээлэл бичиж сурах болно.
Програмчлалын хэл : C#
Файлын нэр: names
Прожект файл үүсгэх:
1.
2.
3.
4.
File->New->Blank Solutionсонгоно.
Project types->Visual C# Projects
Templates->Windows Application сонгоно.
Application –ны нэрийг Student гэж нэрлэнэ.
Student формд хэрэглэгдэх контролуудын шинж чанарууд:
Контролын нэр
Form
TabControl
Шинж чанар
Name
StartPosition
Size
Name
Утгууд
Student
centerScreen
431,227
Tabcontrol1
- 2. Dock
Location
Size
Tabpage
Tabpage1->name
GroupBox1
GroupBox2
GroupBox3
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
Listbox
Listbox
Label1
Label2
Label3
Fill
0,0
425,195
2
tpMain
Tabpage1->text
Tabpage1->padding
Tabpage1->size
Tabpage2->name
Tabpage2->text
Tabpage2->padding
Tabpage2->size
Name
Text
Name
Text
Name
Text
Name
Size
Location
Name
Size
Location
Name
Size
Location
Name
Size
Location
Name
Size
Location
Name
Size
Location
Mask
Name
Size
Location
Name
Location
Size
Name
Location
Size
Name
Text
Name
Text
Name
Мэдээлэл харах
3
417,169
tpAdd
Мэдээлэл оруулах
3
417,169
Groupbox1
Дэлгэрэнгүй мэдээлэл
Groupbox2
Оюутны нэрс
Groupbox3
Утга оруулах
txtSearch
168,20
13,24
txtFoundName
175,20
16,35
mtxtFoundReg
175,20
16,77
LinkEmail
168,21
16,113
txtname
168,20
16,63
mtxtReg
168,20
16,63
??00000000
txtEmail
168,20
16,98
lstAddnames
12,19
165,121
lstnames
16,64
165,95
Label1
Оюутны нэрс:
Label2
Хайх нэрээ оруулна уу?
Label3
- 3. Labe4
Label5
Button1
Text
Name
Text
Name
Text
Name
Location
size
Оюутны нэр
Label4
Регистрийн дугаар
Label5
И-мэйл хаяг:
btnAdd
109,122
75,23
Прожектын үндсэн кодын хэсэг
1. Student прожектонд дараах нэймспейсүүдийг хэрэглэнэ.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
2. Класс дотор хэрэглэгчийн зохиосон дараах функцыг үүсгэнэ.
publicvoid ReadFromFile()
{
lstNames.Items.Clear();
lstAddNames.Items.Clear();
StreamReader sr = newStreamReader(@"D:names.txt", Encoding.UTF8);
string line;
string []elems;
char[]ch={' '};
while ((line = sr.ReadLine()) != null)
{
elems = line.Split(ch);
lstNames.Items.Add(elems[0]);
lstAddNames.Items.Add(elems[0]);
}
sr.Close();
}
Файлаас уншихын тулд StreamReaderтөрлийн объект үүсгэнэ.
StreamReader sr = newStreamReader(@"D:names.txt",
Encoding.UTF8);
ReadLine() - мөр мөрөөр нь файлаас уншина.
line.Split(ch) – файлаас уншсан мөрөөс ch хувьсагчад зааж өгсний
дагуу хуваалтыг хийнэ.
3. Класс дотор хэрэглэгчийн зохиосон дараах функцыг үүсгэнэ.
privatevoid tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 0)
this.Text = "Оюутны мэдээлэл харах";
- 4. elseif (tabControl1.SelectedIndex == 1)
this.Text = "Оюутны мэдээлэл нэмэх";
}
Tabcontrol дээр байгаа tabpage-уудыг солих үед тухайн идэвхитэй байгаа
хуудасын нэр формын текст болон гарч ирнэ.
4. Форм ачаалах үзэгдэл дээр дараах хоѐр функцыг дуудаж өгнө.
privatevoid Form1_Load(object sender, EventArgs e)
{
ReadFromFile();
tabControl1_SelectedIndexChanged(sender, e);
}
5. Форм ачаалсны дараа listbox дээр гарч ирсэн оюутны нэрэн дээр дарах үед
цонхны баруун талд гарах оюутны дэлгэрэнгүй мэдээлэл дараах хэрэглэгчийн
функцаар тодорхойлогдоно.
privatevoid lstNames1_SelectedIndexChanged(object sender, EventArgs e)
{
StreamReader sr = newStreamReader(@"D:names.txt", Encoding.UTF8);
string line;
string[] elems;
char[] ch ={ ' ' };
while ((line = sr.ReadLine()) != null)
{
elems = line.Split(ch);
if (String.Compare(elems[0], lstNames.SelectedItem.ToString()) == 0)
{
txtFoundName.Text = elems[0];
mtxtFoundReg.Text = elems[1];
lnkEmail.Text = elems[2];
lnkEmail.LinkArea = newLinkArea(0, lnkEmail.Text.Length);
}
}
sr.Close();
}
Compare функц нь тэмдэг 2 утгуудыг хооронд нь харьцуулах үүрэгтэй:
o if (String.Compare(elems[0], lstNames.SelectedItem.ToString()) == 0)
txtFoundName.Text = elems[0] – эхний утгыг txtFoundName –н утга болгон оноож
байна.
Файлыг нээсэн тохиолдолд заавал хааж өгч байх ѐстой.
o sr.Close();
6. Хайлтын хэсэг дээр бичсэн утгын дагуу үр дүн listboxдээр гарч ирнэ.
privatevoid txtSearch_TextChanged(object sender, EventArgs e)
{
if (txtSearch.Text != "")
{
lstNames.Items.Clear();
- 5. StreamReader sr = newStreamReader(@"D:names.txt", Encoding.UTF8);
string line;
string[] elems;
char[] ch ={ ' ' };
while ((line = sr.ReadLine()) != null)
{
elems = line.Split(ch);
if (String.Compare(elems[0].ToString().Substring(0, txtSearch.TextLength), txtSearch.Text) ==
0)
{
lstNames.Items.Add(elems[0]);
}
}
sr.Close();
}
else
ReadFromFile();
}
7. Нэмэх гэсэнтовчин дээр дарах үед дараах хэрэглэгчийн функц дуудагдана.
privatevoid btnAdd_Click(object sender, EventArgs e)
{
if (txtName.Text != ""&& mtxtReg.Text != ""&& txtEMail.Text != ""&& txtEMail.Text.Contains("@")
&& txtEMail.Text.Contains("."))
{
string names = txtName.Text + " " + mtxtReg.Text.ToUpper() + " " + txtEMail.Text.ToLower();
StreamWriter sw = newStreamWriter(@"D:names.txt", true, Encoding.UTF8);
sw.WriteLine(names);
sw.Close();
ReadFromFile();
txtName.Clear();
txtEMail.Clear();
mtxtReg.Clear();
}
else
MessageBox.Show("Утгуудыг бүрэн, зөв оруулна уу");
}
string names = txtName.Text + " " + mtxtReg.Text.ToUpper() + " " +
txtEMail.Text.ToLower() – Names гэсэн тэмдэгт мөрөнд txtName, mtxtReg,txtEMail
эдгээр контролуудын утгыг тэмдэгт мөр болгон залган оноож байна.
o ToLower() : тэмдэгтийг жижиг үсэг рүү хөрвүүлж өгдөг функц
o ToUpper() :тэмдэгтийг том үсэг рүү хөрвүүлж өгдөг функц
Файл руу өгөгдөл бичихийн тулдStreamWriterтөрлийн sw объектыг үүсгэж
байна.
o StreamWriter sw = newStreamWriter(@"D:names.txt", true, Encoding.UTF8)
WriteLine функц нь тэмдэгт мөр төрлийн өгөгдлийг файл руу бичих үүрэгтэй.
o sw.WriteLine(names);
Лабораторын ажлаар гүйцэтгэх даалгаварууд
- 6. 1. Оюутны дэлгэрэнгүй мэдээллийг нэмж үүсгэ.
2. Оюутны мэдээллийг нэмж өөрчлөхдөө интерфейсын хувьд өөр өөрсдийн хүссэн
байдлаар өөрчлөн үүсгэж болно.
3. Лабораторийн ажлын гүйцэтгэлийг 9сарын 19-ны өдрөөс өмнө шалгуулна уу!.