Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 2
1

Описать структуру с полями, считать данные из текстового файла, вывести данные, подсчитать количество

15.10.2018, 09:06. Показов 798. Ответов 4
Метки нет (Все метки)

Доброе утро.
С C# я знаком весьма посредственно, однако появилась необходимость выполнить на нем следующее задание:
Описать структуру с полями:Фамилия студента, название дисциплины, оценка, дата. Считать данные из текстового файла в массив. Вывести в список или таблицу. Подсчитать количество четверок для заданной пользователем дисциплины.
Буду рад любой помощи.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2018, 09:06
Ответы с готовыми решениями:

Не получается считать из текстового файла данные о студентах и записать в структуру
Мне нужно написать программу которая на основе данных о студентах что-то считывает и выполняет....

Считать данные из текстового файла, переписать в бинарный, и вывести в виде выровненной таблицы
считываю из файла имя, фамилию, номер телефона и тип. необходимо переписать это в бинарный файл и...

Считать данные из файла и подсчитать количество открывающих и закрывающих круглых скобок
Надо создать текстовый файл in.txt , в него поместить текст. Программа должна считать данные из...

Считать данные в структуру из файла
Здравствуйте! Подскажите как считать с текстового файла в структуру Считать в строку а затем...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
4
95 / 87 / 60
Регистрация: 21.04.2014
Сообщений: 1,204
15.10.2018, 09:51 2
Ну так ты начни писать хоть что-то.
Вот пример простой структуры, здесь предмет и оценка:
C#
1
2
3
4
5
public struct TestStr
        {
            public string Subject;
            public byte Assessment;
        }
Считать строки в массив можно так:
C#
1
string[] arrAllString = File.ReadAllLines ( "C:\\testfile.txt", System.Text.Encoding.Default );
Добавлено через 1 минуту
Ну а дальше из массива надо всё разложить по элементам структуры. Как это сделать - зависит от того как они в файле хранятся. Можно символ-разделить ввести и ориентироваться по нему, а можно на каждое значение выделить строго фиксированное количество символов.
0
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 2
15.10.2018, 10:06  [ТС] 3
В файле все данные разделены между собой с помощью "/". Как в таком случае разложить все по элементам структуры?
0
управление сложностью
1661 / 1277 / 254
Регистрация: 22.03.2015
Сообщений: 7,481
Записей в блоге: 5
15.10.2018, 10:38 4
Цитата Сообщение от Getrak Посмотреть сообщение
Как в таком случае разложить все по элементам структуры?
Можно использовать Split()
0
Эксперт JS
5405 / 3119 / 1508
Регистрация: 14.06.2018
Сообщений: 5,891
15.10.2018, 10:57 5
Тема, смотрю, актуальная. Давайте сразу предложим вменяемый штатный способ сохранения в файл:
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
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
 
/// <summary>
/// Описать структуру с полями:Фамилия студента, название дисциплины, оценка, дата. 
/// Считать данные из текстового файла в массив. 
/// Вывести в список или таблицу. Подсчитать количество четверок для заданной пользователем дисциплины. 
/// </summary>
namespace Question2334543
{
    public class Scores
    {
        public string Student { get; set; }
        public string Subject { get; set; }
        public int Score { get; set; }
        public DateTime Date { get; set; }
    }
 
 
    class Program
    {
        private static List<Scores> scores = new List<Scores>();
        private static string path = @"c:\temp\scores.txt";
 
        static void Main(string[] args)
        {
            InitScores();
            ShowScores();
            LoadScores();
            Calculate();
            AddScores();
 
            Console.ReadKey();
        }
 
        private static void AddScores()
        {
            Console.WriteLine("Введите Фамилию студента:");
            var student = Console.ReadLine();
 
            Console.WriteLine("Введите название дисциплины:");
            var subject = Console.ReadLine();
 
            Console.WriteLine("Введите оценку:");
            var score = int.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите дату в формате ДД.ММ.ГГГГ :");
            var date = DateTime.Parse(Console.ReadLine(), CultureInfo.GetCultureInfo("ru-ru"));
 
            scores.Add(new Scores { Student = student, Subject = subject, Score = score, Date = date });
            SaveScores();
        }
 
        private static void Calculate()
        {
            Console.WriteLine("Введите название дисциплины:");
            var subject = Console.ReadLine();
            var count4 = scores.Count(element => element.Subject == subject && element.Score == 4);
            Console.WriteLine($"Количество четвёрок по предмету \"{subject}\": {count4}.");
        }
 
        private static void LoadScores()
        {
            var o = new JavaScriptSerializer();
            var str = File.ReadAllText(path, Encoding.UTF8);
            scores = o.Deserialize<List<Scores>>(str);
            foreach (var item in scores)
            {
                item.Date = item.Date.ToLocalTime();
            }
        }
 
        private static void SaveScores()
        {
            var o = new JavaScriptSerializer();
            var str = o.Serialize(scores);
            File.WriteAllText(path, str, Encoding.UTF8);
        }
 
        private static void ShowScores()
        {
            Console.WriteLine($"{"Дата",-10} {"Фамилия студента",-20}{"Название предмета",-20}{"Оценка",-2}");
            foreach (var item in scores)
            {
                Console.WriteLine($"{item.Date:dd.MM.yyyy} {item.Student,-20}{item.Subject,-20}{item.Score,2}");
            }
        }
 
        private static void InitScores()
        {
            if (!File.Exists(path))
            {
                scores.Add(new Scores { Student = "Иванов", Subject = "Алгебра", Score = 4, Date = new DateTime(2018, 5, 20) });
                scores.Add(new Scores { Student = "Петров", Subject = "Алгебра", Score = 5, Date = new DateTime(2018, 5, 20) });
                scores.Add(new Scores { Student = "Сидоров", Subject = "Алгебра", Score = 4, Date = new DateTime(2018, 5, 20) });
 
                SaveScores();
            }
            else
                LoadScores();
        }
    }
}
Интересное наблюдение - сериализация в JSON по умолчанию ломает дату. Вариант обхода:
C#
1
2
3
4
5
6
7
            var o = new JavaScriptSerializer();
            var str = File.ReadAllText(path, Encoding.UTF8);
            scores = o.Deserialize<List<Scores>>(str);
            foreach (var item in scores)
            {
                item.Date = item.Date.ToLocalTime();
            }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2018, 10:57

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

Считать данные из файла в структуру
Есть одна структура, есть файл, в файл я эту структуру записал. Теперь мне надо из файла опять...

Считать данные из текстового файла
Здравствуйте форумчане у меня есть разделенная БД, сотрудники отдела АДМ(назовем так) пополняют...

Считать данные из текстового файла
Всё не так просто. Дан текстовый файл, в нём строка типа lo8vd76gjo6asd, нужно считать ТОЛЬКО...

Считать данные текстового файла в массив
Здравствуйте знатоки. Есть файл file.txt в котором содержатся числа например массив из 5 символов...


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

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

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