SlideShare a Scribd company logo
1 of 6
Лабораторийн ажил 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
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
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 = "Оюутны мэдээлэл харах";
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();
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);

Лабораторын ажлаар гүйцэтгэх даалгаварууд
1. Оюутны дэлгэрэнгүй мэдээллийг нэмж үүсгэ.
2. Оюутны мэдээллийг нэмж өөрчлөхдөө интерфейсын хувьд өөр өөрсдийн хүссэн
байдлаар өөрчлөн үүсгэж болно.
3. Лабораторийн ажлын гүйцэтгэлийг 9сарын 19-ны өдрөөс өмнө шалгуулна уу!.

More Related Content

Similar to Лабораторийн ажил 1 (20)

Лекц №16
Лекц №16Лекц №16
Лекц №16
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн сан
 
Lekts 6
Lekts  6Lekts  6
Lekts 6
 
Html tag
Html tagHtml tag
Html tag
 
Lecture5 6
Lecture5 6Lecture5 6
Lecture5 6
 
Android json parsing
Android json parsingAndroid json parsing
Android json parsing
 
SW203 Lab9
SW203  Lab9SW203  Lab9
SW203 Lab9
 
ХӨС семинар8
ХӨС семинар8ХӨС семинар8
ХӨС семинар8
 
It101 lab9
It101 lab9It101 lab9
It101 lab9
 
It101 lab9
It101 lab9It101 lab9
It101 lab9
 
It101-lab9
It101-lab9It101-lab9
It101-lab9
 
Лекц №14
Лекц №14Лекц №14
Лекц №14
 
Pp Lect9 10 1
Pp Lect9 10 1Pp Lect9 10 1
Pp Lect9 10 1
 
Pp Lect10 11
Pp Lect10 11Pp Lect10 11
Pp Lect10 11
 
Microsoft power point
Microsoft power pointMicrosoft power point
Microsoft power point
 
Microsoft power point
Microsoft power pointMicrosoft power point
Microsoft power point
 
Microsoft power point
Microsoft power pointMicrosoft power point
Microsoft power point
 
Microsoft power point
Microsoft power pointMicrosoft power point
Microsoft power point
 
Microsoft power point
Microsoft power pointMicrosoft power point
Microsoft power point
 
Lab6 db
Lab6 dbLab6 db
Lab6 db
 

More from Chinzorig Undarmaa (20)

Лабораторийн ажил 12
Лабораторийн ажил 12Лабораторийн ажил 12
Лабораторийн ажил 12
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Лекц 2
Лекц 2Лекц 2
Лекц 2
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4
 
Лекц 4
Лекц 4Лекц 4
Лекц 4
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6
 
Лекц 5 - 6
Лекц 5 - 6Лекц 5 - 6
Лекц 5 - 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лекц 7
Лекц 7Лекц 7
Лекц 7
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 

Лабораторийн ажил 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-ны өдрөөс өмнө шалгуулна уу!.