Зертханалық жұмыс


СӨЖ арналған жеке тапсырмалар



жүктеу 120.03 Kb.
бет2/4
Дата12.11.2022
өлшемі120.03 Kb.
#23773
түріЛекция
1   2   3   4
Техн.прогр. 6лаб Сләмбеков Бекзат
Лекция № 9
6.3 СӨЖ арналған жеке тапсырмалар

"Кітап" класын 50 " бет " класс нысандарының жинағы ретінде жасаңыз. Бетте иллюстрация, мәтін, бағдарлама коды немесе бағдарлама жұмысының нәтижесі болуы мүмкін. Әр беттің мазмұны кездейсоқ түрде қалыптасады. Түпнұсқа жинақты басып шығарыңыз. Дөңгелек диаграмма арқылы бүкіл кітаптың ақпараты туралы статистиканы ұсыныңыз.



Сурет 2.1 - Бастапқы форманың түрі және формаға элементтерді орналастыру.


Бастапқы форманың ішіне жазған бағдарламалық код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LAB6bekzat


{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.Click += delegate
{
Book myBook = new Book();

Pen pen1 = new Pen(Color.Black, 2.0F);


Brush brush1 = new SolidBrush(Color.Red);
Brush brush2 = new SolidBrush(Color.Green);
Brush brush3 = new SolidBrush(Color.Blue);
Brush brush4 = new SolidBrush(Color.Silver);
Point center = new Point() { X = this.Height / 4, Y = this.Width / 4 };

Graphics graph = this.CreateGraphics();


Rectangle rect = new Rectangle(center.X - 100, center.Y - 100, 150, 150);

//Рисуем внешний круг (необязательно)


graph.DrawEllipse(pen1, rect);

//Считаем количество страниц каждого вида и приводим их к градусному представлению


double text_count = (from b in myBook where b.Content == "Text" select b).Count() * 7.2;
double picture_count = (from b in myBook where b.Content == "Picture" select b).Count() * 7.2;
double prg_code = (from b in myBook where b.Content == "Programm_code" select b).Count() * 7.2;
double prg_res = (from b in myBook where b.Content == "Programm_result" select b).Count() * 7.2;

//Красный-количество страниц с текстом


graph.FillPie(brush1, rect, 0, (float)text_count);
//Зеленый-количество страниц с картинками
graph.FillPie(brush2, rect, (float)text_count, (float)(picture_count));
//Синий-количество страниц с кодом программ
graph.FillPie(brush3, rect, (float)(text_count + picture_count), (float)(prg_code));
//Серебрянный-количество страниц с результатами программ
graph.FillPie(brush4, rect, (float)(text_count + picture_count + prg_code), (float)prg_res);
};
}
private void button1_Click(object sender, EventArgs e)
{
Kniga k = new Kniga();
foreach (Stranica s in k.stranicy)
textBox1.Text += s.content + Environment.NewLine;
}

public class Book : IEnumerable

{
private List
pages = new List
();

public List


GetAllPages
{
get { return pages; }
}
public Book()
{
Random rand = new Random();
for (int i = 0; i < 50; i++)
{
string content = Enum.GetName(typeof(Content), rand.Next(0, 4));
pages.Add(new Page(content, i + 1));
}
}

public IEnumerator


GetEnumerator()
{
return pages.GetEnumerator();
}

System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()


{
return pages.GetEnumerator();
}
}

public class Page


{
public string Content { get; private set; }
public int PageNumber { get; private set; }
public Page(string cont, int num)
{
Content = cont;
PageNumber = num;
}
public override string ToString()
{
return string.Format("Content: {0}; page number: {1}",
Content, PageNumber);
}
}
enum Content
{
Text,
Picture,
Programm_code,
Programm_result
}
public class Stranica
{
Random rnd = new Random();
public string content;
public Stranica()
{
string[] t = new string[4] { "код программы", "иллюстрация", "текст", "результат работы программы" };
content = t[rnd.Next(3)];
}
}
public class Kniga
{
public List stranicy;
public Kniga()
{
stranicy = new List();
for (int i = 0; i < 50; i++)
{
Stranica s = new Stranica();
stranicy.Add(s);
System.Threading.Thread.Sleep(10); //иначе выводит одинаковые значения, костыль
}
}
}
}
}

Сурет 2.2 - Жеке тапсырманың нәтижесі.



жүктеу 120.03 Kb.

Поделитесь с Вашими друзьями:
1   2   3   4




©emirb.org 2022
әкімшілігінің қараңыз

    Басты бет