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

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

21.12.2016, 10:29. Просмотров 1480. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2016, 10:29
Ответы с готовыми решениями:

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

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

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

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

12
64 / 64 / 47
Регистрация: 04.12.2016
Сообщений: 214
21.12.2016, 15:52 2
Это С#, а не Java .
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 92
21.12.2016, 16:00  [ТС] 3
я знаю,это готовое на c#,а мне на java надо
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
23.12.2016, 10:04 4
Если ничего не упустил. Можно так попробовать - вроде работает.
Кликните здесь для просмотра всего текста
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  [ТС] 5
ст13 спасибо
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 03:56 6
ст13, ст13, ругается на «Student» везде, что не так?(((
0
159 / 113 / 57
Регистрация: 07.10.2017
Сообщений: 590
29.05.2020, 04:28 7
Цитата Сообщение от kira069 Посмотреть сообщение
ругается на «Student» везде, что не так?(((
ты не создал класс Student...
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 04:52 8
Ну в коде этого не было, поэтому и спрашиваю, я не особо понимаю, что там надо писать и что для чего
0
Супер-модератор
Эксперт PythonЭксперт Java
5935 / 3405 / 1333
Регистрация: 21.10.2017
Сообщений: 10,061
29.05.2020, 09:36 9
Цитата Сообщение от kira069 Посмотреть сообщение
я не особо понимаю, что там надо писать и что для чего
А зачем тогда оно тебе вообще надо?
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 09:37 10
Потому что мне надо сдать работу и забыть об этом)))
0
1758 / 1382 / 342
Регистрация: 17.02.2014
Сообщений: 7,161
29.05.2020, 11:39 11
Цитата Сообщение от kira069 Посмотреть сообщение
мне надо сдать работу
поделись опытом! любой вопрос посадит тебя в лужу...
0
0 / 0 / 0
Регистрация: 20.04.2018
Сообщений: 24
29.05.2020, 11:54 12
С вопросами как раз все нормально всегда выходит, только пока не к чему их задавать
0
1758 / 1382 / 342
Регистрация: 17.02.2014
Сообщений: 7,161
29.05.2020, 12:38 13
kira069, если ты такой сообразительный перец, то почему не идешь в поиск по этой ветке?!
http://www.cyberforum.ru/java-... 56001.html - дин из десятков тысяч ответов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2020, 12:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.