Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 6
1

Написать программу, которая печатает список студентов, желающих прослушать дисциплину Х

10.02.2015, 21:15. Показов 1237. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая печатает список студентов, желающих прослушать дисциплину Х. Если, число желающих превысит 8 человек, то отобрать студентов, имеющих более высокий средний балл успеваемости. Вывести список дисциплин, которые не были выбраны или их выбор минимален. Все полученные данные вывести в файл.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2015, 21:15
Ответы с готовыми решениями:

Написать программу, позволяющую получать список студентов, желающих прослушать дисциплину Х
Помогите дописать программу ((Сама не могу додуматься .... вот задание: 1. Создать файл,...

Список студентов, желающих слушать дисциплину X
помогите пожалуйста написать программу в Access, которая печатает список студентов, желающих...

Напишите программу, которая вводит и печатает эту информацию и печатает фамилии студентов, родившихся летом
запись имеет четыре поля, содержащие фамилию и дату рождения (число, месяц, год) студента. Напишите...

Напишите программу, которая вводит и печатает эту информацию и печатает фамилии студентов, родившихся после 1970 года
Задание: Запись имеет четыре поля, содержащие фамилию и дату рождения (число, месяц, год)...

7
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
11.02.2015, 10:38 2
(С) Some1

Текст файла с описаниями студентов "disciple.txt"
Фамилия студента: Пупкин
Индекс группы: ИТ-03-1
Математика:
Физика:
Химия: 1
История:
Религоведение:
Средний балл: 3.5

Фамилия студента: Мелявич
Индекс группы: ВС-02-2
Математика:
Физика: 1
Химия:
История:
Религоведение:
Средний балл: 2.8

Фамилия студента: Лопаткин
Индекс группы: ВС-03-2
Математика:
Физика: 1
Химия:
История: 1
Религоведение:
Средний балл: 4.8

Фамилия студента: Анушевский
Индекс группы: СА-00-1
Математика: 1
Физика:
Химия:
История: 1
Религоведение: 1
Средний балл: 5
Текст самой программы:
Pascal
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
type
  predmets=(Matem,Pfiz,Him,Istor,Relig);
  tstd=record
    Name:string[100];
    Group:String[20];
    predmet:array[predmets] of boolean;
    srbal:real;
  end;
const
  infilename='disciple.txt';
  maxstudents=100;
  prednames:array[predmets] of string=('Математика','Физика','Химия','История','Религоведение');
  count:word=1;
  choisecount:byte=0;
var
  f:text;
  std:array[1..maxstudents] of tstd;
  tempstd:tstd;
  p:integer;
  sign:boolean;
  s:string;
  choise:byte;
begin
  writeln('Выберите одну из дисциплин:');
  for p:=1 to 5 do writeln(p,' - ',prednames[predmets(p-1)]);
  readln(choise);
  assign(f,infilename);
  reset(f);
  {Загрузим всех студентов}
  while not eof(f) do
  begin
    readln(f,s);
    if s='' then inc(count);
    if pos('Фамилия студента',s)<>0 then std[count].name:=copy(s,pos(':',s)+2,255);
    if pos('Индекс группы',s)<>0 then std[count].Group:=copy(s,pos(':',s)+2,255);
    if pos('Средний балл',s)<>0 then val(copy(s,pos(':',s)+2,255),std[count].srBal,p);
    for p:=1 to 5 do if pos(prednames[predmets(p-1)],s)<>0 then
      std[count].predmet[predmets(p-1)]:=s[length(s)]='1';
  end;
  close(f);
  {Отсортируем наших студентов по убыванию среднего балла}
  repeat
    sign:=false;
    for p:=1 to count-1 do if std[p].srbal<std[p+1].srbal then
    begin
      tempstd:=std[p];
      std[p]:=std[p+1];
      std[p+1]:=tempstd;
      sign:=true;
    end;
  until not sign;
  {Выведем студентов}
  for p:=1 to count do
  begin
    if std[p].predmet[predmets(choise-1)] and (choisecount<8) then
    begin {Если этот студент записан на дисцеплину, и их не больше 8}
      inc(choisecount);
      writeln('Фамилия студента: ',std[p].name);
      writeln('Индекс группы: ',std[p].group);
      writeln('Средний балл: ',std[p].srbal:0:2);
    end;
  end;
end.
1
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 6
11.02.2015, 12:30  [ТС] 3
спасибо конечно тебе большое, но программа почему то не запускается(
0
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
11.02.2015, 12:46 4
Все прекрасно запускается.
Миниатюры
Написать программу, которая печатает список студентов,  желающих прослушать дисциплину Х  
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 6
11.02.2015, 13:10  [ТС] 5
у меня просто Pascal ABC.net может из-за этого?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
11.02.2015, 13:14 6
Цитата Сообщение от Cort Посмотреть сообщение
может из-за этого?
Из-за этого. Кто-то очень умный решил изъять часть Паскалевского функционала. Причем лучшую его часть. С чего бы тип-перечисление НЕ порядковый?

Вот код, который компилируется и работает в PABC.NET:
Pascal
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
type
  predmets=(Matem,Pfiz,Him,Istor,Relig);
  tstd=record
    Name:string[100];
    Group:String[20];
    predmet:array[Matem .. Relig] of boolean;
    srbal:real;
  end;
const
  infilename='d:\test\disciple.txt';
  maxstudents=100;
  prednames:array[Matem .. Relig] of string=('Математика','Физика','Химия','История','Религоведение');
var
  count:word:=1;
  choisecount:byte:=0;
var
  f:text;
  std:array[1..maxstudents] of tstd;
  tempstd:tstd;
  p:integer;
  sign:boolean;
  s:string;
  choise:byte;
begin
  writeln('Выберите одну из дисциплин:');
  for p:=1 to 5 do writeln(p,' - ',prednames[predmets(p-1)]);
  readln(choise);
  assign(f,infilename);
  reset(f);
  {Загрузим всех студентов}
  while not eof(f) do
  begin
    readln(f,s);
    if s='' then inc(count);
    if pos('Фамилия студента',s)<>0 then std[count].name:=copy(s,pos(':',s)+2,255);
    if pos('Индекс группы',s)<>0 then std[count].Group:=copy(s,pos(':',s)+2,255);
    if pos('Средний балл',s)<>0 then val(copy(s,pos(':',s)+2,255),std[count].srBal,p);
    for p:=1 to 5 do if pos(prednames[predmets(p-1)],s)<>0 then
      std[count].predmet[predmets(p-1)]:=s[length(s)]='1';
  end;
  close(f);
  {Отсортируем наших студентов по убыванию среднего балла}
  repeat
    sign:=false;
    for p:=1 to count-1 do if std[p].srbal<std[p+1].srbal then
    begin
      tempstd:=std[p];
      std[p]:=std[p+1];
      std[p+1]:=tempstd;
      sign:=true;
    end;
  until not sign;
  {Выведем студентов}
  for p:=1 to count do
  begin
    if std[p].predmet[predmets(choise-1)] and (choisecount<8) then
    begin {Если этот студент записан на дисцеплину, и их не больше 8}
      inc(choisecount);
      writeln('Фамилия студента: ',std[p].name);
      writeln('Индекс группы: ',std[p].group);
      writeln('Средний балл: ',std[p].srbal:0:2);
    end;
  end;
end.
, хотя с использованием фишек .NET то же самое можно наверняка сделать гораздо короче...
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 6
11.02.2015, 16:49  [ТС] 7
спасибо большое! все заработало!

Добавлено через 2 часа 15 минут
извиняюсь, но не могли бы вы помочь сделать вторую часть задания?

 Комментарий модератора 
Прекращаем дублировать темы и валить все задания в ту, где отметились форумчане.
Все это - нарушение Правил форума.
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 6
15.02.2015, 21:23  [ТС] 8
помогите сделать в этой программе так, что бы выводилась вся информация о студентах и её можно было туда дописывать. Как сделать? подскажите пожалуйста
0
15.02.2015, 21:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2015, 21:23
Помогаю со студенческими работами здесь

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

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

Написать программу, которая создавала бы список студентов и позволяла его редактировать
Помогите, пожалуйста! Лабораторная работа №5 Написать программу, которая создавала бы список...

Написать программу, которая выводит список студентов, которым назначена стипендия
Для группы студентов заданы их оценки по пяти предметам. Используя записи и процедуры, написать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru