На основе данных входного файла составить список студентов группы - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста срочно испраить программу!! 1. исходная информация хранится в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте, результирующая информация должна быть записана в файл output.txt. 2. Для хранения данных внутри программы организовать массив структур. 3. В типе структура реализуется метод CompareTo интерфейса IComparable, перегружается метод ToString базового класса object и необходимые операции отношения, поля данных и дополнительные методы продумайте самостоятельно. На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу окончил. Вывести в новый файл информацию о студентах, окончивших заданную школу, отсортировав их по году рождения. Вот что я сделал но он отказывается работать! помогите пожалуйста !
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace lab14
{
    struct Student : IComparable
    {
        public string fio;
        public double god;
        public string adress;
        public int shkola;
 
        public Student(string f1, int f2, string f3, int f4)
        {
            fio = f1;
            god = f2;
            adress = f3;
            shkola = f4;
        }
        public override string ToString()
        {
            return (string.Format("фио: {0}; год_рожд: {1}; адрес: {2}; школа: {3};", fio, god.ToString(), adress, shkola.ToString()));
        }
        public int CompareTo(object obj1)
        {
            Student m1 = (Student)obj1;
            // Student m2 = (Student)obj2;
            if (this.shkola == m1.shkola) return 1;
            if (this.shkola != m1.shkola) return -1;
            else return 0;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
 
                int h1 = 1, k = 0, h = 1;
                StreamReader basse1 = new StreamReader("inputt.txt");
                while (h1 == 1)
                {
                    string text1 = basse1.ReadLine();
                    if (text1 == null)
                    {
                        basse1.Close();
                        h1 = 0;
                    }
                    else
                    {
                        ++k;
                    }
                }
                Student[] god = new Student[k];
                int g = 0;
                string[] buf = new string[4];
                StreamReader basse = new StreamReader("inputt.txt");
                while (h == 1)
                {
                    string text = basse.ReadLine();
                    if (text == null)
                    {
                        basse.Close();
                        h = 0;
                    }
                    else
                    {
                        buf = text.Split(' ');
                        god[g] = new Student(buf[0], int.Parse(buf[1]), buf[2], int.Parse(buf[3]));
                        g++;
                    }
                }
 
                Array.Sort(god);
                Console.WriteLine("Ведите школу:");
                int d = int.Parse(Console.ReadLine());
                StreamWriter basse3 = new StreamWriter("output.txt");
                for (int i = 0; i < k; i++)
                {
                    if (god[i].shkola < d) basse3.WriteLine(god[i]);
                }
                basse3.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
 
            }
 
            Console.ReadKey();
        }
    }
}

Решение задачи: «На основе данных входного файла составить список студентов группы»

textual
Листинг программы
#region using
 
using System;
using System.IO;
 
#endregion
 
namespace ConsoleApplicationTest
{
    public static class Program
    {
        private static void Main()
        {
            // Читаем из файла
            string[] allLines = File.ReadAllLines("input.txt");
            // Преобразуем в массив студентов
            Student[] students = new Student[allLines.Length];
            for (int index = 0; index < allLines.Length; index++)
            {
                string line = allLines[index];
                string[] fields = line.Split(';');
                Student student = new Student(fields[0], Convert.ToInt32(fields[1]), fields[2], fields[3]);
                students[index] = student;
            }
            // Сортируем
            Array.Sort(students);
            // Выводим данные
            foreach (Student student in students)
            {
                Console.WriteLine(student);
                Console.WriteLine();
            }
            // Преобразуем в удобный для записи вид
            string[] linesToSave = new string[students.Length];
            for (int i = 0; i < students.Length; i++)
            {
                Student student = students[i];
                linesToSave[i] = student.ToString();
            }
            // Сохраняем в файл
            File.WriteAllLines("output.txt", linesToSave);
            Console.ReadKey();
        }
    }
 
    public struct Student : IComparable
    {
        public Student(string name, int yearOfBirth, string homeAddress, string school)
            : this()
        {
            Name = name;
            YearOfBirth = yearOfBirth;
            HomeAddress = homeAddress;
            School = school;
        }
 
        // ФИО
        public string Name { get; private set; }
        // год рождения
        public int YearOfBirth { get; private set; }
        // домашний адрес
        public string HomeAddress { get; private set; }
        // какую школу окончил
        public string School { get; private set; }
 
        #region IComparable Members
 
        public int CompareTo(object obj)
        {
            return YearOfBirth.CompareTo(((Student) obj).YearOfBirth);
        }
 
        #endregion
 
        public override string ToString()
        {
            return string.Format("{0}; {1}; {2}; {3}",
                                 Name, YearOfBirth, HomeAddress, School);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы