Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 92

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

21.12.2016, 10:29. Показов 3169. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, номер группы, результаты сдачи трех экзаменов. Вывести в новый файл информацию о студентах, успешно сдавших сессию, отсортировав по номеру группы.
Замечания.
1. Во всех задачах данного раздела подразумевается, что исходная информация хранится в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте, результирующая информация должна быть записана в файл output.txt.
2. Для хранения данных внутри программы организовать массив структур.
3. В типе структура реализуется метод CompareTo интерфейса IComparable, перегружается метод ToString базового класса object и необходимые операции отношения, поля данных и дополнительные методы продумайте самостоятельно.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            Student_List _Student_List = new Student_List();
            using (System.IO.StreamReader _Read = new System.IO.StreamReader("zxc.txt.txt"))
            {
                while (!_Read.EndOfStream)//иду до конца файла
                {
                    String[] _Temp = _Read.ReadLine().Split(' ');
                    _Student_List.Add(
                        Convert.ToInt32(_Temp[0]),
                        _Temp[1], _Temp[2], _Temp[3],
                        Convert.ToInt32(_Temp[4]),
                        Convert.ToInt32(_Temp[5]),
                        Convert.ToInt32(_Temp[6]));
                }
            }
            Student_List Sorted_Student_List = _Student_List.Sdali();
            Sorted_Student_List.Sort_Number();
            Sorted_Student_List.Print();
            Sorted_Student_List.SaveToFile();
            Console.ReadKey();
        }
    }
 
    class Student_List
    {
        List<Student> _Sudent_List = new List<Student>(); //Динамический массив студентов;
 
        /// <summary>
        /// Структура студент содержит поля Ф,И,О, Номер группы, И 3 оценки;
        /// </summary>
        struct Student
        {
            internal String _Name, //имя;
                   _Family_Name, //фамилия;
                   _Middle_Name; //отчество;
            internal Int32 _Number_Group, //Номер группы;
                  _First_Exam,  //Первый экзамен;
                  _Second_Exam, //Второй экзамен;
                  _Third_Exam;  //Третий экзамен;
        }
 
        /// <summary>
        /// Добвляет запись о студенте в коллекцию;
        /// </summary>
        /// <param name="Name">Имя студента</param>
        /// <param name="Family_Name">Фамилия студента</param>
        /// <param name="Middle_Name">Отчество студента</param>
        /// <param name="Number_Group">Номер группы</param>
        /// <param name="First_Exam">Результат Первного экзамена</param>
        /// <param name="Second_Exam">Результат Второго экзамена</param>
        /// <param name="Third_Exam">Результат Третьего экзамена</param>
        public void Add(Int32 Number_Group, String Family_Name, String Name, String Middle_Name,
            Int32 First_Exam, Int32 Second_Exam, Int32 Third_Exam)
        {
            _Sudent_List.Add(
                new Student
                {
                    _Name = Name,
                    _Family_Name = Family_Name,
                    _Middle_Name = Middle_Name,
                    _Number_Group = Number_Group,
                    _First_Exam = First_Exam,
                    _Second_Exam = Second_Exam,
                    _Third_Exam = Third_Exam
                });
        }
        //перегрузка Add ..
        void Add(Student student)
        {
            _Sudent_List.Add(student);
        }
 
        //составление списка сдавших студентов
        public Student_List Sdali()
        {
            Student_List _Temp = new Student_List();
            for (Int32 i = 0; i < _Sudent_List.Count; i++)
            {//если по всем экзаменам >2 то сдал
                if (_Sudent_List[i]._First_Exam > 2 && _Sudent_List[i]._Second_Exam > 2 && _Sudent_List[i]._Third_Exam > 2)
                {
                    _Temp.Add(_Sudent_List[i]);//добавляю в коллекцию сдавших
                }
            }
            return _Temp;
        }
 
        public void Sort_Number()
        {
            this._Sudent_List.Sort(delegate(Student T, Student B)
            {
                return T._Number_Group.CompareTo(B._Number_Group);
            });
        }
 
        public void Print()
        {
            for (Int32 i = 0; i < _Sudent_List.Count; i++)
            {
                Console.WriteLine(_Sudent_List[i]._Family_Name + ' ' + _Sudent_List[i]._Name + ' ' + _Sudent_List[i]._Middle_Name
                    + " ({0:D}): {1:D} / {2:D} / {3:D}", _Sudent_List[i]._Number_Group, _Sudent_List[i]._First_Exam, _Sudent_List[i]._Second_Exam, _Sudent_List[i]._Third_Exam);
            }
        }
        public void SaveToFile()
        {
            System.IO.StreamWriter _W = new System.IO.StreamWriter("List1.txt");
            for (Int32 i = 0; i < _Sudent_List.Count; i++)
            {
                _W.WriteLine(_Sudent_List[i]._Family_Name + ' ' + _Sudent_List[i]._Name + ' ' + _Sudent_List[i]._Middle_Name
                    + " ({0:D}): {1:D} / {2:D} / {3:D}", _Sudent_List[i]._Number_Group, _Sudent_List[i]._First_Exam, _Sudent_List[i]._Second_Exam, _Sudent_List[i]._Third_Exam);
            }
            _W.Close();
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2016, 10:29
Ответы с готовыми решениями:

Составить список студентов группы на основе данных входного файла
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу...

На основе данных входного файла составить список студентов группы
Помогите пожалуйста срочно испраить программу!! 1. исходная информация хранится в текстовом файле input.txt, каждая строка которого...

Структуры: На основе данных входного файла составить список студентов
На основе данных входного файла составить список студентов, включив следующие данные: ФИО,год рождения,домашний адрес,какую школу окончил....

12
65 / 65 / 47
Регистрация: 04.12.2016
Сообщений: 214
21.12.2016, 15:52
Это С#, а не Java .
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 92
21.12.2016, 16:00  [ТС]
я знаю,это готовое на c#,а мне на java надо
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
23.12.2016, 10:04
Если ничего не упустил. Можно так попробовать - вроде работает.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.io.*;
import java.util.ArrayList;
 
public class StudentsClass {
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new FileReader(new File("input.txt")));
        BufferedWriter writer = new BufferedWriter(new FileWriter(new File("sort.txt")));
        ArrayList<Student> listStudents = new ArrayList<Student>();//список студентов
        ArrayList<Student> listSortStudents = new ArrayList<Student>();//список студентов сдавших все экзамены
        String str;
        while ((str = reader.readLine()) != null){
            String[] dat = str.split(" ");
            String name = dat[0];
            String fname = dat[1];
            String mname = dat[2];
            int num = Integer.parseInt(dat[3]);
            int fe = Integer.parseInt(dat[4]);
            int se = Integer.parseInt(dat[5]);
            int te = Integer.parseInt(dat[6]);
            Student student = new Student(name,fname,mname,num,fe,se,te);
            listStudents.add(student);
        }
        listSortStudents = StudentsClass.sortStud(listStudents);
        listSortStudents = StudentsClass.sortNum(listSortStudents); 
        //печать списка в консоль
        for(Student s: listSortStudents){
            System.out.println(s);
        }
        //сохранение в файл
        for(Student s: listSortStudents){
            writer.write(s.toString());
        }
        
        reader.close();
        writer.close();
 
    }
 
    //метод для создания списка сдавших студентов
    public static ArrayList<Student> sortStud(ArrayList<Student> arr){
        ArrayList<Student> arrS = new ArrayList<>();
        for(Student s:arr){
            if(s.getFe()>2 && s.getSe()>2 && s.getMe()>2){
                arrS.add(s);
            }
        }
        return arrS;
    }
 
    //метод для сортировки студентов по номеру группы
    private static ArrayList<Student> sortNum(ArrayList<Student> listSortStudents) {
        for(int i=0;i<listSortStudents.size()-1;i++){
            if(listSortStudents.get(i).getNum()>listSortStudents.get(i+1).getNum()){
                Student s = listSortStudents.get(i);
                listSortStudents.set(i,listSortStudents.get(i+1));
                listSortStudents.set(i+1,s);                
            }
            }
        return listSortStudents;
    }
}
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 92
23.12.2016, 10:44  [ТС]
ст13 спасибо
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 03:56
ст13, ст13, ругается на «Student» везде, что не так?(((
0
 Аватар для StepFather322
365 / 252 / 113
Регистрация: 07.10.2017
Сообщений: 1,330
29.05.2020, 04:28
Цитата Сообщение от kira069 Посмотреть сообщение
ругается на «Student» везде, что не так?(((
ты не создал класс Student...
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 04:52
Ну в коде этого не было, поэтому и спрашиваю, я не особо понимаю, что там надо писать и что для чего
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.05.2020, 09:36
Цитата Сообщение от kira069 Посмотреть сообщение
я не особо понимаю, что там надо писать и что для чего
А зачем тогда оно тебе вообще надо?
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 09:37
Потому что мне надо сдать работу и забыть об этом)))
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,482
29.05.2020, 11:39
Цитата Сообщение от kira069 Посмотреть сообщение
мне надо сдать работу
поделись опытом! любой вопрос посадит тебя в лужу...
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 11:54
С вопросами как раз все нормально всегда выходит, только пока не к чему их задавать
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,482
29.05.2020, 12:38
kira069, если ты такой сообразительный перец, то почему не идешь в поиск по этой ветке?!
http://www.cyberforum.ru/java-... 56001.html - дин из десятков тысяч ответов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2020, 12:38
Помогаю со студенческими работами здесь

Структуры: на основе данных входного файла составить список студентов группы
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу...

На основе данных входного файла составить список студентов группы, включив следующие данные
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, номер группы, результаты сдачи трех...

На основе данных входного файла составить список студентов группы, включив следующие данные
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, номер группы, результаты сдачи трех...

На основе данных входного файла составить список сотрудников учреждения
Помогите пожалуйста написать программу на языке C# Вариант 5 На основе данных входного файла составить список сотрудников...

На основе данных входного файла составить список вкладчиков банка, включив следующие данные
На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сумма, год открытия счета....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru