Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: C++ структуры  (Прочитано 10952 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tata
Участник

by
Offline Offline
Пол: Женский

« : 03-01-2010 10:10 » 

Подскажите по заданию, помогите исправить, если что-то на сделала не так. Нужно разработать программу обработки структур, использовать структуру, содержащую поля с информацией: ФИО, дата рождения, номер группы, оценки за семестр. Организовать ввод исходных данных, средний балл каждого учащегося рассчитать по введенным оценкам, отобразить на экране всю введенную информацию.  Вывести анкетные данные учащихся, имеющих оценки ниже 4 по интересующему предмету (вводится с клавиатуры).
Это то, что я написала
:
Код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
//opredelaem strukturu
struct Spisok
{
char Fam[20];
char Name[2];
char birthYear[4];
char groupNumber[5];
int Ball[5];
};
int main()
{
clrscr();
const int n=2;
Spisok stud[30]; // sozdaem massiv strok
int mas[n]={0};
for (int i=0; i<n; i++)
{
cout<< "vvedite familijy inicialy god rozdenija i grupu: \n";
cout<<"\n";
cin>>stud[i].Fam>>stud[i].Name>>stud[i].birthYear>>stud[i].groupNumber;
cout<< "vvedite baly po predmetam: \n";
cout<<"\n";
cout<<"matematika | fizika | informatika | etika | psihologija \n";
for (int j=0; j<5; j++)
{
cout<<"\n";
cin>> stud[i].Ball[j];
}
}
cout<<"\n" ;
cout<< "srednij ball studentov: \n";
cout<<"________________________\n";
// podszet srednego balla
for (i=0; i<n; i++)
{
for (int j=0; j<5; j++)
mas[i]+=stud[i].Ball[j];
}
// vyvod rezultata
for (i=0; i<n; i++)
{
cout<<stud[i].Fam<<" "<<stud[i].Name<< " "<<stud[i].birthYear<<" "<<stud[i].groupNumber << endl;
double sr= (double) mas[i]/5;
cout<<setprecision(2)<< sr <<endl;
cout<<"_________________________\n";
}
getch();
return 0;
}
Как теперь вывести анкетные данные учащихся, с оценкой ниже 4 по предмету? А черт его знает...


« Последнее редактирование: 03-01-2010 16:18 от Sel » Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #1 : 03-01-2010 11:20 » 

надо устроить цикл по всем ученикам и у всех учеников, оценка которых выше 4 вывести информацию в cout
Записан

С уважением Lapulya
tata
Участник

by
Offline Offline
Пол: Женский

« Ответ #2 : 05-01-2010 11:17 » 

 с этим заданием справилась.  Класс! спасибо!!!
Помогите исправить ошибку в следующем задании (функции)
В методичке разобран подобный пример, несколько раз сверяла, но моя программа не работает
Код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <math.h>
// prototipy funkcii
void column_of_table(void);
long double y_x(double&); // peredaza argumenta po ssylke
long double s_x(double,int);
int main(void)
{
clrsrc();
double a,b,h; // objavlenie peremennyx
int n;
cout <<endl;
cout <<" vvedite dannye: \n ";
cout <<"vvedite levuju granicu diapazona a: ";
cin>> a;
cout <<" vvedite pravuju granicu diapazona b: ";
cin>> b;
if (a> b)
{
cout <<" nekorrektnye dannye ";
getch();
return 0;
}
cout <<" vvedite wag h: ";
cin>> h;
if (h> b-a)
{
cout <<" nekorrektnye dannye ";
getch();
return 0;
}
n=(b-a)/h;
column_of_table();
long double x=a;
long double temp_value1=0,temp_value2=0;
int i=1;
while (x<=b)
{
setprecision(6);
temp_value1=y_x(x); //vyzov funkcii
temp_value2=s_x(x,n); // vyzov funkcii
cout<<"|"<<setw(3)<<i<<"|"<<setw(7)<<setprecision(4)<<x;
cout<<"|"<<setw(9)<<setprecision(4)<<temp_value1<<"|";
cout<<setw(9)<<setprecision(4);
cout<<s_x(x,n)<<"|"<<setw(11)<<setprecision(4);
cout<<abs(temp_value1-temp_value2)<<"|\n";
x+=h;
i++;
}
cout<<"---------------------------------------------\n";
getch();
return 0;
}
//opisanie funkcii
void column_of_table(void)
{
cout<<"---------------------------------------------\n";
cout<<"| N | x | y(x) | s(x) ||y(x)-s(x)||\n";
cout<<"|---|-------|---------|---------|-----------|\n";
}
//opisanie funkcii, v kotoruju argument peredajotsa po ssylke
long double y_x(double &x)
{
if (x==0)
return 0;
else
return -log(abs(2*sin(x/2)));
}
//opisanie funkcii
long double s_x(double x,int n)
{
long double s=0;
for(int i=1;i<n+1;i++)
s+=cos(i*x)/i;
return s;
}
выдает ошибку: Function clrsrc should have a prototype
                           Tempoorary used for parameter 1 in call to "y_x(double &)"
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 05-01-2010 11:32 » 

Хмммм...

Может всё-таки ClearScreen? -> clrscr();
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
tata
Участник

by
Offline Offline
Пол: Женский

« Ответ #4 : 11-01-2010 08:32 » new

Спасибо, разобралась Класс!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines