Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
#1

Вывести в отсортированном виде список вводимых студентов

13.05.2012, 21:57. Просмотров 1371. Ответов 23
Метки нет (Все метки)

Доброе время суток!
Помогите разобраться в работе с классами
С начало происходит ввод данных студентов (в данном коде 2 студента). После окончания :
//1) надо вывести колво вводимых студентов(в данном коде 2 студента, хотел в самом начале сделать пункт где надо вводить колво вводимых студентов но не смог, в принципе не обязательно).
2)Главное нужно в конце вывести в отсортированном виде список вводимых студентов (сперва ФИО после Дата рож.)
Никак не получается вывести этот список. Помогите с кодом программы

Благодарю за помощь!


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
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication12
{
    class worker
    {
 
        public static int kolvo = 0;
        public static int god = 0;
        public static int den = 0;
        public static int mesyac = 0;
        public static int u4eba = 0;
        public static string nacionalnost;
        public static string name;
        public static string pol;
        worker()
        {
 
            Console.Write("ФИО Студента:");
 
            //for (int i = 0; i < 10; i++)
 
            {
                name = Console.ReadLine();
 
            }
 
            while (true)
            {
                Console.Write("Введите Год рождения (между 1990-1995):");
                god = Convert.ToInt16(Console.ReadLine());
                if (god >= 1996) Console.WriteLine("***** Введенная дата не подходит критериям");
                else
                    if (god <= 1899) Console.WriteLine("***** Введенная дата не подходит критериям");
                    else
                        break;
            }
 
            while (true)
            {
                Console.Write("Введите Месяц рождения (**):");
                mesyac = Convert.ToInt16(Console.ReadLine());
                if (mesyac >= 13) Console.WriteLine("***** Введенная дата не подходит критериям");
                else break;
            }
 
            while (true)
            {
                Console.Write("Введите День рождения (**):");
                den = Convert.ToInt16(Console.ReadLine());
                if (den >= 32) Console.WriteLine("***** Введенная дата не подходит критериям");
                else break;
            }
 
            while (true)
            {
                Console.Write("Введите пол (<..М..> или <..Ж..>):");
                pol = Convert.ToString(Console.ReadLine());
                if (pol == "М")
                {
                    pol = "Мужской";
                    break;
                }
 
 
                if (pol == "Ж")
                {
                    pol = "Женскии";
                    break;
                }
 
                else if ((pol != "М") || (pol != "Ж"))
                {
                    Console.WriteLine("***** <..М..> или <..Ж..>");
                }
            }
 
            while (true)
            {
                Console.Write("Введите национальность:");
                nacionalnost = Convert.ToString(Console.ReadLine());
                break;
            }
 
 
            while (true)
            {
                Console.Write("Год поступления  (между 1996-2011):");
                u4eba = Convert.ToInt16(Console.ReadLine());
                if (u4eba >= 2012) Console.WriteLine("***** Введенная дата не подходит критериям");
                else
                    if (u4eba <= 1995) Console.WriteLine("***** Введенная дата не подходит критериям");
                    else
                        break;
            }
 
 
 
 
 
 
            Console.WriteLine("___________________________________________________________________");
            Console.WriteLine("ФИО студента: {0}\t     Дата рождения: {3}.{2}.{1}", worker.name, worker.god, worker.mesyac, worker.den);
            Console.WriteLine("Пол: {0}     Национальность: {1}     Год поступления : {2}", worker.pol, worker.nacionalnost, worker.u4eba);
            Console.WriteLine("___________________________________________________________________");
            Console.WriteLine();
            Console.WriteLine();
 
        }
 
        public static worker[] wrk1;
        static void Main(string[] args)
        {
 
            wrk1 = new worker[2];
            for (int i = 0; i < 2; i++)
                wrk1[i] = new worker();
 
            {
                Console.WriteLine();
            }
 
/////////////////////////// здесь и начинаются проблемы  
 
            for (int i = 0; i < 2; i++)
                Console.WriteLine("Колво введенных студентов:{0}", name[i]);
            Console.WriteLine("Студент           Дата рождения ");
 
            for (int i = 0; i < 2; i++)
                Console.WriteLine("{0}     {1}.{2}.{3}", worker.name, worker.god, worker.mesyac, worker.den);
 
 
            Console.ReadLine();
        }}
    }



