Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Структуры. С++


Автор: Soad79 24.3.2009, 20:05
Здравствуйте уважаемые программисты. Суть программы такая -  Нужно узнать по какому предмету у студента лучшая оценка. С клавиатуры вводим предмет и оценку, и на экран выводится надпись "Лучшая оценка по предмету...".
Я написал вот это. Правильно ли начало. И не могли бы мне помочь дописать до конца.
Код

#include <iostream.h>
#include <math.h>
#include <string>
#include "conio.h"
const int n=5;
void main ()
{
struct Poisk { 
    char name[20];
    int marc;
        };
    Poisk ocenka[n], *point=&ocenka[0]; 
      int i,m;
bool flag=false;

  for(i=0; i<n; i++, point++)
{
cout << "\nVvedi nazvanie predmeta:";
cin >> (*point).name;                 
cout<< "\nVvedi ocenky:";
cin >> (*point). marc;                      
}
point-= n;

Автор: ИванМ 24.3.2009, 20:20
Через попу написано, но вроде должно работать.

Автор: Soad79 24.3.2009, 20:28
Цитата(ИванМ @  24.3.2009,  20:20 Найти цитируемый пост)
Через попу написано, но вроде должно работать.

Я С++ никогда не изучал и не сталкивался. Сижу с методичкой и делаю)))

Автор: ИванМ 24.3.2009, 20:33
Код

#include <iostream.h>
#include <math.h>
#include <string>
#include "conio.h"

const int n=5;

struct Poisk 
{ 
    char name[20];
    int marc;
};

void main ()
{
    Poisk ocenka[n];
    for(int i=0; i<n; i++)
    {
       cout << "\nVvedi nazvanie predmeta:";
       cin >> point[i].name;                 
       cout<< "\nVvedi ocenky:";
       cin >> point[i]. marc;                      
    }
}


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

Автор: mes 24.3.2009, 20:37
Цитата(Soad79 @  24.3.2009,  19:05 Найти цитируемый пост)
Я написал вот это. Правильно ли начало. И не могли бы мне помочь дописать до конца.

Лови заготовку  smile 
Код

#include <iostream>

#define LESSON_COUNT 3

const char * LessonName[LESSON_COUNT]= { "Lesson0", "Lesson1", "Lesson2"}; // названия уроков


const char * RateName[] = { "", "one", "two", "three", "four", "five"}; // названия оценок


struct Student
{
    int  Rate[LESSON_COUNT];
};

int main ()
{
  Student st;

   st.Rate[0] = 5; // Lesson0 is 5;
   st.Rate[1] = 3; // Lesson1 is 3;
   st.Rate[2] = 4; // Lesson2 is 4;

   for (int i=0; i<LESSON_COUNT; ++i)   std::cout << LessonName[i] <<" is " <<st.Rate[i]<<std::endl; // Предваритель

   int min = 0;
   int max = 0;
   for (int i=1; i<LESSON_COUNT; ++i)
   {
         if (st.Rate[i]<st.Rate[min]) min =i;
         if (st.Rate[i]>st.Rate[max]) max= i;
   }


   std::cout << "Min Rate is " <<st.Rate[min]<<" in "<<LessonName[min]<<std::endl;
   std::cout << "Max Rate is " <<st.Rate[max]<<" in "<<LessonName[max]<<std::endl;

// Альтернативный вариант (вывод оценки по имени )
//   std::cout << "Min Rate is " <<RateName[st.Rate[min]]<<" in "<<LessonName[min]<<std::endl; 
//   std::cout << "Max Rate is " <<RateName[st.Rate[max]]<<" in "<<LessonName[max]<<std::endl;

  system("pause");
  return(0);
}








Автор: Soad79 24.3.2009, 20:51
ИванМ, 
mes,  Большое спасибо за ответы!!! smile 

Автор: Anikmar 25.3.2009, 02:52
Цитата(ИванМ @  24.3.2009,  20:33 Найти цитируемый пост)
 Жди, сейчас прибегут профессионалы и будут мутить с перегрузкой операторов и новым стилем программирования  


mes, так не честно! От вас ждали мути и нравоучений, а вы взяли и код выложили!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)