Выполнил Сиянко Е. В.
Группа 12002233________
Проверил ______________
Дата __________________
Оценка ________________
Подпись _______________ Отчет по лабораторной работе №9.
Наследование ООП
Вариант 11
Цель: изучить структуру программ с учетом наследуемых классов на основе использования метода объектно-ориентированного программирования. Задание 1. Опишите класс STUDENT состоящий из:
название учебного заведения; фамилия н инициалы студента; номер группы; массив из пяти оценок — успеваемость.
Введите с клавиатуры данные в массив, состоящий из n элементов типа STUDENT.
Выведите на экран информацию о студентах, у которых средний балл выше введенного с клавиатуры числа.
Если такого студента нет, то программа должна выдать соответствующее сообщение на экран.
Добавив еще один наследуемый класс, содержащий не менее два поля.
Используя экранные формы выполните основные операций: открытие файла данных из файла, сохранение данных в файл, добавление, удаление и поиск данных.
Реализований код программы продеманстрирован в приложении 1.
Н а рисунке 1 продемонстрирован результат работы формы и получившийся при выполнении задания текстовые документы. Рисунок 1 - Скриншот выполнения задания 1. Вывод: В процессе работы приобрел практические навыки в составлении программ на С# для работы с файлами, записи открытия файлов, поиска данных, а структурах фала, добавления данных в таблицы.
Приложение
Приложение 1
| namespace Siyanko_lab9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear(); Tabl(T.LoadFile(T.namel)); } private void button1_Click(object sender, EventArgs e)
{
string str1 = "";
int n = dataGridView1.Rows.Count - 1; STUDENT[] S = new STUDENT[n];
for (int i = 0; i < n; i++)
{
string name, ini, num; name = Convert.ToString(dataGridView1.Rows[i].Cells[0].Value);
str1 += name + "|";
ini = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value);
str1 += ini + "|";
num = Convert.ToString(dataGridView1.Rows[i].Cells[2].Value);
str1 += num + "|";
str1 += Convert.ToString(dataGridView1.Rows[i].Cells[3].Value) + "|"; string[] m1 = Convert.ToString(dataGridView1.Rows[i].Cells[3].Value).Split(' '); double[] m = new double[5];
for (int j = 0; j < 5; j++)
{ m[j] = Convert.ToDouble(m1[j]);
} S[i] = new STUDENT(name, ini, num, m);
str1 += "\n";
} string str2 = "";
double t = Convert.ToDouble(textBox1.Text);
int sch = 0;
for (int i = 0; i < n; i++)
{ if (STUDENT.Grade(S[i].grade) > t)
{
sch++;
str2 += "\n\nФамилия н инициалы студента: " + S[i].Initials;
str2 += "\nНазвание учебного заведения: " + S[i].Name;
str2 += "\nНомер группы: " + S[i].Number;
str2 += "\nСредний балл: " + STUDENT.Grade(S[i].grade);
} }
if (sch == 0)
{
str2 += "\n\nНет студентов у которых средний балл выше введенного с клавиатуры числа.";
} MessageBox.Show(str2); Tbl.saveFile(str1 + str2,T.names); }
public static double[] m = { 0, 0, 0, 0 };
Tbl T = new Tbl("Лаболаторная 9", "Сиянко С.В.", "Таблица 1", m, "FileL.txt", "FileS.txt");
public void Tabl(string str)
{
string[] w = str.Split('|');
for(int i = 0; i < w.Length/4; i++)
{
dataGridView1.Rows.Add(w[i * 4 +0], w[i * 4 + 1], w[i * 4 + 2], w[i * 4 + 3]);
} }
} public class STUDENT
{
public string Name;
public string Initials;
public string Number;
public double[] grade = new double[5]; public STUDENT( string Name, string Initials, string Number, double[] grade)
{ this.Name = Name;
this.Initials = Initials;
this.Number = Number;
this.grade = grade;
} public static double Grade(double[] m)
{
double summ = 0;
for (int i = 0; i < m.Length; i++)
{
summ += m[i];
}
summ = (summ / Convert.ToDouble(m.Length));
return summ;
} public static void saveFile(string str, string name)
{
StreamWriter SW = new StreamWriter(new FileStream(name, FileMode.OpenOrCreate, FileAccess.Write));
SW.Write(str);
SW.Close();
}
}
public class Tbl : STUDENT
{
public string namel;
public string names;
public Tbl(string Name, string Initials, string Number, double[] grade, string namel, string names) :base(Name, Initials, Number, grade)
{
this.namel = namel;
this.names = names; this.Name = Name;
this.Initials = Initials;
this.Number = Number;
this.grade = grade; }
public string LoadFile(string name)
{
string str = "";
StreamReader LW = new StreamReader(new FileStream(name, FileMode.OpenOrCreate, FileAccess.Read));
while (LW.Peek() != -1)
{
str += LW.ReadLine(); } LW.Close(); //Закрываем файл
return str; }
} }
| Конец приложения 1
| |