ну хоть кто нибудь помогите )

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 21:57
Ответы с готовыми решениями:

Вывести список студентов в порядке убывания
Добрый вечер. Ребята, помогите отсортировать считанный список. В файл нужно...

Вывести список неуспевающих студентов в порядке убывания количества пропущенных ими занятий
Сама задача: Группе студентов в результате полусеместровой аттестации были...

Вычислить общий средний балл всех студентов и распечатать список студентов со средним баллом выше общего
Задача следующая: вычислить общий средний балл всех студентов и распечатать...

Работа с структурами. Вывести список студентов, имеющих по итогам аттестации только "2"
typedef struct {char name; int group, mark;} STUD; STUD kurs; /информация о...

LINQ запрос: вывести имена студентов (без повторов) и количество студентов с таким именем
Помогите составить следующий LINQ запрос Вывести имена студентов (без повторов)...

23
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,578
13.05.2012, 22:45 #2
D'2-ka, сортировать по чему по имени?
0
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 19:59  [ТС] #3
ДА но можно и по годам

Добавлено через 37 минут
помогите хотя бы просто список без сортировки вывести...

Добавлено через 20 часов 33 минуты
Тема не закрыта дамы и господа !
Прошу помочь мне с этой задачей =)
0
Евгений В
875 / 644 / 128
Регистрация: 01.03.2010
Сообщений: 1,209
14.05.2012, 20:31 #4
D'2-ka,
Количество студентов можно узнать так
int countSt=wrk1.Length; (узнать, сколько элементов в массиве wrk1)

Вывести список
C#
1
2
3
for (int i = 0; i < countSt; i++)
            Console.WriteLine("{0}     {1}.{2}.{3}", 
            wrk1[i].name, wrk1[i].god,wrk1[i].mesyac, wrk1[i].den);
1
Tweekaz
23 / 22 / 3
Регистрация: 21.04.2012
Сообщений: 252
14.05.2012, 21:22 #5
А тебе консоль или же форму ?
0
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 21:23  [ТС] #6
console !!!
0
Tweekaz
23 / 22 / 3
Регистрация: 21.04.2012
Сообщений: 252
14.05.2012, 21:49 #7
Цитата Сообщение от D'2-ka Посмотреть сообщение
console !!!
А чем форма не угодит ?
0
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 22:02  [ТС] #8
нет ) это тема по консольным программам, с использованием классов
ну не как не получается вывести список...

Добавлено через 10 минут
Цитата Сообщение от Евгений В Посмотреть сообщение
D'2-ka,
Количество студентов можно узнать так
int countSt=wrk1.Length; (узнать, сколько элементов в массиве wrk1)

Вывести список
C#
1
2
3
for (int i = 0; i < countSt; i++)
            Console.WriteLine("{0}     {1}.{2}.{3}", 
            wrk1[i].name, wrk1[i].god,wrk1[i].mesyac, wrk1[i].den);
Ругается Евгений
0
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
14.05.2012, 22:04 #9
Список можно вывести вот так:
C#
1
2
3
4
Worker[] my_mas = new Worker(10);
foreach ( Worker work in my_mas )
    Console.WriteLn( "Имя {0}, Фамилия {1}, Отчество {2}.", 
        work.name, work.last_name, work.father_name);
1
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 22:16  [ТС] #10
C#
1
2
3
 worker [] mymas = new worker[2];
            foreach (worker work in mymas)
                Console.WriteLine("ФИО {0}, Дата рож.{1}.{2}.{3}.", work.name, work.god, work.mesyac,work.den);
