Бағдарламалу технологиясы


Файлдармен жұмыс жасағанда сериализация мен десериализацияны қолдану мысалы



жүктеу 1,63 Mb.
бет55/73
Дата03.02.2022
өлшемі1,63 Mb.
#35497
түріОқулық
1   ...   51   52   53   54   55   56   57   58   ...   73
Ба?дарламалу технологиясы

10.5 Файлдармен жұмыс жасағанда сериализация мен десериализацияны қолдану мысалы

Студенттер туралы есепте сериализация мен десериализация процесстерін қолдану мысалын қарастырайық.

10.2-есеп. Диалог режімінде студенттердің саны 20-дан аспайтын массивті құру керек. Әрбір жазбада студенттің тегі, топ атауы, емтихан балы, жасы жазылады. Монитор экранында жазбалар массивін қарап шығуды алдын ала қарастыру керек.

Жазбалар массивін монитор экранында көрсетуді, файлға жазбалар массивін сериализациялау және файлдан жазбалар массивін десериализациялау процесстерін қолдануды, файлды қайтадан қарап шығуды қарастыру керек. Бағдарламада менюді қолдану керек.

Есептің шартына сәйкес 4 өрісі бар құрылымды құрайық: студенттің аты, топ атауы, емтихан балы, студент жасы.

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using System.Runtime.Serialization.Formatters.Binary;

namespace ConsoleApplication1

{

[Serializable]



struct Stydent

{

public String Name; //студенттің аты



public String Grup; // тобы

public int Ball; // балл

public int Let; // жасы

}

class Program



{

public static Stydent[] Styds = new Stydent[20];

public static int kol = 0;

public static void sozd()

{

int b;


string buf;

Console.WriteLine("Toptagi stydentter sani <= 20 !!");

buf = Console.ReadLine();

kol = Convert.ToInt32(buf);

for (int i = 0; i < kol; i++)

{

Console.WriteLine("{0}-stydenttin atin engiziniz", i + 1);



buf = Console.ReadLine();

Styds[i].Name = buf;

Console.WriteLine("{0}-stydenttin tobin engiziniz", i + 1);

buf = Console.ReadLine();

Styds[i].Grup = buf;

Console.WriteLine("{0}-stydenttin balin engiziniz", i + 1);

buf = Console.ReadLine();

b = Convert.ToInt32(buf);

Styds[i].Ball = b;

Console.WriteLine("{0}-stydenttin shasin engiziniz", i + 1);

buf = Console.ReadLine();

b = Convert.ToInt32(buf);

Styds[i].Let = b;

}

}



public static void zapf()

{

//сериализация үшін ағынды құрамыз:



FileStream StreamOut = new FileStream("Sytds.dat",

FileMode.Create, FileAccess.Write);

//екілік пішімді қолданамыз:

BinaryFormatter fmt = new BinaryFormatter();

fmt.Serialize(StreamOut, Styds); // объекттерге сериализациялау

StreamOut.Close(); // ағынды жабамыз

}

public static void printm()



{

Console.WriteLine("{0,20}, {1, 20}, {2, 10}, {3, 10}",

"Ati", "Tobi", "Ball", "Shasi");

foreach (Stydent T in Styds)

{

if (T.Ball > 0)



Console.WriteLine("{0,20}, {1, 20}, {2, 10}, {3, 10}",

T.Name, T.Grup, T.Ball, T.Let);

}

}

public static void vvod()



{

int i = 0;

//десериализация үшін ағынды құрамыз:

FileStream StreamIn = new FileStream("Sytds.dat",

FileMode.Open, FileAccess.Read);

// екілік пішімді қолданамыз:

BinaryFormatter fmt = new BinaryFormatter();

Styds = (Stydent[])fmt.Deserialize(StreamIn);//Десериализациялау

kol = 0;

while (Styds[i].Ball > 0) { kol++; i++; }

StreamIn.Close(); // ағынды жабамыз

}

public static void Main()



{

int k = 0;

string buf;

while (k < 6)

{

Console.WriteLine("1 - Massivti kyry");



Console.WriteLine("2 - Massivti failga shazy");

Console.WriteLine("3 - Massivti shigary");

Console.WriteLine("4 - faildan massivti oky");

Console.WriteLine("5 - Massivti shigary");

Console.WriteLine("6 - Shigy");

Console.WriteLine("Menu punktterin tandaniz");

buf = Console.ReadLine();

k = Convert.ToInt32(buf);

switch (k)

{

case 1: sozd(); break;



case 2: zapf(); break;

case 3: printm(); break;

case 4: vvod(); break;

case 5: printm(); break;

default: break;

}

}



}

}

}



Бағдарлама жұмысы:

1 - Massivti kyry

2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

1

Toptagi stydentter sani <= 20 !!



3

1-stydenttin atin engiziniz

Бедаш Дмитрий

1-stydenttin tobin engiziniz

09-ВТ-1

1-stydenttin balin engiziniz

90

1-stydenttin shasin engiziniz



18

2-stydenttin atin engiziniz

Жумашев Ержегит

2-stydenttin tobin engiziniz

09-ВТ-1

2-stydenttin balin engiziniz

85

2-stydenttin shasin engiziniz



19

3-stydenttin atin engiziniz

Аскарова Дина

3-stydenttin tobin engiziniz

09-ИС-1

3-stydenttin balin engiziniz

89

3-stydenttin shasin engiziniz



18

1 - Massivti kyry

2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

2

1 - Massivti kyry



2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

3

Ati, Tobi, Ball, Shasi



Бедаш Дмитрий, 09-ВТ-1, 90, 18

Жумашев Ержегит, 09-ВТ-1, 85, 19

Аскарова Дина, 09-ИС-1, 89, 18

1 - Massivti kyry

2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

6
Бағдарламаны екінші рет іске қосқанда:

1 - Massivti kyry

2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

4

1 - Massivti kyry



2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz

5

Ati, Tobi, Ball, Shasi



Бедаш Дмитрий, 09-ВТ-1, 90, 18

Жумашев Ержегит, 09-ВТ-1, 85, 19

Аскарова Дина, 09-ИС-1, 89, 18

1 - Massivti kyry

2 - Massivti failga shazy

3 - Massivti shigary

4 - faildan massivti oky

5 - Massivti shigary

6 - Shigy

Menu punktterin tandaniz


Бағдарламада есептің шартына сәйкес төрт әдіс қолданылған. (студенттер массивін шығару әдісі екі рет қолданылған).

жүктеу 1,63 Mb.

Достарыңызбен бөлісу:
1   ...   51   52   53   54   55   56   57   58   ...   73




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау