Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2016, 00:24   #1
stodeer
Пользователь
 
Аватар для stodeer
 
Регистрация: 23.10.2016
Сообщений: 20
Восклицание C# Модель данных Students (не SQL, не XML, не WinForms) в консоли

Текстовый файл students.txt :
1*Яяяяяяяя Н.И.*25.11.1997*ААА*ББ-16*1*4,1
2*Гггггггггггг В.К.*16.06.1996*ВВВ*ГГ-14*3*3,9
3*Ааааа А.М.*30.04.1997*СССС*ТТТ-15*2*4,5
посмотрите, пож-та, прикрепленные блокноты, т.к. форум не дал запостить 12k символов
Мне нужно изменить Такой код: поменять.txt
Так, чтобы было меню, и все в отдельных методах, а не в статике.
чо-то не получилось: нплчлс.txt

stodeer вне форума Ответить с цитированием
Старый 01.12.2016, 08:22   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

переменные
Код:
Students Student = new Students();
List<Students> Note = new List<Students>();
видны только в рамках метода Main.

Либо за пределы выносить чтобы определялась в рамках класса, но также нужно будет сделать статиком.
Либо передавать в методы ссылки на эти переменные.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 01.12.2016 в 08:25.
WorldMaster вне форума Ответить с цитированием
Старый 02.12.2016, 16:05   #3
stodeer
Пользователь
 
Аватар для stodeer
 
Регистрация: 23.10.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Либо за пределы выносить чтобы определялась в рамках класса, но также нужно будет сделать статиком.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.IO;

namespace LabWork2YN
{
    class Students
    {
        public int num;
        public string FIO;
        public DateTime Birthday;
        public string Institute;
        public string Group;
        public int Step;
        public double Ball;
    }

    class Program
    {
        Students Student = new Students();
        List<Students> Note = new List<Students>();

        public static void Main()
        {
            Students Student = new Students();
            List<Students> Note = new List<Students>();

            FileStream file = new FileStream("students.txt", FileMode.Open, FileAccess.ReadWrite);
            StreamReader reader = new StreamReader(file, Encoding.Default);
            StreamWriter writer = new StreamWriter(file, Encoding.Default);
            string row;
            do
            {
                row = reader.ReadLine();
                string[] mas = new string[7];
                mas = row.Split('*');
                Student.num = Convert.ToInt32(mas[0]);
                Student.FIO = mas[1];
                Student.Birthday = Convert.ToDateTime(mas[2]);
                Student.Institute = mas[3];
                Student.Group = mas[4];
                Student.Step = Convert.ToInt16(mas[5]);
                Student.Ball = Convert.ToDouble(mas[6]);
                Note.Add(Student);
                Student = new Students();
            }
            while (reader.EndOfStream == false);
            Console.WriteLine("База данных:");
            //Console.WriteLine("№" + "\t" + "ФИО" + "\t" + "Дата рождения" + "\t" + "Институт" + "\t" + "Группа" + "\t" + "Курс" + "\t" + "Ср. балл");
            for (int i = 0; i < Note.Count; i++)
            {
                Console.WriteLine(Note[i].num + "\t" + Note[i].FIO + "\t" + Note[i].Birthday.ToString("dd.MM.yyyy") + "\t" + Note[i].Institute + "\t" + Note[i].Group + "\t" + Note[i].Step + "\t" + Note[i].Ball);
            }
            Console.ReadKey();
            menu();
        }
        static void menu()
        {
            Console.Write("Выберите действие:\n 1) Добавить запись \n 2) Удалить запись \n 3) Изменить запись \n 4) Прямая сортировка \n 5) Обратная сортировка \n 6) Поиск элемента таблицы \n 7) Столбец 'Средний балл' \n");
            Console.Write(">> "); int choose = Convert.ToInt32(Console.ReadLine());
            switch (choose)
            {
                case 1: addStudent();
                    break;
                case 2: delStudent();
                    break;
                case 3: changeStudent();
                    break;
                case 4: sortPryamo();
                    break;
                case 5: sortObratno();
                    break;
                case 6: searchStundent();
                    break;
                case 7: GPAchange();
                    break;
            }
        }

        static void addStudent()
        {
            try
            {
                Student = new Students();
                string plus = Console.ReadLine();
                string[] masPlus = plus.Split('*');
                Student.num = Convert.ToInt32(masPlus[0]);
                Student.FIO = masPlus[1];
                Student.Birthday = Convert.ToDateTime(masPlus[2]);
                Student.Institute = masPlus[3];
                Student.Group = masPlus[4];
                Student.Step = Convert.ToInt16(masPlus[5]);
                Student.Ball = Convert.ToDouble(masPlus[6]);
                Note.Add(Student);
                Console.WriteLine("Изменённый список:");
                for (int i = 0; i < Note.Count; i++)
                {
                    Console.WriteLine(Note[i].num + "\t" + Note[i].FIO + "\t" + Note[i].Birthday.ToString("dd.MM.yyyy") + "\t" + Note[i].Institute + "\t" + Note[i].Group + "\t" + Note[i].Step + "\t" + Note[i].Ball);
                }
                Console.ReadKey();
            }
            catch (System.FormatException)
            {
                Console.WriteLine("Проверьте правильность введенных данных");
                Console.ReadKey();
                //break;
            }
            //break;
        }
//////////////////
^ не дает


Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Либо передавать в методы ссылки на эти переменные.
если так, то ref'ом
или присвоением где-то?
Код:
static void addStudent(ref Students)
        {
            try
            {
                Student = new Students();
                string plus = Console.ReadLine();
                string[] masPlus = plus.Split('*');
.......

Последний раз редактировалось stodeer; 02.12.2016 в 16:07.
stodeer вне форума Ответить с цитированием
Старый 02.12.2016, 20:42   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да разберитесь вы уже как области видимости работают.

Student в Main у вас перекрывает глобальную переменную с таким же именем.

ref нужен только если вы хотите переданной переменной присвоить что-то (a = b), а так экземпляры классов в C# и так везде по ссылке передаются, то есть изменения его состояния (a.field = 42, list.Add(item), ...) будет доступно везде при обращении к этому экземпляру.

А почему у вас класс для хранения данных студента (одного) называется Students?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 02.12.2016 в 20:45.
Alex11223 вне форума Ответить с цитированием
Старый 02.12.2016, 20:55   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Предлагаю жутко наглое решение... ))
1000р. и я сделаю все как нужно. под ключ. Если интересует то пишите по контактам.

ЗЫ. Админы простите. Тяжелые времена, каждый выживает как может ...
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формат XML модель 80020 Dushman85 Помощь студентам 10 29.07.2013 08:53
На постоянную удаленную работу нужен опытный .NET программист WinForms DevExpress SQL dotnet Фриланс 2 23.02.2010 16:06
Модель данных fobass SQL, базы данных 3 19.01.2010 22:09
Сохранение данных из консоли Дырдин Общие вопросы C/C++ 9 31.12.2009 16:33