ругается на work.name, work.god, work.mesyac,work.den. не находит
0
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
14.05.2012, 22:23 #11
Скинь полный код.
Я так тебе не могу нечего сказать.
В данном примере надо добавить:
C#
1
2
3
4
5
worker [] mymas = new worker[2];
for ( int i = 0; i < mymas.Length; i++ )
{
    mymas[i] = new worker( "Ну и тет следуя своему коструктору задаеш параметры" );
}
1
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 23:19  [ТС] #12
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication12
{
    class worker
    {
 
        public static int kolvo = 0;
        public static int god = 0;
        public static int den = 0;
        public static int mesyac = 0;
        public static int u4eba = 0;
        public static string nacionalnost;
        public static string name;
        public static string pol;
        worker()
        {
 
            Console.Write("ФИО Студента:");
 
            //for (int i = 0; i < 10; i++)
 
            {
                name = Console.ReadLine();
 
            }
 
            while (true)
            {
                Console.Write("Введите Год рождения (между 1990-1995):");
                god = Convert.ToInt16(Console.ReadLine());
                if (god >= 1996) Console.WriteLine("***** Введенная дата не подходит критериям");
                else
                    if (god <= 1899) Console.WriteLine("***** Введенная дата не подходит критериям");
                    else
                        break;
            }
 
            while (true)
            {
                Console.Write("Введите Месяц рождения (**):");
                mesyac = Convert.ToInt16(Console.ReadLine());
                if (mesyac >= 13) Console.WriteLine("***** Введенная дата не подходит критериям");
                else break;
            }
 
            while (true)
            {
                Console.Write("Введите День рождения (**):");
                den = Convert.ToInt16(Console.ReadLine());
                if (den >= 32) Console.WriteLine("***** Введенная дата не подходит критериям");
                else break;
            }
 
            while (true)
            {
                Console.Write("Введите пол (<..М..> или <..Ж..>):");
                pol = Convert.ToString(Console.ReadLine());
                if (pol == "М")
                {
                    pol = "Мужской";
                    break;
                }
 
 
                if (pol == "Ж")
                {
                    pol = "Женскии";
                    break;
                }
 
                else if ((pol != "М") || (pol != "Ж"))
                {
                    Console.WriteLine("***** <..М..> или <..Ж..>");
                }
            }
 
            while (true)
            {
                Console.Write("Введите национальность:");
                nacionalnost = Convert.ToString(Console.ReadLine());
                break;
            }
 
 
            while (true)
            {
                Console.Write("Год поступления  (между 1996-2011):");
                u4eba = Convert.ToInt16(Console.ReadLine());
                if (u4eba >= 2012) Console.WriteLine("***** Введенная дата не подходит критериям");
                else
                    if (u4eba <= 1995) Console.WriteLine("***** Введенная дата не подходит критериям");
                    else
                        break;
            }
 
 
 
 
 
 
            Console.WriteLine("___________________________________________________________________");
            Console.WriteLine("ФИО студента: {0}\t     Дата рождения: {3}.{2}.{1}", worker.name, worker.god, worker.mesyac, worker.den);
            Console.WriteLine("Пол: {0}     Национальность: {1}     Год поступления : {2}", worker.pol, worker.nacionalnost, worker.u4eba);
            Console.WriteLine("___________________________________________________________________");
            Console.WriteLine();
            Console.WriteLine();
 
        }
 
        public static worker[] wrk1;
        public static worker[] work;
        static void Main(string[] args)
        {
 
            wrk1 = new worker[2];
            for (int i = 0; i < 2; i++)
                wrk1[i] = new worker();
 
            {
                Console.WriteLine();
            }
 
 
            int countSt = wrk1.Length;
            Console.WriteLine("Колво введенных студентов:{0}", countSt);
            Console.WriteLine("Студент           Дата рождения ");
 
            worker[] mymas = new worker[2];
            foreach (worker work in mymas)
                Console.WriteLine("ФИО {0}, Дата рож.{1}.{2}.{3}.", , work.name, work.god, work.mesyac, work.den);
 
            //        try
            //        {
            //            for (int i = 0; i < countSt; i++)
            //                //  Console.WriteLine("{0}     {1}.{2}.{3}", wrk1[i], wrk1[i].name, wrk1[i].god, wrk1[i].mesyac, wrk1[i].den);
            //                Console.WriteLine("{0}     {1}.{2}.{3}", wrk1[i], wrk1[i].name, wrk1[i].god, wrk1[i].mesyac, wrk1[i].den);
            //            Console.ReadLine();
            //        }
            //        catch { }
            //}
 
        }
    }
}
Вот, это и есть весь мой код...

Добавлено через 22 минуты
C#
1
2
3
4
5
worker [] mymas = new worker[2];
for ( int i = 0; i < mymas.Length; i++ )
{
    mymas[i] = new worker( "Ну и тет следуя своему коструктору задаеш параметры" );
}
я вить так и сделал
C#
1
2
3
 wrk1 = new worker[2];
            for (int i = 0; i < 2; i++)
                wrk1[i] = new worker();
Извини, но какие параметры та вводить? одни ошибки

Добавлено через 27 минут
come on Дмитрий3241. Помоги уже до конца плз... че за параметры вписать, а то пишу туда что попало и без толку?
0
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
14.05.2012, 23:23 #13
Вот смотрите:
Код
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
namespace ConsoleApplication1
{
    class Program
    {
        struct worker
        {
            string Имя;
            string Фамилия;
            string Отчество;
 
            public string имя { get { return Имя; } set { Имя = value; } }
            public string фамилия { get { return Фамилия; } set { Фамилия = value; } }
            public string отчество { get { return Отчество; } set { Отчество = value; } }
 
            public worker( string имя, string фамилия, string отчество )
            {
                this.Имя = имя;
                this.Фамилия = фамилия;
                this.Отчество = отчество;
            }
        }
 
        static void Main( string[] args )
        {
            worker[] my_mas = new worker[10];
            for ( int i = 0; i < my_mas.Length; i++ )
                my_mas[i] = new worker( "name" + i, "last_name" + i, "second_name" + i );
 
            foreach ( worker work in my_mas )
                Console.WriteLine( "Имя: {0}, Фамилия: {1}, Отчество: {2}",
                    work.имя, work.фамилия, work.отчество );
            Console.ReadKey();
        }
    }
}

И вот результат данной программы:
1
Миниатюры
Вывести в отсортированном виде список вводимых студентов  
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
14.05.2012, 23:28 #14
Цитата Сообщение от D'2-ka Посмотреть сообщение
come on Дмитрий3241. Помоги уже до конца плз... че за параметры вписать, а то пишу туда что попало и без толку?
Вам бы реализацию класса сменить на более удобную и читабельную.

Добавлено через 2 минуты
Конечно если вам охота кушать уже переваренную кашу, то можете скинуть задание я вам сделаю его.
1
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 23:31  [ТС] #15
Почему сразу уже переваренную, я же скинул то что я сам замудрил, осталось только вывести этот *censored* список ! Ну не принимает эти параметры моя прога (
0
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
14.05.2012, 23:41 #16
Ну вот смотрите, родился ребенок, ему некто не дал не имени не фамилии не отчества, в 14 лет ему нужно получить паспорт, а как он его получить если о нем нечего не известно в паспортном столе будет ошибка так и тут, изначально в вашем классе worker полям:
C#
1
2
3
public static string nacionalnost;
public static string name;
public static string pol;
Не присвоено значение, значит и при создание класса:
C#
1
2
3
wrk1 = new worker[2];
for (int i = 0; i < 2; i++)
wrk1[i] = new worker();
Данные поля не будут иметь значений, из этого следует что им либо нужно добавить значения изначально, то есть:
C#
1
2
3
public static string nacionalnost = "empty";
public static string name = "empty";
public static string pol = "empty";
Либо описать конструктор, следующего вида:
C#
1
2
3
4
5
6
public worker( string национальность, string имя, string пол )
{
    this.nacionalnost = национальность;
    this.name = имя;
    this.pol = пол;
}
Тогда при создание вида:
C#
1
2
3
wrk1 = new worker[2];
for (int i = 0; i < 2; i++)
wrk1[i] = new worker( "Россиянин", "Вася_" + i, "мужской");
3-я строчка говорит о том что создается новый экземпляр класса worker с уже заданными полями, и при выводе значения будут, а значит и не будет ошибки.
1
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
14.05.2012, 23:58  [ТС] #17
Даш переваренную кашу ?)))
0
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
15.05.2012, 00:00 #18
Кидай мне полностью все задание которое тебе надо, сейчас сделаю.
0
D'2-ka
12 / 12 / 3
Регистрация: 12.03.2012
Сообщений: 120
15.05.2012, 00:03  [ТС] #19
Задание 1. Спасибо. но можно ли как то исправить мой код ?
0
Вложения
Тип файла: doc Практическая работа 6.doc (52.0 Кб, 20 просмотров)
Дмитрий3241
643 / 513 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
15.05.2012, 00:04 #20
Не любитель я копаться в чужом.
0
15.05.2012, 00:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2012, 00:04

Список студентов
Создайте базу данных студентов. На форме - поля для ввода информации о студенте...

Вывести значения вводимых исходных данных
Вывести значения вводимых исходных данных и полученные результаты, сопровождая...

Упорядочить список студентов
Имеется список студентов: упорядочить их фамилии по алфавитному порядку...


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

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

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